Fri, 18 Mar 2016 20:05:12 +0100
Continued porting the web browser.
- continued porting the eric:speeddial code
--- a/WebBrowser/JavaScript/ExternalJsObject.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/JavaScript/ExternalJsObject.py Fri Mar 18 20:05:12 2016 +0100 @@ -15,9 +15,9 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot, pyqtProperty, QObject, QUrl +from PyQt5.QtCore import pyqtProperty, QObject -import WebBrowser.WebBrowserWindow +from WebBrowser.WebBrowserWindow import WebBrowserWindow from .StartPageJsObject import StartPageJsObject from .PasswordManagerJsObject import PasswordManagerJsObject @@ -75,9 +75,7 @@ if self.__page.url().toString() != "eric:speeddial": return None - # TODO: SpeedDial -## return WebBrowser.WebBrowserWindow.WebBrowserWindow.speedDial() - return None + return WebBrowserWindow.speedDial() @pyqtProperty(QObject, constant=True) def startPage(self):
--- a/WebBrowser/Network/EricSchemeHandler.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/Network/EricSchemeHandler.py Fri Mar 18 20:05:12 2016 +0100 @@ -23,6 +23,7 @@ SupportedPages = [ "adblock", # error page for URLs blocked by AdBlock "home", "start", "startpage", # eric home page + "speeddial", # eric speeddial ] def __init__(self, parent=None): @@ -70,6 +71,8 @@ """ closed = pyqtSignal() + _speedDialPage = "" + def __init__(self, job, parent=None): """ Constructor @@ -105,6 +108,8 @@ stream << self.__adBlockPage() elif self.__pageName in ["home", "start", "startpage"]: stream << self.__startPage() + elif self.__pageName == "speeddial": + stream << self.__speedDialPage() stream.flush() self.__buffer.reset() @@ -181,3 +186,58 @@ page = page.replace("@QT_LAYOUT_DIRECTION@", ltr) return page + + def __speedDialPage(self): + """ + Private method to create the Speeddial page. + + @return prepared speeddial page (QByteArray) + """ + if not self._speedDialPage: + page = readAllFileContents(":/html/speeddialPage.html") + page = ( + page.replace("@FAVICON@", "qrc:icons/ericWeb16.png") + .replace("@IMG_PLUS@", "qrc:icons/plus.png") + .replace("@IMG_CLOSE@", "qrc:icons/close.png") + .replace("@IMG_EDIT@", "qrc:icons/edit.png") + .replace("@IMG_RELOAD@", "qrc:icons/reload.png") + .replace("@IMG_SETTINGS@", "qrc:icons/setting.png") + .replace("@LOADING-IMG@", "qrc:icons/loading.gif") + .replace("@BOX-BORDER@", "qrc:icons/box-border-small.png") + + .replace("@JQUERY@", "qrc:javascript/jquery.js") + .replace("@JQUERY-UI@", "qrc:javascript/jquery-ui.js") + + .replace("@SITE-TITLE@", self.tr("Speed Dial")) + .replace("@URL@", self.tr("URL")) + .replace("@TITLE@", self.tr("Title")) + .replace("@APPLY@", self.tr("Apply")) + .replace("@CLOSE@", self.tr("Close")) + .replace("@NEW-PAGE@", self.tr("New Page")) + .replace("@TITLE-EDIT@", self.tr("Edit")) + .replace("@TITLE-REMOVE@", self.tr("Remove")) + .replace("@TITLE-RELOAD@", self.tr("Reload")) + .replace("@TITLE-WARN@", + self.tr("Are you sure to remove this speed dial?")) + .replace("@TITLE-FETCHTITLE@", + self.tr("Load title from page")) + .replace("@SETTINGS-TITLE@", + self.tr("Speed Dial Settings")) + .replace("@ADD-TITLE@", self.tr("Add New Page")) + .replace("@TXT_NRROWS@", + self.tr("Maximum pages in a row:")) + .replace("@TXT_SDSIZE@", self.tr("Change size of pages:")) + ) + + self._speedDialPage = page + + from WebBrowser.WebBrowserWindow import WebBrowserWindow + dial = WebBrowserWindow.speedDial() + page = ( + self._speedDialPage + .replace("@INITIAL-SCRIPT@", dial.initialScript()) + .replace("@ROW-PAGES@", str(dial.pagesInRow())) + .replace("@SD-SIZE@", str(dial.sdSize())) + ) + + return page
--- a/WebBrowser/SpeedDial/PageThumbnailer.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/SpeedDial/PageThumbnailer.py Fri Mar 18 20:05:12 2016 +0100 @@ -9,11 +9,10 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSignal, QObject, QSize, Qt, QUrl -from PyQt5.QtGui import QPixmap, QImage, QPainter -from PyQt5.QtWebKitWidgets import QWebPage - -from ..Network.NetworkAccessManagerProxy import NetworkAccessManagerProxy +from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QSize, Qt, QUrl, \ + QTimer +from PyQt5.QtGui import QPixmap +from PyQt5.QtQuickWidgets import QQuickWidget class PageThumbnailer(QObject): @@ -33,26 +32,18 @@ """ super(PageThumbnailer, self).__init__(parent) - self.__page = QWebPage(self) self.__size = QSize(231, 130) +## self.__size = QSize(450, 253) self.__loadTitle = False self.__title = "" self.__url = QUrl() - self.__proxy = NetworkAccessManagerProxy(self) - import Helpviewer.HelpWindow - self.__proxy.setPrimaryNetworkAccessManager( - Helpviewer.HelpWindow.HelpWindow.networkAccessManager()) - self.__page.setNetworkAccessManager(self.__proxy) - - self.__page.mainFrame().setScrollBarPolicy( - Qt.Horizontal, Qt.ScrollBarAlwaysOff) - self.__page.mainFrame().setScrollBarPolicy( - Qt.Vertical, Qt.ScrollBarAlwaysOff) - - # Full HD - # Every page should fit in this resolution - self.__page.setViewportSize(QSize(1920, 1080)) + self.__view = QQuickWidget() + # TODO: uncomment once PyQt5 is fixed +## self.__view.setAttribute(Qt.WA_DontShowOnScreen) + self.__view.setSource(QUrl("qrc:qml/thumbnailer.qml")) + self.__view.rootContext().setContextProperty("thumbnailer", self) + self.__view.show() def setSize(self, size): """ @@ -103,16 +94,25 @@ @return title of the thumbnail (string) """ - return self.__title + if self.__title: + title = self.__title + else: + title = self.__url.host() + if not title: + title = self.__url.toString() + return title def start(self): """ Public method to start the thumbnailing action. """ - self.__page.loadFinished.connect(self.__createThumbnail) - self.__page.mainFrame().load(self.__url) + if self.__view.rootObject(): + self.__view.rootObject().setProperty("url", self.__url) + else: + QTimer.singleShot(0, lambda: self.thumbnailCreated.emit(QPixmap())) - def __createThumbnail(self, status): + @pyqtSlot(bool) + def createThumbnail(self, status): """ Private slot creating the thumbnail of the web site. @@ -123,15 +123,16 @@ self.thumbnailCreated.emit(QPixmap()) return - self.__title = self.__page.mainFrame().title() - - image = QImage(self.__page.viewportSize(), QImage.Format_ARGB32) - painter = QPainter(image) - self.__page.mainFrame().render(painter) - painter.end() - - scaledImage = image.scaled(self.__size, - Qt.KeepAspectRatioByExpanding, - Qt.SmoothTransformation) - - self.thumbnailCreated.emit(QPixmap.fromImage(scaledImage)) + QTimer.singleShot(1000, self.__grabThumbnail) + + def __grabThumbnail(self): + """ + Private slot to grab the thumbnail image from the view. + """ + self.__title = self.__view.rootObject().property("title") + pixmap = QPixmap.fromImage( + self.__view.grabFramebuffer().scaled( + self.__size, Qt.KeepAspectRatioByExpanding, +## self.__size, Qt.IgnoreAspectRatio, + Qt.SmoothTransformation)) + self.thumbnailCreated.emit(pixmap)
--- a/WebBrowser/SpeedDial/SpeedDial.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/SpeedDial/SpeedDial.py Fri Mar 18 20:05:12 2016 +0100 @@ -18,7 +18,6 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QCryptographicHash, \ QByteArray, QUrl, qWarning from PyQt5.QtGui import QPixmap -from PyQt5.QtWebEngineWidgets import QWebEnginePage from E5Gui import E5MessageBox @@ -289,9 +288,8 @@ self.pagesChanged.emit() - @pyqtSlot(str) @pyqtSlot(str, bool) - def loadThumbnail(self, url, loadTitle=False): + def loadThumbnail(self, url, loadTitle): """ Public slot to load a thumbnail of the given URL.
--- a/WebBrowser/Sync/DirectorySyncHandler.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/Sync/DirectorySyncHandler.py Fri Mar 18 20:05:12 2016 +0100 @@ -208,13 +208,12 @@ ## "useragents", ## WebBrowserWindow.userAgentsManager().getFileName()) - # TODO: SpeedDial -## QCoreApplication.processEvents() -## # Speed Dial Settings -## if Preferences.getWebBrowser("SyncSpeedDial"): -## self.__initialSyncFile( -## "speeddial", -## WebBrowserWindow.speedDial().getFileName()) + QCoreApplication.processEvents() + # Speed Dial Settings + if Preferences.getWebBrowser("SyncSpeedDial"): + self.__initialSyncFile( + "speeddial", + WebBrowserWindow.speedDial().getFileName()) self.__forceUpload = False self.syncMessage.emit(self.tr("Synchronization finished")) @@ -264,14 +263,13 @@ ## "useragents", ## WebBrowserWindow.userAgentsManager().getFileName()) - # TODO: SpeedDial def syncSpeedDial(self): """ Public method to synchronize the speed dial data. """ -## self.__syncFile( -## "speeddial", -## WebBrowserWindow.speedDial().getFileName()) + self.__syncFile( + "speeddial", + WebBrowserWindow.speedDial().getFileName()) def shutdown(self): """
--- a/WebBrowser/Sync/FtpSyncHandler.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/Sync/FtpSyncHandler.py Fri Mar 18 20:05:12 2016 +0100 @@ -304,12 +304,11 @@ ## "useragents", ## WebBrowserWindow.userAgentsManager().getFileName()) - # TODO: SpeedDial # Speed Dial Settings -## if Preferences.getWebBrowser("SyncSpeedDial"): -## self.__initialSyncFile( -## "speeddial", -## WebBrowserWindow.speedDial().getFileName()) + if Preferences.getWebBrowser("SyncSpeedDial"): + self.__initialSyncFile( + "speeddial", + WebBrowserWindow.speedDial().getFileName()) self.__forceUpload = False @@ -376,14 +375,13 @@ ## "useragents", ## WebBrowserWindow.userAgentsManager().getFileName()) - # TODO: SpeedDial def syncSpeedDial(self): """ Public method to synchronize the speed dial data. """ -## self.__syncFile( -## "speeddial", -## WebBrowserWindow.speedDial().getFileName()) + self.__syncFile( + "speeddial", + WebBrowserWindow.speedDial().getFileName()) def shutdown(self): """
--- a/WebBrowser/Sync/SyncManager.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/Sync/SyncManager.py Fri Mar 18 20:05:12 2016 +0100 @@ -138,17 +138,16 @@ ## except TypeError: ## pass - # TODO: SpeedDial # connect sync manager to speed dial -## if Preferences.getWebBrowser("SyncSpeedDial"): -## WebBrowserWindow.speedDial()\ -## .speedDialSaved.connect(self.__syncSpeedDial) -## else: -## try: -## WebBrowserWindow.speedDial()\ -## .speedDialSaved.disconnect(self.__syncSpeedDial) -## except TypeError: -## pass + if Preferences.getWebBrowser("SyncSpeedDial"): + WebBrowserWindow.speedDial()\ + .speedDialSaved.connect(self.__syncSpeedDial) + else: + try: + WebBrowserWindow.speedDial()\ + .speedDialSaved.disconnect(self.__syncSpeedDial) + except TypeError: + pass else: self.__handler = None @@ -173,12 +172,11 @@ ## .userAgentSettingsSaved.disconnect(self.__syncUserAgents) ## except TypeError: ## pass - # TODO: SpeedDial -## try: -## WebBrowserWindow.speedDial()\ -## .speedDialSaved.disconnect(self.__syncSpeedDial) -## except TypeError: -## pass + try: + WebBrowserWindow.speedDial()\ + .speedDialSaved.disconnect(self.__syncSpeedDial) + except TypeError: + pass def syncEnabled(self): """ @@ -253,9 +251,8 @@ # TODO: UserAgents ## elif type_ == "useragents": ## WebBrowserWindow.userAgentsManager().reload() - # TODO: SpeeedDial -## elif type_ == "speeddial": -## WebBrowserWindow.speedDial().reload() + elif type_ == "speeddial": + WebBrowserWindow.speedDial().reload() self.syncFinished.emit(type_, status, download) def __syncStatus(self, type_, message):
--- a/WebBrowser/UrlBar/BookmarkActionSelectionDialog.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/UrlBar/BookmarkActionSelectionDialog.py Fri Mar 18 20:05:12 2016 +0100 @@ -43,25 +43,22 @@ self.icon.setPixmap(UI.PixmapCache.getPixmap("bookmark32.png")) - import WebBrowser.WebBrowserWindow + from WebBrowser.WebBrowserWindow import WebBrowserWindow - if WebBrowser.WebBrowserWindow.WebBrowserWindow.bookmarksManager()\ - .bookmarkForUrl(url) is None: + if WebBrowserWindow.bookmarksManager().bookmarkForUrl(url) is None: self.__bmAction = self.AddBookmark self.bookmarkPushButton.setText(self.tr("Add Bookmark")) else: self.__bmAction = self.EditBookmark self.bookmarkPushButton.setText(self.tr("Edit Bookmark")) - # TODO: SpeedDial - self.speeddialPushButton.setText("Future Speed Dial Entry") -## if WebBrowser.WebBrowserWindow.WebBrowserWindow.speedDial().pageForUrl(url).url: -## self.__sdAction = self.RemoveSpeeddial -## self.speeddialPushButton.setText( -## self.tr("Remove from Speed Dial")) -## else: -## self.__sdAction = self.AddSpeeddial -## self.speeddialPushButton.setText(self.tr("Add to Speed Dial")) + if WebBrowserWindow.speedDial().pageForUrl(url).url: + self.__sdAction = self.RemoveSpeeddial + self.speeddialPushButton.setText( + self.tr("Remove from Speed Dial")) + else: + self.__sdAction = self.AddSpeeddial + self.speeddialPushButton.setText(self.tr("Add to Speed Dial")) msh = self.minimumSizeHint() self.resize(max(self.width(), msh.width()), msh.height())
--- a/WebBrowser/UrlBar/UrlBar.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/UrlBar/UrlBar.py Fri Mar 18 20:05:12 2016 +0100 @@ -92,9 +92,8 @@ self.__bookmarkChanged) self.__mw.bookmarksManager().entryRemoved.connect( self.__bookmarkChanged) - # TODO: Speed Dial -## self.__mw.speedDial().pagesChanged.connect( -## self.__bookmarkChanged) + self.__mw.speedDial().pagesChanged.connect( + self.__bookmarkChanged) def setBrowser(self, browser): """ @@ -158,10 +157,9 @@ for bookmark in bookmarks: manager.setTimestamp(bookmark, BookmarkNode.TsVisited, QDateTime.currentDateTime()) - # TODO: SpeedDial -## elif self.__mw.speedDial()\ -## .pageForUrl(self.__browser.url()).url != "": -## self.__bookmarkButton.setIcon(self.__bmActiveIcon) + elif self.__mw.speedDial()\ + .pageForUrl(self.__browser.url()).url != "": + self.__bookmarkButton.setIcon(self.__bmActiveIcon) else: self.__bookmarkButton.setIcon(self.__bmInactiveIcon) @@ -243,12 +241,11 @@ from .BookmarkInfoDialog import BookmarkInfoDialog dlg = BookmarkInfoDialog(bookmark, self.__browser) dlg.exec_() - # TODO: SpeedDial -## elif action == BookmarkActionSelectionDialog.AddSpeeddial: -## self.__mw.speedDial().addPage( -## url, self.__browser.title()) -## elif action == BookmarkActionSelectionDialog.RemoveSpeeddial: -## self.__mw.speedDial().removePage(url) + elif action == BookmarkActionSelectionDialog.AddSpeeddial: + self.__mw.speedDial().addPage( + url, self.__browser.title()) + elif action == BookmarkActionSelectionDialog.RemoveSpeeddial: + self.__mw.speedDial().removePage(url) @pyqtSlot() def __bookmarkChanged(self):
--- a/WebBrowser/WebBrowserView.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/WebBrowserView.py Fri Mar 18 20:05:12 2016 +0100 @@ -89,9 +89,8 @@ self.__rwhvqt = None self.installEventFilter(self) - # TODO: Speeddial -## import WebBrowser.WebBrowserWindow -## self.__speedDial = WebBrowser.WebBrowserWindow.WebBrowserWindow.speedDial() + from WebBrowser.WebBrowserWindow import WebBrowserWindow + self.__speedDial = WebBrowserWindow.speedDial() self.__page = WebBrowserPage(self) self.setPage(self.__page)
--- a/WebBrowser/WebBrowserWindow.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/WebBrowserWindow.py Fri Mar 18 20:05:12 2016 +0100 @@ -55,6 +55,7 @@ from .data import icons_rc # __IGNORE_WARNING__ from .data import html_rc # __IGNORE_WARNING__ from .data import javascript_rc # __IGNORE_WARNING__ +from .data import qml_rc # __IGNORE_WARNING__ from .Tools import Scripts, WebBrowserTools, WebIconProvider @@ -94,7 +95,7 @@ _feedsManager = None ## _userAgentsManager = None _syncManager = None -## _speedDial = None + _speedDial = None _personalInformationManager = None _greaseMonkeyManager = None _notification = None @@ -2556,8 +2557,7 @@ # TODO: UserAgents ## self.userAgentsManager().close() ## - # TODO: SpeedDial -## self.speedDial().close() + self.speedDial().close() self.syncManager().close() @@ -3917,20 +3917,19 @@ """ self.syncManager().showSyncDialog() - # TODO: SpeedDial -## @classmethod -## def speedDial(cls): -## """ -## Class methdo to get a reference to the speed dial. -## -## @return reference to the speed dial (SpeedDial) -## """ -## if cls._speedDial is None: -## from .SpeedDial.SpeedDial import SpeedDial -## cls._speedDial = SpeedDial() -## -## return cls._speedDial -## + @classmethod + def speedDial(cls): + """ + Class methdo to get a reference to the speed dial. + + @return reference to the speed dial (SpeedDial) + """ + if cls._speedDial is None: + from .SpeedDial.SpeedDial import SpeedDial + cls._speedDial = SpeedDial() + + return cls._speedDial + def keyPressEvent(self, evt): """ Protected method to handle key presses. @@ -3967,13 +3966,12 @@ number = self.__tabWidget.count() self.__tabWidget.setCurrentIndex(number - 1) return - # TODO: SpeeedDial -## -## if evt.modifiers() == Qt.KeyboardModifiers(Qt.MetaModifier): -## url = self.speedDial().urlForShortcut(number - 1) -## if url.isValid(): -## self.__linkActivated(url) -## return + + if evt.modifiers() == Qt.KeyboardModifiers(Qt.MetaModifier): + url = self.speedDial().urlForShortcut(number - 1) + if url.isValid(): + self.__linkActivated(url) + return super(WebBrowserWindow, self).keyPressEvent(evt)
--- a/WebBrowser/data/html/speeddialPage.html Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/data/html/speeddialPage.html Fri Mar 18 20:05:12 2016 +0100 @@ -320,14 +320,14 @@ return; $(img).attr('src', LOADING_IMAGE); - external.speedDial.loadThumbnail(url); + external.speedDial.loadThumbnail(url, false); } function boxEdited() { if (editingId == -1) return; - external.speedDial.urlFromUserInput($('#formUrl').attr("value")), function(newUrl) { + external.speedDial.urlFromUserInput($('#formUrl').attr("value"), function(newUrl) { var box = document.getElementById('quickdial').getElementsByTagName('div')[editingId]; var a = box.getElementsByTagName('a')[0]; var originalUrl = a.getAttribute('href'); @@ -449,7 +449,7 @@ if ($(imgElement).size() == 0) return; - $(imgElement).attr('src', img_source + '?' + new Date()); + $(imgElement).attr('src', img_source); }); } @@ -529,8 +529,8 @@ var SdSizeSl = document.getElementById('sliderValueSd'); SdSize.disabled = (check.checked ? false : true); - SdSize.value = (check.checked ? SdSize.value : 240); - SdSizeSl.innerHTML = (check.checked ? DIAL_WIDTH : 240); + SdSize.value = (check.checked ? SdSize.value : 231); + SdSizeSl.innerHTML = (check.checked ? DIAL_WIDTH : 231); } </script> @@ -570,6 +570,14 @@ emitChanged(allPages()); } }); + } + + // Initialize + if (window.external) { + init(); + } else { + document.addEventListener('_eric_external_created', init); + } </script> <div id="fadeOverlay2" style="opacity:0.9;display:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:100;background:#85784A;"> <div id="settingsBox">
--- a/WebBrowser/data/html_rc.py Thu Mar 17 20:22:20 2016 +0100 +++ b/WebBrowser/data/html_rc.py Fri Mar 18 20:05:12 2016 +0100 @@ -270,6 +270,296 @@ \x20\x3c\x70\x3e\x40\x4d\x45\x53\x53\x41\x47\x45\x40\x3c\x2f\x70\ \x3e\x0a\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\x62\x6f\x64\ \x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a\ +\x00\x00\x11\xf5\ +\x00\ +\x00\x47\x64\x78\x9c\xcd\x3c\x6b\x77\xdb\x36\xb2\xdf\xfd\x2b\x18\ +\xba\x29\xa9\x46\x6f\xdb\xa9\x63\x59\x5e\x39\xb6\xd2\x68\xaf\x63\ +\xfb\x5a\x4a\xd3\x6e\x36\xc7\x87\x26\x61\x89\x1b\x8a\xe4\x92\x94\ +\x1f\x9b\xfa\xbf\xdf\x19\x00\x24\x01\x90\xa2\x24\x37\x77\x4f\xd5\ +\xd3\x5a\x22\x30\x83\x79\x3f\x00\xb0\x87\x2f\x4e\x2f\x4e\x26\xbf\ +\x5f\x0e\xb5\x59\x32\xf7\x8e\xb6\x0e\xd3\x3f\xc4\x72\xe0\xcf\x9c\ +\x24\x16\x8c\x24\x61\x83\xfc\x7b\xe1\xde\xf5\x75\x3b\xf0\x13\xe2\ +\x27\x8d\xe4\x31\x24\xba\xc6\x7f\xf5\xf5\x84\x3c\x24\x2d\x04\xed\ +\x69\xf6\xcc\x8a\x62\x92\xf4\x17\xc9\x6d\x63\x5f\x07\x1c\x89\x9b\ +\x78\xe4\x68\x30\x1e\x4d\x86\x8d\xc9\x68\x72\x36\x1c\x1c\xb6\xd8\ +\xb3\xad\x43\xcf\xf5\xbf\x6a\x11\xf1\xfa\xba\x0b\xb8\x74\x6d\x16\ +\x91\xdb\xbe\x3e\x78\x77\xfc\xeb\xe8\xe4\xe2\x7c\xa0\x6b\xb8\x0e\ +\x0c\xce\xad\x29\x69\x3d\x34\xd8\xa4\x16\x00\xc6\xc9\xa3\x47\xf8\ +\x28\x5d\xdc\x8e\x63\x5d\x9b\x13\xc7\xb5\xfa\x7a\x6c\x47\x84\xf8\ +\xb0\xf6\x4d\xe0\x3c\x6a\xdf\xb6\x34\xf8\xdc\x58\xf6\xd7\x69\x14\ +\x2c\x7c\xe7\x40\x6b\xdc\x93\x9b\xaf\x6e\xd2\x98\x46\x96\xe3\x02\ +\xfd\x26\x90\x41\xac\xa8\xae\x79\xe4\x36\xd1\x92\x20\xe4\xdf\x6e\ +\x82\x24\x09\xe6\x75\xed\x36\x0a\xe6\xe6\xf6\xfe\xde\xcf\xfb\xbb\ +\xc7\xb5\x3a\x4c\x30\xb7\xdf\x9d\xe2\x3f\xf0\xc3\x0e\xbc\x20\x6a\ +\xc4\x00\x64\xb6\x9b\x7b\x75\x2d\x1d\xa9\xf5\x94\x65\x1b\x11\x09\ +\x89\x95\x1c\x68\xec\x6f\xe3\x81\x4d\xb8\x05\x11\x1e\x68\x9d\x9d\ +\xf0\xa1\xd5\xed\x86\x0f\x9a\xfe\x9e\x78\x77\x24\x71\x6d\x4b\x3b\ +\x27\x0b\xa2\xd7\xb5\xec\x41\x5d\x3b\x8e\x5c\xcb\xab\x6b\xb1\xe5\ +\xc7\x8d\x98\x44\xee\x2d\xc3\x41\x69\x38\xd0\xb6\xf7\xba\x7b\xf6\ +\xeb\xd7\xbd\xad\x27\xc6\xf8\x4f\x9c\xf5\x94\xdd\x05\x80\x00\x98\ +\x47\x6c\x58\xd1\x0f\x7c\x92\x53\xd0\x88\xdd\xff\x10\x20\xa3\xdd\ +\x7e\xc9\x1e\xa2\x44\x1a\x33\xe2\x4e\x67\x48\x5d\xf3\x35\x7b\x3a\ +\xb7\xa2\xa9\xeb\x1f\x68\xed\xf0\x01\x57\x69\x5a\x8e\xc3\xd7\x08\ +\x83\xd8\x4d\xdc\x00\xc6\xac\x9b\x38\xf0\x16\x09\x47\x1e\x51\x0c\ +\x1d\x04\x00\x11\xb1\x2f\x74\xe0\xde\x75\x92\xd9\x81\xd6\xdd\x4d\ +\x1f\xa4\x8b\xe5\x4f\x44\x95\x2d\x22\xcf\x1c\x8c\x3e\xfc\x72\x7d\ +\x79\xf6\x71\x3c\xe0\xc2\xb5\x17\x51\x8c\x8c\x87\x81\x0b\x76\x18\ +\x21\x49\x5b\x5b\xdb\x60\xa8\xf6\x57\xb0\x03\x8f\x93\x96\x12\x6d\ +\x2d\x92\x80\xc1\xa1\xc1\x34\x2c\xcf\x9d\xc2\x53\x9b\x30\xd0\x4c\ +\x12\xf7\x9c\x8e\x9b\xc0\x73\x10\xa3\x80\xcf\x71\xef\x9a\x30\x3d\ +\x7a\x2c\x30\x0d\x26\x6c\x25\xee\x5d\x2a\x51\x2f\x40\x45\xa3\x0d\ +\x71\x4e\x82\xc8\x01\xd9\x73\x9e\x73\x21\xa4\x9a\xe1\xe3\xd4\xcc\ +\x39\xaf\x6f\x2f\x7e\x6b\xbc\xbd\xb8\x3a\x1d\x5e\x0d\x6a\x00\x21\ +\xcb\x7f\x8f\xc9\x5f\x20\xcd\x9d\x4f\x39\x51\x8e\x1b\x87\x9e\xf5\ +\x08\x0c\x78\x81\xfd\xb5\x57\x22\x02\x09\xd0\x5a\xa1\x40\x64\x82\ +\x2b\x9c\x8a\x0e\x94\xa8\xa9\x4a\xcc\xcd\x26\x55\xe2\xfe\xcf\x2f\ +\x99\x36\x32\x91\x1d\xcc\x82\x3b\x12\x69\x4d\xf0\xd0\xa4\x5e\x7c\ +\x6c\x7b\x41\x4c\x4a\x9e\x83\x60\x03\xcb\x51\x59\x73\x7d\xb4\x4f\ +\x5c\x21\x0e\x2d\xbf\x79\x13\x3c\x4c\x30\xa0\xf0\x69\x8c\xaa\x9c\ +\xa8\xb9\xf5\x90\x99\x72\x37\xa3\x7d\x19\xc3\x94\xc3\xfd\xfd\x97\ +\xe5\xec\x2f\xb1\x1c\x24\x16\xb4\x7e\x7f\x30\x73\x1d\x87\xf8\x19\ +\x65\x94\x2d\x89\x2c\xad\x53\xb0\xf8\xfc\x49\xb5\x12\xde\x74\x5f\ +\x0a\x24\xbe\x49\xd9\x2b\x75\x93\x93\xb3\x8b\xf1\x10\x2c\xc7\x0f\ +\x78\xdc\x29\x84\xa3\x7c\x2d\x91\x11\x66\x89\x40\x13\x84\x22\xa0\ +\xc0\x75\xb4\x24\x82\x68\x13\x5a\x11\x4c\xea\xc9\x5a\x60\x21\x44\ +\xe4\x94\x6b\xed\x9b\x68\xf4\x3c\x38\x4d\x23\xf2\x28\x39\x03\xc6\ +\xde\x45\x7c\xa0\xed\x30\x5b\xa6\x48\xd0\x38\xbe\x97\xb4\x64\x93\ +\xad\x96\xd6\xf0\x74\x34\xf9\x6f\x0a\x0b\xf9\xfc\xb3\xb2\x92\x3c\ +\x23\x95\xd6\xeb\x82\xb4\x5e\x3f\xc7\xb6\xda\x95\x21\xf8\x6a\x78\ +\x76\x71\x7c\xfa\xdf\x94\x17\xe3\xf5\x39\x12\xdb\x65\x12\x83\xb4\ +\x80\xb0\x80\xb9\x51\xb4\xb1\x9d\xfd\x8c\x5f\x29\x54\xbc\xde\xcb\ +\x1f\x63\xfc\x6c\x30\x51\xe5\x79\x84\x3f\x66\x39\xae\xf8\x9c\x8a\ +\x12\xc2\x50\x26\x4c\x29\x0b\x74\x37\xce\x02\xdd\x3d\x1a\xbb\x25\ +\x46\xd6\x89\xfb\x6b\xd1\xad\x22\x6e\xde\x2c\xa0\xf8\xf1\x21\xb4\ +\x42\xb4\x0d\x17\x89\x94\x4c\x53\xd0\x9d\x52\x01\xed\xa4\x32\x6f\ +\xde\x06\xd1\x7c\x62\xdd\x28\x91\x59\xdb\xd9\x6b\x7f\x0f\xc9\xf2\ +\x2c\x28\xac\x42\x29\xfd\x9c\x57\x85\xfa\x17\xc5\x3f\xb2\x9c\x50\ +\x5a\x13\xa5\x92\x00\xca\xa1\x82\x4d\xd6\x2a\x6d\x76\x5e\x8b\x71\ +\xe6\xcf\xd7\x37\xe3\xe1\x64\x32\x3a\xff\xa5\xaa\xc6\xd9\x46\xe2\ +\x5c\x7f\x1a\xbf\x05\xe5\xac\x43\xa3\xb6\xb7\x2f\x05\xc3\x6e\x6e\ +\xd8\x20\xcc\x94\xd2\x3d\x95\xf6\x5c\xec\x29\xed\xf9\x13\x91\xf6\ +\xed\xe1\xe9\xf0\x64\xa8\x94\x88\x7b\x8a\xd5\xa7\x0e\xd9\xc9\x06\ +\x42\xa8\x1e\x81\x0b\x48\xb6\x10\x0e\x3a\xca\xfc\xca\x20\x11\x84\ +\x96\xed\x26\x60\xea\x1d\xf6\xfb\x3f\x0d\xd7\x77\xc8\x03\xfa\x54\ +\xbb\x20\xa0\x26\x6f\x52\xb8\xa4\x78\x6d\x46\x05\x53\x62\x82\x9d\ +\xd4\xaa\x24\x1c\xa1\xe6\x59\x37\x44\x2d\x28\xbb\x05\x4e\x3a\x55\ +\x75\x82\x4a\x57\x12\x4c\x83\x50\x76\x2b\xd6\x70\x08\x78\x38\xe6\ +\x6c\xa0\x5b\x42\x1c\xf7\xd4\x67\x11\x27\x46\x67\xae\xf5\x37\xfb\ +\x2f\x8b\x4b\x44\xc1\x7d\xbc\x06\xff\xe0\xf9\x5a\x5b\x52\xbb\xc0\ +\x11\xd7\xe6\xf6\xfe\xfe\xfe\xd2\x05\xc4\x50\xb3\xac\xd6\xe2\x74\ +\xee\xab\x35\x67\xa7\x2b\x07\x15\x21\x8d\xa9\x62\x2c\xb1\x12\x4e\ +\x00\xa6\x9b\xd4\x52\x8a\xdd\x40\x15\x59\x05\xa9\xc8\x31\xec\xe7\ +\xf4\xb1\x52\xc4\x36\x84\x70\x9d\x79\x22\x0f\xa0\x42\x0c\x96\xcc\ +\x84\x3a\xb1\x9a\x9c\x52\xde\x1a\x7b\x65\x46\xc8\xed\xfd\x69\xeb\ +\xb0\x45\x5b\xe7\xa3\x2d\xe8\xa1\xed\xc8\x0d\x13\xb1\x89\xfe\x97\ +\x75\x67\xb1\xa7\xba\x16\x47\x36\x74\xe2\x7f\xff\xdf\x8f\xc3\xab\ +\xdf\x07\xfa\x11\xc0\xd1\x81\xa3\x4d\xe0\x1a\x1f\x47\x1b\x80\x1e\ +\x51\xaa\xef\xac\x48\xc3\xfa\x02\x82\xe0\xf5\xe8\xc3\xf1\x2f\x43\ +\xad\xaf\x19\x03\xfe\xa4\x01\x21\x72\x60\xf4\xb2\x89\x1f\xaf\xce\ +\xe8\x30\xfc\x15\x1f\xd3\x6d\x06\x3a\xc0\x36\x1c\x84\x21\x2c\xf5\ +\xe8\xc8\xf1\xe5\xe5\xd9\xef\xe2\xc8\xf9\xf0\xd3\xf5\x65\xba\x1e\ +\xfc\x68\xe0\x8f\x02\xd6\xeb\x0c\x01\xfd\xd9\xa0\xa5\x63\x61\xd2\ +\xd5\xf0\xc3\xc5\xaf\x02\x05\x0d\xf6\xa0\x6c\x22\x72\x26\x4d\xa4\ +\xc5\x55\x61\xe2\xbb\xe1\xe4\xe4\xbd\xc2\x57\x23\x7f\x28\x02\x7c\ +\x38\xfe\x8d\x32\x32\xbe\xbe\xba\xf8\x04\xb3\x07\xf0\x87\x32\x33\ +\x1e\xe4\x93\x4e\x47\xc7\x67\xd7\x9f\x46\xa7\x93\xf7\x38\x63\x7c\ +\xda\x18\x8f\xfe\x31\x84\xf1\x6c\x02\x56\x01\xe0\x1d\x23\x07\xc6\ +\x1b\x9d\x1c\x10\xcc\x29\x88\xc8\x39\xe8\xee\x64\x66\xf9\x53\x82\ +\xe3\xb7\x96\x17\x13\x0e\x7b\xbb\xf0\x6d\x4c\x45\x1a\x89\x6d\x2b\ +\x24\xb4\x31\x33\xe9\x7e\x4f\x8d\x5b\x31\xb5\x4d\xda\xaf\xf5\xd9\ +\x5f\xa8\xef\xc0\x25\x6c\x62\xb6\xf4\xd6\xb4\xae\x19\x3f\xfe\x7b\ +\x11\x24\x3d\x83\x67\xc0\x8a\xe9\x06\x9b\x6e\x41\xfa\x93\xa6\x47\ +\x24\x59\x44\x3e\x9b\xcd\x9e\x3e\x29\xc4\x2d\xfc\xe7\x90\xc7\x08\ +\xa3\x8b\xea\x6b\x90\xc7\x08\xa3\xd3\xff\x69\x6c\x46\x1f\xa3\xee\ +\x23\x54\x05\x50\x19\x88\x94\xc1\x4f\x58\x08\xfe\xab\x0a\x4d\xc4\ +\x5f\x32\xc9\x28\x4c\xe2\x44\xc0\xac\x72\x12\x02\xff\x8a\xcc\xa1\ +\x26\x3c\xf1\x5c\xfb\xab\x09\x41\x48\x24\x23\xa2\x43\x10\x39\xcd\ +\x1f\xe8\x50\x93\x66\x60\x33\xdd\xf6\x2a\xe2\x1a\x82\x39\xfd\x0f\ +\x79\xbc\x8c\x48\x1c\x9b\x92\xac\xdd\x5b\xcd\x24\xcd\xaf\xe4\xf1\ +\x24\x70\x40\x88\x7d\xad\xb3\x23\x0e\xe3\x07\x56\x40\x78\xe2\x98\ +\x02\xfd\x02\x0f\xdc\xfe\xd2\xa7\x4f\xd9\x37\x02\xcf\x8b\x0b\x74\ +\x7f\x56\x17\xf8\xc1\x34\xb6\x6f\x2d\x87\x5c\xb0\x12\xd8\xa8\x41\ +\x3f\x8b\x5c\x6f\xb8\x5c\xaa\xd7\x68\xb1\x44\xad\x81\xff\x8e\x24\ +\xf6\x8c\x5a\x1d\x93\xab\x3d\x23\xf6\x57\x45\xb8\xe8\x66\x3c\x4d\ +\x8c\x31\x58\xe7\x4b\xa5\xb3\x9b\xf4\x0b\xf8\xde\xdf\xa4\x89\x18\ +\x1a\xd8\x0e\x84\xa1\x1d\x14\x46\xee\xdc\xd8\x85\x2a\xd9\xc8\xd1\ +\x21\xdb\xd4\x08\xcf\x20\x13\x21\xd3\xa0\x9b\x6f\x6c\x9e\xeb\x41\ +\x85\x55\xc0\xf2\xb4\x44\xbf\xb0\x28\x41\x0d\xa1\x41\x88\x9c\x14\ +\xe5\x4a\x7f\x2d\x12\x53\x8f\xbd\xe0\x5e\xaf\x67\x28\x10\xec\x07\ +\x53\x17\x67\xeb\xb5\x26\x33\x33\x50\xc3\xb2\x85\xc9\xdc\x4d\xe3\ +\x90\x19\x42\xdf\x14\xd7\xe8\xb8\x60\x5d\x25\xe1\x2a\xd7\x0f\xb5\ +\x91\x07\xc8\xe1\xbe\xe5\x35\xe3\x90\x10\xe7\xd4\x85\x6f\xb6\x84\ +\xb1\xca\xa4\x4b\x9d\x43\x0c\x9d\xb2\x7b\xf4\x24\x1d\xc3\xc8\x47\ +\xea\xa9\x7c\x92\x3d\x73\x3d\x07\xca\x5c\xd3\xb0\x50\x52\x6e\x14\ +\x27\x66\xad\x69\x25\x49\x64\x1a\xb8\x33\x6e\x14\xe1\x27\x3c\xf2\ +\x88\xd1\xac\x80\x0d\x8b\x1a\x01\x21\xe6\xdd\xcc\x53\xa9\x8c\xc0\ +\x41\x52\x5a\xc0\x3d\x20\x4a\xa8\xde\xc7\xc8\x34\xf0\x24\xe0\xa0\ +\xd5\x32\x78\xa8\xe7\x1a\xc6\xcd\x66\x40\x6f\x85\x21\xf1\x1d\xd3\ +\x38\x74\xdc\x3b\xcd\x75\xfa\xba\xa8\x4a\x8d\x56\x1d\x7d\x3d\x2d\ +\xdd\xdb\xcd\x37\xbd\xb4\x12\xa2\xad\x7e\xd6\xc1\xdc\xba\x0f\xc4\ +\xe9\xd1\x6a\xbc\xdd\x33\xb4\x57\x12\x29\xd2\xc7\xc0\x3a\xa8\xdd\ +\x13\xb6\xfb\x78\x29\x48\xbf\xa7\x4d\xc1\x1b\xf8\xf4\x84\x76\x85\ +\xef\xe3\xf7\xf4\xa3\x6a\xe4\x19\x1b\x62\x5b\xac\x83\xda\x21\x90\ +\x84\x18\xc5\xfa\x3a\x77\x77\x35\xb8\xdd\x41\x55\x58\x5b\x89\x1e\ +\x3b\x77\x5a\x2b\xc1\xbc\xa2\x01\xc0\x68\xc1\x04\x60\xb6\x51\x83\ +\xc9\x86\x7e\xa4\xad\x40\x9e\xd0\x76\xd8\xf6\x2c\x24\x33\xeb\x8f\ +\xa1\x14\x4b\x22\xf8\xd7\x41\xda\x68\xed\x04\xc8\x0e\xb4\xc3\x16\ +\x3c\xe1\x4f\x2b\x29\xa6\xc5\xb9\xd0\x5d\x33\x2d\x03\x76\x30\x0f\ +\x1d\x2c\xd2\x5b\x10\xc6\x0e\xb7\x18\x4a\x2a\xc3\xde\x82\x85\x57\ +\xd1\x1c\x51\x7c\x59\x3c\xd2\x33\x4a\x59\xd9\xf3\x9d\x68\xa5\x3e\ +\xa2\x52\xcb\xdc\x68\x53\x7a\x29\x21\x19\x45\xd2\x9a\x69\xa0\xe6\ +\xeb\x66\x41\x1f\x0d\x88\xa6\x16\xb0\xab\x42\x2e\x48\x66\x6e\xbc\ +\xda\x70\x58\x2b\x0a\xac\x48\x78\x8f\x34\x2d\x13\x95\x58\x2c\x02\ +\x4f\x20\x34\x0a\xb3\x3e\x6b\x2d\x6a\x3f\x47\x87\x61\x6a\x42\x59\ +\x23\xb2\xda\xac\x05\x21\x30\xa8\x4c\xd6\xda\x80\xed\x4a\x6b\x28\ +\x84\x13\x26\x04\x29\x71\xac\xf6\xc9\x2a\xec\x4c\x00\xb4\x3c\x47\ +\xa6\x35\x71\x19\xa1\x80\x40\x0d\x87\x2b\x05\x00\xce\x7f\xc4\xfe\ +\x8b\x41\xb7\x22\x9f\xb1\x94\x79\xeb\x7a\x90\x44\x30\x5d\x1a\x96\ +\x17\xce\x2c\x93\xc7\xb9\xfe\x9b\x76\xcd\x78\x62\x59\x6f\xe4\x8b\ +\xf1\x7f\x59\xc5\x21\xe6\x43\x49\x38\x4f\x0a\xb0\x18\x96\x8a\xd0\ +\x2c\x08\x69\xdf\x34\xfa\xa5\x89\xe7\x93\x97\x11\x10\x35\xb5\x18\ +\xf2\x9e\xa6\xe2\xe3\x7e\x8c\x51\x27\xb0\x17\xb1\xb9\x34\xed\x5d\ +\xd1\xcd\xd8\xd2\xc4\x87\x49\x69\xf1\x67\x32\x1a\x06\xc5\x12\x60\ +\x29\x1a\x0a\xea\xc0\xc4\xb5\x58\x92\xb5\x58\x70\x96\x74\x07\x68\ +\xc4\x58\x5a\x97\xfb\xcc\x5a\x65\x49\x80\x3c\x4f\x66\x8b\xf9\x8d\ +\x6f\xb9\xb4\x28\xaf\xb3\x32\x70\x89\x98\x04\x83\x53\x4b\xdd\xbc\ +\x38\xc0\xc6\x6a\x05\xd1\x25\x94\xc0\xda\xef\xa2\x60\xfe\x31\x26\ +\xd1\x08\xdd\xc1\x94\xb5\x47\xf9\xd3\xa9\x53\xe8\x35\xa1\xbe\xf2\ +\xc9\xfd\x47\xb9\x95\x48\x85\x8e\xfb\x0b\x7d\xcd\x01\xad\xcf\xd1\ +\x56\xa6\x24\x19\x7a\x04\xbf\xbe\x7d\x1c\x41\x3e\xcf\xce\x0a\x01\ +\x79\x3e\x16\xbf\x7d\x9c\x58\xd3\x73\x6b\x4e\x4c\x03\xdc\xc4\xa8\ +\x7d\xce\x18\xfb\xd2\x2b\x2c\x61\xc1\x02\x58\xb6\x96\xc3\x83\x6d\ +\x7c\x6e\x97\x40\x05\x91\x3b\x75\x81\x79\x56\x7d\x58\x08\x7d\x0c\ +\xdc\xb9\xe0\xf9\xa4\x68\x3f\xf8\x89\x09\x3a\x0b\xb6\x4d\x19\x35\ +\x75\x8d\x73\x5e\x36\x93\x15\x4c\xc2\xdc\x54\x96\x74\x40\x95\x66\ +\xad\x48\x22\xaf\x14\xd7\xa7\x10\x81\xf2\xb0\x7d\xc2\xcb\xf8\x0a\ +\xf1\xe7\x93\xd1\xcb\xd9\x7c\x19\x65\x01\x3f\x2d\x5b\x91\x1e\xcf\ +\xbb\xc4\xaf\x66\x6d\xf9\x7c\x34\xc9\x22\x3d\x7f\xfc\xa1\x99\xa2\ +\xf4\x5f\xf4\x45\x4e\x7f\xfc\x51\xfc\xf5\x82\x39\x9f\xa6\x9a\x56\ +\x4a\x0d\xf3\xe9\xe5\xda\xa7\xce\x5d\xd0\x3f\xa5\x6d\x3e\xc5\x8d\ +\x78\x41\xa2\xe5\x6e\x5b\x00\xdc\xac\xed\x28\x4d\x04\x15\xbd\x48\ +\x61\xfe\x53\xc9\x33\xfc\xac\x0c\x23\xe5\x06\x53\x2f\x1a\xc8\xfa\ +\x0b\x30\x2a\x47\x78\x86\xf4\x2e\x88\xd0\x13\xca\x17\x51\x30\x3e\ +\xb1\x56\xb9\x28\x0b\x39\x41\xcb\x30\xd2\xaf\x62\x27\x26\x74\xc8\ +\x4b\xa2\x64\x6e\xa0\xc5\x24\x12\xd3\x44\x60\x58\x9f\xd3\x12\x84\ +\xfa\xb5\xfe\x45\x4d\x19\xb4\x5e\xe4\x93\xb1\xd1\x11\xe6\xb3\xca\ +\xa8\x00\x41\xbd\x19\x00\x74\x5d\xca\x80\xd9\xdd\x03\x30\x17\x62\ +\xd9\xb3\x3c\x99\xba\x65\x51\x33\xcd\x73\xb4\x68\xdb\x28\xd1\x49\ +\x94\x97\xe2\x58\xc6\x87\xd2\xc2\x15\x51\xa6\xf9\x53\x45\xb8\xb4\ +\x9d\x50\x51\xa0\x64\x5e\x81\x3f\x03\x77\x07\xb4\x38\x56\x36\xa2\ +\xb0\x44\xfe\x83\x12\x2e\x0e\x4b\xbb\x68\x74\x0a\x2c\xa8\xc2\x63\ +\xf6\xa5\x83\x3d\x43\xb6\x0c\x75\xfb\x84\x52\xb1\xc4\x60\x1c\x07\ +\x0d\x91\xa6\x5f\xba\x5c\x1d\x59\xbe\x8e\x83\x45\x64\x93\xe2\x16\ +\xca\x9d\x18\x58\xed\x88\x58\x09\xe1\x01\x88\x27\xad\x9c\x10\xd4\ +\xbe\x1c\x6b\xa8\xfc\x21\xda\x18\xdc\x28\xca\x2a\x95\x65\xc8\xa9\ +\xbc\x85\x06\x7b\x49\x20\x13\x68\x97\xb1\x5b\x15\xb8\x2d\x11\xb3\ +\xa5\xe0\xa5\xb6\x56\x47\xe3\xac\x98\x94\x71\xc6\x7c\x4a\x65\x0d\ +\xad\xaf\x53\x41\x00\xdb\x4e\xc8\x61\xe8\xfc\x8a\x25\x78\xf2\x52\ +\x01\x5c\xdf\x27\xd1\x04\x0c\x19\xb7\x2a\x4b\xb6\x63\x8b\x44\x75\ +\x37\x24\xaa\xbb\x54\xa3\xb4\x66\xae\x9e\xcc\x7b\x07\x9c\x2e\x6e\ +\xf5\xb0\x73\xc8\xf3\xc0\x21\xb5\x55\x18\x28\x1b\x00\x9f\x9f\x1b\ +\x94\xf0\xb4\xb3\x21\x4f\x3b\xcb\x78\xa2\x17\x70\x56\xcd\x96\x98\ +\x12\xb7\x77\x2b\xd8\x52\x71\xc8\x6c\xb1\x83\x8d\x12\xc6\x76\x37\ +\x64\x6c\x77\x19\x63\xec\xf2\xc7\xaa\xe9\x0a\x67\x79\x8b\x52\xc1\ +\x99\x8a\x43\xe5\x0c\xeb\x0c\x31\x3e\x61\x8c\x60\xbb\x5c\x27\x18\ +\x59\x69\x44\xeb\x3d\x73\xd4\xaa\x18\xa3\xfe\xb1\x62\xbc\xbb\x62\ +\x7c\x67\xc5\xf8\xae\xc4\xd8\x92\xe2\x53\xcf\x6a\x7f\xbd\x26\x61\ +\x00\x8c\x6a\x1f\x96\xc7\x32\x6c\x6c\xe4\x12\x4d\x49\x9f\x9b\xb7\ +\x57\xf8\x79\x2a\x24\x0a\xa0\xa2\x3c\x4d\xb0\xe2\x9e\x16\x41\xa6\ +\xeb\x54\xe5\x88\xef\xd4\xfb\xb8\x62\xd3\xc3\xb7\x53\x69\x57\xba\ +\xf0\x1d\x72\xeb\xfa\x50\xc1\x55\xf7\x79\xcf\x2b\x94\x57\xe7\x15\ +\x4c\xb8\x7f\xc3\x3c\x0c\x4d\x90\x76\x0a\x3e\xb8\xf4\x88\x06\xf0\ +\xd0\xe8\x3b\x09\x78\xb2\xe7\x19\x56\x95\x98\xad\x9e\xfa\x29\xe2\ +\xa4\xb5\xd8\x9f\x15\x68\x8e\x15\x9a\x31\xb0\x2d\x40\xd9\xee\x69\ +\xae\x76\xc8\x56\x68\x7a\xc4\x9f\x26\xb3\x9e\xf6\xea\x55\x69\x6d\ +\xc6\xb4\x4a\xa7\x7e\x76\xbf\x28\x0d\xc2\x1a\xea\xc1\x0f\x5e\x1b\ +\x71\xfd\x05\x51\xa0\xa5\x7d\xfb\x55\x2d\xed\x1a\xfd\x60\xba\x85\ +\xf1\xa2\xcf\xd1\x6e\x44\x09\xbd\xae\x50\x45\x07\x8b\xb4\x85\xee\ +\x0a\x57\xa5\x37\xeb\xf2\x24\xfc\xa2\x5f\xd4\x77\x46\xc1\x92\xa3\ +\x93\xf4\xa3\xa0\xea\x8b\x27\x9b\xe9\xe7\xa9\xcc\x91\xc5\xa6\x21\ +\x6f\x06\x96\x5b\x28\x75\x69\xc1\x42\x97\x3b\xb6\xc5\x85\x91\x76\ +\x11\xec\xcd\x02\xf4\x84\x05\xdf\x99\x96\xfa\x82\x1f\xcc\x14\x40\ +\x2d\xfe\x97\xdb\x57\x5a\x66\xb3\x0c\xb3\xa4\x1c\x17\xc9\x90\x77\ +\xb5\x74\x18\xd5\x85\x5d\x2d\x55\x3f\x74\xbf\x2a\x23\x0a\x2f\xe8\ +\x03\x2d\x60\xb3\xed\xa2\x85\x14\xc2\x09\x63\x49\x84\x17\xb7\xbd\ +\x4a\xcb\xce\x65\x3d\x5a\xbe\xa5\x82\x91\x54\x39\x8d\xfe\xab\x85\ +\xd0\xcd\xf6\x99\x56\x16\xcf\xe5\xb2\x60\x45\x2a\x4a\xa3\x34\x40\ +\xfe\x95\xe4\xf1\x9c\xf8\x50\xe5\xcc\xaa\x40\xf2\x6b\x00\xae\xa3\ +\x6e\x74\x42\xd8\x02\xdb\x9e\x9b\x3a\xbf\xac\xf2\xe9\xf8\xea\x7c\ +\xa0\xd7\x6a\x7f\x59\x61\x2d\xbe\x47\x4c\x5f\xab\x94\x62\x62\x63\ +\xa5\x14\x06\x05\xc1\x24\xf1\xba\x16\x86\x41\x69\x9f\x7b\xad\x7d\ +\x1e\xa9\xe7\xdb\x28\xb0\x0a\x8b\xca\x67\xf7\xf8\x16\x98\x78\xb2\ +\xcb\xae\x8e\xc9\xaf\x9d\x7c\x86\x98\xf2\x53\x5f\x6f\x86\xfe\x54\ +\xff\xf2\x8d\x9f\xc0\xd2\x8b\xa2\xec\x60\xd6\x78\x95\x5f\x35\x7a\ +\x65\x84\x0f\x4f\xe9\x0d\x34\x39\xfc\x1a\x65\xef\xd9\x64\xe7\x2b\ +\x14\x15\x1e\xaf\x08\xd7\x96\x20\x86\x87\x0f\x46\xbd\x74\x63\xac\ +\xe4\x63\x30\xd2\x10\xc9\x07\x2b\x99\x35\xe9\x69\xb0\x29\xe0\x6b\ +\x69\x9d\xe6\xde\x6e\x8d\xe3\x95\x36\x26\xd0\x3a\x28\x09\x34\x8c\ +\xdf\xbb\xbe\x13\xdc\xd7\x9a\xf4\x89\x7a\xa6\xcf\x56\x91\xe6\xb1\ +\x47\x25\x87\xff\x9f\x38\x4a\x4a\xcf\xad\x17\x04\x91\x29\xf1\xb7\ +\xd3\x2e\xc2\xbc\x4f\xf1\x0b\x40\xab\xf8\xd9\x6d\xab\xcc\xcc\xad\ +\x87\xb7\xbc\x54\x13\xf0\x30\x16\x5b\x19\x69\xca\x15\x81\x0c\xe8\ +\x48\xbe\x62\x56\x93\xd0\x89\x23\x4b\xe0\x0f\xb5\x8e\x04\xd3\x29\ +\x52\x97\x4a\x3b\x9b\xf5\x53\x46\x95\x68\x35\xfa\xb6\xe8\x56\x68\ +\x2b\xdc\x54\xea\x39\x12\xa6\x4f\x55\x02\xb4\x38\x3c\x01\x99\x31\ +\x5d\x29\x88\xb2\x1c\x0d\xa6\xa8\xa7\xc9\x57\xd6\x05\x5e\x18\x4d\ +\xc5\x67\x13\x68\x5a\x04\x8c\xad\x8c\x6e\x05\x88\xdd\xd5\x4c\x82\ +\x10\x20\x4d\x6e\x2a\x0d\x86\xea\xa7\x5c\xbb\x35\x40\xd0\x55\xda\ +\xab\x1c\xf2\x10\x2a\x00\x09\x51\x5b\x3a\xe4\x2a\x11\x49\x7e\x6d\ +\x94\xca\x25\x85\xcc\x04\x83\x80\x78\xeb\x1d\xff\xe6\xb9\xce\xba\ +\x23\x63\x7e\x43\x56\x8a\x0b\xea\xf5\x42\xf4\xdd\xcb\xe9\xc8\xbf\ +\x0a\xee\xc1\x5f\xef\x2c\x4f\x94\x94\x74\xcd\x30\xc4\x37\x43\x47\ +\x3e\x3b\xb1\x1a\x3b\x63\x90\x6a\x0a\xb1\x22\xda\x41\xe2\xa5\x21\ +\x8c\xae\x62\xca\xd6\x57\x79\x6c\x07\x80\x6c\x21\xc1\x33\xc4\xb5\ +\xa4\x78\x5b\x2e\x07\x0a\x3e\x09\xa6\x53\x8f\x14\xf6\xa9\xe9\x79\ +\x4c\x55\x02\x1b\x0b\xd0\xea\x3e\x1b\x1b\x5b\x0d\x5d\x0e\x37\xf6\ +\xaa\x20\x63\xcf\x75\x48\xf4\x2b\xee\xa4\x8e\xa5\xbd\x93\xec\x0b\ +\xc3\xd2\x74\xdc\x18\xcf\xfa\xb1\xb6\x67\x77\xd1\x84\xab\x65\xb4\ +\xc1\x83\x78\x89\x45\xbf\x80\x82\x43\xa6\xdb\xe8\x05\x30\x69\xfc\ +\x40\xeb\xee\x74\x0a\xc0\x63\x8f\x55\x18\xef\x27\x1f\xce\xca\x50\ +\x08\x66\x23\x22\x00\xe5\x08\x97\x89\x5b\xec\x25\xe5\xad\x43\xbc\ +\x80\xc4\x2e\x0f\x67\x97\x76\x72\x1f\xe0\xc7\xf8\x6c\xd8\xca\xaf\ +\x04\x28\x67\x44\xdd\xcd\xcf\xf2\xcb\x30\x14\xce\xf0\xb3\x2e\x21\ +\x3d\x81\x32\xf0\x04\xca\x60\x07\xf0\x88\x41\xb8\x85\xfe\xcc\x63\ +\x7c\x9d\x55\x68\x7d\x7d\x90\xbe\x3c\xc2\xdf\xb3\xd6\xd3\xeb\x1b\ +\xb8\x06\x0a\xc2\x2a\x8a\x41\xdc\xdb\xe4\xbb\xeb\x06\x44\x89\xf4\ +\x32\x34\xbd\x33\x0a\xcb\x88\x7e\x92\xaf\x77\x7c\x7a\xaa\x2e\x05\ +\x38\xf8\x4a\x6c\xa9\x35\x6e\x7c\x67\xae\xe6\xfa\x6e\x62\xaa\x17\ +\xf8\x06\xa3\xf3\xd1\x04\xcc\xa1\x31\x3e\xb9\x1a\x5d\x4e\x06\x95\ +\x71\x82\x1e\x3c\xf1\xba\x07\x5f\xfc\xf0\x89\x9d\x2c\x6f\xe5\xe8\ +\xb6\x95\x7a\x3f\xb0\xac\xff\xad\xb8\xf3\xac\x4e\x4d\x2b\x4b\xf1\ +\x99\x7c\x50\xc6\xca\x82\xa6\x17\xd8\x54\x89\xfc\xe5\x36\x53\x69\ +\xc5\xaa\xb8\x4c\xd2\x8d\xb2\x33\x00\x14\x18\x95\x1a\xe4\xea\xb8\ +\x88\x82\xa2\x7d\x4c\x11\x45\xbe\x0b\x54\x19\x28\xf1\x93\xd7\x38\ +\x11\xa1\x39\x52\xb2\x7c\x11\x44\xb9\x6e\xc2\xf3\x2a\x0f\x3e\x63\ +\xfa\xfe\x15\x33\xe8\xa5\x99\x2c\x0e\x22\x7a\x2b\xc9\x94\xd5\x13\ +\x81\x67\x44\x09\x8b\x51\x72\x2d\x98\xbe\x39\x65\x60\xa1\xac\xd4\ +\x89\xb8\xa5\x62\xb9\x3e\xc6\x4b\x98\x90\x46\x51\x65\x52\xf6\x9a\ +\x51\xbb\xb9\x2f\x8f\x00\xdd\x89\xe5\xdb\xe4\x00\x4a\x2b\x79\x64\ +\x11\x3a\x56\x02\xcf\x65\x0f\x86\x9e\xb2\xb0\x4f\x45\x15\x53\x55\ +\xa5\x67\xd6\x50\xd2\xa2\xa7\x4f\xe8\x97\x56\x4b\x1b\x81\xe7\x80\ +\x98\x40\x05\xf4\x09\x1a\x36\x37\xb3\x54\xf7\x52\x77\x46\xfd\x8c\ +\xe3\x52\x0f\x7e\xb3\x94\x02\x9e\x3c\x44\xe2\xcf\x80\x59\x02\xb1\ +\xda\x34\xae\x49\xe4\xda\xd7\x29\xc6\x6b\xb6\xa9\xef\xe0\x86\x02\ +\x20\x94\x68\xcb\xa3\x34\xfd\x55\x72\x23\xb4\xfb\xdc\x2b\xa1\x6b\ +\x5d\xfa\x84\x1f\xe5\x77\x3e\x39\x9b\x19\x45\x42\xf4\xcd\x06\xf9\ +\x30\x0f\x68\xf4\x35\x2d\x61\x0c\x46\x85\x1b\x78\xbc\xf0\xd1\x8f\ +\x06\x93\xdf\x26\xd7\xe7\x57\x50\x90\x8c\x07\xe9\x7d\xbb\x1c\x5f\ +\x9e\x82\x54\xf4\xec\xbd\x23\x19\x3f\xed\xda\x29\x75\x79\x16\xbf\ +\x9c\xc2\x1a\xf9\x8b\x1c\x20\x60\x98\x24\x41\xb1\xbb\x71\x08\x96\ +\x12\xc5\xa3\x6e\x84\x06\xa6\xe3\xbb\x7e\x7d\x1d\xc4\x0e\xa5\x69\ +\x5f\xdf\xcf\xee\xcd\x09\x48\x51\x25\x24\xec\xeb\x1d\x7a\x4b\x91\ +\xda\x25\xcb\x93\x12\x1d\x90\xa5\xf0\xff\xf4\x41\xd3\x1a\x4b\xf2\ +\x98\x12\x5a\x6b\x71\x5b\x22\xcc\xf2\x5b\x93\x3e\x74\xdc\xc0\xbf\ +\x83\x51\x85\x5f\xde\x14\x4b\x29\x91\x40\xb9\x40\x43\x4a\x7e\xf4\ +\x6f\xe2\xb0\x27\xaa\x49\x82\x65\xba\x1a\x9f\xd2\x37\x5e\xfe\x3f\ +\x74\x35\x86\x14\x98\xbd\x52\x53\xa9\x29\x46\x57\x99\xa2\x3a\xbb\ +\x7b\x5c\x55\x3b\xaf\xdb\xb9\xb2\x52\xac\xeb\xa8\x0a\x0b\xbf\xe7\ +\xab\x8a\xbf\x36\x29\x73\x5b\x76\x21\x54\x0a\x56\x9b\xde\xff\x2c\ +\xa9\xa1\xd4\x42\x49\x22\x78\xe5\x1a\x50\x30\xb0\x37\xbb\x34\xe9\ +\x02\xa8\xdc\xcd\x94\x95\x6e\x85\x65\xa5\x55\xf1\xce\x68\xb9\xd4\ +\xc4\xf2\x92\x7d\x3d\x6c\xb1\x82\xf4\xb0\xc5\xfe\x67\x3a\xff\x07\ +\x61\x00\xb8\x0c\ " qt_resource_name = b"\ @@ -285,11 +575,17 @@ \x0b\xe9\x1d\x9c\ \x00\x61\ \x00\x64\x00\x62\x00\x6c\x00\x6f\x00\x63\x00\x6b\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\x00\x6c\ +\x00\x12\ +\x06\x3e\x39\x5c\ +\x00\x73\ +\x00\x70\x00\x65\x00\x65\x00\x64\x00\x64\x00\x69\x00\x61\x00\x6c\x00\x50\x00\x61\x00\x67\x00\x65\x00\x2e\x00\x68\x00\x74\x00\x6d\ +\x00\x6c\ " qt_resource_struct = b"\ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x02\ +\x00\x00\x00\x56\x00\x01\x00\x00\x00\x01\x00\x00\x10\x0b\ \x00\x00\x00\x0e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ \x00\x00\x00\x30\x00\x00\x00\x00\x00\x01\x00\x00\x0c\x8b\ "
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebBrowser/data/qml.qrc Fri Mar 18 20:05:12 2016 +0100 @@ -0,0 +1,6 @@ +<!DOCTYPE RCC> +<RCC version="1.0"> +<qresource> + <file>qml/thumbnailer.qml</file> +</qresource> +</RCC>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebBrowser/data/qml/thumbnailer.qml Fri Mar 18 20:05:12 2016 +0100 @@ -0,0 +1,15 @@ +import QtQuick 2.2 +import QtWebEngine 1.0 + +WebEngineView { + width: 1920 + height: 1080 + + onLoadingChanged: { + if (loadRequest.status == WebEngineView.LoadStartedStatus) + return; + + var ok = loadRequest.status == WebEngineView.LoadSucceededStatus; + thumbnailer.createThumbnail(ok); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebBrowser/data/qml_rc.py Fri Mar 18 20:05:12 2016 +0100 @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt5 (Qt v5.4.1) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x01\x48\ +\x69\ +\x6d\x70\x6f\x72\x74\x20\x51\x74\x51\x75\x69\x63\x6b\x20\x32\x2e\ +\x32\x0a\x69\x6d\x70\x6f\x72\x74\x20\x51\x74\x57\x65\x62\x45\x6e\ +\x67\x69\x6e\x65\x20\x31\x2e\x30\x0a\x0a\x57\x65\x62\x45\x6e\x67\ +\x69\x6e\x65\x56\x69\x65\x77\x20\x7b\x0a\x20\x20\x20\x20\x77\x69\ +\x64\x74\x68\x3a\x20\x31\x39\x32\x30\x0a\x20\x20\x20\x20\x68\x65\ +\x69\x67\x68\x74\x3a\x20\x31\x30\x38\x30\x0a\x0a\x20\x20\x20\x20\ +\x6f\x6e\x4c\x6f\x61\x64\x69\x6e\x67\x43\x68\x61\x6e\x67\x65\x64\ +\x3a\x20\x7b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\ +\x6c\x6f\x61\x64\x52\x65\x71\x75\x65\x73\x74\x2e\x73\x74\x61\x74\ +\x75\x73\x20\x3d\x3d\x20\x57\x65\x62\x45\x6e\x67\x69\x6e\x65\x56\ +\x69\x65\x77\x2e\x4c\x6f\x61\x64\x53\x74\x61\x72\x74\x65\x64\x53\ +\x74\x61\x74\x75\x73\x29\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\ +\x20\x20\x20\x72\x65\x74\x75\x72\x6e\x3b\x0a\x0a\x20\x20\x20\x20\ +\x20\x20\x20\x20\x76\x61\x72\x20\x6f\x6b\x20\x3d\x20\x6c\x6f\x61\ +\x64\x52\x65\x71\x75\x65\x73\x74\x2e\x73\x74\x61\x74\x75\x73\x20\ +\x3d\x3d\x20\x57\x65\x62\x45\x6e\x67\x69\x6e\x65\x56\x69\x65\x77\ +\x2e\x4c\x6f\x61\x64\x53\x75\x63\x63\x65\x65\x64\x65\x64\x53\x74\ +\x61\x74\x75\x73\x3b\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\ +\x75\x6d\x62\x6e\x61\x69\x6c\x65\x72\x2e\x63\x72\x65\x61\x74\x65\ +\x54\x68\x75\x6d\x62\x6e\x61\x69\x6c\x28\x6f\x6b\x29\x3b\x0a\x20\ +\x20\x20\x20\x7d\x0a\x7d\x0a\ +" + +qt_resource_name = b"\ +\x00\x03\ +\x00\x00\x78\x3c\ +\x00\x71\ +\x00\x6d\x00\x6c\ +\x00\x0f\ +\x0a\xb6\x34\x5c\ +\x00\x74\ +\x00\x68\x00\x75\x00\x6d\x00\x62\x00\x6e\x00\x61\x00\x69\x00\x6c\x00\x65\x00\x72\x00\x2e\x00\x71\x00\x6d\x00\x6c\ +" + +qt_resource_struct = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +" + +def qInitResources(): + QtCore.qRegisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources()
--- a/eric6.e4p Thu Mar 17 20:22:20 2016 +0100 +++ b/eric6.e4p Fri Mar 18 20:05:12 2016 +0100 @@ -26,54 +26,6 @@ <Source>DataViews/PyCoverageDialog.py</Source> <Source>DataViews/PyProfileDialog.py</Source> <Source>DataViews/__init__.py</Source> - <Source>DebugClients/Python/AsyncFile.py</Source> - <Source>DebugClients/Python/AsyncIO.py</Source> - <Source>DebugClients/Python/DCTestResult.py</Source> - <Source>DebugClients/Python/DebugBase.py</Source> - <Source>DebugClients/Python/DebugClient.py</Source> - <Source>DebugClients/Python/DebugClientBase.py</Source> - <Source>DebugClients/Python/DebugClientCapabilities.py</Source> - <Source>DebugClients/Python/DebugClientThreads.py</Source> - <Source>DebugClients/Python/DebugConfig.py</Source> - <Source>DebugClients/Python/DebugProtocol.py</Source> - <Source>DebugClients/Python/DebugThread.py</Source> - <Source>DebugClients/Python/FlexCompleter.py</Source> - <Source>DebugClients/Python/PyProfile.py</Source> - <Source>DebugClients/Python/__init__.py</Source> - <Source>DebugClients/Python/coverage/__init__.py</Source> - <Source>DebugClients/Python/coverage/__main__.py</Source> - <Source>DebugClients/Python/coverage/annotate.py</Source> - <Source>DebugClients/Python/coverage/backunittest.py</Source> - <Source>DebugClients/Python/coverage/backward.py</Source> - <Source>DebugClients/Python/coverage/bytecode.py</Source> - <Source>DebugClients/Python/coverage/cmdline.py</Source> - <Source>DebugClients/Python/coverage/collector.py</Source> - <Source>DebugClients/Python/coverage/config.py</Source> - <Source>DebugClients/Python/coverage/control.py</Source> - <Source>DebugClients/Python/coverage/data.py</Source> - <Source>DebugClients/Python/coverage/debug.py</Source> - <Source>DebugClients/Python/coverage/env.py</Source> - <Source>DebugClients/Python/coverage/execfile.py</Source> - <Source>DebugClients/Python/coverage/files.py</Source> - <Source>DebugClients/Python/coverage/html.py</Source> - <Source>DebugClients/Python/coverage/misc.py</Source> - <Source>DebugClients/Python/coverage/monkey.py</Source> - <Source>DebugClients/Python/coverage/parser.py</Source> - <Source>DebugClients/Python/coverage/phystokens.py</Source> - <Source>DebugClients/Python/coverage/pickle2json.py</Source> - <Source>DebugClients/Python/coverage/plugin.py</Source> - <Source>DebugClients/Python/coverage/plugin_support.py</Source> - <Source>DebugClients/Python/coverage/python.py</Source> - <Source>DebugClients/Python/coverage/pytracer.py</Source> - <Source>DebugClients/Python/coverage/report.py</Source> - <Source>DebugClients/Python/coverage/results.py</Source> - <Source>DebugClients/Python/coverage/summary.py</Source> - <Source>DebugClients/Python/coverage/templite.py</Source> - <Source>DebugClients/Python/coverage/test_helpers.py</Source> - <Source>DebugClients/Python/coverage/version.py</Source> - <Source>DebugClients/Python/coverage/xmlreport.py</Source> - <Source>DebugClients/Python/eric6dbgstub.py</Source> - <Source>DebugClients/Python/getpass.py</Source> <Source>DebugClients/Python3/AsyncFile.py</Source> <Source>DebugClients/Python3/AsyncIO.py</Source> <Source>DebugClients/Python3/DCTestResult.py</Source> @@ -123,6 +75,54 @@ <Source>DebugClients/Python3/coverage/xmlreport.py</Source> <Source>DebugClients/Python3/eric6dbgstub.py</Source> <Source>DebugClients/Python3/getpass.py</Source> + <Source>DebugClients/Python/AsyncFile.py</Source> + <Source>DebugClients/Python/AsyncIO.py</Source> + <Source>DebugClients/Python/DCTestResult.py</Source> + <Source>DebugClients/Python/DebugBase.py</Source> + <Source>DebugClients/Python/DebugClient.py</Source> + <Source>DebugClients/Python/DebugClientBase.py</Source> + <Source>DebugClients/Python/DebugClientCapabilities.py</Source> + <Source>DebugClients/Python/DebugClientThreads.py</Source> + <Source>DebugClients/Python/DebugConfig.py</Source> + <Source>DebugClients/Python/DebugProtocol.py</Source> + <Source>DebugClients/Python/DebugThread.py</Source> + <Source>DebugClients/Python/FlexCompleter.py</Source> + <Source>DebugClients/Python/PyProfile.py</Source> + <Source>DebugClients/Python/__init__.py</Source> + <Source>DebugClients/Python/coverage/__init__.py</Source> + <Source>DebugClients/Python/coverage/__main__.py</Source> + <Source>DebugClients/Python/coverage/annotate.py</Source> + <Source>DebugClients/Python/coverage/backunittest.py</Source> + <Source>DebugClients/Python/coverage/backward.py</Source> + <Source>DebugClients/Python/coverage/bytecode.py</Source> + <Source>DebugClients/Python/coverage/cmdline.py</Source> + <Source>DebugClients/Python/coverage/collector.py</Source> + <Source>DebugClients/Python/coverage/config.py</Source> + <Source>DebugClients/Python/coverage/control.py</Source> + <Source>DebugClients/Python/coverage/data.py</Source> + <Source>DebugClients/Python/coverage/debug.py</Source> + <Source>DebugClients/Python/coverage/env.py</Source> + <Source>DebugClients/Python/coverage/execfile.py</Source> + <Source>DebugClients/Python/coverage/files.py</Source> + <Source>DebugClients/Python/coverage/html.py</Source> + <Source>DebugClients/Python/coverage/misc.py</Source> + <Source>DebugClients/Python/coverage/monkey.py</Source> + <Source>DebugClients/Python/coverage/parser.py</Source> + <Source>DebugClients/Python/coverage/phystokens.py</Source> + <Source>DebugClients/Python/coverage/pickle2json.py</Source> + <Source>DebugClients/Python/coverage/plugin.py</Source> + <Source>DebugClients/Python/coverage/plugin_support.py</Source> + <Source>DebugClients/Python/coverage/python.py</Source> + <Source>DebugClients/Python/coverage/pytracer.py</Source> + <Source>DebugClients/Python/coverage/report.py</Source> + <Source>DebugClients/Python/coverage/results.py</Source> + <Source>DebugClients/Python/coverage/summary.py</Source> + <Source>DebugClients/Python/coverage/templite.py</Source> + <Source>DebugClients/Python/coverage/test_helpers.py</Source> + <Source>DebugClients/Python/coverage/version.py</Source> + <Source>DebugClients/Python/coverage/xmlreport.py</Source> + <Source>DebugClients/Python/eric6dbgstub.py</Source> + <Source>DebugClients/Python/getpass.py</Source> <Source>DebugClients/__init__.py</Source> <Source>Debugger/BreakPointModel.py</Source> <Source>Debugger/BreakPointViewer.py</Source> @@ -1445,6 +1445,7 @@ <Source>WebBrowser/data/html_rc.py</Source> <Source>WebBrowser/data/icons_rc.py</Source> <Source>WebBrowser/data/javascript_rc.py</Source> + <Source>WebBrowser/data/qml_rc.py</Source> <Source>__init__.py</Source> <Source>cleanupSource.py</Source> <Source>compileUiFiles.py</Source> @@ -1921,6 +1922,7 @@ <Resource>Helpviewer/data/icons.qrc</Resource> <Resource>Helpviewer/data/javascript.qrc</Resource> <Resource>IconEditor/cursors/cursors.qrc</Resource> + <Resource>WebBrowser/data/qml.qrc</Resource> <Resource>WebBrowser/Bookmarks/DefaultBookmarks.qrc</Resource> <Resource>WebBrowser/OpenSearch/DefaultSearchEngines/DefaultSearchEngines.qrc</Resource> <Resource>WebBrowser/data/html.qrc</Resource> @@ -1930,14 +1932,14 @@ <Interfaces/> <Others> <Other>.hgignore</Other> - <Other>APIs/Python/zope-2.10.7.api</Other> - <Other>APIs/Python/zope-2.11.2.api</Other> - <Other>APIs/Python/zope-3.3.1.api</Other> <Other>APIs/Python3/PyQt4.bas</Other> <Other>APIs/Python3/PyQt5.bas</Other> <Other>APIs/Python3/QScintilla2.bas</Other> <Other>APIs/Python3/eric6.api</Other> <Other>APIs/Python3/eric6.bas</Other> + <Other>APIs/Python/zope-2.10.7.api</Other> + <Other>APIs/Python/zope-2.11.2.api</Other> + <Other>APIs/Python/zope-3.3.1.api</Other> <Other>APIs/QSS/qss.api</Other> <Other>APIs/Ruby/Ruby-1.8.7.api</Other> <Other>APIs/Ruby/Ruby-1.8.7.bas</Other> @@ -1946,8 +1948,8 @@ <Other>CSSs</Other> <Other>CodeTemplates</Other> <Other>DTDs</Other> + <Other>DebugClients/Python3/coverage/doc</Other> <Other>DebugClients/Python/coverage/doc</Other> - <Other>DebugClients/Python3/coverage/doc</Other> <Other>DesignerTemplates</Other> <Other>Dictionaries</Other> <Other>Documentation/Help</Other> @@ -2065,6 +2067,7 @@ <Other>WebBrowser/data/javascript/jquery-ui.js</Other> <Other>WebBrowser/data/javascript/jquery.js</Other> <Other>WebBrowser/data/javascript/qwebchannel.js</Other> + <Other>WebBrowser/data/qml/thumbnailer.qml</Other> <Other>changelog</Other> <Other>default.e4k</Other> <Other>default_Mac.e4k</Other>