From 23e605cc5b71f68d6c9e6168053226d027ea46d4 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Tue, 30 Jul 2019 16:42:44 +0200 Subject: Plug a memory leak introduced in e24a4976bebd7ca90deac2b40c08900625773 While it is correct not to call the functor when the context object has been destroyed, we still need ot clean up the slotObj. It's a low- probability memory leak: the context object has to disappear while waiting for a host resolution, and for repeated requests for the same host the cache takes over anyway. Task-number: QTBUG-76276 Change-Id: Id9daf391353b8252443f3186a7d504d70c553b24 Reviewed-by: Timur Pocheptsov --- src/network/kernel/qhostinfo_p.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index bbf4cc36d1..fa6529bdfd 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -105,12 +105,12 @@ public Q_SLOTS: inline void emitResultsReady(const QHostInfo &info) { if (slotObj) { - // we used to have a context object, but it's already destroyed - if (withContextObject && !receiver) - return; - QHostInfo copy = info; - void *args[2] = { 0, reinterpret_cast(©) }; - slotObj->call(const_cast(receiver.data()), args); + // we either didn't have a context object, or it's still alive + if (!withContextObject || receiver) { + QHostInfo copy = info; + void *args[2] = { 0, reinterpret_cast(©) }; + slotObj->call(const_cast(receiver.data()), args); + } slotObj->destroyIfLastRef(); } else { emit resultsReady(info); -- cgit v1.2.3 From 3d7bd7ad19254bb1c4794349e71501e58c91891e Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Tue, 30 Jul 2019 11:27:49 +0200 Subject: Fix hit testing in non-client area of fixed-size windows, don't show resize cursors The m_windowState member is never updated regarding active state; isActive is instead reimplemented to query the window manager, so use that. To extend the area where the user can move the window over the entire titlebar of fixed-height windows, just test whether the mouse position is within the titlebar. Change-Id: I6b87aacd0bdab511cfd4959df1114af5c6013852 Fixes: QTBUG-77220 Reviewed-by: Friedemann Kleint --- src/plugins/platforms/windows/qwindowswindow.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp index eb521dac52..7d511bf0d7 100644 --- a/src/plugins/platforms/windows/qwindowswindow.cpp +++ b/src/plugins/platforms/windows/qwindowswindow.cpp @@ -2621,7 +2621,8 @@ bool QWindowsWindow::handleNonClientHitTest(const QPoint &globalPos, LRESULT *re // QTBUG-32663, suppress resize cursor for fixed size windows. const QWindow *w = window(); if (!w->isTopLevel() // Task 105852, minimized windows need to respond to user input. - || !(m_windowState & ~Qt::WindowActive) + || (m_windowState != Qt::WindowNoState) + || !isActive() || (m_data.flags & Qt::FramelessWindowHint)) { return false; } @@ -2641,12 +2642,10 @@ bool QWindowsWindow::handleNonClientHitTest(const QPoint &globalPos, LRESULT *re return true; } if (localPos.y() < 0) { - const QMargins margins = frameMargins(); - const int topResizeBarPos = margins.left() - margins.top(); - if (localPos.y() < topResizeBarPos) { + const int topResizeBarPos = -frameMargins().top(); + if (localPos.y() >= topResizeBarPos) *result = HTCAPTION; // Extend caption over top resize bar, let's user move the window. - return true; - } + return true; } } if (fixedWidth && (localPos.x() < 0 || localPos.x() >= size.width())) { -- cgit v1.2.3 From 174061f9f32ac76c6b8a6d155d772e37708d8cfc Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 31 Jul 2019 10:23:39 +0200 Subject: QHighDPI: Fix broken scaling of QPoint(F) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For some reason, the overload resolution of the High DPI scale() functions introduced by b6ded193ee64ffe67df6d22e7a23aa1ea9e02ec7 chose the wrong overloads for QPointF and/or QPoint; it fell back to the generic template intended for qreal, QSize, etc, ignoring the origin. Remove the template and spell out all overloads. Fixes: QTBUG-77255 Change-Id: I5661f16f7326f65156f646f430f5a0c71d5302d2 Reviewed-by: Tor Arne Vestbø --- src/gui/kernel/qhighdpiscaling_p.h | 20 +++++- tests/auto/gui/kernel/kernel.pro | 3 + .../gui/kernel/qhighdpiscaling/qhighdpiscaling.pro | 6 ++ .../kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp | 77 ++++++++++++++++++++++ 4 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 tests/auto/gui/kernel/qhighdpiscaling/qhighdpiscaling.pro create mode 100644 tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index 3410c1d345..c43641b8c9 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -59,6 +59,7 @@ #include #include #include +#include #include QT_BEGIN_NAMESPACE @@ -117,13 +118,26 @@ private: namespace QHighDpi { -template -inline T scale(const T &value, qreal scaleFactor, QPoint origin = QPoint(0, 0)) +inline qreal scale(qreal value, qreal scaleFactor, QPointF /* origin */ = QPointF(0, 0)) { - Q_UNUSED(origin) return value * scaleFactor; } +inline QSize scale(const QSize &value, qreal scaleFactor, QPointF /* origin */ = QPointF(0, 0)) +{ + return value * scaleFactor; +} + +inline QSizeF scale(const QSizeF &value, qreal scaleFactor, QPointF /* origin */ = QPointF(0, 0)) +{ + return value * scaleFactor; +} + +inline QVector2D scale(const QVector2D &value, qreal scaleFactor, QPointF /* origin */ = QPointF(0, 0)) +{ + return value * float(scaleFactor); +} + inline QPointF scale(const QPointF &pos, qreal scaleFactor, QPointF origin = QPointF(0, 0)) { return (pos - origin) * scaleFactor + origin; diff --git a/tests/auto/gui/kernel/kernel.pro b/tests/auto/gui/kernel/kernel.pro index fbd3b1b371..42135dae24 100644 --- a/tests/auto/gui/kernel/kernel.pro +++ b/tests/auto/gui/kernel/kernel.pro @@ -11,6 +11,7 @@ SUBDIRS=\ qguimetatype \ qguitimer \ qguivariant \ + qhighdpiscaling \ qinputmethod \ qkeyevent \ qkeysequence \ @@ -35,6 +36,8 @@ win32:!winrt:qtHaveModule(network): SUBDIRS += noqteventloop !qtHaveModule(network): SUBDIRS -= \ qguieventloop +!qtConfig(highdpiscaling): SUBDIRS -= qhighdpiscaling + !qtConfig(opengl): SUBDIRS -= qopenglwindow android|uikit: SUBDIRS -= qclipboard diff --git a/tests/auto/gui/kernel/qhighdpiscaling/qhighdpiscaling.pro b/tests/auto/gui/kernel/qhighdpiscaling/qhighdpiscaling.pro new file mode 100644 index 0000000000..6cd7bb01f5 --- /dev/null +++ b/tests/auto/gui/kernel/qhighdpiscaling/qhighdpiscaling.pro @@ -0,0 +1,6 @@ +CONFIG += testcase +TARGET = tst_qhighdpiscaling + +QT += core-private gui-private testlib + +SOURCES += tst_qhighdpiscaling.cpp diff --git a/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp b/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp new file mode 100644 index 0000000000..969b2351ec --- /dev/null +++ b/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include + +#include + +class tst_QHighDpiScaling: public QObject +{ + Q_OBJECT + +private slots: + void scale(); +}; + +// Emulate the case of a High DPI secondary screen +class MyPlatformScreen : public QPlatformScreen +{ +public: + QRect geometry() const override { return QRect(3840, 0, 3840, 1920); } + QRect availableGeometry() const override { return geometry(); } + + int depth() const override { return 32; } + QImage::Format format() const override { return QImage::Format_ARGB32_Premultiplied; } +}; + +// QTBUG-77255: Test some scaling overloads +void tst_QHighDpiScaling::scale() +{ + QHighDpiScaling::setGlobalFactor(2); + QScopedPointer screen(new MyPlatformScreen); + + qreal nativeValue = 10; + const qreal value = QHighDpi::fromNativePixels(nativeValue, screen.data()); + QCOMPARE(value, qreal(5)); + QCOMPARE(QHighDpi::toNativePixels(value, screen.data()), nativeValue); + + // 10, 10 within screen should translate to 5,5 with origin preserved + const QPoint nativePoint = screen->geometry().topLeft() + QPoint(10, 10); + const QPoint point = QHighDpi::fromNativePixels(nativePoint, screen.data()); + QCOMPARE(point, QPoint(3845, 5)); + QCOMPARE(QHighDpi::toNativePixels(point, screen.data()), nativePoint); + + const QPointF nativePointF(nativePoint); + const QPointF pointF = QHighDpi::fromNativePixels(nativePointF, screen.data()); + QCOMPARE(pointF, QPointF(3845, 5)); + QCOMPARE(QHighDpi::toNativePixels(pointF, screen.data()), nativePointF); +} + +#include "tst_qhighdpiscaling.moc" +QTEST_MAIN(tst_QHighDpiScaling); -- cgit v1.2.3 From 9ad8debe38332a9d61a79e1b0017c19c442f4e49 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 30 Jul 2019 20:46:55 +0300 Subject: qlalr: fix compilation with C++20 std::not1 is deprecated in C++17, removed in C++20. Use its replacement, std::not_fn. Change-Id: I37d4929c81c2a5befeb44f954ae77b23960d2ff0 Reviewed-by: Ville Voutilainen --- src/tools/qlalr/lalr.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/tools/qlalr/lalr.cpp b/src/tools/qlalr/lalr.cpp index ec960925aa..541523d49c 100644 --- a/src/tools/qlalr/lalr.cpp +++ b/src/tools/qlalr/lalr.cpp @@ -295,6 +295,12 @@ void Automaton::build () buildDefaultReduceActions (); } +#if defined(__cpp_lib_not_fn) && __cpp_lib_not_fn >= 201603 +# define Q_NOT_FN std::not_fn +#else +# define Q_NOT_FN std::not1 +#endif + void Automaton::buildNullables () { bool changed = true; @@ -305,7 +311,7 @@ void Automaton::buildNullables () for (RulePointer rule = _M_grammar->rules.begin (); rule != _M_grammar->rules.end (); ++rule) { - NameList::iterator nn = std::find_if (rule->rhs.begin (), rule->rhs.end (), std::not1 (Nullable (this))); + NameList::iterator nn = std::find_if(rule->rhs.begin(), rule->rhs.end(), Q_NOT_FN(Nullable(this))); if (nn == rule->rhs.end ()) changed |= nullables.insert (rule->lhs).second; @@ -646,7 +652,7 @@ void Automaton::buildIncludesDigraph () if (! _M_grammar->isNonTerminal (*A)) continue; - NameList::iterator first_not_nullable = std::find_if (dot, rule->rhs.end (), std::not1 (Nullable (this))); + NameList::iterator first_not_nullable = std::find_if(dot, rule->rhs.end(), Q_NOT_FN(Nullable(this))); if (first_not_nullable != rule->rhs.end ()) continue; -- cgit v1.2.3 From bd8ef7fe24f80b193a3c47cc77795d766d35d25e Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 1 Aug 2019 13:58:48 +0200 Subject: Blacklist tst_http2::connectToHost MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test if flakey. Change-Id: I1f956f47ab4cf0602f3631e4f7908df35f5ce83f Reviewed-by: Tor Arne Vestbø --- tests/auto/network/access/http2/BLACKLIST | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 tests/auto/network/access/http2/BLACKLIST diff --git a/tests/auto/network/access/http2/BLACKLIST b/tests/auto/network/access/http2/BLACKLIST new file mode 100644 index 0000000000..8f26c5b89e --- /dev/null +++ b/tests/auto/network/access/http2/BLACKLIST @@ -0,0 +1,3 @@ + See qtbase/src/testlib/qtestblacklist.cpp for format +[connectToHost] +* -- cgit v1.2.3 From a34b0855f160add13d08c21715dd6853094c23e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 30 Jul 2019 15:41:57 +0200 Subject: macOS: Don't assume NSWindows will be created on the screen we request The user may have assigned the application to start up on a specific display, in which case the window's screen is nil after creation, and the resulting screen will be delivered as a normal screen change once the window is ordered on screen. Fixes: QTBUG-77154 Change-Id: Idade6d833e31654db239243f2430166b5d86eca2 Reviewed-by: Volker Hilsheimer --- src/plugins/platforms/cocoa/qcocoawindow.mm | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index b609fb3995..ab20c7abe9 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1569,8 +1569,8 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel) } rect.translate(-targetScreen->geometry().topLeft()); - QCocoaScreen *cocoaScreen = static_cast(targetScreen->handle()); - NSRect frame = QCocoaScreen::mapToNative(rect, cocoaScreen); + auto *targetCocoaScreen = static_cast(targetScreen->handle()); + NSRect frame = QCocoaScreen::mapToNative(rect, targetCocoaScreen); // Create NSWindow Class windowClass = shouldBePanel ? [QNSPanel class] : [QNSWindow class]; @@ -1579,15 +1579,22 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel) // Deferring window creation breaks OpenGL (the GL context is // set up before the window is shown and needs a proper window) backing:NSBackingStoreBuffered defer:NO - screen:cocoaScreen->nativeScreen() + screen:targetCocoaScreen->nativeScreen() platformWindow:this]; - Q_ASSERT_X(nsWindow.screen == cocoaScreen->nativeScreen(), "QCocoaWindow", - "Resulting NSScreen should match the requested NSScreen"); + // The resulting screen can be different from the screen requested if + // for example the application has been assigned to a specific display. + auto resultingScreen = QCocoaIntegration::instance()->screenForNSScreen(nsWindow.screen); - if (targetScreen != window()->screen()) { + // But may not always be resolved at this point, in which case we fall back + // to the target screen. The real screen will be delivered as a screen change + // when resolved as part of ordering the window on screen. + if (!resultingScreen) + resultingScreen = targetCocoaScreen; + + if (resultingScreen->screen() != window()->screen()) { QWindowSystemInterface::handleWindowScreenChanged< - QWindowSystemInterface::SynchronousDelivery>(window(), targetScreen); + QWindowSystemInterface::SynchronousDelivery>(window(), resultingScreen->screen()); } static QSharedPointer sharedDelegate([[QNSWindowDelegate alloc] init], -- cgit v1.2.3 From 89e97e99378f90cd70e4b9f0462b8baece471d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 31 Jul 2019 16:01:22 +0200 Subject: Pass qmake arguments when creating Xcode project from Makefile MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I0020273b200465f44a135848b4fd505793e85c30 Reviewed-by: Jörg Bornemann --- mkspecs/features/mac/default_post.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index c46222debd..f34b305d08 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -261,7 +261,7 @@ xcode_product_bundle_identifier_setting.value = "$${xcode_product_bundle_identif QMAKE_MAC_XCODE_SETTINGS += xcode_product_bundle_identifier_setting !macx-xcode { - generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode $(EXPORT__PRO_FILE_) + generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode $(EXPORT__PRO_FILE_) $$QMAKE_ARGS generate_xcode_project.target = xcodeproj QMAKE_EXTRA_VARIABLES += _PRO_FILE_ QMAKE_EXTRA_TARGETS += generate_xcode_project -- cgit v1.2.3 From 360000342ab095a936d8f09951e2b19c04c2678a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 30 Jul 2019 16:09:11 +0200 Subject: macOS: Improve screen positioning during window creation Allow AppKit to resolve screen for NSWindow lazily in the case where the position is outside any known screen. And explicitly set the style mask if detecting the corner case of positioning a window in the unavailable space on a rotated screen. In testing the effect of creating the window with a borderless style mask and then updating the mask did not seem to have any visual consequences, but we try to limit this mode just in case by only enabling it in the corner cases we detect. Change-Id: I4b7fcc6755a1ad5ff2683bec79d80a78226edae0 Reviewed-by: Timur Pocheptsov --- src/plugins/platforms/cocoa/qcocoawindow.mm | 33 ++++++++++++++++++----------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index ab20c7abe9..d6f88b4f23 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1543,12 +1543,6 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel) Qt::WindowType type = window()->type(); Qt::WindowFlags flags = window()->flags(); - // Note: The macOS window manager has a bug, where if a screen is rotated, it will not allow - // a window to be created within the area of the screen that has a Y coordinate (I quadrant) - // higher than the height of the screen in its non-rotated state, unless the window is - // created with the NSWindowStyleMaskBorderless style mask. - NSWindowStyleMask styleMask = windowStyleMask(flags); - QRect rect = geometry(); QScreen *targetScreen = nullptr; @@ -1559,22 +1553,37 @@ QCocoaNSWindow *QCocoaWindow::createNSWindow(bool shouldBePanel) } } + NSWindowStyleMask styleMask = windowStyleMask(flags); + if (!targetScreen) { qCWarning(lcQpaWindow) << "Window position" << rect << "outside any known screen, using primary screen"; targetScreen = QGuiApplication::primaryScreen(); - // AppKit will only reposition a window that's outside the target screen area if - // the window has a title bar. If left out, the window ends up with no screen. - // The style mask will be corrected to the original style mask in setWindowFlags. - styleMask |= NSWindowStyleMaskTitled; + // Unless the window is created as borderless AppKit won't find a position and + // screen that's close to the requested invalid position, and will always place + // the window on the primary screen. + styleMask = NSWindowStyleMaskBorderless; } rect.translate(-targetScreen->geometry().topLeft()); auto *targetCocoaScreen = static_cast(targetScreen->handle()); - NSRect frame = QCocoaScreen::mapToNative(rect, targetCocoaScreen); + NSRect contentRect = QCocoaScreen::mapToNative(rect, targetCocoaScreen); + + if (targetScreen->primaryOrientation() == Qt::PortraitOrientation) { + // The macOS window manager has a bug, where if a screen is rotated, it will not allow + // a window to be created within the area of the screen that has a Y coordinate (I quadrant) + // higher than the height of the screen in its non-rotated state (including a magic padding + // of 24 points), unless the window is created with the NSWindowStyleMaskBorderless style mask. + if (styleMask && (contentRect.origin.y + 24 > targetScreen->geometry().width())) { + qCDebug(lcQpaWindow) << "Window positioned on portrait screen." + << "Adjusting style mask during creation"; + styleMask = NSWindowStyleMaskBorderless; + } + } // Create NSWindow Class windowClass = shouldBePanel ? [QNSPanel class] : [QNSWindow class]; - QCocoaNSWindow *nsWindow = [[windowClass alloc] initWithContentRect:frame + QCocoaNSWindow *nsWindow = [[windowClass alloc] initWithContentRect:contentRect + // Mask will be updated in setWindowFlags if not the final mask styleMask:styleMask // Deferring window creation breaks OpenGL (the GL context is // set up before the window is shown and needs a proper window) -- cgit v1.2.3 From 662798d785c309a343c13648cb018c7f556757a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 29 Jul 2019 16:40:08 +0200 Subject: macOS: Add system detection and version defines for macOS Catalina (10.15) Change-Id: I127efe752ebb70825f1b31f0d64c4293d1c71820 Reviewed-by: Simon Hausmann Reviewed-by: Volker Hilsheimer --- src/corelib/global/qoperatingsystemversion.cpp | 8 ++++++++ src/corelib/global/qoperatingsystemversion.h | 1 + src/corelib/global/qsystemdetection.h | 14 ++++++++++---- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/corelib/global/qoperatingsystemversion.cpp b/src/corelib/global/qoperatingsystemversion.cpp index 94dc261b41..bc6adb54dc 100644 --- a/src/corelib/global/qoperatingsystemversion.cpp +++ b/src/corelib/global/qoperatingsystemversion.cpp @@ -437,6 +437,14 @@ const QOperatingSystemVersion QOperatingSystemVersion::MacOSHighSierra = const QOperatingSystemVersion QOperatingSystemVersion::MacOSMojave = QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 10, 14); +/*! + \variable QOperatingSystemVersion::MacOSCatalina + \brief a version corresponding to macOS Catalina (version 10.15). + \since 5.12.5 + */ +const QOperatingSystemVersion QOperatingSystemVersion::MacOSCatalina = + QOperatingSystemVersion(QOperatingSystemVersion::MacOS, 10, 15); + /*! \variable QOperatingSystemVersion::AndroidJellyBean \brief a version corresponding to Android Jelly Bean (version 4.1, API level 16). diff --git a/src/corelib/global/qoperatingsystemversion.h b/src/corelib/global/qoperatingsystemversion.h index df01e5438a..89c60c4960 100644 --- a/src/corelib/global/qoperatingsystemversion.h +++ b/src/corelib/global/qoperatingsystemversion.h @@ -71,6 +71,7 @@ public: static const QOperatingSystemVersion MacOSSierra; static const QOperatingSystemVersion MacOSHighSierra; static const QOperatingSystemVersion MacOSMojave; + static const QOperatingSystemVersion MacOSCatalina; static const QOperatingSystemVersion AndroidJellyBean; static const QOperatingSystemVersion AndroidJellyBean_MR1; diff --git a/src/corelib/global/qsystemdetection.h b/src/corelib/global/qsystemdetection.h index a2e51fa330..3e38e6790b 100644 --- a/src/corelib/global/qsystemdetection.h +++ b/src/corelib/global/qsystemdetection.h @@ -231,17 +231,23 @@ # if !defined(__MAC_10_14) # define __MAC_10_14 101400 # endif +# if !defined(__MAC_10_15) +# define __MAC_10_15 101500 +# endif # if !defined(MAC_OS_X_VERSION_10_11) -# define MAC_OS_X_VERSION_10_11 101100 +# define MAC_OS_X_VERSION_10_11 __MAC_10_11 # endif # if !defined(MAC_OS_X_VERSION_10_12) -# define MAC_OS_X_VERSION_10_12 101200 +# define MAC_OS_X_VERSION_10_12 __MAC_10_12 # endif # if !defined(MAC_OS_X_VERSION_10_13) -# define MAC_OS_X_VERSION_10_13 101300 +# define MAC_OS_X_VERSION_10_13 __MAC_10_13 # endif # if !defined(MAC_OS_X_VERSION_10_14) -# define MAC_OS_X_VERSION_10_14 101400 +# define MAC_OS_X_VERSION_10_14 __MAC_10_14 +# endif +# if !defined(MAC_OS_X_VERSION_10_15) +# define MAC_OS_X_VERSION_10_15 __MAC_10_15 # endif # # if !defined(__IPHONE_10_0) -- cgit v1.2.3 From ec62033bc25ed60a6bb9286d07e4f4485800b068 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 1 Aug 2019 15:01:27 +0200 Subject: tst_http2::connectToHost - add a fix for SecureTransport backend One of the tests above was unsetting a variable that enforces the use of a temporary keychain. We have to set it back, otherwise the test is failing. What surprises me though - why I had this problem only locally and not on CI? Apparently, SecureTransport is not covered by our configurations ... Change-Id: I0ff1e3e304632869391ed61213c245b949d8c778 Reviewed-by: Volker Hilsheimer --- tests/auto/network/access/http2/tst_http2.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index ce685a1b1c..10dad25337 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -591,6 +591,19 @@ void tst_Http2::connectToHost() #if QT_CONFIG(ssl) Q_ASSERT(!clearTextHTTP2 || connectionType != H2Type::h2Alpn); + +#if QT_CONFIG(securetransport) + // Normally on macOS we use plain text only for SecureTransport + // does not support ALPN on the server side. With 'direct encrytped' + // we have to use TLS sockets (== private key) and thus suppress a + // keychain UI asking for permission to use a private key. + // Our CI has this, but somebody testing locally - will have a problem. + qputenv("QT_SSL_USE_TEMPORARY_KEYCHAIN", QByteArray("1")); + auto envRollback = qScopeGuard([](){ + qunsetenv("QT_SSL_USE_TEMPORARY_KEYCHAIN"); + }); +#endif // QT_CONFIG(securetransport) + #else Q_ASSERT(connectionType == H2Type::h2c || connectionType == H2Type::h2cDirect); Q_ASSERT(targetServer->isClearText()); -- cgit v1.2.3 From a22bb694ce27b16b3ad672b09700937362b9a320 Mon Sep 17 00:00:00 2001 From: Pavel Artsishevsky Date: Tue, 30 Jul 2019 04:04:45 +0300 Subject: Fix QPainter's ColorDodge and ColorBurn composition modes Added checking corner cases (more specific formulas) in color_dodge_op()/color_dodge_op_rgb64() and color_burn_op()/color_burn_op_rgb64() to produce correct results for any input. Task-number: QTBUG-77231 Change-Id: I274f80b356bd4236a9176a84a95604c2eb01787a Reviewed-by: Konstantin Tokarev Reviewed-by: Allan Sandfeld Jensen --- src/gui/painting/qcompositionfunctions.cpp | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/gui/painting/qcompositionfunctions.cpp b/src/gui/painting/qcompositionfunctions.cpp index 027bf23115..9308710c0b 100644 --- a/src/gui/painting/qcompositionfunctions.cpp +++ b/src/gui/painting/qcompositionfunctions.cpp @@ -1763,8 +1763,10 @@ void QT_FASTCALL comp_func_Lighten_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const QR } /* - if Sca.Da + Dca.Sa >= Sa.Da + if Sca.Da + Dca.Sa > Sa.Da Dca' = Sa.Da + Sca.(1 - Da) + Dca.(1 - Sa) + else if Sca == Sa + Dca' = Dca.Sa + Sca.(1 - Da) + Dca.(1 - Sa) otherwise Dca' = Dca.Sa/(1-Sca/Sa) + Sca.(1 - Da) + Dca.(1 - Sa) */ @@ -1775,8 +1777,10 @@ static inline int color_dodge_op(int dst, int src, int da, int sa) const int src_da = src * da; const int temp = src * (255 - da) + dst * (255 - sa); - if (src_da + dst_sa >= sa_da) + if (src_da + dst_sa > sa_da) return qt_div_255(sa_da + temp); + else if (src == sa || sa == 0) + return qt_div_255(temp); else return qt_div_255(255 * dst_sa / (255 - 255 * src / sa) + temp); } @@ -1788,8 +1792,10 @@ static inline uint color_dodge_op_rgb64(qint64 dst, qint64 src, qint64 da, qint6 const qint64 src_da = src * da; const qint64 temp = src * (65535 - da) + dst * (65535 - sa); - if (src_da + dst_sa >= sa_da) + if (src_da + dst_sa > sa_da) return qt_div_65535(sa_da + temp); + else if (src == sa || sa == 0) + return qt_div_65535(temp); else return qt_div_65535(65535 * dst_sa / (65535 - 65535 * src / sa) + temp); } @@ -1915,8 +1921,10 @@ void QT_FASTCALL comp_func_ColorDodge_rgb64(QRgba64 *Q_DECL_RESTRICT dest, const } /* - if Sca.Da + Dca.Sa <= Sa.Da + if Sca.Da + Dca.Sa < Sa.Da Dca' = Sca.(1 - Da) + Dca.(1 - Sa) + else if Sca == 0 + Dca' = Dca.Sa + Sca.(1 - Da) + Dca.(1 - Sa) otherwise Dca' = Sa.(Sca.Da + Dca.Sa - Sa.Da)/Sca + Sca.(1 - Da) + Dca.(1 - Sa) */ @@ -1928,8 +1936,10 @@ static inline int color_burn_op(int dst, int src, int da, int sa) const int temp = src * (255 - da) + dst * (255 - sa); - if (src == 0 || src_da + dst_sa <= sa_da) + if (src_da + dst_sa < sa_da) return qt_div_255(temp); + else if (src == 0) + return qt_div_255(dst_sa + temp); return qt_div_255(sa * (src_da + dst_sa - sa_da) / src + temp); } @@ -1941,8 +1951,10 @@ static inline uint color_burn_op_rgb64(qint64 dst, qint64 src, qint64 da, qint64 const qint64 temp = src * (65535 - da) + dst * (65535 - sa); - if (src == 0 || src_da + dst_sa <= sa_da) + if (src_da + dst_sa < sa_da) return qt_div_65535(temp); + else if (src == 0) + return qt_div_65535(dst_sa + temp); return qt_div_65535(sa * (src_da + dst_sa - sa_da) / src + temp); } -- cgit v1.2.3 From 455963ce4996055e1f9a9a3c8d0d6a1abf64cd89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 31 Jul 2019 14:48:49 +0200 Subject: macOS: Don't require setting all three color buffer sizes in QSurfaceFormat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Iaa6eb4d64f549a31aa5c53145e8b37facec4ea78 Reviewed-by: Andy Nichols Reviewed-by: Tor Arne Vestbø --- src/gui/kernel/qsurfaceformat.cpp | 12 ------------ src/plugins/platforms/cocoa/qcocoaglcontext.mm | 11 +++++++++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/gui/kernel/qsurfaceformat.cpp b/src/gui/kernel/qsurfaceformat.cpp index 1a814ec21f..4e2bcad50f 100644 --- a/src/gui/kernel/qsurfaceformat.cpp +++ b/src/gui/kernel/qsurfaceformat.cpp @@ -554,10 +554,6 @@ int QSurfaceFormat::alphaBufferSize() const /*! Set the desired \a size in bits of the red channel of the color buffer. - - \note On Mac OSX, be sure to set the buffer size of all color channels, - otherwise this setting will have no effect. If one of the buffer sizes is not set, - the current bit-depth of the screen is used. */ void QSurfaceFormat::setRedBufferSize(int size) { @@ -569,10 +565,6 @@ void QSurfaceFormat::setRedBufferSize(int size) /*! Set the desired \a size in bits of the green channel of the color buffer. - - \note On Mac OSX, be sure to set the buffer size of all color channels, - otherwise this setting will have no effect. If one of the buffer sizes is not set, - the current bit-depth of the screen is used. */ void QSurfaceFormat::setGreenBufferSize(int size) { @@ -584,10 +576,6 @@ void QSurfaceFormat::setGreenBufferSize(int size) /*! Set the desired \a size in bits of the blue channel of the color buffer. - - \note On Mac OSX, be sure to set the buffer size of all color channels, - otherwise this setting will have no effect. If one of the buffer sizes is not set, - the current bit-depth of the screen is used. */ void QSurfaceFormat::setBlueBufferSize(int size) { diff --git a/src/plugins/platforms/cocoa/qcocoaglcontext.mm b/src/plugins/platforms/cocoa/qcocoaglcontext.mm index e45ea7efd3..d91b2cabaf 100644 --- a/src/plugins/platforms/cocoa/qcocoaglcontext.mm +++ b/src/plugins/platforms/cocoa/qcocoaglcontext.mm @@ -197,8 +197,15 @@ NSOpenGLPixelFormat *QCocoaGLContext::pixelFormatForSurfaceFormat(const QSurface attrs << NSOpenGLPFAStencilSize << format.stencilBufferSize(); if (format.alphaBufferSize() > 0) attrs << NSOpenGLPFAAlphaSize << format.alphaBufferSize(); - if (format.redBufferSize() > 0 && format.greenBufferSize() > 0 && format.blueBufferSize() > 0) { - const int colorSize = format.redBufferSize() + format.greenBufferSize() + format.blueBufferSize(); + + auto rbz = format.redBufferSize(); + auto gbz = format.greenBufferSize(); + auto bbz = format.blueBufferSize(); + if (rbz > 0 || gbz > 0 || bbz > 0) { + auto fallbackSize = qMax(rbz, qMax(gbz, bbz)); + auto colorSize = (rbz > 0 ? rbz : fallbackSize) + + (gbz > 0 ? gbz : fallbackSize) + + (bbz > 0 ? bbz : fallbackSize); attrs << NSOpenGLPFAColorSize << colorSize << NSOpenGLPFAMinimumPolicy; } -- cgit v1.2.3 From 8c0787cfa1a906ebe25907515d86050303b127e7 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 31 Jul 2019 10:55:14 +0200 Subject: Fix dependency_libs entry of .la files Libtool cannot cope with absolute paths in the dependency_libs entry. We split absolute paths into -L and -l here. Change-Id: I30bf11e490d1993d2a4d88c114e07bbae12def6d Fixes: QTBUG-76625 Reviewed-by: Kai Koehne --- qmake/generators/unix/unixmake2.cpp | 38 ++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/qmake/generators/unix/unixmake2.cpp b/qmake/generators/unix/unixmake2.cpp index d9bcccf2e2..abc37149a9 100644 --- a/qmake/generators/unix/unixmake2.cpp +++ b/qmake/generators/unix/unixmake2.cpp @@ -1450,7 +1450,36 @@ UnixMakefileGenerator::libtoolFileName(bool fixify) void UnixMakefileGenerator::writeLibtoolFile() { + auto fixDependencyLibs + = [this](const ProStringList &libs) + { + ProStringList result; + for (auto lib : libs) { + auto fi = fileInfo(lib.toQString()); + if (fi.isAbsolute()) { + const QString libDirArg = "-L" + fi.path(); + if (!result.contains(libDirArg)) + result += libDirArg; + QString namespec = fi.fileName(); + int dotPos = namespec.lastIndexOf('.'); + if (dotPos != -1 && namespec.startsWith("lib")) { + namespec.truncate(dotPos); + namespec.remove(0, 3); + } else { + debug_msg(1, "Ignoring dependency library %s", + lib.toLatin1().constData()); + continue; + } + result += "-l" + namespec; + } else { + result += lib; + } + } + return result; + }; + QString fname = libtoolFileName(), lname = fname; + debug_msg(1, "Writing libtool file %s", fname.toLatin1().constData()); mkdir(fileInfo(fname).path()); int slsh = lname.lastIndexOf(Option::dir_sep); if(slsh != -1) @@ -1488,12 +1517,11 @@ UnixMakefileGenerator::writeLibtoolFile() << ".a'\n\n"; t << "# Libraries that this one depends upon.\n"; + static const ProKey libVars[] = { "LIBS", "QMAKE_LIBS" }; ProStringList libs; - libs << "LIBS" << "QMAKE_LIBS"; - t << "dependency_libs='"; - for (ProStringList::ConstIterator it = libs.begin(); it != libs.end(); ++it) - t << fixLibFlags((*it).toKey()).join(' ') << ' '; - t << "'\n\n"; + for (auto var : libVars) + libs += fixLibFlags(var); + t << "dependency_libs='" << fixDependencyLibs(libs).join(' ') << "'\n\n"; t << "# Version information for " << lname << "\n"; int maj = project->first("VER_MAJ").toInt(); -- cgit v1.2.3 From 4f116f00fcd93decbf6fc01b61b0be7c293d3c39 Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Mon, 5 Aug 2019 15:24:16 +0300 Subject: Fix GCC 4.8 build Change-Id: I4994146b359e8e37f6c0fa1b27f03fb9e800fdd5 Fixes: QTBUG-77218 Reviewed-by: Simon Hausmann --- src/gui/painting/qtriangulator_p.h | 2 +- src/gui/text/qtextlayout.h | 4 +- src/widgets/styles/qstyleoption.h | 46 +++++++++++----------- .../kernel/qapplication/tst_qapplication.cpp | 2 +- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/gui/painting/qtriangulator_p.h b/src/gui/painting/qtriangulator_p.h index c9ae2571f4..0abf87308a 100644 --- a/src/gui/painting/qtriangulator_p.h +++ b/src/gui/painting/qtriangulator_p.h @@ -94,7 +94,7 @@ public: } QVertexIndexVector() = default; - QVertexIndexVector(const QVertexIndexVector &other) = default; + QVertexIndexVector(const QVertexIndexVector &) = default; inline QVertexIndexVector &operator = (const QVertexIndexVector &other) { if (t == UnsignedInt) diff --git a/src/gui/text/qtextlayout.h b/src/gui/text/qtextlayout.h index a29791534e..2fc0fcd55a 100644 --- a/src/gui/text/qtextlayout.h +++ b/src/gui/text/qtextlayout.h @@ -114,8 +114,8 @@ public: // not ambiguous. Implementation detail that should not be documented. template #endif - QTextLayout(const QString &text, const QFont &font, const QPaintDevice *paintdevice) - : QTextLayout(text, font, const_cast(paintdevice)) + QTextLayout(const QString &textData, const QFont &textFont, const QPaintDevice *paintdevice) + : QTextLayout(textData, textFont, const_cast(paintdevice)) {} #else QTextLayout(const QString &text, const QFont &font, const QPaintDevice *paintdevice = nullptr); diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h index 763575ff5b..7f5edf4279 100644 --- a/src/widgets/styles/qstyleoption.h +++ b/src/widgets/styles/qstyleoption.h @@ -118,7 +118,7 @@ public: QStyleOptionFocusRect(); QStyleOptionFocusRect(const QStyleOptionFocusRect &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionFocusRect &operator=(const QStyleOptionFocusRect &other) = default; + QStyleOptionFocusRect &operator=(const QStyleOptionFocusRect &) = default; protected: QStyleOptionFocusRect(int version); @@ -143,7 +143,7 @@ public: QStyleOptionFrame(); QStyleOptionFrame(const QStyleOptionFrame &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionFrame &operator=(const QStyleOptionFrame &other) = default; + QStyleOptionFrame &operator=(const QStyleOptionFrame &) = default; protected: QStyleOptionFrame(int version); @@ -173,7 +173,7 @@ public: QStyleOptionTabWidgetFrame(); inline QStyleOptionTabWidgetFrame(const QStyleOptionTabWidgetFrame &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionTabWidgetFrame &operator=(const QStyleOptionTabWidgetFrame &other) = default; + QStyleOptionTabWidgetFrame &operator=(const QStyleOptionTabWidgetFrame &) = default; protected: QStyleOptionTabWidgetFrame(int version); @@ -197,7 +197,7 @@ public: QStyleOptionTabBarBase(); QStyleOptionTabBarBase(const QStyleOptionTabBarBase &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionTabBarBase &operator=(const QStyleOptionTabBarBase &other) = default; + QStyleOptionTabBarBase &operator=(const QStyleOptionTabBarBase &) = default; protected: QStyleOptionTabBarBase(int version); @@ -229,7 +229,7 @@ public: QStyleOptionHeader(); QStyleOptionHeader(const QStyleOptionHeader &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionHeader &operator=(const QStyleOptionHeader &other) = default; + QStyleOptionHeader &operator=(const QStyleOptionHeader &) = default; protected: QStyleOptionHeader(int version); @@ -252,7 +252,7 @@ public: QStyleOptionButton(); QStyleOptionButton(const QStyleOptionButton &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionButton &operator=(const QStyleOptionButton &other) = default; + QStyleOptionButton &operator=(const QStyleOptionButton &) = default; protected: QStyleOptionButton(int version); @@ -290,7 +290,7 @@ public: QStyleOptionTab(); QStyleOptionTab(const QStyleOptionTab &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionTab &operator=(const QStyleOptionTab &other) = default; + QStyleOptionTab &operator=(const QStyleOptionTab &) = default; protected: QStyleOptionTab(int version); @@ -321,7 +321,7 @@ public: int midLineWidth; QStyleOptionToolBar(); QStyleOptionToolBar(const QStyleOptionToolBar &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionToolBar &operator=(const QStyleOptionToolBar &other) = default; + QStyleOptionToolBar &operator=(const QStyleOptionToolBar &) = default; protected: QStyleOptionToolBar(int version); @@ -349,7 +349,7 @@ public: QStyleOptionProgressBar(); QStyleOptionProgressBar(const QStyleOptionProgressBar &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionProgressBar &operator=(const QStyleOptionProgressBar &other) = default; + QStyleOptionProgressBar &operator=(const QStyleOptionProgressBar &) = default; protected: QStyleOptionProgressBar(int version); @@ -380,7 +380,7 @@ public: QStyleOptionMenuItem(); QStyleOptionMenuItem(const QStyleOptionMenuItem &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionMenuItem &operator=(const QStyleOptionMenuItem &other) = default; + QStyleOptionMenuItem &operator=(const QStyleOptionMenuItem &) = default; protected: QStyleOptionMenuItem(int version); @@ -400,7 +400,7 @@ public: QStyleOptionDockWidget(); QStyleOptionDockWidget(const QStyleOptionDockWidget &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionDockWidget &operator=(const QStyleOptionDockWidget &other) = default; + QStyleOptionDockWidget &operator=(const QStyleOptionDockWidget &) = default; protected: QStyleOptionDockWidget(int version); @@ -452,7 +452,7 @@ public: QStyleOptionViewItem(); QStyleOptionViewItem(const QStyleOptionViewItem &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionViewItem &operator=(const QStyleOptionViewItem &other) = default; + QStyleOptionViewItem &operator=(const QStyleOptionViewItem &) = default; protected: QStyleOptionViewItem(int version); @@ -483,7 +483,7 @@ public: QStyleOptionToolBox(); QStyleOptionToolBox(const QStyleOptionToolBox &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionToolBox &operator=(const QStyleOptionToolBox &other) = default; + QStyleOptionToolBox &operator=(const QStyleOptionToolBox &) = default; protected: QStyleOptionToolBox(int version); @@ -503,7 +503,7 @@ public: QStyleOptionRubberBand(); QStyleOptionRubberBand(const QStyleOptionRubberBand &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionRubberBand &operator=(const QStyleOptionRubberBand &other) = default; + QStyleOptionRubberBand &operator=(const QStyleOptionRubberBand &) = default; protected: QStyleOptionRubberBand(int version); @@ -522,7 +522,7 @@ public: QStyleOptionComplex(int version = QStyleOptionComplex::Version, int type = SO_Complex); QStyleOptionComplex(const QStyleOptionComplex &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionComplex &operator=(const QStyleOptionComplex &other) = default; + QStyleOptionComplex &operator=(const QStyleOptionComplex &) = default; }; #if QT_CONFIG(slider) @@ -547,7 +547,7 @@ public: QStyleOptionSlider(); QStyleOptionSlider(const QStyleOptionSlider &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionSlider &operator=(const QStyleOptionSlider &other) = default; + QStyleOptionSlider &operator=(const QStyleOptionSlider &) = default; protected: QStyleOptionSlider(int version); @@ -567,7 +567,7 @@ public: QStyleOptionSpinBox(); QStyleOptionSpinBox(const QStyleOptionSpinBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionSpinBox &operator=(const QStyleOptionSpinBox &other) = default; + QStyleOptionSpinBox &operator=(const QStyleOptionSpinBox &) = default; protected: QStyleOptionSpinBox(int version); @@ -595,7 +595,7 @@ public: QStyleOptionToolButton(); QStyleOptionToolButton(const QStyleOptionToolButton &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionToolButton &operator=(const QStyleOptionToolButton &other) = default; + QStyleOptionToolButton &operator=(const QStyleOptionToolButton &) = default; protected: QStyleOptionToolButton(int version); @@ -618,7 +618,7 @@ public: QStyleOptionComboBox(); QStyleOptionComboBox(const QStyleOptionComboBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionComboBox &operator=(const QStyleOptionComboBox &other) = default; + QStyleOptionComboBox &operator=(const QStyleOptionComboBox &) = default; protected: QStyleOptionComboBox(int version); @@ -637,7 +637,7 @@ public: QStyleOptionTitleBar(); QStyleOptionTitleBar(const QStyleOptionTitleBar &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionTitleBar &operator=(const QStyleOptionTitleBar &other) = default; + QStyleOptionTitleBar &operator=(const QStyleOptionTitleBar &) = default; protected: QStyleOptionTitleBar(int version); @@ -658,7 +658,7 @@ public: QStyleOptionGroupBox(); QStyleOptionGroupBox(const QStyleOptionGroupBox &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionGroupBox &operator=(const QStyleOptionGroupBox &other) = default; + QStyleOptionGroupBox &operator=(const QStyleOptionGroupBox &) = default; protected: QStyleOptionGroupBox(int version); }; @@ -673,7 +673,7 @@ public: QStyleOptionSizeGrip(); QStyleOptionSizeGrip(const QStyleOptionSizeGrip &other) : QStyleOptionComplex(Version, Type) { *this = other; } - QStyleOptionSizeGrip &operator=(const QStyleOptionSizeGrip &other) = default; + QStyleOptionSizeGrip &operator=(const QStyleOptionSizeGrip &) = default; protected: QStyleOptionSizeGrip(int version); }; @@ -690,7 +690,7 @@ public: QStyleOptionGraphicsItem(); QStyleOptionGraphicsItem(const QStyleOptionGraphicsItem &other) : QStyleOption(Version, Type) { *this = other; } - QStyleOptionGraphicsItem &operator=(const QStyleOptionGraphicsItem &other) = default; + QStyleOptionGraphicsItem &operator=(const QStyleOptionGraphicsItem &) = default; static qreal levelOfDetailFromTransform(const QTransform &worldTransform); protected: QStyleOptionGraphicsItem(int version); diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp index 3b387c9235..7ee085b81c 100644 --- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp @@ -491,7 +491,7 @@ void tst_QApplication::lastWindowClosed() QPointer dialog = new QDialog; dialog->setWindowTitle(QLatin1String(QTest::currentTestFunction()) + QLatin1String("Dialog")); QVERIFY(dialog->testAttribute(Qt::WA_QuitOnClose)); - QTimer::singleShot(1000, dialog, &QDialog::accept); + QTimer::singleShot(1000, dialog.data(), &QDialog::accept); dialog->exec(); QVERIFY(dialog); QCOMPARE(spy.count(), 0); -- cgit v1.2.3 From 64d949207686a0225a78de572548a5361e340ae3 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 30 Jul 2019 08:54:30 -0700 Subject: Fix race condition on qt_create_tls() on Windows If this function is called by multiple threads, more than one could reach the mutex locking and call TlsAlloc(), but only the last one would save the data. The others would be leaked and, worse, be used by those other threads. [ChangeLog][QtCore][QObject] Fixed a resource leak caused by a race condition if multiple QObjects were created at the same time, for the first time in an application, from multiple threads (implies threads not started with QThread). Fixes: QTBUG-77238 Change-Id: Ife213d861bb14c1787e1fffd15b63a5818bcc807 Reviewed-by: Marc Mutz Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/thread/qthread_win.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp index e56fe2c6ae..5c7642c26e 100644 --- a/src/corelib/thread/qthread_win.cpp +++ b/src/corelib/thread/qthread_win.cpp @@ -99,6 +99,8 @@ void qt_create_tls() return; static QBasicMutex mutex; QMutexLocker locker(&mutex); + if (qt_current_thread_data_tls_index != TLS_OUT_OF_INDEXES) + return; qt_current_thread_data_tls_index = TlsAlloc(); } -- cgit v1.2.3 From 787e498487831c55be89979824709622ba29f17c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 24 Jun 2019 09:41:07 +0200 Subject: QMutexPool: fix memory order of atomic operations The array of QAtomicPointer can be initialized using relaxed stores of nullptr, since nullptr is the whole data. But once we store an actual QMutex pointer in the array, we need to publish the indirect data thus created. We did this, with testAndSetRelease(); what was missing was a corresponding acquire fence on load, without which there is no happens-before relationship between the writes performed by the QMutex ctor and the reads performed by a subsequent mutex.lock(), say, on the same data. Fix by adding acquire fences to all loads. That includes the dtor, since mutexes may have been created in different threads, and never been imported into this_thread before the dtor is running. As a drive-by, return a new'ed QMutex that was successfully installed directly to the caller, without again going through a load-acquire. Fixes: QTBUG-59164 Change-Id: Ia25d205b1127c8c4de0979cef997d1a88123c5c3 Reviewed-by: David Faure Reviewed-by: Giuseppe D'Angelo Reviewed-by: Thiago Macieira (cherry picked from commit 65b8f59e045bb41fef99b1a44f462115de65064a) (cherry picked from commit da38f0d691d9d7eacfac5fbcbd47b887bd59bd39) --- src/corelib/thread/qmutexpool.cpp | 9 ++++++--- src/corelib/thread/qmutexpool_p.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/corelib/thread/qmutexpool.cpp b/src/corelib/thread/qmutexpool.cpp index 3f9e8da942..bb063b8ab6 100644 --- a/src/corelib/thread/qmutexpool.cpp +++ b/src/corelib/thread/qmutexpool.cpp @@ -104,7 +104,7 @@ QMutexPool::QMutexPool(QMutex::RecursionMode recursionMode, int size) QMutexPool::~QMutexPool() { for (int index = 0; index < mutexes.count(); ++index) - delete mutexes[index].load(); + delete mutexes[index].loadAcquire(); } /*! @@ -129,9 +129,12 @@ QMutex *QMutexPool::createMutex(int index) { // mutex not created, create one QMutex *newMutex = new QMutex(recursionMode); - if (!mutexes[index].testAndSetRelease(0, newMutex)) + if (!mutexes[index].testAndSetRelease(nullptr, newMutex)) { delete newMutex; - return mutexes[index].load(); + return mutexes[index].loadAcquire(); + } else { + return newMutex; + } } /*! diff --git a/src/corelib/thread/qmutexpool_p.h b/src/corelib/thread/qmutexpool_p.h index 89d006ac29..00710199b8 100644 --- a/src/corelib/thread/qmutexpool_p.h +++ b/src/corelib/thread/qmutexpool_p.h @@ -68,7 +68,7 @@ public: inline QMutex *get(const void *address) { int index = uint(quintptr(address)) % mutexes.count(); - QMutex *m = mutexes[index].load(); + QMutex *m = mutexes[index].loadAcquire(); if (m) return m; else -- cgit v1.2.3 From eab533ae0db2cd3c9fe469b71632fedb030b6be1 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 24 Jul 2019 10:37:23 +0200 Subject: Simplify QDate::weekNumber() by looking at the right day of the week The Thursday in the same week has the same week-number and determines the right year to use for the week. So calculate its week-number and save a whole lot of complications. Change-Id: I9c28267e6083afdd04a15245e1609c64beb82b37 Reviewed-by: Lars Knoll --- src/corelib/time/qdatetime.cpp | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index 64943bdaaf..ecc7e85610 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -570,16 +570,18 @@ int QDate::daysInYear() const } /*! - Returns the week number (1 to 53), and stores the year in - *\a{yearNumber} unless \a yearNumber is null (the default). + Returns the ISO 8601 week number (1 to 53). - Returns 0 if the date is invalid. + Returns 0 if the date is invalid. Otherwise, returns the week number for the + date. If \a yearNumber is not \nullptr (its default), stores the year as + *\a{yearNumber}. - In accordance with ISO 8601, weeks start on Monday and the first - Thursday of a year is always in week 1 of that year. Most years - have 52 weeks, but some have 53. + In accordance with ISO 8601, each week falls in the year to which most of + its days belong, in the Gregorian calendar. As ISO 8601's week starts on + Monday, this is the year in which the week's Thursday falls. Most years have + 52 weeks, but some have 53. - *\a{yearNumber} is not always the same as year(). For example, 1 + \note *\a{yearNumber} is not always the same as year(). For example, 1 January 2000 has week number 52 in the year 1999, and 31 December 2002 has week number 1 in the year 2003. @@ -591,26 +593,11 @@ int QDate::weekNumber(int *yearNumber) const if (!isValid()) return 0; - int year = QDate::year(); - int yday = dayOfYear(); - int wday = dayOfWeek(); - - int week = (yday - wday + 10) / 7; - - if (week == 0) { - // last week of previous year - --year; - week = (yday + 365 + (QDate::isLeapYear(year) ? 1 : 0) - wday + 10) / 7; - Q_ASSERT(week == 52 || week == 53); - } else if (week == 53) { - // maybe first week of next year - int w = (yday - 365 - (QDate::isLeapYear(year) ? 1 : 0) - wday + 10) / 7; - if (w > 0) { - ++year; - week = w; - } - Q_ASSERT(week == 53 || week == 1); - } + // The Thursday of the same week determines our answer: + QDate thursday(addDays(4 - dayOfWeek())); + int year = thursday.year(); + // Week n's Thurs's DOY has 1 <= DOY - 7*(n-1) < 8, so 0 <= DOY + 6 - 7*n < 7: + int week = (thursday.dayOfYear() + 6) / 7; if (yearNumber) *yearNumber = year; -- cgit v1.2.3 From 0ea7360eaa70c2b024a37b2ff9106531440cdee7 Mon Sep 17 00:00:00 2001 From: Andreas Hartmetz Date: Wed, 7 Aug 2019 10:50:55 +0200 Subject: Fix two examples in QUrl::toLocalFile() documentation Change-Id: Ib17844e1dd696a41815bdf58924ff40d684884a8 Reviewed-by: Cristian Maureira-Fredes --- src/corelib/doc/snippets/code/src_corelib_io_qurl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/doc/snippets/code/src_corelib_io_qurl.cpp b/src/corelib/doc/snippets/code/src_corelib_io_qurl.cpp index 79af776ce4..e3c3005c33 100644 --- a/src/corelib/doc/snippets/code/src_corelib_io_qurl.cpp +++ b/src/corelib/doc/snippets/code/src_corelib_io_qurl.cpp @@ -183,7 +183,7 @@ QUrl url("http://qt-project.org/support/file.html"); //! [19] //! [20] - qDebug() << QUrl("file:file.txt").toLocalFile(); // "file:file.txt" - qDebug() << QUrl("file:/home/user/file.txt").toLocalFile(); // "file:///home/user/file.txt" + qDebug() << QUrl("file:file.txt").toLocalFile(); // "file.txt" + qDebug() << QUrl("file:/home/user/file.txt").toLocalFile(); // "/home/user/file.txt" qDebug() << QUrl("file.txt").toLocalFile(); // ""; wasn't a local file as it had no scheme //! [20] -- cgit v1.2.3 From fccb519809d8e64db0e9cc54852c8612fe59b6c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 6 Aug 2019 17:48:15 +0200 Subject: Don't rely on QWidget::internalWinId in QWidgetBackingStore QWidget does not handle QWindow and QPlatformWindow being destroyed behind its back, and the QWidget state for internalWinId and the Qt::WA_WState_Created attribute can easily get out of sync with reality. To avoid QWidgetBackingStore mistakenly thinking that a widget does not have a platform window it can operate on we use the QWindow and QPlatformWindow handles directly, instead of relying on the winId. This is a stop gap until we can teach QWidget to deal with dynamic changes to its underlying window handles. Change-Id: Ib09bea2ad62c42e9667a20ca6b5faf0f957288da Fixes: QTBUG-74559 Reviewed-by: Lars Knoll --- src/widgets/kernel/qwidgetbackingstore.cpp | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index a32eb2a03b..24b8665013 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -76,6 +76,11 @@ extern QRegion qt_dirtyRegion(QWidget *); Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) #endif +static bool hasPlatformWindow(QWidget *widget) +{ + return widget && widget->windowHandle() && widget->windowHandle()->handle(); +} + /** * Flushes the contents of the \a backingStore into the screen area of \a widget. * \a region is the region to be updated in \a widget coordinates. @@ -198,7 +203,7 @@ void QWidgetBackingStore::showYellowThing(QWidget *widget, const QRegion &toBePa QRegion paintRegion = toBePainted; QRect widgetRect = widget->rect(); - if (!widget->internalWinId()) { + if (!hasPlatformWindow(widget)) { QWidget *nativeParent = widget->nativeParentWidget(); const QPoint offset = widget->mapTo(nativeParent, QPoint(0, 0)); paintRegion.translate(offset); @@ -715,7 +720,7 @@ void QWidgetBackingStore::markDirtyOnScreen(const QRegion ®ion, QWidget *widg } // Alien widgets. - if (!widget->internalWinId() && !widget->isWindow()) { + if (!hasPlatformWindow(widget) && !widget->isWindow()) { QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). if (nativeParent == tlw) { if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) @@ -845,7 +850,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) destRect = destRect.translated(dx, dy).intersected(clipR); const QRect sourceRect(destRect.translated(-dx, -dy)); const QRect parentRect(rect & clipR); - const bool nativeWithTextureChild = textureChildSeen && q->internalWinId(); + const bool nativeWithTextureChild = textureChildSeen && hasPlatformWindow(q); const bool accelerateMove = accelEnv && isOpaque && !nativeWithTextureChild #if QT_CONFIG(graphicsview) @@ -1013,9 +1018,9 @@ static void findTextureWidgetsRecursively(QWidget *tlw, QWidget *widget, QPlatfo for (int i = 0; i < wd->children.size(); ++i) { QWidget *w = qobject_cast(wd->children.at(i)); // Stop at native widgets but store them. Stop at hidden widgets too. - if (w && !w->isWindow() && w->internalWinId()) + if (w && !w->isWindow() && hasPlatformWindow(w)) nativeChildren->append(w); - if (w && !w->isWindow() && !w->internalWinId() && !w->isHidden() && QWidgetPrivate::get(w)->textureChildSeen) + if (w && !w->isWindow() && !hasPlatformWindow(w) && !w->isHidden() && QWidgetPrivate::get(w)->textureChildSeen) findTextureWidgetsRecursively(tlw, w, widgetTextures, nativeChildren); } } @@ -1046,7 +1051,7 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) Q_ASSERT(!tl->isEmpty()); for (int i = 0; i < tl->count(); ++i) { QWidget *w = static_cast(tl->source(i)); - if ((w->internalWinId() && w == widget) || (!w->internalWinId() && w->nativeParentWidget() == widget)) + if ((hasPlatformWindow(w) && w == widget) || (!hasPlatformWindow(w) && w->nativeParentWidget() == widget)) return tl; } } @@ -1157,7 +1162,8 @@ void QWidgetBackingStore::sync(QWidget *exposedWidget, const QRegion &exposedReg if (!tlw->isVisible() || !tlwExtra || tlwExtra->inTopLevelResize) return; - if (!exposedWidget || !exposedWidget->internalWinId() || !exposedWidget->isVisible() || !exposedWidget->testAttribute(Qt::WA_Mapped) + if (!exposedWidget || !hasPlatformWindow(exposedWidget) + || !exposedWidget->isVisible() || !exposedWidget->testAttribute(Qt::WA_Mapped) || !exposedWidget->updatesEnabled() || exposedRegion.isEmpty()) { return; } @@ -1330,8 +1336,8 @@ void QWidgetBackingStore::doSync() w->d_func()->sendPaintEvent(w->rect()); if (w != tlw) { QWidget *npw = w->nativeParentWidget(); - if (w->internalWinId() || (npw && npw != tlw)) { - if (!w->internalWinId()) + if (hasPlatformWindow(w) || (npw && npw != tlw)) { + if (!hasPlatformWindow(w)) w = npw; QWidgetPrivate *wPrivate = w->d_func(); if (!wPrivate->needsFlush) -- cgit v1.2.3 From 53a6f7b7836ef5084106ed63f6745c20d663affa Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 6 Aug 2019 13:15:35 +0200 Subject: eglfs: Fix raster windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also sanitize the initial WebAssembly hack. Both eglfs and wasm lack the concept of true raster windows. A QWindow with RasterSurface is rendered with OpenGL no matter what. The two platforms took two different approaches to work around the rest of the machinery: - wasm disabled the QOpenGLContext warning for non-OpenGL QWindows, - eglfs forced the QWindow surfaceType to OpenGLSurface whenever it was originally set to RasterSurface. Now, the latter breaks since c4e9eabc309a275efc222f4127f31ba4677259b7, leaving all raster window applications failing on eglfs, because flush in the backingstore is now checking the surface type and disallows OpenGLSurface windows. (just like how QOpenGLContext disallows RasterSurface windows) To solve all this correctly, introduce a new platform capability, OpenGLOnRasterSurface, and remove the special handling in the platform plugins. Change-Id: I7785dfb1c955577bbdccdc14ebaaac5babdec57c Fixes: QTBUG-77100 Reviewed-by: Tor Arne Vestbø --- src/gui/kernel/qopenglcontext.cpp | 3 --- src/gui/kernel/qplatformintegration.cpp | 3 +++ src/gui/kernel/qplatformintegration.h | 3 ++- src/gui/kernel/qsurface.cpp | 6 ++++++ src/plugins/platforms/eglfs/api/qeglfsintegration.cpp | 1 + src/plugins/platforms/eglfs/api/qeglfswindow.cpp | 9 ++------- src/plugins/platforms/eglfs/api/qeglfswindow_p.h | 1 - src/plugins/platforms/wasm/qwasmintegration.cpp | 1 + 8 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index 499d16c109..e8c64bdc01 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -977,11 +977,8 @@ bool QOpenGLContext::makeCurrent(QSurface *surface) if (!surface->surfaceHandle()) return false; if (!surface->supportsOpenGL()) { -#ifndef Q_OS_WASM // ### work around the WASM platform plugin using QOpenGLContext with raster surfaces. - // see QTBUG-70076 qWarning() << "QOpenGLContext::makeCurrent() called with non-opengl surface" << surface; return false; -#endif } if (!d->platformGLContext->makeCurrent(surface->surfaceHandle())) diff --git a/src/gui/kernel/qplatformintegration.cpp b/src/gui/kernel/qplatformintegration.cpp index ac4d12b024..258d214c7a 100644 --- a/src/gui/kernel/qplatformintegration.cpp +++ b/src/gui/kernel/qplatformintegration.cpp @@ -244,6 +244,9 @@ QPlatformServices *QPlatformIntegration::services() const \value TopStackedNativeChildWindows The platform supports native child windows via QWindowContainer without having to punch a transparent hole in the backingstore. (since 5.10) + + \value OpenGLOnRasterSurface The platform supports making a QOpenGLContext current + in combination with a QWindow of type RasterSurface. */ /*! diff --git a/src/gui/kernel/qplatformintegration.h b/src/gui/kernel/qplatformintegration.h index 1179daeb32..0b999de264 100644 --- a/src/gui/kernel/qplatformintegration.h +++ b/src/gui/kernel/qplatformintegration.h @@ -103,7 +103,8 @@ public: AllGLFunctionsQueryable, ApplicationIcon, SwitchableWidgetComposition, - TopStackedNativeChildWindows + TopStackedNativeChildWindows, + OpenGLOnRasterSurface }; virtual ~QPlatformIntegration() { } diff --git a/src/gui/kernel/qsurface.cpp b/src/gui/kernel/qsurface.cpp index 415e64b39c..709f28d431 100644 --- a/src/gui/kernel/qsurface.cpp +++ b/src/gui/kernel/qsurface.cpp @@ -39,6 +39,8 @@ #include "qsurface.h" #include "qopenglcontext.h" +#include +#include QT_BEGIN_NAMESPACE @@ -103,6 +105,10 @@ QT_BEGIN_NAMESPACE bool QSurface::supportsOpenGL() const { SurfaceType type = surfaceType(); + if (type == RasterSurface) { + QPlatformIntegration *integ = QGuiApplicationPrivate::instance()->platformIntegration(); + return integ->hasCapability(QPlatformIntegration::OpenGLOnRasterSurface); + } return type == OpenGLSurface || type == RasterGLSurface; } diff --git a/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp index c8a1ddf9b9..674f579b4f 100644 --- a/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp +++ b/src/plugins/platforms/eglfs/api/qeglfsintegration.cpp @@ -265,6 +265,7 @@ bool QEglFSIntegration::hasCapability(QPlatformIntegration::Capability cap) cons case RasterGLSurface: return false; #endif case WindowManagement: return false; + case OpenGLOnRasterSurface: return true; default: return QPlatformIntegration::hasCapability(cap); } } diff --git a/src/plugins/platforms/eglfs/api/qeglfswindow.cpp b/src/plugins/platforms/eglfs/api/qeglfswindow.cpp index c1d5af47aa..1fed182882 100644 --- a/src/plugins/platforms/eglfs/api/qeglfswindow.cpp +++ b/src/plugins/platforms/eglfs/api/qeglfswindow.cpp @@ -64,7 +64,6 @@ QEglFSWindow::QEglFSWindow(QWindow *w) m_backingStore(0), m_rasterCompositingContext(0), #endif - m_raster(false), m_winId(0), m_surface(EGL_NO_SURFACE), m_window(0), @@ -94,11 +93,6 @@ void QEglFSWindow::create() m_winId = newWId(); - // Save the original surface type before changing to OpenGLSurface. - m_raster = (window()->surfaceType() == QSurface::RasterSurface); - if (m_raster) // change to OpenGL, but not for RasterGLSurface - window()->setSurfaceType(QSurface::OpenGLSurface); - if (window()->type() == Qt::Desktop) { QRect fullscreenRect(QPoint(), screen()->availableGeometry().size()); QWindowSystemInterface::handleGeometryChange(window(), fullscreenRect); @@ -329,7 +323,8 @@ QEglFSScreen *QEglFSWindow::screen() const bool QEglFSWindow::isRaster() const { - return m_raster || window()->surfaceType() == QSurface::RasterGLSurface; + const QWindow::SurfaceType type = window()->surfaceType(); + return type == QSurface::RasterSurface || type == QSurface::RasterGLSurface; } #ifndef QT_NO_OPENGL diff --git a/src/plugins/platforms/eglfs/api/qeglfswindow_p.h b/src/plugins/platforms/eglfs/api/qeglfswindow_p.h index b0091e2a62..be2a0630d3 100644 --- a/src/plugins/platforms/eglfs/api/qeglfswindow_p.h +++ b/src/plugins/platforms/eglfs/api/qeglfswindow_p.h @@ -118,7 +118,6 @@ protected: QOpenGLCompositorBackingStore *m_backingStore; QOpenGLContext *m_rasterCompositingContext; #endif - bool m_raster; WId m_winId; EGLSurface m_surface; diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp index 3829043d07..05d6ae21f5 100644 --- a/src/plugins/platforms/wasm/qwasmintegration.cpp +++ b/src/plugins/platforms/wasm/qwasmintegration.cpp @@ -113,6 +113,7 @@ bool QWasmIntegration::hasCapability(QPlatformIntegration::Capability cap) const case RasterGLSurface: return false; // to enable this you need to fix qopenglwidget and quickwidget for wasm case MultipleWindows: return true; case WindowManagement: return true; + case OpenGLOnRasterSurface: return true; default: return QPlatformIntegration::hasCapability(cap); } } -- cgit v1.2.3 From 36cc171b9314bf77fc84d4273dceb6264aef7134 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Tue, 6 Aug 2019 07:50:14 +0200 Subject: tst_http2::connectToHost - fix flakiness some assumptions were incorrect: our test server immediately sends its SETTINGS frame, as a result we have to reply with client preface + SETTINGS(ACK). So QVERIFY(!prefaceOK) was wrong from the beginning and was only passing by pure luck. Change-Id: Ie43f0d4ac41deb0e5339badaae6149a9b2f9d9b3 Reviewed-by: Timur Pocheptsov Reviewed-by: Volker Hilsheimer --- tests/auto/network/access/http2/BLACKLIST | 3 --- tests/auto/network/access/http2/tst_http2.cpp | 3 --- 2 files changed, 6 deletions(-) delete mode 100644 tests/auto/network/access/http2/BLACKLIST diff --git a/tests/auto/network/access/http2/BLACKLIST b/tests/auto/network/access/http2/BLACKLIST deleted file mode 100644 index 8f26c5b89e..0000000000 --- a/tests/auto/network/access/http2/BLACKLIST +++ /dev/null @@ -1,3 +0,0 @@ - See qtbase/src/testlib/qtestblacklist.cpp for format -[connectToHost] -* diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 10dad25337..4b4b8d541a 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -648,9 +648,6 @@ void tst_Http2::connectToHost() eventLoop.exitLoop(); QCOMPARE(reply->error(), QNetworkReply::NoError); QVERIFY(reply->isFinished()); - // Nothing must be sent yet: - QVERIFY(!prefaceOK); - QVERIFY(!serverGotSettingsACK); // Nothing received back: QVERIFY(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isNull()); QCOMPARE(reply->readAll().size(), 0); -- cgit v1.2.3 From d468978d505d785b566bec88817a9c1a4a4a5be9 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Thu, 1 Aug 2019 14:50:23 +0200 Subject: rhi: Print the type of the resources in the leak check Also clarify what this check includes (backends are expected to register only QRhiResource instances that actually own native graphics objects - the ones that don't are not included in the leak checking) Change-Id: If0f43b302b148f043391fa7fd7bb77cfc8d93b79 Reviewed-by: Andy Nichols --- src/gui/rhi/qrhi.cpp | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp index 7443c0a04f..0da3e05f13 100644 --- a/src/gui/rhi/qrhi.cpp +++ b/src/gui/rhi/qrhi.cpp @@ -3592,6 +3592,42 @@ QRhiResource::Type QRhiCommandBuffer::resourceType() const return CommandBuffer; } +#ifndef QT_NO_DEBUG +static const char *resourceTypeStr(QRhiResource *res) +{ + switch (res->resourceType()) { + case QRhiResource::Buffer: + return "Buffer"; + case QRhiResource::Texture: + return "Texture"; + case QRhiResource::Sampler: + return "Sampler"; + case QRhiResource::RenderBuffer: + return "RenderBuffer"; + case QRhiResource::RenderPassDescriptor: + return "RenderPassDescriptor"; + case QRhiResource::RenderTarget: + return "RenderTarget"; + case QRhiResource::TextureRenderTarget: + return "TextureRenderTarget"; + case QRhiResource::ShaderResourceBindings: + return "ShaderResourceBindings"; + case QRhiResource::GraphicsPipeline: + return "GraphicsPipeline"; + case QRhiResource::SwapChain: + return "SwapChain"; + case QRhiResource::ComputePipeline: + return "ComputePipeline"; + case QRhiResource::CommandBuffer: + return "CommandBuffer"; + default: + Q_UNREACHABLE(); + break; + } + return ""; +} +#endif + QRhiImplementation::~QRhiImplementation() { qDeleteAll(resUpdPool); @@ -3601,10 +3637,10 @@ QRhiImplementation::~QRhiImplementation() // and freak out for unfreed graphics objects in the derived dtor already. #ifndef QT_NO_DEBUG if (!resources.isEmpty()) { - qWarning("QRhi %p going down with %d unreleased resources. This is not nice.", + qWarning("QRhi %p going down with %d unreleased resources that own native graphics objects. This is not nice.", q, resources.count()); for (QRhiResource *res : qAsConst(resources)) { - qWarning(" Resource %p (%s)", res, res->m_objectName.constData()); + qWarning(" %s resource %p (%s)", resourceTypeStr(res), res, res->m_objectName.constData()); res->m_rhi = nullptr; } } -- cgit v1.2.3 From 739b3bfb2fa54aefb14971cefc67eff2dc7aa406 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Wed, 24 Jul 2019 15:05:23 +0200 Subject: Unify and simplify the QHostInfo::lookupHost overloads The three cases - with classic slot, with functor and context object, and with lambda - are all doing the same work, they just differ in how they signal the application code about the results. The detour through an explicitly posted QMetaCallEvent is needed if we have a functor or lambda; making sure that the temporary QHostInfoResult object lives in the right thread guarantees that the event is received in the correct thread, so we can directly call the functor (as long as the context object is still alive). Since we guarantee that the QHostInfoResult object lives in the thread of the receiver, we can simply emit the signal for old-style signal/slot connections; the regular signal/slot mechanism will do the work for us. Change-Id: I584df17df879af01c653e354490c4691dbedd3fa Reviewed-by: Timur Pocheptsov --- src/network/kernel/qhostinfo.cpp | 154 +++++++++++++++++---------------------- src/network/kernel/qhostinfo_p.h | 65 ++++++----------- 2 files changed, 92 insertions(+), 127 deletions(-) diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp index 487cac6d90..c2b89d12d4 100644 --- a/src/network/kernel/qhostinfo.cpp +++ b/src/network/kernel/qhostinfo.cpp @@ -102,16 +102,6 @@ std::pair separate_if(InputIt first, InputIt last, OutputI return std::make_pair(dest1, dest2); } -int get_signal_index() -{ - static auto senderMetaObject = &QHostInfoResult::staticMetaObject; - static auto signal = &QHostInfoResult::resultsReady; - int signal_index = -1; - void *args[] = { &signal_index, &signal }; - senderMetaObject->static_metacall(QMetaObject::IndexOfMethod, 0, args); - return signal_index + QMetaObjectPrivate::signalOffset(senderMetaObject); -} - } /* @@ -129,23 +119,26 @@ void QHostInfoResult::postResultsReady(const QHostInfo &info) { // queued connection will take care of dispatching to right thread if (!slotObj) { - emitResultsReady(info); + emit resultsReady(info); return; } - static const int signal_index = get_signal_index(); - // we used to have a context object, but it's already destroyed if (withContextObject && !receiver) return; - /* QHostInfoResult c'tor moves the result object to the thread of receiver. - If we don't have a receiver, then the result object will not live in a - thread that runs an event loop - so move it to this' thread, which is the thread - that initiated the lookup, and required to have a running event loop. */ - auto result = new QHostInfoResult(receiver, slotObj); - if (!receiver) - result->moveToThread(thread()); + static const int signal_index = []() -> int { + auto senderMetaObject = &QHostInfoResult::staticMetaObject; + auto signal = &QHostInfoResult::resultsReady; + int signal_index = -1; + void *args[] = { &signal_index, &signal }; + senderMetaObject->static_metacall(QMetaObject::IndexOfMethod, 0, args); + return signal_index + QMetaObjectPrivate::signalOffset(senderMetaObject); + }(); + + // a long-living version of this + auto result = new QHostInfoResult(this); Q_CHECK_PTR(result); + const int nargs = 2; auto types = reinterpret_cast(malloc(nargs * sizeof(int))); Q_CHECK_PTR(types); @@ -161,6 +154,26 @@ void QHostInfoResult::postResultsReady(const QHostInfo &info) qApp->postEvent(result, metaCallEvent); } +/* + Receives the event posted by postResultsReady, and calls the functor. +*/ +bool QHostInfoResult::event(QEvent *event) +{ + if (event->type() == QEvent::MetaCall) { + Q_ASSERT(slotObj); + auto metaCallEvent = static_cast(event); + auto args = metaCallEvent->args(); + // we didn't have a context object, or it's still alive + if (!withContextObject || receiver) + slotObj->call(const_cast(receiver.data()), args); + slotObj->destroyIfLastRef(); + + deleteLater(); + return true; + } + return QObject::event(event); +} + /*! \class QHostInfo \brief The QHostInfo class provides static functions for host name lookups. @@ -255,64 +268,9 @@ static int nextId() \sa abortHostLookup(), addresses(), error(), fromName() */ -int QHostInfo::lookupHost(const QString &name, QObject *receiver, - const char *member) +int QHostInfo::lookupHost(const QString &name, QObject *receiver, const char *member) { -#if defined QHOSTINFO_DEBUG - qDebug("QHostInfo::lookupHost(\"%s\", %p, %s)", - name.toLatin1().constData(), receiver, member ? member + 1 : 0); -#endif - - if (!QAbstractEventDispatcher::instance(QThread::currentThread())) { - qWarning("QHostInfo::lookupHost() called with no event dispatcher"); - return -1; - } - - qRegisterMetaType(); - - int id = nextId(); // generate unique ID - - if (name.isEmpty()) { - if (!receiver) - return -1; - - QHostInfo hostInfo(id); - hostInfo.setError(QHostInfo::HostNotFound); - hostInfo.setErrorString(QCoreApplication::translate("QHostInfo", "No host name given")); - QScopedPointer result(new QHostInfoResult); - QObject::connect(result.data(), SIGNAL(resultsReady(QHostInfo)), - receiver, member, Qt::QueuedConnection); - result.data()->emitResultsReady(hostInfo); - return id; - } - - QHostInfoLookupManager *manager = theHostInfoLookupManager(); - - if (manager) { - // the application is still alive - if (manager->cache.isEnabled()) { - // check cache first - bool valid = false; - QHostInfo info = manager->cache.get(name, &valid); - if (valid) { - if (!receiver) - return -1; - - info.setLookupId(id); - QHostInfoResult result; - QObject::connect(&result, SIGNAL(resultsReady(QHostInfo)), receiver, member, Qt::QueuedConnection); - result.emitResultsReady(info); - return id; - } - } - - // cache is not enabled or it was not in the cache, do normal lookup - QHostInfoRunnable* runnable = new QHostInfoRunnable(name, id); - if (receiver) - QObject::connect(&runnable->resultEmitter, SIGNAL(resultsReady(QHostInfo)), receiver, member, Qt::QueuedConnection); - manager->scheduleLookup(runnable); - } - return id; + return QHostInfoPrivate::lookupHostImpl(name, receiver, nullptr, member); } /*! @@ -818,14 +776,32 @@ QString QHostInfo::localHostName() \sa hostName() */ +// ### Qt 6 merge with function below int QHostInfo::lookupHostImpl(const QString &name, const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj) +{ + return QHostInfoPrivate::lookupHostImpl(name, receiver, slotObj, nullptr); +} +/* + Called by the various lookupHost overloads to perform the lookup. + + Signals either the functor encapuslated in the \a slotObj in the context + of \a receiver, or the \a member slot of the \a receiver. + + \a receiver might be the nullptr, but only if a \a slotObj is provided. +*/ +int QHostInfoPrivate::lookupHostImpl(const QString &name, + const QObject *receiver, + QtPrivate::QSlotObjectBase *slotObj, + const char *member) { #if defined QHOSTINFO_DEBUG - qDebug("QHostInfo::lookupHost(\"%s\", %p, %p)", - name.toLatin1().constData(), receiver, slotObj); + qDebug("QHostInfoPrivate::lookupHostImpl(\"%s\", %p, %p, %s)", + name.toLatin1().constData(), receiver, slotObj, member ? member + 1 : 0); #endif + Q_ASSERT(!member != !slotObj); // one of these must be set, but not both + Q_ASSERT(receiver || slotObj); if (!QAbstractEventDispatcher::instance(QThread::currentThread())) { qWarning("QHostInfo::lookupHost() called with no event dispatcher"); @@ -840,8 +816,13 @@ int QHostInfo::lookupHostImpl(const QString &name, QHostInfo hostInfo(id); hostInfo.setError(QHostInfo::HostNotFound); hostInfo.setErrorString(QCoreApplication::translate("QHostInfo", "No host name given")); + QHostInfoResult result(receiver, slotObj); + if (receiver && member) + QObject::connect(&result, SIGNAL(resultsReady(QHostInfo)), + receiver, member, Qt::QueuedConnection); result.postResultsReady(hostInfo); + return id; } @@ -856,23 +837,24 @@ int QHostInfo::lookupHostImpl(const QString &name, if (valid) { info.setLookupId(id); QHostInfoResult result(receiver, slotObj); + if (receiver && member) + QObject::connect(&result, SIGNAL(resultsReady(QHostInfo)), + receiver, member, Qt::QueuedConnection); result.postResultsReady(info); return id; } } // cache is not enabled or it was not in the cache, do normal lookup - QHostInfoRunnable* runnable = new QHostInfoRunnable(name, id, receiver, slotObj); + QHostInfoRunnable *runnable = new QHostInfoRunnable(name, id, receiver, slotObj); + if (receiver && member) + QObject::connect(&runnable->resultEmitter, SIGNAL(resultsReady(QHostInfo)), + receiver, member, Qt::QueuedConnection); manager->scheduleLookup(runnable); } return id; } -QHostInfoRunnable::QHostInfoRunnable(const QString &hn, int i) : toBeLookedUp(hn), id(i) -{ - setAutoDelete(true); -} - QHostInfoRunnable::QHostInfoRunnable(const QString &hn, int i, const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj) : toBeLookedUp(hn), id(i), resultEmitter(receiver, slotObj) @@ -1119,7 +1101,7 @@ QHostInfo qt_qhostinfo_lookup(const QString &name, QObject *receiver, const char } // was not in cache, trigger lookup - *id = QHostInfo::lookupHost(name, receiver, member); + *id = QHostInfoPrivate::lookupHostImpl(name, receiver, nullptr, member); // return empty response, valid==false return QHostInfo(); diff --git a/src/network/kernel/qhostinfo_p.h b/src/network/kernel/qhostinfo_p.h index 9a4657234e..1798ceab0a 100644 --- a/src/network/kernel/qhostinfo_p.h +++ b/src/network/kernel/qhostinfo_p.h @@ -81,58 +81,38 @@ QT_BEGIN_NAMESPACE class QHostInfoResult : public QObject { Q_OBJECT - - QPointer receiver = nullptr; - QtPrivate::QSlotObjectBase *slotObj = nullptr; - const bool withContextObject = false; - public: - QHostInfoResult() = default; - QHostInfoResult(const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj) : - receiver(receiver), - slotObj(slotObj), - withContextObject(slotObj && receiver) + QHostInfoResult(const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj) + : receiver(receiver), slotObj(slotObj), + withContextObject(slotObj && receiver) { - connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, this, - &QObject::deleteLater); - if (slotObj && receiver) + if (receiver) moveToThread(receiver->thread()); } void postResultsReady(const QHostInfo &info); -public Q_SLOTS: - inline void emitResultsReady(const QHostInfo &info) - { - if (slotObj) { - // we used to have a context object, but it's already destroyed - if (withContextObject && !receiver) - return; - QHostInfo copy = info; - void *args[2] = { nullptr, reinterpret_cast(©) }; - slotObj->call(const_cast(receiver.data()), args); - slotObj->destroyIfLastRef(); - } else { - emit resultsReady(info); - } - } +Q_SIGNALS: + void resultsReady(const QHostInfo &info); protected: - bool event(QEvent *event) override + bool event(QEvent *event) override; + +private: + QHostInfoResult(const QHostInfoResult *other) + : receiver(other->receiver), slotObj(other->slotObj), + withContextObject(other->withContextObject) { - if (event->type() == QEvent::MetaCall) { - auto metaCallEvent = static_cast(event); - auto args = metaCallEvent->args(); - auto hostInfo = reinterpret_cast(args[1]); - emitResultsReady(*hostInfo); - deleteLater(); - return true; - } - return QObject::event(event); + // cleanup if the application terminates before results are delivered + connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, + this, &QObject::deleteLater); + // maintain thread affinity + moveToThread(other->thread()); } -Q_SIGNALS: - void resultsReady(const QHostInfo &info); + QPointer receiver = nullptr; + QtPrivate::QSlotObjectBase *slotObj = nullptr; + const bool withContextObject = false; }; class QHostInfoAgent @@ -160,6 +140,10 @@ public: //not a public API yet static QHostInfo fromName(const QString &hostName, QSharedPointer networkSession); #endif + static int lookupHostImpl(const QString &name, + const QObject *receiver, + QtPrivate::QSlotObjectBase *slotObj, + const char *member); QHostInfo::HostInfoError err; QString errorStr; @@ -204,7 +188,6 @@ private: class QHostInfoRunnable : public QRunnable { public: - QHostInfoRunnable(const QString &hn, int i); QHostInfoRunnable(const QString &hn, int i, const QObject *receiver, QtPrivate::QSlotObjectBase *slotObj); void run() override; -- cgit v1.2.3 From bf99c4bf553ea750f68745133960084f0b4c0490 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Wed, 17 Oct 2018 16:03:28 -0400 Subject: CMake: Fix some failing cmake tests Change-Id: I74f2bf270726feba8367ea222a3c669110c99e08 Reviewed-by: Simon Hausmann --- tests/auto/cmake/test_QTBUG-63422/CMakeLists.txt | 3 +++ tests/auto/cmake/test_interface/CMakeLists.txt | 3 +++ tests/auto/cmake/test_moc_macro_target/CMakeLists.txt | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/auto/cmake/test_QTBUG-63422/CMakeLists.txt b/tests/auto/cmake/test_QTBUG-63422/CMakeLists.txt index a0b82caee4..b9b9756699 100644 --- a/tests/auto/cmake/test_QTBUG-63422/CMakeLists.txt +++ b/tests/auto/cmake/test_QTBUG-63422/CMakeLists.txt @@ -1,6 +1,9 @@ cmake_minimum_required(VERSION 2.8) project(test_dependent_modules) +# Need to set the policy to link to qtmain.lib automatically. +cmake_policy(SET CMP0020 NEW) + find_package(Qt5Widgets REQUIRED) set(CMAKE_AUTOMOC ON) diff --git a/tests/auto/cmake/test_interface/CMakeLists.txt b/tests/auto/cmake/test_interface/CMakeLists.txt index 2af80ea448..fdd1aacc10 100644 --- a/tests/auto/cmake/test_interface/CMakeLists.txt +++ b/tests/auto/cmake/test_interface/CMakeLists.txt @@ -25,6 +25,9 @@ int main(int,char**) { QWidget w; w.show(); return 0; } " ) +# Fix try_compile to inherit the parent configuration. +set(CMAKE_TRY_COMPILE_CONFIGURATION "${CMAKE_BUILD_TYPE}") + # The try_compile works because Qt5::Widgets is listed in the LINK_LIBRARIES, # which causes the includes, defines and appropriate PIC flag to be used. try_compile(_TRY_COMPILE_RES "${CMAKE_CURRENT_BINARY_DIR}/try_compile-test" diff --git a/tests/auto/cmake/test_moc_macro_target/CMakeLists.txt b/tests/auto/cmake/test_moc_macro_target/CMakeLists.txt index e97ac199e8..f3299060fd 100644 --- a/tests/auto/cmake/test_moc_macro_target/CMakeLists.txt +++ b/tests/auto/cmake/test_moc_macro_target/CMakeLists.txt @@ -11,13 +11,13 @@ qt5_generate_moc(main_gen_test.cpp "${CMAKE_CURRENT_BINARY_DIR}/main_gen_test.moc" TARGET Qt5GenerateMacroTest ) -add_executable(Qt5GenerateMacroTest WIN32 main_gen_test.cpp "${CMAKE_CURRENT_BINARY_DIR}/main_gen_test.moc") +add_executable(Qt5GenerateMacroTest main_gen_test.cpp "${CMAKE_CURRENT_BINARY_DIR}/main_gen_test.moc") target_include_directories(Qt5GenerateMacroTest PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/interface") target_link_libraries(Qt5GenerateMacroTest Qt5::Core) qt5_wrap_cpp(moc_file mywrapobject.h TARGET Qt5WrapMacroTest ) -add_executable(Qt5WrapMacroTest WIN32 main_wrap_test.cpp ${moc_file}) +add_executable(Qt5WrapMacroTest main_wrap_test.cpp ${moc_file}) target_include_directories(Qt5WrapMacroTest PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/interface") target_link_libraries(Qt5WrapMacroTest Qt5::Core) -- cgit v1.2.3 From 247ab241c783f776489d8bc348a84cb533079241 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sun, 28 Jul 2019 14:43:24 +0300 Subject: QVector/QList/QLinkedList/QVarLengthArray/QSet: add missing deduction guides Amends 2e1763d83a1dacfc5b747934fb77fa7cec7bfe47. The new range ctors need deduction guides, since the compiler can't deduce the value_type from a pair of iterators. Change-Id: I3ec1e5f91305b317c443b6a70246be416b55bad9 Reviewed-by: Volker Hilsheimer Reviewed-by: Thiago Macieira --- src/corelib/tools/qlinkedlist.h | 7 ++++++ src/corelib/tools/qlist.h | 7 ++++++ src/corelib/tools/qset.h | 7 ++++++ src/corelib/tools/qvarlengtharray.h | 7 ++++++ src/corelib/tools/qvector.h | 7 ++++++ .../auto/corelib/tools/qlinkedlist/qlinkedlist.pro | 2 ++ .../corelib/tools/qlinkedlist/tst_qlinkedlist.cpp | 28 +++++++++++++++++++++ tests/auto/corelib/tools/qlist/qlist.pro | 2 ++ tests/auto/corelib/tools/qlist/tst_qlist.cpp | 28 +++++++++++++++++++++ tests/auto/corelib/tools/qset/qset.pro | 2 ++ tests/auto/corelib/tools/qset/tst_qset.cpp | 28 +++++++++++++++++++++ .../tools/qvarlengtharray/qvarlengtharray.pro | 2 ++ .../tools/qvarlengtharray/tst_qvarlengtharray.cpp | 29 ++++++++++++++++++++++ tests/auto/corelib/tools/qvector/qvector.pro | 2 ++ tests/auto/corelib/tools/qvector/tst_qvector.cpp | 28 +++++++++++++++++++++ 15 files changed, 186 insertions(+) diff --git a/src/corelib/tools/qlinkedlist.h b/src/corelib/tools/qlinkedlist.h index 996a50fd1b..8970d39be0 100644 --- a/src/corelib/tools/qlinkedlist.h +++ b/src/corelib/tools/qlinkedlist.h @@ -275,6 +275,13 @@ private: template Q_DECLARE_TYPEINFO_BODY(QLinkedList, Q_MOVABLE_TYPE|Q_RELOCATABLE_TYPE); +#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201606 +template ::value_type, + QtPrivate::IfIsInputIterator = true> +QLinkedList(InputIterator, InputIterator) -> QLinkedList; +#endif + template inline QLinkedList::~QLinkedList() { diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h index 70bbc11ad2..471e16886f 100644 --- a/src/corelib/tools/qlist.h +++ b/src/corelib/tools/qlist.h @@ -446,6 +446,13 @@ private: inline int count_impl(const T &, QListData::ArrayCompatibleLayout) const; }; +#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201606 +template ::value_type, + QtPrivate::IfIsInputIterator = true> +QList(InputIterator, InputIterator) -> QList; +#endif + #if defined(Q_CC_BOR) template Q_INLINE_TEMPLATE T &QList::Node::t() diff --git a/src/corelib/tools/qset.h b/src/corelib/tools/qset.h index 19d6982133..2e72832185 100644 --- a/src/corelib/tools/qset.h +++ b/src/corelib/tools/qset.h @@ -269,6 +269,13 @@ private: } }; +#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201606 +template ::value_type, + QtPrivate::IfIsInputIterator = true> +QSet(InputIterator, InputIterator) -> QSet; +#endif + template uint qHash(const QSet &key, uint seed = 0) noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed))) diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index 2f62526076..253d05ba2b 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -265,6 +265,13 @@ private: } }; +#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201606 +template ::value_type, + QtPrivate::IfIsInputIterator = true> +QVarLengthArray(InputIterator, InputIterator) -> QVarLengthArray; +#endif + template Q_INLINE_TEMPLATE QVarLengthArray::QVarLengthArray(int asize) : s(asize) { diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index ebe6527d89..62fbdb4a2a 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -326,6 +326,13 @@ private: class AlignmentDummy { Data header; T array[1]; }; }; +#if defined(__cpp_deduction_guides) && __cpp_deduction_guides >= 201606 +template ::value_type, + QtPrivate::IfIsInputIterator = true> +QVector(InputIterator, InputIterator) -> QVector; +#endif + #ifdef Q_CC_MSVC // behavior change: an object of POD type constructed with an initializer of the form () // will be default-initialized diff --git a/tests/auto/corelib/tools/qlinkedlist/qlinkedlist.pro b/tests/auto/corelib/tools/qlinkedlist/qlinkedlist.pro index 378c574eb0..c53d553d6d 100644 --- a/tests/auto/corelib/tools/qlinkedlist/qlinkedlist.pro +++ b/tests/auto/corelib/tools/qlinkedlist/qlinkedlist.pro @@ -1,5 +1,7 @@ CONFIG += testcase TARGET = tst_qlinkedlist QT = core testlib +qtConfig(c++14): CONFIG += c++14 +qtConfig(c++1z): CONFIG += c++1z SOURCES = tst_qlinkedlist.cpp DEFINES -= QT_NO_LINKED_LIST diff --git a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp index deb3b68c5c..df42b5dea9 100644 --- a/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp +++ b/tests/auto/corelib/tools/qlinkedlist/tst_qlinkedlist.cpp @@ -187,6 +187,7 @@ private slots: void countInt() const; void countMovable() const; void countComplex() const; + void cpp17ctad() const; void emptyInt() const; void emptyMovable() const; void emptyComplex() const; @@ -594,6 +595,33 @@ void tst_QLinkedList::countComplex() const QCOMPARE(liveCount, Complex::getLiveCount()); } +void tst_QLinkedList::cpp17ctad() const +{ +#ifdef __cpp_deduction_guides +#define QVERIFY_IS_LIST_OF(obj, Type) \ + QVERIFY2((std::is_same>::value), \ + QMetaType::typeName(qMetaTypeId())) +#define CHECK(Type, One, Two, Three) \ + do { \ + const Type v[] = {One, Two, Three}; \ + QLinkedList v1 = {One, Two, Three}; \ + QVERIFY_IS_LIST_OF(v1, Type); \ + QLinkedList v2(v1.begin(), v1.end()); \ + QVERIFY_IS_LIST_OF(v2, Type); \ + QLinkedList v3(std::begin(v), std::end(v)); \ + QVERIFY_IS_LIST_OF(v3, Type); \ + } while (false) \ + /*end*/ + CHECK(int, 1, 2, 3); + CHECK(double, 1.0, 2.0, 3.0); + CHECK(QString, QStringLiteral("one"), QStringLiteral("two"), QStringLiteral("three")); +#undef QVERIFY_IS_LIST_OF +#undef CHECK +#else + QSKIP("This test requires C++17 Constructor Template Argument Deduction support enabled in the compiler."); +#endif +} + template void tst_QLinkedList::empty() const { diff --git a/tests/auto/corelib/tools/qlist/qlist.pro b/tests/auto/corelib/tools/qlist/qlist.pro index 47f0140abb..118c607880 100644 --- a/tests/auto/corelib/tools/qlist/qlist.pro +++ b/tests/auto/corelib/tools/qlist/qlist.pro @@ -1,4 +1,6 @@ CONFIG += testcase TARGET = tst_qlist QT = core testlib +qtConfig(c++14): CONFIG += c++14 +qtConfig(c++1z): CONFIG += c++1z SOURCES = $$PWD/tst_qlist.cpp diff --git a/tests/auto/corelib/tools/qlist/tst_qlist.cpp b/tests/auto/corelib/tools/qlist/tst_qlist.cpp index 5a485e88d2..cc9a3a16d1 100644 --- a/tests/auto/corelib/tools/qlist/tst_qlist.cpp +++ b/tests/auto/corelib/tools/qlist/tst_qlist.cpp @@ -310,6 +310,7 @@ private slots: void lastComplex() const; void constFirst() const; void constLast() const; + void cpp17ctad() const; void beginOptimal() const; void beginMovable() const; void beginComplex() const; @@ -864,6 +865,33 @@ void tst_QList::constLast() const QVERIFY(listCopy.isSharedWith(list)); } +void tst_QList::cpp17ctad() const +{ +#ifdef __cpp_deduction_guides +#define QVERIFY_IS_LIST_OF(obj, Type) \ + QVERIFY2((std::is_same>::value), \ + QMetaType::typeName(qMetaTypeId())) +#define CHECK(Type, One, Two, Three) \ + do { \ + const Type v[] = {One, Two, Three}; \ + QList v1 = {One, Two, Three}; \ + QVERIFY_IS_LIST_OF(v1, Type); \ + QList v2(v1.begin(), v1.end()); \ + QVERIFY_IS_LIST_OF(v2, Type); \ + QList v3(std::begin(v), std::end(v)); \ + QVERIFY_IS_LIST_OF(v3, Type); \ + } while (false) \ + /*end*/ + CHECK(int, 1, 2, 3); + CHECK(double, 1.0, 2.0, 3.0); + CHECK(QString, QStringLiteral("one"), QStringLiteral("two"), QStringLiteral("three")); +#undef QVERIFY_IS_LIST_OF +#undef CHECK +#else + QSKIP("This test requires C++17 Constructor Template Argument Deduction support enabled in the compiler."); +#endif +} + template void tst_QList::last() const { diff --git a/tests/auto/corelib/tools/qset/qset.pro b/tests/auto/corelib/tools/qset/qset.pro index d0c6337147..3ae4bc4805 100644 --- a/tests/auto/corelib/tools/qset/qset.pro +++ b/tests/auto/corelib/tools/qset/qset.pro @@ -1,6 +1,8 @@ CONFIG += testcase TARGET = tst_qset QT = core testlib +qtConfig(c++14): CONFIG += c++14 +qtConfig(c++1z): CONFIG += c++1z SOURCES = tst_qset.cpp DEFINES -= QT_NO_JAVA_STYLE_ITERATORS diff --git a/tests/auto/corelib/tools/qset/tst_qset.cpp b/tests/auto/corelib/tools/qset/tst_qset.cpp index 31b4c0449e..8a545712a2 100644 --- a/tests/auto/corelib/tools/qset/tst_qset.cpp +++ b/tests/auto/corelib/tools/qset/tst_qset.cpp @@ -54,6 +54,7 @@ private slots: void detach(); void isDetached(); void clear(); + void cpp17ctad(); void remove(); void contains(); void containsSet(); @@ -325,6 +326,33 @@ void tst_QSet::clear() QVERIFY(set2.size() == 0); } +void tst_QSet::cpp17ctad() +{ +#ifdef __cpp_deduction_guides +#define QVERIFY_IS_SET_OF(obj, Type) \ + QVERIFY2((std::is_same>::value), \ + QMetaType::typeName(qMetaTypeId())) +#define CHECK(Type, One, Two, Three) \ + do { \ + const Type v[] = {One, Two, Three}; \ + QSet v1 = {One, Two, Three}; \ + QVERIFY_IS_SET_OF(v1, Type); \ + QSet v2(v1.begin(), v1.end()); \ + QVERIFY_IS_SET_OF(v2, Type); \ + QSet v3(std::begin(v), std::end(v)); \ + QVERIFY_IS_SET_OF(v3, Type); \ + } while (false) \ + /*end*/ + CHECK(int, 1, 2, 3); + CHECK(double, 1.0, 2.0, 3.0); + CHECK(QString, QStringLiteral("one"), QStringLiteral("two"), QStringLiteral("three")); +#undef QVERIFY_IS_SET_OF +#undef CHECK +#else + QSKIP("This test requires C++17 Constructor Template Argument Deduction support enabled in the compiler."); +#endif +} + void tst_QSet::remove() { QSet set1; diff --git a/tests/auto/corelib/tools/qvarlengtharray/qvarlengtharray.pro b/tests/auto/corelib/tools/qvarlengtharray/qvarlengtharray.pro index 108fb33db5..14b2bc213b 100644 --- a/tests/auto/corelib/tools/qvarlengtharray/qvarlengtharray.pro +++ b/tests/auto/corelib/tools/qvarlengtharray/qvarlengtharray.pro @@ -1,4 +1,6 @@ CONFIG += testcase TARGET = tst_qvarlengtharray QT = core testlib +qtConfig(c++14): CONFIG += c++14 +qtConfig(c++1z): CONFIG += c++1z SOURCES = tst_qvarlengtharray.cpp diff --git a/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp b/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp index 3d90644aa3..a1d0100f96 100644 --- a/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp +++ b/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp @@ -44,6 +44,7 @@ private slots: void realloc(); void reverseIterators(); void count(); + void cpp17ctad(); void first(); void last(); void squeeze(); @@ -717,6 +718,34 @@ void tst_QVarLengthArray::count() } } +void tst_QVarLengthArray::cpp17ctad() +{ +#ifdef __cpp_deduction_guides +#define QVERIFY_IS_VLA_OF(obj, Type) \ + QVERIFY2((std::is_same>::value), \ + QMetaType::typeName(qMetaTypeId())) +#define CHECK(Type, One, Two, Three) \ + do { \ + const Type v[] = {One, Two, Three}; \ + QVarLengthArray v1 = {One, Two, Three}; \ + QVERIFY_IS_VLA_OF(v1, Type); \ + QVarLengthArray v2(v1.begin(), v1.end()); \ + QVERIFY_IS_VLA_OF(v2, Type); \ + QVarLengthArray v3(std::begin(v), std::end(v)); \ + QVERIFY_IS_VLA_OF(v3, Type); \ + } while (false) \ + /*end*/ + CHECK(int, 1, 2, 3); + CHECK(double, 1.0, 2.0, 3.0); + CHECK(QString, QStringLiteral("one"), QStringLiteral("two"), QStringLiteral("three")); +#undef QVERIFY_IS_VLA_OF +#undef CHECK +#else + QSKIP("This test requires C++17 Constructor Template Argument Deduction support enabled in the compiler."); +#endif + +} + void tst_QVarLengthArray::first() { // append some items, make sure it stays sane diff --git a/tests/auto/corelib/tools/qvector/qvector.pro b/tests/auto/corelib/tools/qvector/qvector.pro index b9a4ae747b..689d9b87a2 100644 --- a/tests/auto/corelib/tools/qvector/qvector.pro +++ b/tests/auto/corelib/tools/qvector/qvector.pro @@ -1,5 +1,7 @@ CONFIG += testcase qtConfig(c++11): CONFIG += c++11 +qtConfig(c++14): CONFIG += c++14 +qtConfig(c++1z): CONFIG += c++1z TARGET = tst_qvector QT = core testlib SOURCES = $$PWD/tst_qvector.cpp diff --git a/tests/auto/corelib/tools/qvector/tst_qvector.cpp b/tests/auto/corelib/tools/qvector/tst_qvector.cpp index 05b5579d64..08d5a8cd50 100644 --- a/tests/auto/corelib/tools/qvector/tst_qvector.cpp +++ b/tests/auto/corelib/tools/qvector/tst_qvector.cpp @@ -230,6 +230,7 @@ private slots: void countInt() const; void countMovable() const; void countCustom() const; + void cpp17ctad() const; void data() const; void emptyInt() const; void emptyMovable() const; @@ -914,6 +915,33 @@ void tst_QVector::countCustom() const QCOMPARE(instancesCount, Custom::counter.loadAcquire()); } +void tst_QVector::cpp17ctad() const +{ +#ifdef __cpp_deduction_guides +#define QVERIFY_IS_VECTOR_OF(obj, Type) \ + QVERIFY2((std::is_same>::value), \ + QMetaType::typeName(qMetaTypeId())) +#define CHECK(Type, One, Two, Three) \ + do { \ + const Type v[] = {One, Two, Three}; \ + QVector v1 = {One, Two, Three}; \ + QVERIFY_IS_VECTOR_OF(v1, Type); \ + QVector v2(v1.begin(), v1.end()); \ + QVERIFY_IS_VECTOR_OF(v2, Type); \ + QVector v3(std::begin(v), std::end(v)); \ + QVERIFY_IS_VECTOR_OF(v3, Type); \ + } while (false) \ + /*end*/ + CHECK(int, 1, 2, 3); + CHECK(double, 1.0, 2.0, 3.0); + CHECK(QString, QStringLiteral("one"), QStringLiteral("two"), QStringLiteral("three")); +#undef QVERIFY_IS_VECTOR_OF +#undef CHECK +#else + QSKIP("This test requires C++17 Constructor Template Argument Deduction support enabled in the compiler."); +#endif +} + void tst_QVector::data() const { QVector myvec; -- cgit v1.2.3 From 1563c38a4b46ad427907b544508e888efbac9772 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 3 Aug 2019 09:27:49 +0300 Subject: QPoint/F: add transposed() For symmetry with QSize and QRect and because there were some users in Qt. Port those users. [ChangeLog][QtCore][QPoint/QPointF] Added transposed(). Change-Id: If4f23dbcf7d67983a6b1885e0d1d538115b49e2b Reviewed-by: Edward Welbourne Reviewed-by: Lars Knoll --- src/corelib/tools/qpoint.cpp | 23 +++++++++++++++++++++++ src/corelib/tools/qpoint.h | 4 ++++ src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 6 +++--- src/plugins/platforms/xcb/qxcbwindow.cpp | 2 +- tests/auto/corelib/tools/qpoint/tst_qpoint.cpp | 7 +++++++ tests/auto/corelib/tools/qpointf/tst_qpointf.cpp | 7 +++++++ 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qpoint.cpp b/src/corelib/tools/qpoint.cpp index e98eaac4fc..432fb33297 100644 --- a/src/corelib/tools/qpoint.cpp +++ b/src/corelib/tools/qpoint.cpp @@ -138,6 +138,17 @@ QT_BEGIN_NAMESPACE \sa y(), setX() */ +/*! + \fn QPoint::transposed() const + \since 5.14 + + Returns a point with x and y coordinates exchanged: + \code + QPoint{1, 2}.transposed() // {2, 1} + \endcode + + \sa x(), y(), setX(), setY() +*/ /*! \fn int &QPoint::rx() @@ -582,6 +593,18 @@ QDebug operator<<(QDebug dbg, const QPointF &p) \sa y(), setX() */ +/*! + \fn QPointF::transposed() const + \since 5.14 + + Returns a point with x and y coordinates exchanged: + \code + QPointF{1.0, 2.0}.transposed() // {2.0, 1.0} + \endcode + + \sa x(), y(), setX(), setY() +*/ + /*! \fn qreal& QPointF::rx() diff --git a/src/corelib/tools/qpoint.h b/src/corelib/tools/qpoint.h index 34df673b93..fe952f95da 100644 --- a/src/corelib/tools/qpoint.h +++ b/src/corelib/tools/qpoint.h @@ -64,6 +64,8 @@ public: Q_DECL_CONSTEXPR inline int manhattanLength() const; + Q_DECL_CONSTEXPR QPoint transposed() const noexcept { return {yp, xp}; } + Q_DECL_RELAXED_CONSTEXPR inline int &rx(); Q_DECL_RELAXED_CONSTEXPR inline int &ry(); @@ -232,6 +234,8 @@ public: Q_DECL_RELAXED_CONSTEXPR inline void setX(qreal x); Q_DECL_RELAXED_CONSTEXPR inline void setY(qreal y); + Q_DECL_CONSTEXPR QPointF transposed() const noexcept { return {yp, xp}; } + Q_DECL_RELAXED_CONSTEXPR inline qreal &rx(); Q_DECL_RELAXED_CONSTEXPR inline qreal &ry(); diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp index bc09fe2f91..4639185416 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp @@ -997,8 +997,8 @@ void QXcbConnection::xi2HandleScrollEvent(void *event, ScrollingDevice &scrollin QPoint global(fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y)); Qt::KeyboardModifiers modifiers = keyboard()->translateModifiers(xiDeviceEvent->mods.effective); if (modifiers & Qt::AltModifier) { - std::swap(angleDelta.rx(), angleDelta.ry()); - std::swap(rawDelta.rx(), rawDelta.ry()); + angleDelta = angleDelta.transposed(); + rawDelta = rawDelta.transposed(); } qCDebug(lcQpaXInputEvents) << "scroll wheel @ window pos" << local << "delta px" << rawDelta << "angle" << angleDelta; QWindowSystemInterface::handleWheelEvent(platformWindow->window(), xiDeviceEvent->time, local, global, rawDelta, angleDelta, modifiers); @@ -1024,7 +1024,7 @@ void QXcbConnection::xi2HandleScrollEvent(void *event, ScrollingDevice &scrollin QPoint global(fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y)); Qt::KeyboardModifiers modifiers = keyboard()->translateModifiers(xiDeviceEvent->mods.effective); if (modifiers & Qt::AltModifier) - std::swap(angleDelta.rx(), angleDelta.ry()); + angleDelta = angleDelta.transposed(); qCDebug(lcQpaXInputEvents) << "scroll wheel (button" << xiDeviceEvent->detail << ") @ window pos" << local << "delta angle" << angleDelta; QWindowSystemInterface::handleWheelEvent(platformWindow->window(), xiDeviceEvent->time, local, global, QPoint(), angleDelta, modifiers); } diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 1d1a4eea1c..97da420798 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -1908,7 +1908,7 @@ void QXcbWindow::handleButtonPressEvent(int event_x, int event_y, int root_x, in else if (detail == 7) angleDelta.setX(-120); if (modifiers & Qt::AltModifier) - std::swap(angleDelta.rx(), angleDelta.ry()); + angleDelta = angleDelta.transposed(); QWindowSystemInterface::handleWheelEvent(window(), timestamp, local, global, QPoint(), angleDelta, modifiers); #if QT_CONFIG(xcb_xinput) } diff --git a/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp b/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp index 8e184f3ef3..f25492d2db 100644 --- a/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp +++ b/tests/auto/corelib/tools/qpoint/tst_qpoint.cpp @@ -42,6 +42,8 @@ private slots: void getSet_data(); void getSet(); + void transposed(); + void rx(); void ry(); @@ -126,6 +128,11 @@ void tst_QPoint::getSet() QCOMPARE(point.y(), i); } +void tst_QPoint::transposed() +{ + QCOMPARE(QPoint(1, 2).transposed(), QPoint(2, 1)); +} + void tst_QPoint::rx() { const QPoint originalPoint(-1, 0); diff --git a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp index d4ccdf7ba6..e78a8e3082 100644 --- a/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp +++ b/tests/auto/corelib/tools/qpointf/tst_qpointf.cpp @@ -46,6 +46,8 @@ private slots: void getSet_data(); void getSet(); + void transposed(); + void rx(); void ry(); @@ -154,6 +156,11 @@ void tst_QPointF::getSet() QCOMPARE(point.y(), r); } +void tst_QPointF::transposed() +{ + QCOMPARE(QPointF(1, 2).transposed(), QPointF(2, 1)); +} + void tst_QPointF::rx() { const QPointF originalPoint(-1, 0); -- cgit v1.2.3 From 213f7d1b1f89a55cc10fb8355cac87927d038f00 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 12 Jul 2019 14:41:55 +0200 Subject: Require opt-out for using QLinkedList Now that all QLinkedList uses are removed from Qt, make sure QT_NO_LINKED_LIST is set by default for Qt modules, so new modules don't need to explicitly specify it in their .qmake.conf. Modules can still opt out of the QLinkedList ban by adding DEFINES -= QT_NO_LINKED_LIST to their .qmake.conf. Change-Id: I34b7ab1c009795649bb7b4f1e7493556eafadd5a Reviewed-by: Volker Hilsheimer Reviewed-by: Lars Knoll --- .qmake.conf | 1 - mkspecs/features/qt_build_config.prf | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 0bfd71facc..5c64c10981 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -2,7 +2,6 @@ load(qt_build_config) CONFIG += warning_clean DEFINES += QT_NO_JAVA_STYLE_ITERATORS -DEFINES += QT_NO_LINKED_LIST QT_SOURCE_TREE = $$PWD QT_BUILD_TREE = $$shadowed($$PWD) diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf index 8a7c9c28d3..745b09a885 100644 --- a/mkspecs/features/qt_build_config.prf +++ b/mkspecs/features/qt_build_config.prf @@ -108,6 +108,10 @@ macos: CONFIG += testcase_no_bundle # Override MinGW's definition in _mingw.h mingw: DEFINES += WINVER=0x0601 _WIN32_WINNT=0x0601 +# By default, the following features should not be used in Qt's own +# implementation, so declare them invisible to Qt modules. +DEFINES += QT_NO_LINKED_LIST # QLinkedList + defineTest(qtBuildPart) { bp = $$eval($$upper($$section(_QMAKE_CONF_, /, -2, -2))_BUILD_PARTS) isEmpty(bp): bp = $$QT_BUILD_PARTS -- cgit v1.2.3 From 5f1f0fe0b71c19be041ec85a9449584649c9fc18 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 26 Jun 2019 20:56:40 +0200 Subject: QDateTimePrivate: inherit QSharedData and other cleanups Don't manage the ref-count yourself, as this requires the code to use the QAtomic copy ctor, which we want to remove going forward. Using QSharedData, we can let the compiler write the code for us. Since 'ref' this way moves to the first spot in the list of effective members, creating a 4B hole between itself and 'msecs', swap 'status' and 'msecs' to fill the hole: offset: 0 8 16 24 | | | | without v v v v adj.mnt: |*R*| | msecs | S | U | TZ.... before: | msecs | S | U |*R*| | TZ... after: |*R*| S | msecs | U | | TZ.... This keeps the padding out of the critical first word, which improves latency. That said, for accessing the members the old layout surely was optimal. This layout optimizes copies and pessimizes access to 'msecs' on 32-bit platforms without the Critical Word First optimization. Requires adjustments to tst_toolsupport and the qhooks version. Also default members using NSDMI, consequently drop the manual default ctor. Change-Id: I3c48e68694ad29b28a13aa47ea0f283fae52edd7 Reviewed-by: Edward Welbourne Reviewed-by: Thiago Macieira --- src/corelib/global/qhooks.cpp | 2 +- src/corelib/time/qdatetime_p.h | 18 +++++------------- tests/auto/other/toolsupport/tst_toolsupport.cpp | 6 +++--- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/src/corelib/global/qhooks.cpp b/src/corelib/global/qhooks.cpp index 020dee3710..79f9b7d6c2 100644 --- a/src/corelib/global/qhooks.cpp +++ b/src/corelib/global/qhooks.cpp @@ -67,7 +67,7 @@ quintptr Q_CORE_EXPORT qtHookData[] = { // The required sizes and offsets are tested in tests/auto/other/toolsupport. // When this fails and the change was intentional, adjust the test and // adjust this value here. - 17 + 18 }; Q_STATIC_ASSERT(QHooks::LastHookIndex == sizeof(qtHookData) / sizeof(qtHookData[0])); diff --git a/src/corelib/time/qdatetime_p.h b/src/corelib/time/qdatetime_p.h index 6e4120d762..f4f00a8b9b 100644 --- a/src/corelib/time/qdatetime_p.h +++ b/src/corelib/time/qdatetime_p.h @@ -56,7 +56,7 @@ #include "qplatformdefs.h" #include "QtCore/qatomic.h" #include "QtCore/qdatetime.h" -#include "QtCore/qpair.h" +#include "QtCore/qshareddata.h" #if QT_CONFIG(timezone) #include "qtimezone.h" @@ -64,7 +64,7 @@ QT_BEGIN_NAMESPACE -class QDateTimePrivate +class QDateTimePrivate : public QSharedData { public: // forward the declarations from QDateTime (this makes them public) @@ -110,13 +110,6 @@ public: DaylightMask = SetToStandardTime | SetToDaylightTime }; - QDateTimePrivate() : m_msecs(0), - m_status(StatusFlag(Qt::LocalTime << TimeSpecShift)), - m_offsetFromUtc(0), - ref(0) - { - } - static QDateTime::Data create(const QDate &toDate, const QTime &toTime, Qt::TimeSpec toSpec, int offsetSeconds); @@ -124,10 +117,9 @@ public: static QDateTime::Data create(const QDate &toDate, const QTime &toTime, const QTimeZone & timeZone); #endif // timezone - qint64 m_msecs; - StatusFlags m_status; - int m_offsetFromUtc; - mutable QAtomicInt ref; + StatusFlags m_status = StatusFlag(Qt::LocalTime << TimeSpecShift); + qint64 m_msecs = 0; + int m_offsetFromUtc = 0; #if QT_CONFIG(timezone) QTimeZone m_timeZone; #endif // timezone diff --git a/tests/auto/other/toolsupport/tst_toolsupport.cpp b/tests/auto/other/toolsupport/tst_toolsupport.cpp index 8c129adaf3..ab7bca8322 100644 --- a/tests/auto/other/toolsupport/tst_toolsupport.cpp +++ b/tests/auto/other/toolsupport/tst_toolsupport.cpp @@ -135,11 +135,11 @@ void tst_toolsupport::offsets_data() { QTest::newRow("QDateTimePrivate::m_msecs") - << pmm_to_offsetof(&QDateTimePrivate::m_msecs) << 0 << 0; + << pmm_to_offsetof(&QDateTimePrivate::m_msecs) << 8 << 8; QTest::newRow("QDateTimePrivate::m_status") - << pmm_to_offsetof(&QDateTimePrivate::m_status) << 8 << 8; + << pmm_to_offsetof(&QDateTimePrivate::m_status) << 4 << 4; QTest::newRow("QDateTimePrivate::m_offsetFromUtc") - << pmm_to_offsetof(&QDateTimePrivate::m_offsetFromUtc) << 12 << 12; + << pmm_to_offsetof(&QDateTimePrivate::m_offsetFromUtc) << 16 << 16; QTest::newRow("QDateTimePrivate::m_timeZone") << pmm_to_offsetof(&QDateTimePrivate::m_timeZone) << 20 << 24; } -- cgit v1.2.3 From 80179e3b7e91bbe4d129b95eab8c6350e26f5569 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 19 Jun 2019 23:01:15 +0200 Subject: Port users of QDBusAbstractInterface::(async)callWithArgumentList() to new variadic (async)Call() Except in the auto-generated files. Required to add a cast operator from QDBusObjectPath to QVariant, as the variadic call() uses QVariant(arg) instead of QVariant::fromValue(arg). [ChangeLog][QtDBus][QDBusObjectPath] Added explicit cast operator to QVariant. Change-Id: I3f3004f7b9300a6340d27488f5b97981cbab3c24 Reviewed-by: Thiago Macieira --- src/dbus/qdbusextratypes.cpp | 8 ++++++++ src/dbus/qdbusextratypes.h | 3 ++- .../genericunix/dbusmenu/qdbusmenuregistrarproxy_p.h | 16 ++++------------ .../genericunix/dbustray/qxdgnotificationproxy_p.h | 20 +++++--------------- src/plugins/bearer/connman/qconnmanservice_linux.cpp | 9 +++------ .../bearer/linux_common/qofonoservice_linux.cpp | 15 +++++---------- 6 files changed, 27 insertions(+), 44 deletions(-) diff --git a/src/dbus/qdbusextratypes.cpp b/src/dbus/qdbusextratypes.cpp index a0b121a1a3..06fbd6062e 100644 --- a/src/dbus/qdbusextratypes.cpp +++ b/src/dbus/qdbusextratypes.cpp @@ -166,6 +166,14 @@ void QDBusSignature::doCheck() \sa path() */ +/*! + \since 5.14 + + Implicit cast to QVariant. Equivalent to calling + QVariant::fromValue() with this object as argument. +*/ +QDBusObjectPath::operator QVariant() const { return QVariant::fromValue(*this); } + /*! \class QDBusSignature \inmodule QtDBus diff --git a/src/dbus/qdbusextratypes.h b/src/dbus/qdbusextratypes.h index fdac917947..6bb12ffe49 100644 --- a/src/dbus/qdbusextratypes.h +++ b/src/dbus/qdbusextratypes.h @@ -54,7 +54,6 @@ QT_BEGIN_NAMESPACE - class Q_DBUS_EXPORT QDBusObjectPath { QString m_path; @@ -75,6 +74,8 @@ public: inline QString path() const { return m_path; } + operator QVariant() const; + private: void doCheck(); }; diff --git a/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuregistrarproxy_p.h b/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuregistrarproxy_p.h index c92de0a140..cffc080f87 100644 --- a/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuregistrarproxy_p.h +++ b/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuregistrarproxy_p.h @@ -92,15 +92,11 @@ public: public Q_SLOTS: // METHODS QDBusPendingReply GetMenuForWindow(uint windowId) { - QList argumentList; - argumentList << QVariant::fromValue(windowId); - return asyncCallWithArgumentList(QStringLiteral("GetMenuForWindow"), argumentList); + return asyncCall(QStringLiteral("GetMenuForWindow"), windowId); } QDBusReply GetMenuForWindow(uint windowId, QDBusObjectPath &menuObjectPath) { - QList argumentList; - argumentList << QVariant::fromValue(windowId); - QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetMenuForWindow"), argumentList); + QDBusMessage reply = call(QDBus::Block, QStringLiteral("GetMenuForWindow"), windowId); QList arguments = reply.arguments(); if (reply.type() == QDBusMessage::ReplyMessage && arguments.count() == 2) menuObjectPath = qdbus_cast(arguments.at(1)); @@ -109,16 +105,12 @@ public Q_SLOTS: // METHODS QDBusPendingReply<> RegisterWindow(uint windowId, const QDBusObjectPath &menuObjectPath) { - QList argumentList; - argumentList << QVariant::fromValue(windowId) << QVariant::fromValue(menuObjectPath); - return asyncCallWithArgumentList(QStringLiteral("RegisterWindow"), argumentList); + return asyncCall(QStringLiteral("RegisterWindow"), windowId, menuObjectPath); } QDBusPendingReply<> UnregisterWindow(uint windowId) { - QList argumentList; - argumentList << QVariant::fromValue(windowId); - return asyncCallWithArgumentList(QStringLiteral("UnregisterWindow"), argumentList); + return asyncCall(QStringLiteral("UnregisterWindow"), windowId); } }; diff --git a/src/platformsupport/themes/genericunix/dbustray/qxdgnotificationproxy_p.h b/src/platformsupport/themes/genericunix/dbustray/qxdgnotificationproxy_p.h index ab99ea65dd..2194a787eb 100644 --- a/src/platformsupport/themes/genericunix/dbustray/qxdgnotificationproxy_p.h +++ b/src/platformsupport/themes/genericunix/dbustray/qxdgnotificationproxy_p.h @@ -95,26 +95,21 @@ public: public Q_SLOTS: // METHODS inline QDBusPendingReply<> closeNotification(uint id) { - QList argumentList; - argumentList << QVariant::fromValue(id); - return asyncCallWithArgumentList(QStringLiteral("CloseNotification"), argumentList); + return asyncCall(QStringLiteral("CloseNotification"), id); } inline QDBusPendingReply getCapabilities() { - QList argumentList; - return asyncCallWithArgumentList(QStringLiteral("GetCapabilities"), argumentList); + return asyncCall(QStringLiteral("GetCapabilities")); } inline QDBusPendingReply getServerInformation() { - QList argumentList; - return asyncCallWithArgumentList(QStringLiteral("GetServerInformation"), argumentList); + return asyncCall(QStringLiteral("GetServerInformation")); } inline QDBusReply getServerInformation(QString &vendor, QString &version, QString &specVersion) { - QList argumentList; - QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("GetServerInformation"), argumentList); + QDBusMessage reply = call(QDBus::Block, QStringLiteral("GetServerInformation")); if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 4) { vendor = qdbus_cast(reply.arguments().at(1)); version = qdbus_cast(reply.arguments().at(2)); @@ -129,12 +124,7 @@ public Q_SLOTS: // METHODS const QVariantMap &hints, int timeout) { qCDebug(qLcTray) << appName << replacesId << appIcon << summary << body << actions << hints << timeout; - QList argumentList; - argumentList << QVariant::fromValue(appName) << QVariant::fromValue(replacesId) << - QVariant::fromValue(appIcon) << QVariant::fromValue(summary) << - QVariant::fromValue(body) << QVariant::fromValue(actions) << - QVariant::fromValue(hints) << QVariant::fromValue(timeout); - return asyncCallWithArgumentList(QStringLiteral("Notify"), argumentList); + return asyncCall(QStringLiteral("Notify"), appName, replacesId, appIcon, summary, body, actions, hints, timeout); } Q_SIGNALS: diff --git a/src/plugins/bearer/connman/qconnmanservice_linux.cpp b/src/plugins/bearer/connman/qconnmanservice_linux.cpp index 3659eb7740..35d9c40680 100644 --- a/src/plugins/bearer/connman/qconnmanservice_linux.cpp +++ b/src/plugins/bearer/connman/qconnmanservice_linux.cpp @@ -80,8 +80,7 @@ QConnmanManagerInterface::QConnmanManagerInterface( QObject *parent) qDBusRegisterMetaType(); qDBusRegisterMetaType(); - QList argumentList; - QDBusPendingReply props_reply = asyncCallWithArgumentList(QLatin1String("GetProperties"), argumentList); + QDBusPendingReply props_reply = asyncCall(QLatin1String("GetProperties")); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(props_reply, this); QObject::connect(watcher,SIGNAL(finished(QDBusPendingCallWatcher*)), @@ -106,8 +105,7 @@ QConnmanManagerInterface::QConnmanManagerInterface( QObject *parent) QLatin1String("TechnologyRemoved"), this,SLOT(technologyRemoved(QDBusObjectPath))); - QList argumentList2; - QDBusPendingReply serv_reply = asyncCallWithArgumentList(QLatin1String("GetServices"), argumentList2); + QDBusPendingReply serv_reply = asyncCall(QLatin1String("GetServices")); QDBusPendingCallWatcher *watcher2 = new QDBusPendingCallWatcher(serv_reply, this); QObject::connect(watcher2,SIGNAL(finished(QDBusPendingCallWatcher*)), @@ -289,8 +287,7 @@ QConnmanServiceInterface::QConnmanServiceInterface(const QString &dbusPathName,Q CONNMAN_SERVICE_INTERFACE, QDBusConnection::systemBus(), parent) { - QList argumentList; - QDBusPendingReply props_reply = asyncCallWithArgumentList(QLatin1String("GetProperties"), argumentList); + QDBusPendingReply props_reply = asyncCall(QLatin1String("GetProperties")); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(props_reply, this); diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp index 5d72731bc4..05f9b3ca17 100644 --- a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp +++ b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp @@ -99,8 +99,7 @@ QOfonoManagerInterface::~QOfonoManagerInterface() QStringList QOfonoManagerInterface::getModems() { if (modemList.isEmpty()) { - QList argumentList; - QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetModems"), argumentList); + QDBusPendingReply reply = call(QDBus::Block, QLatin1String("GetModems")); reply.waitForFinished(); if (!reply.isError()) { const auto modems = reply.value(); @@ -184,8 +183,7 @@ QStringList QOfonoModemInterface::interfaces() QVariantMap QOfonoModemInterface::getProperties() { if (propertiesMap.isEmpty()) { - QList argumentList; - QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = call(QDBus::Block, QLatin1String("GetProperties")); if (!reply.isError()) { propertiesMap = reply.value(); } @@ -233,8 +231,7 @@ QVariant QOfonoNetworkRegistrationInterface::getProperty(const QString &property QVariantMap QOfonoNetworkRegistrationInterface::getProperties() { if (propertiesMap.isEmpty()) { - QList argumentList; - QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = call(QDBus::Block, QLatin1String("GetProperties")); reply.waitForFinished(); if (!reply.isError()) { propertiesMap = reply.value(); @@ -306,8 +303,7 @@ QVariant QOfonoDataConnectionManagerInterface::getProperty(const QString &proper QVariantMap &QOfonoDataConnectionManagerInterface::getProperties() { if (propertiesMap.isEmpty()) { - QList argumentList; - QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = call(QDBus::Block, QLatin1String("GetProperties")); if (!reply.isError()) { propertiesMap = reply.value(); } @@ -343,8 +339,7 @@ QOfonoConnectionContextInterface::~QOfonoConnectionContextInterface() QVariantMap QOfonoConnectionContextInterface::getProperties() { if (propertiesMap.isEmpty()) { - QList argumentList; - QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = call(QDBus::Block, QLatin1String("GetProperties")); if (!reply.isError()) { propertiesMap = reply.value(); } -- cgit v1.2.3 From 81554aca81ec4e161ff9fa236e3d76fa950fec97 Mon Sep 17 00:00:00 2001 From: Nils Jeisecke Date: Wed, 17 Jul 2019 21:05:44 +0200 Subject: QTextDocumentLayout: Fix regression in table column width calculation 87748cc18e6a0d9e65933aa2462dc78ab8f9f22e introduces rounding of column widths to avoid table border render artifacts. For variable columns we must make sure that the maxWidth (= unwrapped content width) is not rounded down as this can cause erroneous wrapping of the content at rendering time. Fixes: QTBUG-43589 Change-Id: Iee155702a12374116a63050e5025df91f097a8e4 Reviewed-by: Shawn Rutledge --- src/gui/text/qtextdocumentlayout.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index a1b21b111b..783a7b083d 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -1707,6 +1707,12 @@ recalc_minmax_widths: if (maxW == QFIXED_MAX) continue; + // for variable columns the maxWidth will later be considered as the + // column width (column width = content width). We must avoid that the + // pixel-alignment rounding step floors this value and thus the text + // rendering later erroneously wraps the content. + maxW = maxW.ceil(); + widthToDistribute = maxW; for (int n = 0; n < cspan; ++n) { const int col = i + n; -- cgit v1.2.3 From 4c2587b6bcb4054e21baa7d5fa5f1b280ccbe80b Mon Sep 17 00:00:00 2001 From: Nils Jeisecke Date: Wed, 16 Dec 2015 17:20:49 +0100 Subject: QTextDocumentLayout: Refactor pagination logic for borders The new helper class BorderPaginator encapsulates the existing pagination logic for drawing correctly clipped borders on all pages a cell appears on. This will allow reuse of that logic for drawing CSS-style borders. Change-Id: I47ed4a8802513aef30d97f14591c7d4716bfdbb8 Reviewed-by: Shawn Rutledge --- src/gui/text/qtextdocumentlayout.cpp | 52 +++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index 783a7b083d..6ca1e408ed 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -798,12 +798,45 @@ QFixed QTextDocumentLayoutPrivate::blockIndent(const QTextBlockFormat &blockForm return QFixed::fromReal(indent * scale * document->indentWidth()); } +struct BorderPaginator +{ + BorderPaginator(QTextDocument *document, const QRectF &rect, qreal topMarginAfterPageBreak, qreal bottomMargin, qreal border) : + pageHeight(document->pageSize().height()), + topPage(pageHeight > 0 ? static_cast(rect.top() / pageHeight) : 0), + bottomPage(pageHeight > 0 ? static_cast((rect.bottom() + border) / pageHeight) : 0), + rect(rect), + topMarginAfterPageBreak(topMarginAfterPageBreak), + bottomMargin(bottomMargin), border(border) + {} + + QRectF clipRect(int page) const + { + QRectF clipped = rect.toRect(); + + if (topPage != bottomPage) { + clipped.setTop(qMax(clipped.top(), page * pageHeight + topMarginAfterPageBreak - border)); + clipped.setBottom(qMin(clipped.bottom(), (page + 1) * pageHeight - bottomMargin)); + + if (clipped.bottom() <= clipped.top()) + return QRectF(); + } + + return clipped; + } + + qreal pageHeight; + int topPage; + int bottomPage; + QRectF rect; + qreal topMarginAfterPageBreak; + qreal bottomMargin; + qreal border; +}; + void QTextDocumentLayoutPrivate::drawBorder(QPainter *painter, const QRectF &rect, qreal topMargin, qreal bottomMargin, qreal border, const QBrush &brush, QTextFrameFormat::BorderStyle style) const { - const qreal pageHeight = document->pageSize().height(); - const int topPage = pageHeight > 0 ? static_cast(rect.top() / pageHeight) : 0; - const int bottomPage = pageHeight > 0 ? static_cast((rect.bottom() + border) / pageHeight) : 0; + BorderPaginator paginator(document, rect, topMargin, bottomMargin, border); #ifndef QT_NO_CSSPARSER QCss::BorderStyle cssStyle = static_cast(style + 1); @@ -814,16 +847,11 @@ void QTextDocumentLayoutPrivate::drawBorder(QPainter *painter, const QRectF &rec bool turn_off_antialiasing = !(painter->renderHints() & QPainter::Antialiasing); painter->setRenderHint(QPainter::Antialiasing); - for (int i = topPage; i <= bottomPage; ++i) { - QRectF clipped = rect.toRect(); - - if (topPage != bottomPage) { - clipped.setTop(qMax(clipped.top(), i * pageHeight + topMargin - border)); - clipped.setBottom(qMin(clipped.bottom(), (i + 1) * pageHeight - bottomMargin)); + for (int i = paginator.topPage; i <= paginator.bottomPage; ++i) { + QRectF clipped = paginator.clipRect(i); + if (!clipped.isValid()) + continue; - if (clipped.bottom() <= clipped.top()) - continue; - } #ifndef QT_NO_CSSPARSER qDrawEdge(painter, clipped.left(), clipped.top(), clipped.left() + border, clipped.bottom() + border, 0, 0, QCss::LeftEdge, cssStyle, brush); qDrawEdge(painter, clipped.left() + border, clipped.top(), clipped.right() + border, clipped.top() + border, 0, 0, QCss::TopEdge, cssStyle, brush); -- cgit v1.2.3 From 1880fba971ed8ae8e813829ff3668132371e88a7 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Mon, 29 Jul 2019 14:16:00 +0200 Subject: Android: Fix QMenu on 64 bit The platform menu tags in Qt are actually the pointers, so they are 64-bit values when the build is 64 bit. Since menu IDs in Android are 32-bit ints, we cannot cast back and forth like we do. To fix this, we add a separate hash of menu IDs to allow mapping between Java and C++. For easier book-keeping, we add the hashes to the menu bar and menu classes, so that we can easily recycle old menu IDs when they are no longer in use. Note that overriding the tag on the menus by calling setTag() will not work, since Qt Widgets will later override it again by setting it back to the menu's pointer. [ChangeLog][Android] Fixed an issue where menus would not work on 64 bit builds. Task-number: QTBUG-76036 Change-Id: Icaa1d235d4166331669139251656ea0159e85195 Reviewed-by: Frederik Gladhorn --- src/plugins/platforms/android/androidjnimenu.cpp | 12 +++--- .../platforms/android/qandroidplatformmenu.cpp | 43 +++++++++++++++++++--- .../platforms/android/qandroidplatformmenu.h | 5 +++ .../platforms/android/qandroidplatformmenubar.cpp | 34 ++++++++++++++++- .../platforms/android/qandroidplatformmenubar.h | 6 +++ 5 files changed, 88 insertions(+), 12 deletions(-) diff --git a/src/plugins/platforms/android/androidjnimenu.cpp b/src/plugins/platforms/android/androidjnimenu.cpp index 6f548aba52..e9359def0f 100644 --- a/src/plugins/platforms/android/androidjnimenu.cpp +++ b/src/plugins/platforms/android/androidjnimenu.cpp @@ -225,10 +225,11 @@ namespace QtAndroidMenu QString itemText = removeAmpersandEscapes(item->text()); jstring jtext = env->NewString(reinterpret_cast(itemText.data()), itemText.length()); + jint menuId = platformMenu->menuId(item); jobject menuItem = env->CallObjectMethod(menu, addMenuItemMethodID, menuNoneValue, - int(item->tag()), + menuId, order++, jtext); env->DeleteLocalRef(jtext); @@ -262,10 +263,11 @@ namespace QtAndroidMenu QString itemText = removeAmpersandEscapes(item->text()); jstring jtext = env->NewString(reinterpret_cast(itemText.data()), itemText.length()); + jint menuId = visibleMenuBar->menuId(item); jobject menuItem = env->CallObjectMethod(menu, addMenuItemMethodID, menuNoneValue, - int(item->tag()), + menuId, order++, jtext); env->DeleteLocalRef(jtext); @@ -290,7 +292,7 @@ namespace QtAndroidMenu const QAndroidPlatformMenuBar::PlatformMenusType &menus = visibleMenuBar->menus(); if (menus.size() == 1) { // Expanded menu - QAndroidPlatformMenuItem *item = static_cast(menus.front()->menuItemForTag(menuId)); + QAndroidPlatformMenuItem *item = static_cast(menus.front()->menuItemForId(menuId)); if (item) { if (item->menu()) { showContextMenu(item->menu(), QRect(), env); @@ -301,7 +303,7 @@ namespace QtAndroidMenu } } } else { - QAndroidPlatformMenu *menu = static_cast(visibleMenuBar->menuForTag(menuId)); + QAndroidPlatformMenu *menu = static_cast(visibleMenuBar->menuForId(menuId)); if (menu) showContextMenu(menu, QRect(), env); } @@ -341,7 +343,7 @@ namespace QtAndroidMenu static jboolean onContextItemSelected(JNIEnv *env, jobject /*thiz*/, jint menuId, jboolean checked) { QMutexLocker lock(&visibleMenuMutex); - QAndroidPlatformMenuItem * item = static_cast(visibleMenu->menuItemForTag(menuId)); + QAndroidPlatformMenuItem * item = static_cast(visibleMenu->menuItemForId(menuId)); if (item) { if (item->menu()) { showContextMenu(item->menu(), QRect(), env); diff --git a/src/plugins/platforms/android/qandroidplatformmenu.cpp b/src/plugins/platforms/android/qandroidplatformmenu.cpp index d9cecebf2c..7ce603831f 100644 --- a/src/plugins/platforms/android/qandroidplatformmenu.cpp +++ b/src/plugins/platforms/android/qandroidplatformmenu.cpp @@ -62,6 +62,7 @@ void QAndroidPlatformMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatform m_menuItems.end(), static_cast(before)), static_cast(menuItem)); + m_menuHash.insert(m_nextMenuId++, menuItem); } void QAndroidPlatformMenu::removeMenuItem(QPlatformMenuItem *menuItem) @@ -72,6 +73,21 @@ void QAndroidPlatformMenu::removeMenuItem(QPlatformMenuItem *menuItem) static_cast(menuItem)); if (it != m_menuItems.end()) m_menuItems.erase(it); + + { + int maxId = -1; + QHash::iterator it = m_menuHash.begin(); + while (it != m_menuHash.end()) { + if (it.value() == menuItem) { + it = m_menuHash.erase(it); + } else { + maxId = qMax(maxId, it.key()); + ++it; + } + } + + m_nextMenuId = maxId + 1; + } } void QAndroidPlatformMenu::syncMenuItem(QPlatformMenuItem *menuItem) @@ -139,6 +155,16 @@ void QAndroidPlatformMenu::showPopup(const QWindow *parentWindow, const QRect &t QtAndroidMenu::showContextMenu(this, targetRect, QJNIEnvironmentPrivate()); } +QPlatformMenuItem *QAndroidPlatformMenu::menuItemForTag(quintptr tag) const +{ + for (QAndroidPlatformMenuItem *menuItem : m_menuItems) { + if (menuItem->tag() == tag) + return menuItem; + } + + return nullptr; +} + QPlatformMenuItem *QAndroidPlatformMenu::menuItemAt(int position) const { if (position < m_menuItems.size()) @@ -146,13 +172,20 @@ QPlatformMenuItem *QAndroidPlatformMenu::menuItemAt(int position) const return 0; } -QPlatformMenuItem *QAndroidPlatformMenu::menuItemForTag(quintptr tag) const +int QAndroidPlatformMenu::menuId(QPlatformMenuItem *menu) const { - for (QPlatformMenuItem *menuItem : m_menuItems) { - if (menuItem->tag() == tag) - return menuItem; + QHash::const_iterator it; + for (it = m_menuHash.constBegin(); it != m_menuHash.constEnd(); ++it) { + if (it.value() == menu) + return it.key(); } - return 0; + + return -1; +} + +QPlatformMenuItem *QAndroidPlatformMenu::menuItemForId(int menuId) const +{ + return m_menuHash.value(menuId); } QAndroidPlatformMenu::PlatformMenuItemsType QAndroidPlatformMenu::menuItems() const diff --git a/src/plugins/platforms/android/qandroidplatformmenu.h b/src/plugins/platforms/android/qandroidplatformmenu.h index 47e650f2d7..b1d6a88787 100644 --- a/src/plugins/platforms/android/qandroidplatformmenu.h +++ b/src/plugins/platforms/android/qandroidplatformmenu.h @@ -73,6 +73,8 @@ public: QPlatformMenuItem *menuItemAt(int position) const override; QPlatformMenuItem *menuItemForTag(quintptr tag) const override; + QPlatformMenuItem *menuItemForId(int menuId) const; + int menuId(QPlatformMenuItem *menuItem) const; PlatformMenuItemsType menuItems() const; QMutex *menuItemsMutex(); @@ -84,6 +86,9 @@ private: bool m_enabled; bool m_isVisible; QMutex m_menuItemsMutex; + + int m_nextMenuId = 0; + QHash m_menuHash; }; QT_END_NAMESPACE diff --git a/src/plugins/platforms/android/qandroidplatformmenubar.cpp b/src/plugins/platforms/android/qandroidplatformmenubar.cpp index 35930f0628..7c6299b4b7 100644 --- a/src/plugins/platforms/android/qandroidplatformmenubar.cpp +++ b/src/plugins/platforms/android/qandroidplatformmenubar.cpp @@ -61,6 +61,7 @@ void QAndroidPlatformMenuBar::insertMenu(QPlatformMenu *menu, QPlatformMenu *bef m_menus.end(), static_cast(before)), static_cast(menu)); + m_menuHash.insert(m_nextMenuId++, menu); } void QAndroidPlatformMenuBar::removeMenu(QPlatformMenu *menu) @@ -69,6 +70,30 @@ void QAndroidPlatformMenuBar::removeMenu(QPlatformMenu *menu) m_menus.erase(std::find(m_menus.begin(), m_menus.end(), static_cast(menu))); + + int maxId = -1; + QHash::iterator it = m_menuHash.begin(); + while (it != m_menuHash.end()) { + if (it.value() == menu) { + it = m_menuHash.erase(it); + } else { + maxId = qMax(maxId, it.key()); + ++it; + } + } + + m_nextMenuId = maxId + 1; +} + +int QAndroidPlatformMenuBar::menuId(QPlatformMenu *menu) const +{ + QHash::const_iterator it; + for (it = m_menuHash.constBegin(); it != m_menuHash.constEnd(); ++it) { + if (it.value() == menu) + return it.key(); + } + + return -1; } void QAndroidPlatformMenuBar::syncMenu(QPlatformMenu *menu) @@ -86,12 +111,17 @@ void QAndroidPlatformMenuBar::handleReparent(QWindow *newParentWindow) QPlatformMenu *QAndroidPlatformMenuBar::menuForTag(quintptr tag) const { - for (QPlatformMenu *menu : m_menus) { + for (QAndroidPlatformMenu *menu : m_menus) { if (menu->tag() == tag) return menu; } - return 0; + return nullptr; +} + +QPlatformMenu *QAndroidPlatformMenuBar::menuForId(int menuId) const +{ + return m_menuHash.value(menuId); } QWindow *QAndroidPlatformMenuBar::parentWindow() const diff --git a/src/plugins/platforms/android/qandroidplatformmenubar.h b/src/plugins/platforms/android/qandroidplatformmenubar.h index f5935b8177..81a26c72f4 100644 --- a/src/plugins/platforms/android/qandroidplatformmenubar.h +++ b/src/plugins/platforms/android/qandroidplatformmenubar.h @@ -43,6 +43,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -60,6 +61,8 @@ public: void syncMenu(QPlatformMenu *menu) override; void handleReparent(QWindow *newParentWindow) override; QPlatformMenu *menuForTag(quintptr tag) const override; + QPlatformMenu *menuForId(int menuId) const; + int menuId(QPlatformMenu *menu) const; QWindow *parentWindow() const override; PlatformMenusType menus() const; @@ -69,6 +72,9 @@ private: PlatformMenusType m_menus; QWindow *m_parentWindow; QMutex m_menusListMutex; + + int m_nextMenuId = 0; + QHash m_menuHash; }; QT_END_NAMESPACE -- cgit v1.2.3 From 79e0effead13f60676bb5170fe92615d981827e7 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Wed, 7 Aug 2019 15:25:49 +0200 Subject: Fix crash in QTextDocument::clearUndoRedoStacks() When calling QTextDocument::clearUndoRedoStacks() with UndoStack, there were two bugs: The first was that we were retrieving the item at "undoState" and deleting this. This is actually the upper limit of the for loop. If the stack does not contain any redos, then it would be == undoStack.size() and we would assert. If there were redos, then we would delete the item at undoState multiple times (actually undoState times). In addition, when the loop exited, we first removed the dangling pointers using remove() and then there was a weird resize() to the new size minus the old undoState. This would either assert because we tried to resize to a negative number, or it would arbitrarily remove items from the stack. [ChangeLog][QtGui][Text] Fixed a crash bug in QTextDocument::clearUndoRedoStacks(QTextDocument::UndoStack). Task-number: QTBUG-69546 Change-Id: I8a93e828ec27970763a2756071fa0b01678d2dcd Reviewed-by: Simon Hausmann Reviewed-by: Konstantin Ritt --- src/gui/text/qtextdocument_p.cpp | 3 +-- tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gui/text/qtextdocument_p.cpp b/src/gui/text/qtextdocument_p.cpp index 66e038122c..059e665d12 100644 --- a/src/gui/text/qtextdocument_p.cpp +++ b/src/gui/text/qtextdocument_p.cpp @@ -1103,12 +1103,11 @@ void QTextDocumentPrivate::clearUndoRedoStacks(QTextDocument::Stacks stacksToCle bool redoCommandsAvailable = undoState != undoStack.size(); if (stacksToClear == QTextDocument::UndoStack && undoCommandsAvailable) { for (int i = 0; i < undoState; ++i) { - QTextUndoCommand c = undoStack.at(undoState); + QTextUndoCommand c = undoStack.at(i); if (c.command & QTextUndoCommand::Custom) delete c.custom; } undoStack.remove(0, undoState); - undoStack.resize(undoStack.size() - undoState); undoState = 0; if (emitSignals) emitUndoAvailable(false); diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 32131352c3..c04c841376 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -188,6 +188,8 @@ private slots: void lineHeightType(); void cssLineHeightMultiplier(); + + void clearUndoRedoStacks(); private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); void buildRegExpData(); @@ -3486,5 +3488,16 @@ void tst_QTextDocument::cssLineHeightMultiplier() } } +void tst_QTextDocument::clearUndoRedoStacks() +{ + QTextDocument doc; + QTextCursor c(&doc); + c.insertText(QStringLiteral("lorem ipsum")); + QVERIFY(doc.isUndoAvailable()); + doc.clearUndoRedoStacks(QTextDocument::UndoStack); // Don't crash + QVERIFY(!doc.isUndoAvailable()); +} + + QTEST_MAIN(tst_QTextDocument) #include "tst_qtextdocument.moc" -- cgit v1.2.3 From a3dec41cf1c8078e11eae90167a0282eba2ce084 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 30 Jul 2019 10:19:44 +0200 Subject: Add attribution for AGLFN We were missing attribution for the AGLFN tables. Task-number: QTBUG-70968 Change-Id: Ib84cbd25c9f7c49611761c9eba16624de5b77dd2 Reviewed-by: Lars Knoll --- src/gui/text/AGLFN_LICENSE.txt | 26 ++++++++++++++++++++++++++ src/gui/text/qt_attribution.json | 17 +++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/gui/text/AGLFN_LICENSE.txt create mode 100644 src/gui/text/qt_attribution.json diff --git a/src/gui/text/AGLFN_LICENSE.txt b/src/gui/text/AGLFN_LICENSE.txt new file mode 100644 index 0000000000..50abffca15 --- /dev/null +++ b/src/gui/text/AGLFN_LICENSE.txt @@ -0,0 +1,26 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. + +Neither the name of Adobe Systems Incorporated nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/src/gui/text/qt_attribution.json b/src/gui/text/qt_attribution.json new file mode 100644 index 0000000000..c3a57267e2 --- /dev/null +++ b/src/gui/text/qt_attribution.json @@ -0,0 +1,17 @@ +[ + { + "Id": "aglfn", + "Name": "Adobe Glyph List For New Fonts", + "QDocModule": "qtgui", + "Description": "Provides standardized names for glyphs.", + "QtUsage": "Used by PDF generator to make it easier for reader applications to resolve the original contents of rendered text.", + "Path": "qfontsubset_agl.cpp", + + "Homepage": "https://github.com/adobe-type-tools/agl-aglfn", + "Version": "1.7", + "License": "BSD 3-Clause \"New\" or \"Revised\" License", + "LicenseId": "BSD-3-Clause", + "LicenseFile": "AGLFN_LICENSE.txt", + "Copyright": "Copyright 2002, 2003, 2005, 2006, 2008, 2010, 2015 Adobe Systems" + } +] -- cgit v1.2.3 From bab8262bce2d63da08d1454377309ca0f1e003a9 Mon Sep 17 00:00:00 2001 From: Alex Blasche Date: Tue, 6 Aug 2019 12:07:45 +0200 Subject: Minor QSet doc cleanup C++11 is a requirement since Qt 5.7. There is no point in highlighting the condition anymore. Change-Id: I0f7d6044db2528d3b5264c324cf71156ec833775 Reviewed-by: Paul Wicking Reviewed-by: Marc Mutz --- src/corelib/tools/qset.qdoc | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/corelib/tools/qset.qdoc b/src/corelib/tools/qset.qdoc index 2e7a5a29ce..084523ed4b 100644 --- a/src/corelib/tools/qset.qdoc +++ b/src/corelib/tools/qset.qdoc @@ -108,9 +108,6 @@ Constructs a set with a copy of each of the elements in the initializer list \a list. - - This function is only available if the program is being - compiled in C++11 mode. */ /*! \fn template template QSet::QSet(InputIterator first, InputIterator last) -- cgit v1.2.3 From 4d9375020c59282b447aad5189c2adb12931e4a1 Mon Sep 17 00:00:00 2001 From: Jason Haslam Date: Tue, 18 Jun 2019 11:51:38 -0600 Subject: macOS: Fix tab button rendering issue This fixes rendering artifacts for the specific case of the first unselected vertical (west) tab button in a tab bar. The popup button gets drawn at the beginning of the tab bar instead of translated to the actual location of the tab. Fixes: QTBUG-76385 Change-Id: I17112c56eabacf34e470314d4cc6b263ba632ec1 Reviewed-by: Timur Pocheptsov --- src/plugins/styles/mac/qmacstyle_mac.mm | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm index 1ff1c22788..07651fc206 100644 --- a/src/plugins/styles/mac/qmacstyle_mac.mm +++ b/src/plugins/styles/mac/qmacstyle_mac.mm @@ -3944,6 +3944,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter CGContextScaleCTM(ctx, -1, 1); CGContextTranslateCTM(ctx, -frameRect.left(), 0); } else if (tabDirection == QMacStylePrivate::West && tp == QStyleOptionTab::Beginning) { + CGContextTranslateCTM(ctx, 0, opt->rect.top()); CGContextScaleCTM(ctx, 1, -1); CGContextTranslateCTM(ctx, 0, -frameRect.right()); } else if (tabDirection == QMacStylePrivate::East && tp == QStyleOptionTab::End) { -- cgit v1.2.3 From ca20b449592ed05eca0c476d2fcf5d0851d92c36 Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Tue, 6 Aug 2019 10:50:52 +0300 Subject: A GCC 4.8 build fix Change-Id: Ic128486711118e1124739e8dca30547ab8ba9816 Reviewed-by: Simon Hausmann --- tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp index 5b4a5d30a5..d13c145189 100644 --- a/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +++ b/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp @@ -486,7 +486,7 @@ void tst_QApplication::lastWindowClosed() QPointer dialog = new QDialog; dialog->setWindowTitle(QLatin1String(QTest::currentTestFunction()) + QLatin1String("Dialog")); QVERIFY(dialog->testAttribute(Qt::WA_QuitOnClose)); - QTimer::singleShot(1000, dialog, &QDialog::accept); + QTimer::singleShot(1000, dialog.data(), &QDialog::accept); dialog->exec(); QVERIFY(dialog); QCOMPARE(spy.count(), 0); -- cgit v1.2.3 From 6ac610c79bf7f311ee244d45583eb669ada58781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 31 Jul 2019 15:42:46 +0200 Subject: Allow specifying explicit SDK version on Apple platforms MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This enables building against the latest SDK, while still opting out of features that this SDK normally enables, by lowering the SDK version set in the BUILD_VERSION/VERSION_MIN_MACOSX load command. Change-Id: Id5f13524740bfbf5eda10a5d0c2e3fda04bf3f52 Reviewed-by: Jörg Bornemann Reviewed-by: Morten Johan Sørvig Reviewed-by: Timur Pocheptsov --- mkspecs/features/mac/default_post.prf | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index f34b305d08..60b2eb2117 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -1,5 +1,9 @@ load(default_post) +# Recompute SDK version in case the user set it explicitly +sdk_version = $$QMAKE_MAC_SDK_VERSION +QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion) + contains(TEMPLATE, .*app) { !macx-xcode:if(isEmpty(BUILDS)|build_pass) { # Detect changes to the platform SDK @@ -14,7 +18,7 @@ contains(TEMPLATE, .*app) { !versionAtLeast(QMAKE_MAC_SDK_VERSION, $$QT_MAC_SDK_VERSION_MIN): \ warning("Qt requires at least version $$QT_MAC_SDK_VERSION_MIN of the platform SDK," \ - "you're using $${QMAKE_MAC_SDK_VERSION}. Please upgrade.") + "you're building against version $${QMAKE_MAC_SDK_VERSION}. Please upgrade.") !isEmpty(QT_MAC_SDK_VERSION_MAX) { # For Qt developers only @@ -244,6 +248,11 @@ macx-xcode { QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT} } +!equals(sdk_version, $$QMAKE_MAC_SDK_VERSION) { + # Explicit SDK version has been set, respect that + QMAKE_LFLAGS += -Wl,-sdk_version -Wl,$$sdk_version +} + cache(QMAKE_XCODE_DEVELOPER_PATH, stash) !isEmpty(QMAKE_XCODE_VERSION): \ cache(QMAKE_XCODE_VERSION, stash) -- cgit v1.2.3 From afb326f07109da0035112e6f56e683e37b8a5d72 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 17 Nov 2017 10:59:47 +0100 Subject: Refactor lockedAlphaMapForGlyph Simply return a Glyph pointer and not a QImage to avoid allocating and deleting lots of d pointers for QImage when drawing text. Saves one new/delete pair per glyph drawn and speeds up text drawing by 10% for relatively large glyphs (probably more for smaller ones). The qtext::paintLayoutToPixmap() benchmark shows a 16% improvement in performance with this change. Renamed the method to glyphData(). Change-Id: I7a353de521e4f4321c770fb1ac6043d33f6f332c Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/painting/qpaintengine_raster.cpp | 35 ++++++++++++------ src/gui/text/qfontengine.cpp | 25 ++----------- src/gui/text/qfontengine_p.h | 23 ++++++++---- .../fontdatabases/freetype/qfontengine_ft.cpp | 41 ++++------------------ .../fontdatabases/freetype/qfontengine_ft_p.h | 20 ++--------- 5 files changed, 53 insertions(+), 91 deletions(-) diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp index 096e4a5c5b..885c46e121 100644 --- a/src/gui/painting/qpaintengine_raster.cpp +++ b/src/gui/painting/qpaintengine_raster.cpp @@ -2908,19 +2908,34 @@ bool QRasterPaintEngine::drawCachedGlyphs(int numGlyphs, const glyph_t *glyphs, for (int i = 0; i < numGlyphs; i++) { QFixed spp = fontEngine->subPixelPositionForX(positions[i].x); - QPoint offset; - const QImage *alphaMap = fontEngine->lockedAlphaMapForGlyph(glyphs[i], spp, neededFormat, s->matrix, - &offset); - if (alphaMap == 0 || alphaMap->isNull()) + const QFontEngine::Glyph *alphaMap = fontEngine->glyphData(glyphs[i], spp, neededFormat, s->matrix); + if (!alphaMap) continue; - alphaPenBlt(alphaMap->constBits(), alphaMap->bytesPerLine(), alphaMap->depth(), - qFloor(positions[i].x) + offset.x(), - qRound(positions[i].y) + offset.y(), - alphaMap->width(), alphaMap->height(), + int depth; + int bytesPerLine; + switch (alphaMap->format) { + case QFontEngine::Format_Mono: + depth = 1; + bytesPerLine = ((alphaMap->width + 31) & ~31) >> 3; + break; + case QFontEngine::Format_A8: + depth = 8; + bytesPerLine = (alphaMap->width + 3) & ~3; + break; + case QFontEngine::Format_A32: + depth = 32; + bytesPerLine = alphaMap->width * 4; + break; + default: + Q_UNREACHABLE(); + }; + + alphaPenBlt(alphaMap->data, bytesPerLine, depth, + qFloor(positions[i].x) + alphaMap->x, + qRound(positions[i].y) - alphaMap->y, + alphaMap->width, alphaMap->height, fontEngine->expectsGammaCorrectedBlending()); - - fontEngine->unlockAlphaMapForGlyph(); } } else { diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 5506d88f02..1895ac8283 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -923,29 +923,10 @@ QFixed QFontEngine::subPixelPositionForX(QFixed x) const return subPixelPosition; } -QImage *QFontEngine::lockedAlphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, - QFontEngine::GlyphFormat neededFormat, - const QTransform &t, QPoint *offset) +QFontEngine::Glyph *QFontEngine::glyphData(glyph_t, QFixed, + QFontEngine::GlyphFormat, const QTransform &) { - Q_ASSERT(currentlyLockedAlphaMap.isNull()); - if (neededFormat == Format_None) - neededFormat = Format_A32; - - if (neededFormat != Format_A32) - currentlyLockedAlphaMap = alphaMapForGlyph(glyph, subPixelPosition, t); - else - currentlyLockedAlphaMap = alphaRGBMapForGlyph(glyph, subPixelPosition, t); - - if (offset != 0) - *offset = QPoint(0, 0); - - return ¤tlyLockedAlphaMap; -} - -void QFontEngine::unlockAlphaMapForGlyph() -{ - Q_ASSERT(!currentlyLockedAlphaMap.isNull()); - currentlyLockedAlphaMap = QImage(); + return nullptr; } QImage QFontEngine::alphaMapForGlyph(glyph_t glyph) diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h index 682395ece6..48dcdbeff7 100644 --- a/src/gui/text/qfontengine_p.h +++ b/src/gui/text/qfontengine_p.h @@ -124,6 +124,22 @@ public: }; Q_DECLARE_FLAGS(ShaperFlags, ShaperFlag) + /* Used with the Freetype font engine. We don't cache glyphs that are too large anyway, so we can make this struct rather small */ + struct Glyph { + Glyph() = default; + ~Glyph() { delete [] data; } + short linearAdvance = 0; + unsigned char width = 0; + unsigned char height = 0; + short x = 0; + short y = 0; + short advance = 0; + signed char format = 0; + uchar *data = nullptr; + private: + Q_DISABLE_COPY(Glyph); + }; + virtual ~QFontEngine(); inline Type type() const { return m_type; } @@ -191,11 +207,7 @@ public: virtual QImage alphaMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t); virtual QImage alphaRGBMapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t); virtual QImage bitmapForGlyph(glyph_t, QFixed subPixelPosition, const QTransform &t, const QColor &color = QColor()); - virtual QImage *lockedAlphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, - GlyphFormat neededFormat, - const QTransform &t = QTransform(), - QPoint *offset = 0); - virtual void unlockAlphaMapForGlyph(); + virtual Glyph *glyphData(glyph_t glyph, QFixed subPixelPosition, GlyphFormat neededFormat, const QTransform &t); virtual bool hasInternalCaching() const { return false; } virtual glyph_metrics_t alphaMapBoundingBox(glyph_t glyph, QFixed /*subPixelPosition*/, const QTransform &matrix, GlyphFormat /*format*/) @@ -346,7 +358,6 @@ public: void loadKerningPairs(QFixed scalingFactor); GlyphFormat glyphFormat; - QImage currentlyLockedAlphaMap; int m_subPixelPositionCount; // Number of positions within a single pixel for this cache inline QVariant userData() const { return m_userData; } diff --git a/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp b/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp index ef80d68bfe..e132442e37 100644 --- a/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp +++ b/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp @@ -106,7 +106,7 @@ static bool ft_getSfntTable(void *user_data, uint tag, uchar *buffer, uint *leng return result; } -static QFontEngineFT::Glyph emptyGlyph = {0, 0, 0, 0, 0, 0, 0, 0}; +static QFontEngineFT::Glyph emptyGlyph; static const QFontEngine::HintStyle ftInitialDefaultHintStyle = #ifdef Q_OS_WIN @@ -556,11 +556,6 @@ void QFreetypeFace::addBitmapToPath(FT_GlyphSlot slot, const QFixedPoint &point, slot->bitmap.buffer, slot->bitmap.pitch, slot->bitmap.width, slot->bitmap.rows, path); } -QFontEngineFT::Glyph::~Glyph() -{ - delete [] data; -} - struct LcdFilterDummy { static inline void filterPixel(uchar &, uchar &, uchar &) @@ -1986,11 +1981,10 @@ static inline QImage alphaMapFromGlyphData(QFontEngineFT::Glyph *glyph, QFontEng return img; } -QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixelPosition, - QFontEngine::GlyphFormat neededFormat, - const QTransform &t, QPoint *offset) +QFontEngine::Glyph *QFontEngineFT::glyphData(glyph_t glyphIndex, QFixed subPixelPosition, + QFontEngine::GlyphFormat neededFormat, const QTransform &t) { - Q_ASSERT(currentlyLockedAlphaMap.isNull()); + Q_ASSERT(cacheEnabled); if (isBitmapFont()) neededFormat = Format_Mono; @@ -2000,33 +1994,10 @@ QImage *QFontEngineFT::lockedAlphaMapForGlyph(glyph_t glyphIndex, QFixed subPixe neededFormat = Format_A8; Glyph *glyph = loadGlyphFor(glyphIndex, subPixelPosition, neededFormat, t); - - if (offset != 0 && glyph != 0) - *offset = QPoint(glyph->x, -glyph->y); - - currentlyLockedAlphaMap = alphaMapFromGlyphData(glyph, neededFormat); - - const bool glyphHasGeometry = glyph != nullptr && glyph->height != 0 && glyph->width != 0; - if (!cacheEnabled && glyph != &emptyGlyph) { - currentlyLockedAlphaMap = currentlyLockedAlphaMap.copy(); - delete glyph; - } - - if (!glyphHasGeometry) + if (!glyph || !glyph->width || !glyph->height) return nullptr; - if (currentlyLockedAlphaMap.isNull()) - return QFontEngine::lockedAlphaMapForGlyph(glyphIndex, subPixelPosition, neededFormat, t, offset); - - QImageData *data = currentlyLockedAlphaMap.data_ptr(); - data->is_locked = true; - - return ¤tlyLockedAlphaMap; -} - -void QFontEngineFT::unlockAlphaMapForGlyph() -{ - QFontEngine::unlockAlphaMapForGlyph(); + return glyph; } static inline bool is2dRotation(const QTransform &t) diff --git a/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h b/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h index 109bae86e9..2863d206d2 100644 --- a/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h +++ b/src/platformsupport/fontdatabases/freetype/qfontengine_ft_p.h @@ -129,20 +129,6 @@ private: class QFontEngineFT : public QFontEngine { public: - - /* we don't cache glyphs that are too large anyway, so we can make this struct rather small */ - struct Glyph { - ~Glyph(); - int linearAdvance : 22; - unsigned char width; - unsigned char height; - short x; - short y; - short advance; - signed char format; - uchar *data; - }; - struct GlyphInfo { int linearAdvance; unsigned short width; @@ -241,11 +227,9 @@ private: QFixed subPixelPosition, const QTransform &matrix, QFontEngine::GlyphFormat format) override; - QImage *lockedAlphaMapForGlyph(glyph_t glyph, QFixed subPixelPosition, - GlyphFormat neededFormat, const QTransform &t, - QPoint *offset) override; + Glyph *glyphData(glyph_t glyph, QFixed subPixelPosition, + GlyphFormat neededFormat, const QTransform &t) override; bool hasInternalCaching() const override { return cacheEnabled; } - void unlockAlphaMapForGlyph() override; bool expectsGammaCorrectedBlending() const override; void removeGlyphFromCache(glyph_t glyph) override; -- cgit v1.2.3 From aef0fba3c550915318db5b350892f558ec7e77ff Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Wed, 7 Aug 2019 13:33:41 +0200 Subject: QCocoaMenuLoader: get rid of lastAppSpecificItem MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Look it up when needed instead. Also, simplify our ownership logic - do not retain/autorelease that is already owned by a menu (via its itemArray). Fixes: QTBUG-76523 Change-Id: I60a2ed0d192396baf99eec7b37fa5cc10e5db626 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qcocoamenuloader.mm | 48 ++++++++++++++----------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoamenuloader.mm b/src/plugins/platforms/cocoa/qcocoamenuloader.mm index da0fc5c6a1..d384078e91 100644 --- a/src/plugins/platforms/cocoa/qcocoamenuloader.mm +++ b/src/plugins/platforms/cocoa/qcocoamenuloader.mm @@ -59,7 +59,6 @@ NSMenuItem *aboutItem; NSMenuItem *aboutQtItem; NSMenuItem *hideItem; - NSMenuItem *lastAppSpecificItem; NSMenuItem *servicesItem; NSMenuItem *hideAllOthersItem; NSMenuItem *showAllItem; @@ -118,6 +117,9 @@ [appMenu addItem:[NSMenuItem separatorItem]]; // Preferences + // We'll be adding app specific items after this. The macOS HIG state that, + // "In general, a Preferences menu item should be the first app-specific menu item." + // https://developer.apple.com/macos/human-interface-guidelines/menus/menu-bar-menus/ preferencesItem = [[QCocoaNSMenuItem alloc] init]; preferencesItem.title = @"Preferences…"; preferencesItem.keyEquivalent = @","; @@ -126,11 +128,6 @@ preferencesItem.hidden = YES; [appMenu addItem:preferencesItem]; - // We'll be adding app specific items after this. The macOS HIG state that, - // "In general, a Preferences menu item should be the first app-specific menu item." - // https://developer.apple.com/macos/human-interface-guidelines/menus/menu-bar-menus/ - lastAppSpecificItem = preferencesItem; - [appMenu addItem:[NSMenuItem separatorItem]]; // Services item and menu @@ -194,8 +191,6 @@ [showAllItem release]; [quitItem release]; - [lastAppSpecificItem release]; - [super dealloc]; } @@ -272,25 +267,20 @@ // No reason to create the item if it already exists. for (NSMenuItem *item in appMenu.itemArray) if (qt_objc_cast(item).platformMenuItem == platformItem) - return [[item retain] autorelease]; + return item; // Create an App-Specific menu item, insert it into the menu and return // it as an autorelease item. QCocoaNSMenuItem *item; if (platformItem->isSeparator()) - item = [[QCocoaNSMenuItem separatorItemWithPlatformMenuItem:platformItem] retain]; + item = [QCocoaNSMenuItem separatorItemWithPlatformMenuItem:platformItem]; else - item = [[QCocoaNSMenuItem alloc] initWithPlatformMenuItem:platformItem]; - - const auto location = [appMenu indexOfItem:lastAppSpecificItem]; + item = [[[QCocoaNSMenuItem alloc] initWithPlatformMenuItem:platformItem] autorelease]; - if (!lastAppSpecificItem.separatorItem) - [lastAppSpecificItem release]; - lastAppSpecificItem = item; // Keep track of this for later (i.e., don't release it) + const auto location = [self indexOfLastAppSpecificMenuItem]; + [appMenu insertItem:item atIndex:NSInteger(location) + 1]; - [appMenu insertItem:item atIndex:location + 1]; - - return [[item retain] autorelease]; + return item; } - (void)orderFrontStandardAboutPanel:(id)sender @@ -344,8 +334,24 @@ - (NSArray *)mergeable { // Don't include the quitItem here, since we want it always visible and enabled regardless - // Note that lastAppSpecificItem may be nil, so we can't use @[] here. - return [NSArray arrayWithObjects:preferencesItem, aboutItem, aboutQtItem, lastAppSpecificItem, nil]; + auto items = [NSArray arrayWithObjects:preferencesItem, aboutItem, aboutQtItem, + appMenu.itemArray[[self indexOfLastAppSpecificMenuItem]], nil]; + return items; } +- (NSUInteger)indexOfLastAppSpecificMenuItem +{ + // Either the 'Preferences', which is the first app specific menu item, or something + // else we appended later (thus the reverse order): + const auto location = [appMenu.itemArray indexOfObjectWithOptions:NSEnumerationReverse + passingTest:^BOOL(NSMenuItem *item, NSUInteger, BOOL *) { + if (auto qtItem = qt_objc_cast(item)) + return qtItem != quitItem; + return NO; + }]; + Q_ASSERT(location != NSNotFound); + return location; +} + + @end -- cgit v1.2.3 From c76b86aec64c4098434340ec17a26d7b2a32338e Mon Sep 17 00:00:00 2001 From: Heikki Halmet Date: Sun, 4 Aug 2019 08:42:26 +0300 Subject: BLACKLIST contains_QPointF for msvc-2019 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTBUG-77312 Change-Id: I5197d160d9b3c70b538c2e5a43c31120e1bed5f0 Reviewed-by: Tony Sarajärvi --- tests/auto/gui/painting/qpainterpath/BLACKLIST | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 tests/auto/gui/painting/qpainterpath/BLACKLIST diff --git a/tests/auto/gui/painting/qpainterpath/BLACKLIST b/tests/auto/gui/painting/qpainterpath/BLACKLIST new file mode 100644 index 0000000000..b3e6d3bfe4 --- /dev/null +++ b/tests/auto/gui/painting/qpainterpath/BLACKLIST @@ -0,0 +1,2 @@ +[contains_QPointF] +msvc-2019 -- cgit v1.2.3 From 39e937a538325c4fc40a790496f2a39d28f8eba4 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 2 Aug 2019 09:24:37 +0200 Subject: Fix host architecture detection for canadian cross builds If the host architecture is different from -platform (canadian cross build with -external-hostbindir) then we cannot use QMAKE_HOST.os to deduce the executable extension for that platform, because this value comes from the qmake binary that was pointed to by -external-hostbindir. Move the target name deduction mechanism to the actual configure test .pro files to make sure the right scopes are available, and write the deduced target name to a text file. That text file is read by qtConfTest_architecture to get the right binary to analyze. Fixes: QTBUG-77286 Change-Id: I68b844dd51dbfda6432a4b0dca6331899c82255f Reviewed-by: Kai Koehne --- config.tests/arch/arch.pro | 1 + config.tests/arch/arch_host.pro | 1 + config.tests/arch/write_info.pri | 14 ++++++++++++++ configure.pri | 20 +------------------- 4 files changed, 17 insertions(+), 19 deletions(-) create mode 100644 config.tests/arch/write_info.pri diff --git a/config.tests/arch/arch.pro b/config.tests/arch/arch.pro index 45a7eb33af..c607898b71 100644 --- a/config.tests/arch/arch.pro +++ b/config.tests/arch/arch.pro @@ -1 +1,2 @@ SOURCES = arch.cpp +include(write_info.pri) diff --git a/config.tests/arch/arch_host.pro b/config.tests/arch/arch_host.pro index cefdbc77ef..ea0d1fa572 100644 --- a/config.tests/arch/arch_host.pro +++ b/config.tests/arch/arch_host.pro @@ -1,2 +1,3 @@ option(host_build) SOURCES = arch.cpp +include(write_info.pri) diff --git a/config.tests/arch/write_info.pri b/config.tests/arch/write_info.pri new file mode 100644 index 0000000000..3b55a63f49 --- /dev/null +++ b/config.tests/arch/write_info.pri @@ -0,0 +1,14 @@ +targetinfofile = $$basename(_PRO_FILE_) +targetinfofile ~= s/pro$/target.txt/ + +win32 { + ext = .exe +} else:android { + file_prefix = lib + ext = .so +} else:wasm { + ext = .wasm +} + +content = $${file_prefix}$${TARGET}$${ext} +write_file($$OUT_PWD/$$targetinfofile, content) diff --git a/configure.pri b/configure.pri index e9fd055854..09c34af4ee 100644 --- a/configure.pri +++ b/configure.pri @@ -266,28 +266,10 @@ defineTest(qtConfTest_architecture) { !qtConfTest_compile($${1}): \ error("Could not determine $$eval($${1}.label). See config.log for details.") - host = $$eval($${1}.host) - isEmpty(host): host = false - file_prefix = - ext = - $$host { - equals(QMAKE_HOST.os, Windows): \ - ext = .exe - } else { - win32 { - ext = .exe - } else:android { - file_prefix = lib - ext = .so - } else:wasm { - ext = .wasm - } - } - test = $$eval($${1}.test) output = $$eval($${1}.output) test_out_dir = $$OUT_PWD/$$basename(QMAKE_CONFIG_TESTS_DIR)/$$test - test_out_file = $$test_out_dir/$$file_prefix$$output$$ext + test_out_file = $$test_out_dir/$$cat($$test_out_dir/$${output}.target.txt) exists($$test_out_file): \ content = $$cat($$test_out_file, blob) else: \ -- cgit v1.2.3 From 8664ee610d3d8bb8a2a578a6aa6bfd38afe4fcda Mon Sep 17 00:00:00 2001 From: Nils Jeisecke Date: Thu, 17 Dec 2015 16:34:26 +0100 Subject: QTextDocument: allow css-styling of table cell borders This allows to set the width, style and color of each table cell's edge (left, right, top, bottom). Setting the table's border-collapse mode will disable explicit cell spacing. The basic CSS border collision rules are applied (wider border wins, vertical over horizontal). Setting the table's border width to a value >= 1 and enabling borderCollapse will now draw a simple and clean table grid (1px) with an outer border of the specified width and color. [ChangeLog][QtGui][QTextDocument] Added CSS style table cell border formatting with border-collapse mode. Change-Id: I324d82284802df4c88c13c5b902fec1f4768b67e Fixes: QTBUG-36152 Reviewed-by: Shawn Rutledge --- src/gui/doc/src/richtext.qdoc | 67 ++- src/gui/text/qtextdocumentlayout.cpp | 873 ++++++++++++++++++++++++++++++++--- src/gui/text/qtextformat.cpp | 279 +++++++++++ src/gui/text/qtextformat.h | 110 +++++ 4 files changed, 1269 insertions(+), 60 deletions(-) diff --git a/src/gui/doc/src/richtext.qdoc b/src/gui/doc/src/richtext.qdoc index a8ba076e3d..7c3e4ef362 100644 --- a/src/gui/doc/src/richtext.qdoc +++ b/src/gui/doc/src/richtext.qdoc @@ -1175,12 +1175,75 @@ \row \li \c vertical-align \li baseline | sub | super | middle | top | bottom \li Vertical text alignment. For vertical alignment in text table cells only middle, top, and bottom apply. + \row \li \c border-collapse + \li collapse | separate + \li Border Collapse mode for text tables. If set to collapse, cell-spacing will not be applied. \row \li \c border-color \li - \li Border color for text tables. + \li Border color for text tables and table cells. + \row \li \c border-top-color + \li + \li Top border color for table cells. + \row \li \c border-bottom-color + \li + \li Bottom border color for table cells. + \row \li \c border-left-color + \li + \li Left border color for table cells. + \row \li \c border-right-color + \li + \li Right border color for table cells. \row \li \c border-style \li none | dotted | dashed | dot-dash | dot-dot-dash | solid | double | groove | ridge | inset | outset - \li Border style for text tables. + \li Border style for text tables and table cells. + \row \li \c border-top-style + \li + \li Top border style for table cells. + \row \li \c border-bottom-style + \li + \li Bottom border style for table cells. + \row \li \c border-left-style + \li + \li Left border style for table cells. + \row \li \c border-right-style + \li + \li Right border style for table cells. + \row \li \c border-width + \li px + \li Width of table or cell border + \row \li \c border-top-width + \li px + \li Top border width for table cells. + \row \li \c border-bottom-width + \li px + \li Bottom border width for table cells. + \row \li \c border-left-width + \li px + \li Left border width for table cells. + \row \li \c border-right-width + \li px + \li Right border width for table cells. + \row \li \c border-top + \li px + \li Shorthand for setting top border width, style and color + \row \li \c border-bottom + \li px + \li Shorthand for setting bottom border width, style and color + \row \li \c border-left + \li px + \li Shorthand for setting left border width, style and color + \row \li \c border-right + \li px + \li Shorthand for setting right border width, style and color + \row \li \c border-top + \li px + \li Shorthand for setting top border width, style and color + \row \li \c border-bottom + \li px + \li Shorthand for setting bottom border width, style and color + \row \li \c border + \li px + \li Shorthand for setting all four border's width, style and color \row \li \c background \li [ <'background-color'> || <'background-image'> ] \li Background shorthand property diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp index 6ca1e408ed..b02723c047 100644 --- a/src/gui/text/qtextdocumentlayout.cpp +++ b/src/gui/text/qtextdocumentlayout.cpp @@ -155,6 +155,50 @@ struct QTextLayoutStruct { { if (pageHeight == QFIXED_MAX) return; pageBottom += pageHeight; y = qMax(y, pageBottom - pageHeight + pageBottomMargin + pageTopMargin - frameY); } }; +#ifndef QT_NO_CSSPARSER +// helper struct to collect edge data and priorize edges for border-collapse mode +struct EdgeData { + + enum EdgeClass { + // don't change order, used for comparison + ClassInvalid, // queried (adjacent) cell does not exist + ClassNone, // no explicit border, no grid, no table border + ClassGrid, // 1px grid if drawGrid is true + ClassTableBorder, // an outermost edge + ClassExplicit // set in cell's format + }; + + EdgeData(qreal width, const QTextTableCell &cell, QCss::Edge edge, EdgeClass edgeClass) : + width(width), cell(cell), edge(edge), edgeClass(edgeClass) {} + EdgeData() : + width(0), edge(QCss::NumEdges), edgeClass(ClassInvalid) {} + + // used for priorization with qMax + bool operator< (const EdgeData &other) const { + if (width < other.width) return true; + if (width > other.width) return false; + if (edgeClass < other.edgeClass) return true; + if (edgeClass > other.edgeClass) return false; + if (edge == QCss::TopEdge && other.edge == QCss::BottomEdge) return true; + if (edge == QCss::BottomEdge && other.edge == QCss::TopEdge) return false; + if (edge == QCss::LeftEdge && other.edge == QCss::RightEdge) return true; + return false; + } + bool operator> (const EdgeData &other) const { + return other < *this; + } + + qreal width; + QTextTableCell cell; + QCss::Edge edge; + EdgeClass edgeClass; +}; + +// axisEdgeData is referenced by QTextTableData's inline methods, so predeclare +class QTextTableData; +static inline EdgeData axisEdgeData(QTextTable *table, const QTextTableData *td, const QTextTableCell &cell, QCss::Edge edge); +#endif + class QTextTableData : public QTextFrameData { public: @@ -169,8 +213,19 @@ public: QVector cellVerticalOffsets; + // without borderCollapse, those equal QTextFrameData::border; + // otherwise the widest outermost cell edge will be used + QFixed effectiveLeftBorder; + QFixed effectiveTopBorder; + QFixed effectiveRightBorder; + QFixed effectiveBottomBorder; + QFixed headerHeight; + QFixed borderCell; // 0 if borderCollapse is enabled, QTextFrameData::border otherwise + bool borderCollapse; + bool drawGrid; + // maps from cell index (row + col * rowCount) to child frames belonging to // the specific cell QMultiHash childFrameMap; @@ -182,7 +237,7 @@ public: inline void calcRowPosition(int row) { if (row > 0) - rowPositions[row] = rowPositions.at(row - 1) + heights.at(row - 1) + border + cellSpacing + border; + rowPositions[row] = rowPositions.at(row - 1) + heights.at(row - 1) + borderCell + cellSpacing + borderCell; } QRectF cellRect(const QTextTableCell &cell) const; @@ -198,30 +253,55 @@ public: } } - inline QFixed topPadding(const QTextFormat &format) const +#ifndef QT_NO_CSSPARSER + inline QFixed cellBorderWidth(QTextTable *table, const QTextTableCell &cell, QCss::Edge edge) const { - return paddingProperty(format, QTextFormat::TableCellTopPadding); + qreal rv = axisEdgeData(table, this, cell, edge).width; + if (borderCollapse) + rv /= 2; // each cell has to add half of the border's width to its own padding + return QFixed::fromReal(rv * deviceScale); } +#endif - inline QFixed bottomPadding(const QTextFormat &format) const + inline QFixed topPadding(QTextTable *table, const QTextTableCell &cell) const { - return paddingProperty(format, QTextFormat::TableCellBottomPadding); + return paddingProperty(cell.format(), QTextFormat::TableCellTopPadding) +#ifndef QT_NO_CSSPARSER + + cellBorderWidth(table, cell, QCss::TopEdge) +#endif + ; } - inline QFixed leftPadding(const QTextFormat &format) const + inline QFixed bottomPadding(QTextTable *table, const QTextTableCell &cell) const { - return paddingProperty(format, QTextFormat::TableCellLeftPadding); + return paddingProperty(cell.format(), QTextFormat::TableCellBottomPadding) +#ifndef QT_NO_CSSPARSER + + cellBorderWidth(table, cell, QCss::BottomEdge) +#endif + ; } - inline QFixed rightPadding(const QTextFormat &format) const + inline QFixed leftPadding(QTextTable *table, const QTextTableCell &cell) const { - return paddingProperty(format, QTextFormat::TableCellRightPadding); + return paddingProperty(cell.format(), QTextFormat::TableCellLeftPadding) +#ifndef QT_NO_CSSPARSER + + cellBorderWidth(table, cell, QCss::LeftEdge) +#endif + ; + } + + inline QFixed rightPadding(QTextTable *table, const QTextTableCell &cell) const + { + return paddingProperty(cell.format(), QTextFormat::TableCellRightPadding) +#ifndef QT_NO_CSSPARSER + + cellBorderWidth(table, cell, QCss::RightEdge) +#endif + ; } - inline QFixedPoint cellPosition(const QTextTableCell &cell) const + inline QFixedPoint cellPosition(QTextTable *table, const QTextTableCell &cell) const { - const QTextFormat fmt = cell.format(); - return cellPosition(cell.row(), cell.column()) + QFixedPoint(leftPadding(fmt), topPadding(fmt)); + return cellPosition(cell.row(), cell.column()) + QFixedPoint(leftPadding(table, cell), topPadding(table, cell)); } void updateTableSize(); @@ -257,10 +337,10 @@ static bool isFrameFromInlineObject(QTextFrame *f) void QTextTableData::updateTableSize() { - const QFixed effectiveTopMargin = this->topMargin + border + padding; - const QFixed effectiveBottomMargin = this->bottomMargin + border + padding; - const QFixed effectiveLeftMargin = this->leftMargin + border + padding; - const QFixed effectiveRightMargin = this->rightMargin + border + padding; + const QFixed effectiveTopMargin = this->topMargin + effectiveTopBorder + padding; + const QFixed effectiveBottomMargin = this->bottomMargin + effectiveBottomBorder + padding; + const QFixed effectiveLeftMargin = this->leftMargin + effectiveLeftBorder + padding; + const QFixed effectiveRightMargin = this->rightMargin + effectiveRightBorder + padding; size.height = contentsHeight == -1 ? rowPositions.constLast() + heights.constLast() + padding + border + cellSpacing + effectiveBottomMargin : effectiveTopMargin + contentsHeight + effectiveBottomMargin; @@ -453,6 +533,7 @@ public: const QTextBlock &bl, bool inRootFrame) const; void drawListItem(const QPointF &offset, QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &context, const QTextBlock &bl, const QTextCharFormat *selectionFormat) const; + void drawTableCellBorder(const QRectF &cellRect, QPainter *painter, QTextTable *table, QTextTableData *td, const QTextTableCell &cell) const; void drawTableCell(const QRectF &cellRect, QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &cell_context, QTextTable *table, QTextTableData *td, int r, int c, QTextBlock *cursorBlockNeedingRepaint, QPointF *cursorBlockOffset) const; @@ -719,7 +800,7 @@ QTextDocumentLayoutPrivate::hitTest(QTextTable *table, const QFixedPoint &point, *position = cell.firstPosition(); - HitPoint hp = hitTest(cell.begin(), PointInside, point - td->cellPosition(cell), position, l, accuracy); + HitPoint hp = hitTest(cell.begin(), PointInside, point - td->cellPosition(table, cell), position, l, accuracy); if (hp == PointExact) return hp; @@ -948,6 +1029,31 @@ static void adjustContextSelectionsForCell(QAbstractTextDocumentLayout::PaintCon } } +static bool cellClipTest(QTextTable *table, QTextTableData *td, + const QAbstractTextDocumentLayout::PaintContext &cell_context, + const QTextTableCell &cell, + QRectF cellRect) +{ + if (!cell_context.clip.isValid()) + return false; + + if (td->borderCollapse) { + // we need to account for the cell borders in the clipping test + cellRect.adjust(-axisEdgeData(table, td, cell, QCss::LeftEdge).width / 2, + -axisEdgeData(table, td, cell, QCss::TopEdge).width / 2, + axisEdgeData(table, td, cell, QCss::RightEdge).width / 2, + axisEdgeData(table, td, cell, QCss::BottomEdge).width / 2); + } else { + qreal border = td->border.toReal(); + cellRect.adjust(-border, -border, border, border); + } + + if (!cellRect.intersects(cell_context.clip)) + return true; + + return false; +} + void QTextDocumentLayoutPrivate::drawFrame(const QPointF &offset, QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &context, QTextFrame *frame) const @@ -1010,10 +1116,12 @@ void QTextDocumentLayoutPrivate::drawFrame(const QPointF &offset, QPainter *pain const int tableStartPage = (absYPos / pageHeight).truncate(); const int tableEndPage = ((absYPos + td->size.height) / pageHeight).truncate(); - qreal border = td->border.toReal(); - drawFrameDecoration(painter, frame, fd, context.clip, frameRect); + // for borderCollapse draw frame decoration by drawing the outermost + // cell edges with width = td->border + if (!td->borderCollapse) + drawFrameDecoration(painter, frame, fd, context.clip, frameRect); - // draw the table headers + // draw the repeated table headers for table continuation after page breaks const int headerRowCount = qMin(table->format().headerRowCount(), rows - 1); int page = tableStartPage + 1; while (page <= tableEndPage) { @@ -1027,9 +1135,7 @@ void QTextDocumentLayoutPrivate::drawFrame(const QPointF &offset, QPainter *pain QRectF cellRect = td->cellRect(cell); cellRect.translate(off.x(), headerOffset); - // we need to account for the cell border in the clipping test - int leftAdjust = qMin(qreal(0), 1 - border); - if (cell_context.clip.isValid() && !cellRect.adjusted(leftAdjust, leftAdjust, border, border).intersects(cell_context.clip)) + if (cellClipTest(table, td, cell_context, cell, cellRect)) continue; drawTableCell(cellRect, painter, cell_context, table, td, r, c, &cursorBlockNeedingRepaint, @@ -1069,9 +1175,7 @@ void QTextDocumentLayoutPrivate::drawFrame(const QPointF &offset, QPainter *pain QRectF cellRect = td->cellRect(cell); cellRect.translate(off); - // we need to account for the cell border in the clipping test - int leftAdjust = qMin(qreal(0), 1 - border); - if (cell_context.clip.isValid() && !cellRect.adjusted(leftAdjust, leftAdjust, border, border).intersects(cell_context.clip)) + if (cellClipTest(table, td, cell_context, cell, cellRect)) continue; drawTableCell(cellRect, painter, cell_context, table, td, r, c, &cursorBlockNeedingRepaint, @@ -1108,6 +1212,595 @@ void QTextDocumentLayoutPrivate::drawFrame(const QPointF &offset, QPainter *pain return; } +#ifndef QT_NO_CSSPARSER + +static inline QTextFormat::Property borderPropertyForEdge(QCss::Edge edge) +{ + switch (edge) { + case QCss::TopEdge: + return QTextFormat::TableCellTopBorder; + case QCss::BottomEdge: + return QTextFormat::TableCellBottomBorder; + case QCss::LeftEdge: + return QTextFormat::TableCellLeftBorder; + case QCss::RightEdge: + return QTextFormat::TableCellRightBorder; + default: + Q_UNREACHABLE(); + return QTextFormat::UserProperty; + } +} + +static inline QTextFormat::Property borderStylePropertyForEdge(QCss::Edge edge) +{ + switch (edge) { + case QCss::TopEdge: + return QTextFormat::TableCellTopBorderStyle; + case QCss::BottomEdge: + return QTextFormat::TableCellBottomBorderStyle; + case QCss::LeftEdge: + return QTextFormat::TableCellLeftBorderStyle; + case QCss::RightEdge: + return QTextFormat::TableCellRightBorderStyle; + default: + Q_UNREACHABLE(); + return QTextFormat::UserProperty; + } +} + +static inline QCss::Edge adjacentEdge(QCss::Edge edge) +{ + switch (edge) { + case QCss::TopEdge: + return QCss::BottomEdge; + case QCss::RightEdge: + return QCss::LeftEdge; + case QCss::BottomEdge: + return QCss::TopEdge; + case QCss::LeftEdge: + return QCss::RightEdge; + default: + Q_UNREACHABLE(); + return QCss::NumEdges; + } +} + +static inline bool isSameAxis(QCss::Edge e1, QCss::Edge e2) +{ + return e1 == e2 || e1 == adjacentEdge(e2); +} + +static inline bool isVerticalAxis(QCss::Edge e) +{ + return e % 2 > 0; +} + +static inline QTextTableCell adjacentCell(QTextTable *table, const QTextTableCell &cell, + QCss::Edge edge) +{ + int dc = 0; + int dr = 0; + + switch (edge) { + case QCss::LeftEdge: + dc = -1; + break; + case QCss::RightEdge: + dc = cell.columnSpan(); + break; + case QCss::TopEdge: + dr = -1; + break; + case QCss::BottomEdge: + dr = cell.rowSpan(); + break; + default: + Q_UNREACHABLE(); + break; + } + + // get sibling cell + int col = cell.column() + dc; + int row = cell.row() + dr; + + if (col < 0 || row < 0 || col >= table->columns() || row >= table->rows()) + return QTextTableCell(); + else + return table->cellAt(cell.row() + dr, cell.column() + dc); +} + +// returns true if the specified edges of both cells +// are "one the same line" aka axis. +// +// | C0 +// |-----|-----|----|----- < "axis" +// | C1 | C2 | C3 | C4 +// +// cell edge competingCell competingEdge result +// C0 Left C1 Left true +// C0 Left C2 Left false +// C0 Bottom C2 Top true +// C0 Bottom C4 Left INVALID +static inline bool sharesAxis(const QTextTableCell &cell, QCss::Edge edge, + const QTextTableCell &competingCell, QCss::Edge competingCellEdge) +{ + Q_ASSERT(isVerticalAxis(edge) == isVerticalAxis(competingCellEdge)); + + switch (edge) { + case QCss::TopEdge: + return cell.row() == + competingCell.row() + (competingCellEdge == QCss::BottomEdge ? competingCell.rowSpan() : 0); + case QCss::BottomEdge: + return cell.row() + cell.rowSpan() == + competingCell.row() + (competingCellEdge == QCss::TopEdge ? 0 : competingCell.rowSpan()); + case QCss::LeftEdge: + return cell.column() == + competingCell.column() + (competingCellEdge == QCss::RightEdge ? competingCell.columnSpan() : 0); + case QCss::RightEdge: + return cell.column() + cell.columnSpan() == + competingCell.column() + (competingCellEdge == QCss::LeftEdge ? 0 : competingCell.columnSpan()); + default: + Q_UNREACHABLE(); + return false; + } +} + +// returns the applicable EdgeData for the given cell and edge. +// this is either set explicitly by the cell's format, an activated grid +// or the general table border width for outermost edges. +static inline EdgeData cellEdgeData(QTextTable *table, const QTextTableData *td, + const QTextTableCell &cell, QCss::Edge edge) +{ + if (!cell.isValid()) { + // e.g. non-existing adjacent cell + return EdgeData(); + } + + QTextTableCellFormat f = cell.format().toTableCellFormat(); + if (f.hasProperty(borderStylePropertyForEdge(edge))) { + // border style is set + double width = 3; // default to 3 like browsers do + if (f.hasProperty(borderPropertyForEdge(edge))) + width = f.property(borderPropertyForEdge(edge)).toDouble(); + return EdgeData(width, cell, edge, EdgeData::ClassExplicit); + } else if (td->drawGrid) { + const bool outermost = + (edge == QCss::LeftEdge && cell.column() == 0) || + (edge == QCss::TopEdge && cell.row() == 0) || + (edge == QCss::RightEdge && cell.column() + cell.columnSpan() >= table->columns()) || + (edge == QCss::BottomEdge && cell.row() + cell.rowSpan() >= table->rows()); + + if (outermost) { + qreal border = table->format().border(); + if (border > 1.0) { + // table border + return EdgeData(border, cell, edge, EdgeData::ClassTableBorder); + } + } + // 1px clean grid + return EdgeData(1.0, cell, edge, EdgeData::ClassGrid); + } + else { + return EdgeData(0, cell, edge, EdgeData::ClassNone); + } +} + +// returns the EdgeData with the larger width of either the cell's edge its adjacent cell's edge +static inline EdgeData axisEdgeData(QTextTable *table, const QTextTableData *td, + const QTextTableCell &cell, QCss::Edge edge) +{ + Q_ASSERT(cell.isValid()); + + EdgeData result = cellEdgeData(table, td, cell, edge); + if (!td->borderCollapse) + return result; + + QTextTableCell ac = adjacentCell(table, cell, edge); + result = qMax(result, cellEdgeData(table, td, ac, adjacentEdge(edge))); + + bool mustCheckThirdCell = false; + if (ac.isValid()) { + /* if C0 and C3 don't share the left/top axis, we must + * also check C1. + * + * C0 and C4 don't share the left axis so we have + * to take the top edge of C1 (T1) into account + * because this might be wider than C0's bottom + * edge (B0). For the sake of simplicity we skip + * checking T2 and T3. + * + * | C0 + * |-----|-----|----|----- + * | C1 | C2 | C3 | C4 + * + * width(T4) = max(T4, B0, T1) (T2 and T3 won't be checked) + */ + switch (edge) { + case QCss::TopEdge: + case QCss::BottomEdge: + mustCheckThirdCell = !sharesAxis(cell, QCss::LeftEdge, ac, QCss::LeftEdge); + break; + case QCss::LeftEdge: + case QCss::RightEdge: + mustCheckThirdCell = !sharesAxis(cell, QCss::TopEdge, ac, QCss::TopEdge); + break; + default: + Q_UNREACHABLE(); + break; + } + } + + if (mustCheckThirdCell) + result = qMax(result, cellEdgeData(table, td, adjacentCell(table, ac, adjacentEdge(edge)), edge)); + + return result; +} + +// checks an edge's joined competing edge according to priority rules and +// adjusts maxCompetingEdgeData and maxOrthogonalEdgeData +static inline void checkJoinedEdge(QTextTable *table, const QTextTableData *td, const QTextTableCell &cell, + QCss::Edge competingEdge, + const EdgeData &edgeData, + bool couldHaveContinuation, + EdgeData *maxCompetingEdgeData, + EdgeData *maxOrthogonalEdgeData) +{ + EdgeData competingEdgeData = axisEdgeData(table, td, cell, competingEdge); + + if (competingEdgeData > edgeData) { + *maxCompetingEdgeData = competingEdgeData; + } else if (competingEdgeData.width == edgeData.width) { + if ((isSameAxis(edgeData.edge, competingEdge) && couldHaveContinuation) + || (!isVerticalAxis(edgeData.edge) && isVerticalAxis(competingEdge)) /* both widths are equal, vertical edge has priority */ ) { + *maxCompetingEdgeData = competingEdgeData; + } + } + + if (maxOrthogonalEdgeData && competingEdgeData.width > maxOrthogonalEdgeData->width) + *maxOrthogonalEdgeData = competingEdgeData; +} + +// the offset to make adjacent edges overlap in border collapse mode +static inline qreal collapseOffset(const QTextDocumentLayoutPrivate *p, const EdgeData &w) +{ + return p->scaleToDevice(w.width) / 2.0; +} + +// returns the offset that must be applied to the edge's +// anchor (start point or end point) to avoid overlapping edges. +// +// Example 1: +// 2 +// 2 +// 11111144444444 4 = top edge of cell, 4 pixels width +// 3 3 = right edge of cell, 3 pixels width +// 3 cell 4 +// +// cell 4's top border is the widest border and will be +// drawn with horiz. offset = -3/2 whereas its left border +// of width 3 will be drawn with vert. offset = +4/2. +// +// Example 2: +// 2 +// 2 +// 11111143333333 +// 4 +// 4 cell 4 +// +// cell 4's left border is the widest and will be drawn +// with vert. offset = -3/2 whereas its top border +// of of width 3 will be drawn with hor. offset = +4/2. +// +// couldHaveContinuation: true for "end" anchor of an edge: +// C +// AAAAABBBBBB +// D +// width(A) == width(B) we consider B to be a continuation of A, so that B wins +// and will be painted. A would only be painted including the right anchor if +// there was no edge B (due to a rowspan or the axis C-D being the table's right +// border). +// +// ignoreEdgesAbove: true if an egde (left, right or top) for the first row +// after a table page break should be painted. In this case the edges of the +// row above must be ignored. +static inline double prioritizedEdgeAnchorOffset(const QTextDocumentLayoutPrivate *p, + QTextTable *table, const QTextTableData *td, + const QTextTableCell &cell, + const EdgeData &edgeData, + QCss::Edge orthogonalEdge, + bool couldHaveContinuation, + bool ignoreEdgesAbove) +{ + EdgeData maxCompetingEdgeData; + EdgeData maxOrthogonalEdgeData; + QTextTableCell competingCell; + + // reference scenario for the inline comments: + // - edgeData being the top "T0" edge of C0 + // - right anchor is '+', orthogonal edge is "R0" + // B C3 R|L C2 B + // ------+------ + // T C0 R|L C1 T + + // C0: T0/B3 + // this is "edgeData" + + // C0: R0/L1 + checkJoinedEdge(table, td, cell, orthogonalEdge, edgeData, false, + &maxCompetingEdgeData, &maxOrthogonalEdgeData); + + if (td->borderCollapse) { + // C1: T1/B2 + if (!isVerticalAxis(edgeData.edge) || !ignoreEdgesAbove) { + competingCell = adjacentCell(table, cell, orthogonalEdge); + if (competingCell.isValid()) { + checkJoinedEdge(table, td, competingCell, edgeData.edge, edgeData, couldHaveContinuation, + &maxCompetingEdgeData, 0); + } + } + + // C3: R3/L2 + if (edgeData.edge != QCss::TopEdge || !ignoreEdgesAbove) { + competingCell = adjacentCell(table, cell, edgeData.edge); + if (competingCell.isValid() && sharesAxis(cell, orthogonalEdge, competingCell, orthogonalEdge)) { + checkJoinedEdge(table, td, competingCell, orthogonalEdge, edgeData, false, + &maxCompetingEdgeData, &maxOrthogonalEdgeData); + } + } + } + + // wider edge has priority + bool hasPriority = edgeData > maxCompetingEdgeData; + + if (td->borderCollapse) { + qreal offset = collapseOffset(p, maxOrthogonalEdgeData); + return hasPriority ? -offset : offset; + } + else + return hasPriority ? 0 : p->scaleToDevice(maxOrthogonalEdgeData.width); +} + +// draw one edge of the given cell +// +// these options are for pagination / pagebreak handling: +// +// forceHeaderRow: true for all rows directly below a (repeated) header row. +// if the table has headers the first row after a page break must check against +// the last table header's row, not its actual predecessor. +// +// adjustTopAnchor: false for rows that are a continuation of a row after a page break +// only evaluated for left/right edges +// +// adjustBottomAnchor: false for rows that will continue after a page break +// only evaluated for left/right edges +// +// ignoreEdgesAbove: true if a row starts on top of the page and the +// bottom edges of the prior row can therefore be ignored. +static inline +void drawCellBorder(const QTextDocumentLayoutPrivate *p, QPainter *painter, + QTextTable *table, const QTextTableData *td, const QTextTableCell &cell, + const QRectF &borderRect, QCss::Edge edge, + int forceHeaderRow, bool adjustTopAnchor, bool adjustBottomAnchor, + bool ignoreEdgesAbove) +{ + QPointF p1, p2; + qreal wh = 0; + qreal wv = 0; + EdgeData edgeData = axisEdgeData(table, td, cell, edge); + + if (edgeData.width == 0) + return; + + QTextTableCellFormat fmt = edgeData.cell.format().toTableCellFormat(); + QTextFrameFormat::BorderStyle borderStyle = QTextFrameFormat::BorderStyle_None; + QBrush brush; + + if (edgeData.edgeClass != EdgeData::ClassExplicit && td->drawGrid) { + borderStyle = QTextFrameFormat::BorderStyle_Solid; + brush = table->format().borderBrush(); + } + else { + switch (edgeData.edge) { + case QCss::TopEdge: + brush = fmt.topBorderBrush(); + borderStyle = fmt.topBorderStyle(); + break; + case QCss::BottomEdge: + brush = fmt.bottomBorderBrush(); + borderStyle = fmt.bottomBorderStyle(); + break; + case QCss::LeftEdge: + brush = fmt.leftBorderBrush(); + borderStyle = fmt.leftBorderStyle(); + break; + case QCss::RightEdge: + brush = fmt.rightBorderBrush(); + borderStyle = fmt.rightBorderStyle(); + break; + default: + Q_UNREACHABLE(); + break; + } + } + + if (borderStyle == QTextFrameFormat::BorderStyle_None) + return; + + // assume black if not explicit brush is set + if (brush.style() == Qt::NoBrush) + brush = Qt::black; + + QTextTableCell cellOrHeader = cell; + if (forceHeaderRow != -1) + cellOrHeader = table->cellAt(forceHeaderRow, cell.column()); + + // adjust start and end anchors (e.g. left/right for top) according to priority rules + switch (edge) { + case QCss::TopEdge: + wv = p->scaleToDevice(edgeData.width); + p1 = borderRect.topLeft() + + QPointF(qFloor(prioritizedEdgeAnchorOffset(p, table, td, cell, edgeData, QCss::LeftEdge, false, ignoreEdgesAbove)), 0); + p2 = borderRect.topRight() + + QPointF(-qCeil(prioritizedEdgeAnchorOffset(p, table, td, cell, edgeData, QCss::RightEdge, true, ignoreEdgesAbove)), 0); + break; + case QCss::BottomEdge: + wv = p->scaleToDevice(edgeData.width); + p1 = borderRect.bottomLeft() + + QPointF(qFloor(prioritizedEdgeAnchorOffset(p, table, td, cell, edgeData, QCss::LeftEdge, false, false)), -wv); + p2 = borderRect.bottomRight() + + QPointF(-qCeil(prioritizedEdgeAnchorOffset(p, table, td, cell, edgeData, QCss::RightEdge, true, false)), -wv); + break; + case QCss::LeftEdge: + wh = p->scaleToDevice(edgeData.width); + p1 = borderRect.topLeft() + + QPointF(0, adjustTopAnchor ? qFloor(prioritizedEdgeAnchorOffset(p, table, td, cellOrHeader, edgeData, + forceHeaderRow != -1 ? QCss::BottomEdge : QCss::TopEdge, + false, ignoreEdgesAbove)) + : 0); + p2 = borderRect.bottomLeft() + + QPointF(0, adjustBottomAnchor ? -qCeil(prioritizedEdgeAnchorOffset(p, table, td, cell, edgeData, QCss::BottomEdge, true, false)) + : 0); + break; + case QCss::RightEdge: + wh = p->scaleToDevice(edgeData.width); + p1 = borderRect.topRight() + + QPointF(-wh, adjustTopAnchor ? qFloor(prioritizedEdgeAnchorOffset(p, table, td, cellOrHeader, edgeData, + forceHeaderRow != -1 ? QCss::BottomEdge : QCss::TopEdge, + false, ignoreEdgesAbove)) + : 0); + p2 = borderRect.bottomRight() + + QPointF(-wh, adjustBottomAnchor ? -qCeil(prioritizedEdgeAnchorOffset(p, table, td, cell, edgeData, QCss::BottomEdge, true, false)) + : 0); + break; + default: break; + } + + // for borderCollapse move edge width/2 pixel out of the borderRect + // so that it shares space with the adjacent cell's edge. + // to avoid fractional offsets, qCeil/qFloor is used + if (td->borderCollapse) { + QPointF offset; + switch (edge) { + case QCss::TopEdge: + offset = QPointF(0, -qCeil(collapseOffset(p, edgeData))); + break; + case QCss::BottomEdge: + offset = QPointF(0, qFloor(collapseOffset(p, edgeData))); + break; + case QCss::LeftEdge: + offset = QPointF(-qCeil(collapseOffset(p, edgeData)), 0); + break; + case QCss::RightEdge: + offset = QPointF(qFloor(collapseOffset(p, edgeData)), 0); + break; + default: break; + } + p1 += offset; + p2 += offset; + } + + QCss::BorderStyle cssStyle = static_cast(borderStyle + 1); + +// this reveals errors in the drawing logic +#ifdef COLLAPSE_DEBUG + QColor c = brush.color(); + c.setAlpha(150); + brush.setColor(c); +#endif + + qDrawEdge(painter, p1.x(), p1.y(), p2.x() + wh, p2.y() + wv, 0, 0, edge, cssStyle, brush); +} +#endif + +void QTextDocumentLayoutPrivate::drawTableCellBorder(const QRectF &cellRect, QPainter *painter, + QTextTable *table, QTextTableData *td, + const QTextTableCell &cell) const +{ +#ifndef QT_NO_CSSPARSER + qreal topMarginAfterPageBreak = (td->effectiveTopMargin + td->cellSpacing + td->border).toReal(); + qreal bottomMargin = (td->effectiveBottomMargin + td->cellSpacing + td->border).toReal(); + + const int headerRowCount = qMin(table->format().headerRowCount(), table->rows() - 1); + if (headerRowCount > 0 && cell.row() >= headerRowCount) + topMarginAfterPageBreak += td->headerHeight.toReal(); + + BorderPaginator paginator(document, cellRect, topMarginAfterPageBreak, bottomMargin, 0); + + bool turn_off_antialiasing = !(painter->renderHints() & QPainter::Antialiasing); + painter->setRenderHint(QPainter::Antialiasing); + + // paint cell borders for every page the cell appears on + for (int page = paginator.topPage; page <= paginator.bottomPage; ++page) { + const QRectF clipped = paginator.clipRect(page); + if (!clipped.isValid()) + continue; + + const qreal offset = cellRect.top() - td->rowPositions.at(cell.row()).toReal(); + const int lastHeaderRow = table->format().headerRowCount() - 1; + const bool tableHasHeader = table->format().headerRowCount() > 0; + const bool isHeaderRow = cell.row() < table->format().headerRowCount(); + const bool isFirstRow = cell.row() == lastHeaderRow + 1; + const bool isLastRow = cell.row() + cell.rowSpan() >= table->rows(); + const bool previousRowOnPreviousPage = !isFirstRow + && !isHeaderRow + && BorderPaginator(document, + td->cellRect(adjacentCell(table, cell, QCss::TopEdge)).translated(0, offset), + topMarginAfterPageBreak, + bottomMargin, + 0).bottomPage < page; + const bool nextRowOnNextPage = !isLastRow + && BorderPaginator(document, + td->cellRect(adjacentCell(table, cell, QCss::BottomEdge)).translated(0, offset), + topMarginAfterPageBreak, + bottomMargin, + 0).topPage > page; + const bool rowStartsOnPage = page == paginator.topPage; + const bool rowEndsOnPage = page == paginator.bottomPage; + const bool rowStartsOnPageTop = !tableHasHeader + && rowStartsOnPage + && previousRowOnPreviousPage; + const bool rowStartsOnPageBelowHeader = tableHasHeader + && rowStartsOnPage + && previousRowOnPreviousPage; + + const bool suppressTopBorder = td->borderCollapse + ? !isHeaderRow && (!rowStartsOnPage || rowStartsOnPageBelowHeader) + : !rowStartsOnPage; + const bool suppressBottomBorder = td->borderCollapse + ? !isHeaderRow && (!rowEndsOnPage || nextRowOnNextPage) + : !rowEndsOnPage; + const bool doNotAdjustTopAnchor = td->borderCollapse + ? !tableHasHeader && !rowStartsOnPage + : !rowStartsOnPage; + const bool doNotAdjustBottomAnchor = suppressBottomBorder; + + if (!suppressTopBorder) { + drawCellBorder(this, painter, table, td, cell, clipped, QCss::TopEdge, + -1, true, true, rowStartsOnPageTop); + } + + drawCellBorder(this, painter, table, td, cell, clipped, QCss::LeftEdge, + suppressTopBorder ? lastHeaderRow : -1, + !doNotAdjustTopAnchor, + !doNotAdjustBottomAnchor, + rowStartsOnPageTop); + drawCellBorder(this, painter, table, td, cell, clipped, QCss::RightEdge, + suppressTopBorder ? lastHeaderRow : -1, + !doNotAdjustTopAnchor, + !doNotAdjustBottomAnchor, + rowStartsOnPageTop); + + if (!suppressBottomBorder) { + drawCellBorder(this, painter, table, td, cell, clipped, QCss::BottomEdge, + -1, true, true, false); + } + } + + if (turn_off_antialiasing) + painter->setRenderHint(QPainter::Antialiasing, false); +#endif +} + void QTextDocumentLayoutPrivate::drawTableCell(const QRectF &cellRect, QPainter *painter, const QAbstractTextDocumentLayout::PaintContext &cell_context, QTextTable *table, QTextTableData *td, int r, int c, QTextBlock *cursorBlockNeedingRepaint, QPointF *cursorBlockOffset) const @@ -1126,9 +1819,8 @@ void QTextDocumentLayoutPrivate::drawTableCell(const QRectF &cellRect, QPainter return; } - QTextFormat fmt = cell.format(); - const QFixed leftPadding = td->leftPadding(fmt); - const QFixed topPadding = td->topPadding(fmt); + const QFixed leftPadding = td->leftPadding(table, cell); + const QFixed topPadding = td->topPadding(table, cell); qreal topMargin = (td->effectiveTopMargin + td->cellSpacing + td->border).toReal(); qreal bottomMargin = (td->effectiveBottomMargin + td->cellSpacing + td->border).toReal(); @@ -1137,7 +1829,7 @@ void QTextDocumentLayoutPrivate::drawTableCell(const QRectF &cellRect, QPainter if (r >= headerRowCount) topMargin += td->headerHeight.toReal(); - if (td->border != 0) { + if (!td->borderCollapse && td->border != 0) { const QBrush oldBrush = painter->brush(); const QPen oldPen = painter->pen(); @@ -1203,6 +1895,9 @@ void QTextDocumentLayoutPrivate::drawTableCell(const QRectF &cellRect, QPainter painter->setBrushOrigin(cellRect.topLeft()); } + // paint over the background - otherwise we would have to adjust the background paint cellRect for the border values + drawTableCellBorder(cellRect, painter, table, td, cell); + const QFixed verticalOffset = td->cellVerticalOffsets.at(c + r * table->columns()); const QPointF cellPos = QPointF(cellRect.left() + leftPadding.toReal(), @@ -1566,8 +2261,7 @@ QTextLayoutStruct QTextDocumentLayoutPrivate::layoutCell(QTextTable *t, const QT layoutStruct.maximumWidth = QFIXED_MAX; layoutStruct.y = 0; - const QTextFormat fmt = cell.format(); - const QFixed topPadding = td->topPadding(fmt); + const QFixed topPadding = td->topPadding(t, cell); if (withPageBreaks) { layoutStruct.frameY = absoluteTableY + td->rowPositions.at(cell.row()) + topPadding; } @@ -1585,8 +2279,20 @@ QTextLayoutStruct QTextDocumentLayoutPrivate::layoutCell(QTextTable *t, const QT if (layoutStruct.pageHeight < 0 || !withPageBreaks) layoutStruct.pageHeight = QFIXED_MAX; const int currentPage = layoutStruct.currentPage(); - layoutStruct.pageTopMargin = td->effectiveTopMargin + td->cellSpacing + td->border + topPadding; - layoutStruct.pageBottomMargin = td->effectiveBottomMargin + td->cellSpacing + td->border + td->bottomPadding(fmt); + + layoutStruct.pageTopMargin = td->effectiveTopMargin + + td->cellSpacing + + td->border + + td->paddingProperty(cell.format(), QTextFormat::TableCellTopPadding); // top cell-border is not repeated + + const int headerRowCount = t->format().headerRowCount(); + if (td->borderCollapse && headerRowCount > 0) { + // consider the header row's bottom edge width + qreal headerRowBottomBorderWidth = axisEdgeData(t, td, t->cellAt(headerRowCount - 1, cell.column()), QCss::BottomEdge).width; + layoutStruct.pageTopMargin += QFixed::fromReal(scaleToDevice(headerRowBottomBorderWidth) / 2); + } + + layoutStruct.pageBottomMargin = td->effectiveBottomMargin + td->cellSpacing + td->effectiveBottomBorder + td->bottomPadding(t, cell); layoutStruct.pageBottom = (currentPage + 1) * layoutStruct.pageHeight - layoutStruct.pageBottomMargin; layoutStruct.fullLayout = true; @@ -1632,6 +2338,17 @@ QTextLayoutStruct QTextDocumentLayoutPrivate::layoutCell(QTextTable *t, const QT return layoutStruct; } +#ifndef QT_NO_CSSPARSER +static inline void findWidestOutermostBorder(QTextTable *table, QTextTableData *td, + const QTextTableCell &cell, QCss::Edge edge, + qreal *outerBorders) +{ + EdgeData w = cellEdgeData(table, td, cell, edge); + if (w.width > outerBorders[edge]) + outerBorders[edge] = w.width; +} +#endif + QRectF QTextDocumentLayoutPrivate::layoutTable(QTextTable *table, int layoutFrom, int layoutTo, QFixed parentY) { qCDebug(lcTable) << "layoutTable from" << layoutFrom << "to" << layoutTo << "parentY" << parentY; @@ -1657,12 +2374,49 @@ QRectF QTextDocumentLayoutPrivate::layoutTable(QTextTable *table, int layoutFrom columnWidthConstraints.resize(columns); Q_ASSERT(columnWidthConstraints.count() == columns); - const QFixed cellSpacing = td->cellSpacing = QFixed::fromReal(scaleToDevice(fmt.cellSpacing())); + // borderCollapse will disable drawing the html4 style table cell borders + // and draw a 1px grid instead. This also sets a fixed cellspacing + // of 1px if border > 0 (for the grid) and ignore any explicitly set + // cellspacing. + td->borderCollapse = fmt.borderCollapse(); + td->borderCell = td->borderCollapse ? 0 : td->border; + const QFixed cellSpacing = td->cellSpacing = QFixed::fromReal(scaleToDevice(td->borderCollapse ? 0 : fmt.cellSpacing())).round(); + + td->drawGrid = (td->borderCollapse && fmt.border() >= 1); + + td->effectiveTopBorder = td->effectiveBottomBorder = td->effectiveLeftBorder = td->effectiveRightBorder = td->border; + +#ifndef QT_NO_CSSPARSER + if (td->borderCollapse) { + // find the widest borders of the outermost cells + qreal outerBorders[QCss::NumEdges]; + for (int i = 0; i < QCss::NumEdges; ++i) + outerBorders[i] = 0; + + for (int r = 0; r < rows; ++r) { + if (r == 0) { + for (int c = 0; c < columns; ++c) + findWidestOutermostBorder(table, td, table->cellAt(r, c), QCss::TopEdge, outerBorders); + } + if (r == rows - 1) { + for (int c = 0; c < columns; ++c) + findWidestOutermostBorder(table, td, table->cellAt(r, c), QCss::BottomEdge, outerBorders); + } + findWidestOutermostBorder(table, td, table->cellAt(r, 0), QCss::LeftEdge, outerBorders); + findWidestOutermostBorder(table, td, table->cellAt(r, columns - 1), QCss::RightEdge, outerBorders); + } + td->effectiveTopBorder = QFixed::fromReal(scaleToDevice(outerBorders[QCss::TopEdge] / 2)).round(); + td->effectiveBottomBorder = QFixed::fromReal(scaleToDevice(outerBorders[QCss::BottomEdge] / 2)).round(); + td->effectiveLeftBorder = QFixed::fromReal(scaleToDevice(outerBorders[QCss::LeftEdge] / 2)).round(); + td->effectiveRightBorder = QFixed::fromReal(scaleToDevice(outerBorders[QCss::RightEdge] / 2)).round(); + } +#endif + td->deviceScale = scaleToDevice(qreal(1)); td->cellPadding = QFixed::fromReal(scaleToDevice(fmt.cellPadding())); - const QFixed leftMargin = td->leftMargin + td->border + td->padding; - const QFixed rightMargin = td->rightMargin + td->border + td->padding; - const QFixed topMargin = td->topMargin + td->border + td->padding; + const QFixed leftMargin = td->leftMargin + td->padding + td->effectiveLeftBorder; + const QFixed rightMargin = td->rightMargin + td->padding + td->effectiveRightBorder; + const QFixed topMargin = td->topMargin + td->padding + td->effectiveTopBorder; const QFixed absoluteTableY = parentY + td->position.y; @@ -1672,11 +2426,17 @@ recalc_minmax_widths: QFixed remainingWidth = td->contentsWidth; // two (vertical) borders per cell per column - remainingWidth -= columns * 2 * td->border; + remainingWidth -= columns * 2 * td->borderCell; // inter-cell spacing remainingWidth -= (columns - 1) * cellSpacing; // cell spacing at the left and right hand side remainingWidth -= 2 * cellSpacing; + + if (td->borderCollapse) { + remainingWidth -= td->effectiveLeftBorder; + remainingWidth -= td->effectiveRightBorder; + } + // remember the width used to distribute to percentaged columns const QFixed initialTotalWidth = remainingWidth; @@ -1701,9 +2461,8 @@ recalc_minmax_widths: if (cspan > 1 && i != cell.column()) continue; - const QTextFormat fmt = cell.format(); - const QFixed leftPadding = td->leftPadding(fmt); - const QFixed rightPadding = td->rightPadding(fmt); + const QFixed leftPadding = td->leftPadding(table, cell); + const QFixed rightPadding = td->rightPadding(table, cell); const QFixed widthPadding = leftPadding + rightPadding; // to figure out the min and the max width lay out the cell at @@ -1832,7 +2591,7 @@ recalc_minmax_widths: } // in order to get a correct border rendering we must ensure that the distance between - // two cells is exactly 2 * td->border pixel. we do this by rounding the calculated width + // two cells is exactly 2 * td->cellBorder pixel. we do this by rounding the calculated width // values here. // to minimize the total rounding error we propagate the rounding error for each width // to its successor. @@ -1847,7 +2606,7 @@ recalc_minmax_widths: td->columnPositions[0] = leftMargin /*includes table border*/ + cellSpacing + td->border; for (int i = 1; i < columns; ++i) - td->columnPositions[i] = td->columnPositions.at(i-1) + td->widths.at(i-1) + 2 * td->border + cellSpacing; + td->columnPositions[i] = td->columnPositions.at(i-1) + td->widths.at(i-1) + 2 * td->borderCell + cellSpacing; // - margin to compensate the + margin in columnPositions[0] const QFixed contentsWidth = td->columnPositions.constLast() + td->widths.constLast() + td->padding + td->border + cellSpacing - leftMargin; @@ -1948,12 +2707,10 @@ relayout: } } - const QTextFormat fmt = cell.format(); - - const QFixed topPadding = td->topPadding(fmt); - const QFixed bottomPadding = td->bottomPadding(fmt); - const QFixed leftPadding = td->leftPadding(fmt); - const QFixed rightPadding = td->rightPadding(fmt); + const QFixed topPadding = td->topPadding(table, cell); + const QFixed bottomPadding = td->bottomPadding(table, cell); + const QFixed leftPadding = td->leftPadding(table, cell); + const QFixed rightPadding = td->rightPadding(table, cell); const QFixed widthPadding = leftPadding + rightPadding; ++rowCellCount; @@ -1990,13 +2747,13 @@ relayout: } if (haveRowSpannedCells) { - const QFixed effectiveHeight = td->heights.at(r) + td->border + cellSpacing + td->border; + const QFixed effectiveHeight = td->heights.at(r) + td->borderCell + cellSpacing + td->borderCell; for (int c = 0; c < columns; ++c) heightToDistribute[c] = qMax(heightToDistribute.at(c) - effectiveHeight - dropDistance, QFixed(0)); } if (r == headerRowCount - 1) { - td->headerHeight = td->rowPositions.at(r) + td->heights.at(r) - td->rowPositions.at(0) + td->cellSpacing + 2 * td->border; + td->headerHeight = td->rowPositions.at(r) + td->heights.at(r) - td->rowPositions.at(0) + td->cellSpacing + 2 * td->borderCell; td->headerHeight -= td->headerHeight * (td->headerHeight / pageHeight).truncate(); td->effectiveTopMargin += td->headerHeight; } @@ -2018,7 +2775,7 @@ relayout: const QFixed availableHeight = td->rowPositions.at(r + rowSpan - 1) + td->heights.at(r + rowSpan - 1) - td->rowPositions.at(r); const QTextCharFormat cellFormat = cell.format(); - const QFixed cellHeight = cellHeights.at(cellIndex++) + td->topPadding(cellFormat) + td->bottomPadding(cellFormat); + const QFixed cellHeight = cellHeights.at(cellIndex++) + td->topPadding(table, cell) + td->bottomPadding(table, cell); QFixed offset = 0; switch (cellFormat.verticalAlignment()) { @@ -2043,14 +2800,14 @@ relayout: td->minimumWidth = td->columnPositions.at(0); for (int i = 0; i < columns; ++i) { - td->minimumWidth += td->minWidths.at(i) + 2 * td->border + cellSpacing; + td->minimumWidth += td->minWidths.at(i) + 2 * td->borderCell + cellSpacing; } td->minimumWidth += rightMargin - td->border; td->maximumWidth = td->columnPositions.at(0); for (int i = 0; i < columns; ++i) { if (td->maxWidths.at(i) != QFIXED_MAX) - td->maximumWidth += td->maxWidths.at(i) + 2 * td->border + cellSpacing; + td->maximumWidth += td->maxWidths.at(i) + 2 * td->borderCell + cellSpacing; qCDebug(lcTable) << "column" << i << "has final width" << td->widths.at(i).toReal() << "min" << td->minWidths.at(i).toReal() << "max" << td->maxWidths.at(i).toReal(); } @@ -3284,7 +4041,7 @@ QRectF QTextDocumentLayout::tableBoundingRect(QTextTable *table) const if (QTextTable *table = qobject_cast(f)) { QTextTableCell cell = table->cellAt(framePos); if (cell.isValid()) - pos += static_cast(fd)->cellPosition(cell).toPointF(); + pos += static_cast(fd)->cellPosition(table, cell).toPointF(); } } @@ -3314,7 +4071,7 @@ QRectF QTextDocumentLayoutPrivate::frameBoundingRectInternal(QTextFrame *frame) if (QTextTable *table = qobject_cast(f)) { QTextTableCell cell = table->cellAt(framePos); if (cell.isValid()) - pos += static_cast(fd)->cellPosition(cell).toPointF(); + pos += static_cast(fd)->cellPosition(table, cell).toPointF(); } f = f->parentFrame(); @@ -3339,7 +4096,7 @@ QRectF QTextDocumentLayout::blockBoundingRect(const QTextBlock &block) const if (QTextTable *table = qobject_cast(frame)) { QTextTableCell cell = table->cellAt(blockPos); if (cell.isValid()) - offset += static_cast(fd)->cellPosition(cell).toPointF(); + offset += static_cast(fd)->cellPosition(table, cell).toPointF(); } frame = frame->parentFrame(); diff --git a/src/gui/text/qtextformat.cpp b/src/gui/text/qtextformat.cpp index 090c6cc4ce..47a38db3ad 100644 --- a/src/gui/text/qtextformat.cpp +++ b/src/gui/text/qtextformat.cpp @@ -660,6 +660,23 @@ Q_GUI_EXPORT QDataStream &operator>>(QDataStream &stream, QTextFormat &fmt) \value TableCellTopPadding \value TableCellBottomPadding + Table cell properties intended for use with \l QTextTableFormat::borderCollapse enabled + + \value TableCellTopBorder + \value TableCellBottomBorder + \value TableCellLeftBorder + \value TableCellRightBorder + + \value TableCellTopBorderStyle + \value TableCellBottomBorderStyle + \value TableCellLeftBorderStyle + \value TableCellRightBorderStyle + + \value TableCellTopBorderBrush + \value TableCellBottomBorderBrush + \value TableCellLeftBorderBrush + \value TableCellRightBorderBrush + Image properties \value ImageName The filename or source of the image. @@ -3100,6 +3117,8 @@ QTextTableFormat::QTextTableFormat(const QTextFormat &fmt) Sets the cell \a spacing for the table. This determines the distance between adjacent cells. + + This property will be ignored if \l borderCollapse is enabled. */ /*! @@ -3150,6 +3169,44 @@ QTextTableFormat::QTextTableFormat(const QTextFormat &fmt) \sa setHeaderRowCount() */ +/*! + \fn void QTextTableFormat::setBorderCollapse(bool borderCollapse) + \since 5.14 + + Enabling \a borderCollapse will have the following implications: + \list + \li The borders and grid of the table will be rendered following the + CSS table \c border-collapse: \c collapse rules + \li Setting the \c border property to a minimum value of \c 1 will render a + one pixel solid inner table grid using the \l borderBrush property and an + outer border as specified + \li The various border style properties of \l QTextTableCellFormat can be used to + customize the grid and have precedence over the border and grid of the table + \li The \l cellSpacing property will be ignored + \li For print pagination: + \list + \li Columns continued on a page will not have their top cell border rendered + \li Repeated header rows will always have their bottom cell border rendered + \endlist + \endlist + + With borderCollapse disabled, cell borders can still be styled + using QTextTableCellFormat but styling will be applied only within + the cell's frame, which is probably not very useful in practice. + + \sa setBorder(), setBorderBrush(), setBorderStyle() + \sa QTextTableCellFormat +*/ + +/*! + \fn bool QTextTableFormat::borderCollapse() const + \since 5.14 + + Returns true if borderCollapse is enabled. + + \sa setBorderCollapse() +*/ + /*! \fn void QTextFormat::setBackground(const QBrush &brush) @@ -3488,6 +3545,228 @@ QTextImageFormat::QTextImageFormat(const QTextFormat &fmt) \sa setLeftPadding(), setRightPadding(), setTopPadding(), setBottomPadding() */ +/*! + \fn void QTextTableCellFormat::setTopBorder(qreal width) + \since 5.14 + + Sets the top border \a width of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn qreal QTextTableCellFormat::topBorder() const + \since 5.14 + + Returns the top border width of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setBottomBorder(qreal width) + \since 5.14 + + Sets the bottom border \a width of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn qreal QTextTableCellFormat::bottomBorder() const + \since 5.14 + + Returns the bottom border width of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setLeftBorder(qreal width) + \since 5.14 + + Sets the left border \a width of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn qreal QTextTableCellFormat::leftBorder() const + \since 5.14 + + Returns the left border width of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setRightBorder(qreal width) + \since 5.14 + + Sets the right border \a width of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn qreal QTextTableCellFormat::rightBorder() const + \since 5.14 + + Returns the right border width of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setBorder(qreal width) + \since 5.14 + + Sets the left, right, top, and bottom border \a width of the table cell. + + \sa setLeftBorder(), setRightBorder(), setTopBorder(), setBottomBorder() + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn void QTextTableCellFormat::setTopBorderStyle(QTextFrameFormat::BorderStyle style) + \since 5.14 + + Sets the top border \a style of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QTextFrameFormat::BorderStyle QTextTableCellFormat::topBorderStyle() const + \since 5.14 + + Returns the top border style of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setBottomBorderStyle(QTextFrameFormat::BorderStyle style) + \since 5.14 + + Sets the bottom border \a style of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QTextFrameFormat::BorderStyle QTextTableCellFormat::bottomBorderStyle() const + \since 5.14 + + Returns the bottom border style of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setLeftBorderStyle(QTextFrameFormat::BorderStyle style) + \since 5.14 + + Sets the left border \a style of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QTextFrameFormat::BorderStyle QTextTableCellFormat::leftBorderStyle() const + \since 5.14 + + Returns the left border style of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setRightBorderStyle(QTextFrameFormat::BorderStyle style) + \since 5.14 + + Sets the right border \a style of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QTextFrameFormat::BorderStyle QTextTableCellFormat::rightBorderStyle() const + \since 5.14 + + Returns the right border style of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setBorderStyle(QTextFrameFormat::BorderStyle style) + \since 5.14 + + Sets the left, right, top, and bottom border \a style of the table cell. + + \sa setLeftBorderStyle(), setRightBorderStyle(), setTopBorderStyle(), setBottomBorderStyle() + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn void QTextTableCellFormat::setTopBorderBrush(const QBrush &brush) + \since 5.14 + + Sets the top border \a brush of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QBrush QTextTableCellFormat::topBorderBrush() const + \since 5.14 + + Returns the top border brush of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setBottomBorderBrush(const QBrush &brush) + \since 5.14 + + Sets the bottom border \a brush of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QBrush QTextTableCellFormat::bottomBorderBrush() const + \since 5.14 + + Returns the bottom border brush of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setLeftBorderBrush(const QBrush &brush) + \since 5.14 + + Sets the left border \a brush of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QBrush QTextTableCellFormat::leftBorderBrush() const + \since 5.14 + + Returns the left border brush of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setRightBorderBrush(const QBrush &brush) + \since 5.14 + + Sets the right border \a brush of the table cell. + + \sa QTextTableFormat::setBorderCollapse +*/ + +/*! + \fn QBrush QTextTableCellFormat::rightBorderBrush() const + \since 5.14 + + Returns the right border brush of the table cell. +*/ + +/*! + \fn void QTextTableCellFormat::setBorderBrush(const QBrush &brush) + \since 5.14 + + Sets the left, right, top, and bottom border \a brush of the table cell. + + \sa setLeftBorderBrush(), setRightBorderBrush(), setTopBorderBrush(), setBottomBorderBrush() + \sa QTextTableFormat::setBorderCollapse +*/ + /*! \fn bool QTextTableCellFormat::isValid() const \since 4.4 diff --git a/src/gui/text/qtextformat.h b/src/gui/text/qtextformat.h index a91461dcae..12f14a1555 100644 --- a/src/gui/text/qtextformat.h +++ b/src/gui/text/qtextformat.h @@ -242,6 +242,7 @@ public: TableCellSpacing = 0x4102, TableCellPadding = 0x4103, TableHeaderRowCount = 0x4104, + TableBorderCollapse = 0x4105, // table cell properties TableCellRowSpan = 0x4810, @@ -252,6 +253,21 @@ public: TableCellLeftPadding = 0x4814, TableCellRightPadding = 0x4815, + TableCellTopBorder = 0x4816, + TableCellBottomBorder = 0x4817, + TableCellLeftBorder = 0x4818, + TableCellRightBorder = 0x4819, + + TableCellTopBorderStyle = 0x481a, + TableCellBottomBorderStyle = 0x481b, + TableCellLeftBorderStyle = 0x481c, + TableCellRightBorderStyle = 0x481d, + + TableCellTopBorderBrush = 0x481e, + TableCellBottomBorderBrush = 0x481f, + TableCellLeftBorderBrush = 0x4820, + TableCellRightBorderBrush = 0x4821, + // image properties ImageName = 0x5000, ImageTitle = 0x5001, @@ -966,6 +982,11 @@ public: inline int headerRowCount() const { return intProperty(TableHeaderRowCount); } + inline void setBorderCollapse(bool borderCollapse) + { setProperty(TableBorderCollapse, borderCollapse); } + inline bool borderCollapse() const + { return boolProperty(TableBorderCollapse); } + protected: explicit QTextTableFormat(const QTextFormat &fmt); friend class QTextFormat; @@ -1007,6 +1028,72 @@ public: inline void setPadding(qreal padding); + inline void setTopBorder(qreal width) + { setProperty(TableCellTopBorder, width); } + inline qreal topBorder() const + { return doubleProperty(TableCellTopBorder); } + + inline void setBottomBorder(qreal width) + { setProperty(TableCellBottomBorder, width); } + inline qreal bottomBorder() const + { return doubleProperty(TableCellBottomBorder); } + + inline void setLeftBorder(qreal width) + { setProperty(TableCellLeftBorder, width); } + inline qreal leftBorder() const + { return doubleProperty(TableCellLeftBorder); } + + inline void setRightBorder(qreal width) + { setProperty(TableCellRightBorder, width); } + inline qreal rightBorder() const + { return doubleProperty(TableCellRightBorder); } + + inline void setBorder(qreal width); + + inline void setTopBorderStyle(QTextFrameFormat::BorderStyle style) + { setProperty(TableCellTopBorderStyle, style); } + inline QTextFrameFormat::BorderStyle topBorderStyle() const + { return static_cast(intProperty(TableCellTopBorderStyle)); } + + inline void setBottomBorderStyle(QTextFrameFormat::BorderStyle style) + { setProperty(TableCellBottomBorderStyle, style); } + inline QTextFrameFormat::BorderStyle bottomBorderStyle() const + { return static_cast(intProperty(TableCellBottomBorderStyle)); } + + inline void setLeftBorderStyle(QTextFrameFormat::BorderStyle style) + { setProperty(TableCellLeftBorderStyle, style); } + inline QTextFrameFormat::BorderStyle leftBorderStyle() const + { return static_cast(intProperty(TableCellLeftBorderStyle)); } + + inline void setRightBorderStyle(QTextFrameFormat::BorderStyle style) + { setProperty(TableCellRightBorderStyle, style); } + inline QTextFrameFormat::BorderStyle rightBorderStyle() const + { return static_cast(intProperty(TableCellRightBorderStyle)); } + + inline void setBorderStyle(QTextFrameFormat::BorderStyle style); + + inline void setTopBorderBrush(const QBrush &brush) + { setProperty(TableCellTopBorderBrush, brush); } + inline QBrush topBorderBrush() const + { return brushProperty(TableCellTopBorderBrush); } + + inline void setBottomBorderBrush(const QBrush &brush) + { setProperty(TableCellBottomBorderBrush, brush); } + inline QBrush bottomBorderBrush() const + { return brushProperty(TableCellBottomBorderBrush); } + + inline void setLeftBorderBrush(const QBrush &brush) + { setProperty(TableCellLeftBorderBrush, brush); } + inline QBrush leftBorderBrush() const + { return brushProperty(TableCellLeftBorderBrush); } + + inline void setRightBorderBrush(const QBrush &brush) + { setProperty(TableCellRightBorderBrush, brush); } + inline QBrush rightBorderBrush() const + { return brushProperty(TableCellRightBorderBrush); } + + inline void setBorderBrush(const QBrush &brush); + protected: explicit QTextTableCellFormat(const QTextFormat &fmt); friend class QTextFormat; @@ -1062,6 +1149,29 @@ inline void QTextTableCellFormat::setPadding(qreal padding) setRightPadding(padding); } +inline void QTextTableCellFormat::setBorder(qreal width) +{ + setTopBorder(width); + setBottomBorder(width); + setLeftBorder(width); + setRightBorder(width); +} + +inline void QTextTableCellFormat::setBorderStyle(QTextFrameFormat::BorderStyle style) +{ + setTopBorderStyle(style); + setBottomBorderStyle(style); + setLeftBorderStyle(style); + setRightBorderStyle(style); +} + +inline void QTextTableCellFormat::setBorderBrush(const QBrush &brush) +{ + setTopBorderBrush(brush); + setBottomBorderBrush(brush); + setLeftBorderBrush(brush); + setRightBorderBrush(brush); +} QT_END_NAMESPACE -- cgit v1.2.3 From 9e8cf8f75ba3a9a252a5f8d734383824df0dd684 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Wed, 7 Aug 2019 17:12:49 +0200 Subject: doc: Fix text formatting in the CSS Properties table Every property name was already monospace, except this one. Change-Id: I69f4e7cd67e6d4ab2a25b4f1d251ec5a2c925098 Reviewed-by: Nils Jeisecke Reviewed-by: Shawn Rutledge --- src/gui/doc/src/richtext.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/doc/src/richtext.qdoc b/src/gui/doc/src/richtext.qdoc index 7c3e4ef362..24fd4240b3 100644 --- a/src/gui/doc/src/richtext.qdoc +++ b/src/gui/doc/src/richtext.qdoc @@ -1253,7 +1253,7 @@ \row \li \c page-break-after \li [ auto | always ] \li Make it possible to enforce a page break after the paragraph/table - \row \li float + \row \li \c float \li [ left | right | none ] \li Specifies where an image or a text will be placed in another element. Note that the \c float property is only supported for tables and images. -- cgit v1.2.3 From ee8509d6cbc8f54fe3aff60168cc6aafb095d8ab Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 6 Aug 2019 14:30:43 +0200 Subject: QMakeLocalFileName: remove mutable specifier from real_name There is no need to have both QString member mutable. Change-Id: I592963b7c66e564b918d750fb47e903df0b0f9bc Reviewed-by: Kai Koehne --- qmake/generators/makefiledeps.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/qmake/generators/makefiledeps.h b/qmake/generators/makefiledeps.h index 034197fd31..89ada9ed49 100644 --- a/qmake/generators/makefiledeps.h +++ b/qmake/generators/makefiledeps.h @@ -42,7 +42,8 @@ class SourceFiles; class QMakeLocalFileName { bool is_null; - mutable QString real_name, local_name; + QString real_name; + mutable QString local_name; public: QMakeLocalFileName() : is_null(true) {} QMakeLocalFileName(const QString &); -- cgit v1.2.3 From c595878aa34c5861b00f0c59bc4b0b6c02a54543 Mon Sep 17 00:00:00 2001 From: Soroush Rabiei Date: Fri, 26 Jul 2019 15:42:04 +0200 Subject: Extract a large format string as a module constant value The template for the "This is a generated file" notice made a clumsy intrusion in the code in which it appeared, so split it out as a constant of the module and access it by name where it's used. Change-Id: Ic4dfb8e873078c54410b191654d6c21d082c9016 Reviewed-by: Lars Knoll --- util/locale_database/qlocalexml2cpp.py | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/util/locale_database/qlocalexml2cpp.py b/util/locale_database/qlocalexml2cpp.py index ea89288b4f..c0797f111d 100755 --- a/util/locale_database/qlocalexml2cpp.py +++ b/util/locale_database/qlocalexml2cpp.py @@ -42,6 +42,20 @@ from enumdata import language_aliases, country_aliases, script_aliases from localexml import Locale +generated_template = """ +/* + This part of the file was generated on %s from the + Common Locale Data Repository v%s + + http://www.unicode.org/cldr/ + + Do not edit this section: instead regenerate it using + cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or + edited) CLDR data; see qtbase/util/locale_database/. +*/ + +""" + class Error: def __init__(self, msg): self.msg = msg @@ -360,20 +374,7 @@ def main(): dupes = findDupes(language_map, country_map) cldr_version = firstChildText(doc.documentElement, "version") - - data_temp_file.write(""" -/* - This part of the file was generated on %s from the - Common Locale Data Repository v%s - - http://www.unicode.org/cldr/ - - Do not edit this section: instead regenerate it using - cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or - edited) CLDR data; see qtbase/util/locale_database/. -*/ - -""" % (str(datetime.date.today()), cldr_version) ) + data_temp_file.write(generated_template % (datetime.date.today(), cldr_version)) # Likely subtags map data_temp_file.write("static const QLocaleId likely_subtags[] = {\n") -- cgit v1.2.3 From 6ce9404a6e7ad6ba3ff37f6890fe400c643c3d52 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 1 Aug 2019 22:56:30 -0700 Subject: QBitArray: fix fromBits() and actually test it When I initially added it, it was ony for QCborValue, but I never added the tests. Turns out there were two bugs: [ChangeLog][QtCore][QBitArray] Fixed two bugs that caused QBitArrays created using fromBits() not to compare equal to the equivalent QBitArray created using other methods if the size was zero or not a multiple of 4. If the size modulus 8 was 5, 6, or 7, the data was actually incorrect. Fixes: QTBUG-77285 Change-Id: Ife213d861bb14c1787e1fffd15b70573d162042c Reviewed-by: Lars Knoll --- src/corelib/tools/qbitarray.cpp | 12 +++-- .../auto/corelib/tools/qbitarray/tst_qbitarray.cpp | 57 ++++++++++++++++++++++ 2 files changed, 64 insertions(+), 5 deletions(-) diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp index 4e8e3c241e..94aadf7fdf 100644 --- a/src/corelib/tools/qbitarray.cpp +++ b/src/corelib/tools/qbitarray.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. -** Copyright (C) 2016 Intel Corporation. +** Copyright (C) 2019 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -132,12 +132,12 @@ QT_BEGIN_NAMESPACE * We overallocate the byte array by 1 byte. The first user bit is at * d.data()[1]. On the extra first byte, we store the difference between the * number of bits in the byte array (including this byte) and the number of - * bits in the bit array. Therefore, it's always a number between 8 and 15. + * bits in the bit array. Therefore, for a non-empty QBitArray, it's always a + * number between 8 and 15. For the empty one, d is the an empty QByteArray and + * *d.constData() is the QByteArray's terminating NUL (0) byte. * * This allows for fast calculation of the bit array size: * inline int size() const { return (d.size() << 3) - *d.constData(); } - * - * Note: for an array of zero size, *d.constData() is the QByteArray implicit NUL. */ /*! @@ -326,6 +326,8 @@ void QBitArray::fill(bool value, int begin, int end) QBitArray QBitArray::fromBits(const char *data, qsizetype size) { QBitArray result; + if (size == 0) + return result; qsizetype nbytes = (size + 7) / 8; result.d = QByteArray(nbytes + 1, Qt::Uninitialized); @@ -334,7 +336,7 @@ QBitArray QBitArray::fromBits(const char *data, qsizetype size) // clear any unused bits from the last byte if (size & 7) - bits[nbytes] &= 0xffU >> (size & 7); + bits[nbytes] &= 0xffU >> (8 - (size & 7)); *bits = result.d.size() * 8 - size; return result; diff --git a/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp b/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp index d19eac7530..9a7c099228 100644 --- a/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp +++ b/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp @@ -84,6 +84,8 @@ private slots: void operator_noteq(); void resize(); + void fromBits_data(); + void fromBits(); }; void tst_QBitArray::size_data() @@ -610,5 +612,60 @@ void tst_QBitArray::resize() } +void tst_QBitArray::fromBits_data() +{ + QTest::addColumn("data"); + QTest::addColumn("size"); + QTest::addColumn("expected"); + + QTest::newRow("empty") << QByteArray() << 0 << QBitArray(); + + auto add = [](const QByteArray &tag, const char *data) { + QTest::newRow(tag) << QByteArray(data, (tag.size() + 7) / 8) << tag.size() + << QStringToQBitArray(tag); + }; + + // "0" to "0000000000000000" + for (int i = 1; i < 16; ++i) { + char zero[2] = { 0, 0 }; + QByteArray pattern(i, '0'); + add(pattern, zero); + } + + // "1" to "1111111111111111" + for (int i = 1; i < 16; ++i) { + char one[2] = { '\xff', '\xff' }; + QByteArray pattern(i, '1'); + add(pattern, one); + } + + // trailing 0 and 1 + char zero = 1; + char one = 0; + QByteArray pzero = "1"; + QByteArray pone = "0"; + for (int i = 2; i < 8; ++i) { + zero <<= 1; + pzero.prepend('0'); + add(pzero, &zero); + + one = (one << 1) | 1; + pone.prepend('1'); + add(pone, &one); + } +} + +void tst_QBitArray::fromBits() +{ + QFETCH(QByteArray, data); + QFETCH(int, size); + QFETCH(QBitArray, expected); + + QBitArray fromBits = QBitArray::fromBits(data, size); + QCOMPARE(fromBits, expected); + + QCOMPARE(QBitArray::fromBits(fromBits.bits(), fromBits.size()), expected); +} + QTEST_APPLESS_MAIN(tst_QBitArray) #include "tst_qbitarray.moc" -- cgit v1.2.3 From 48b3ec6e8e4be23e0d4620fb32b8c7faf082569d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 5 Aug 2019 21:29:02 -0700 Subject: QBitArray: change modulo 8 with bitwise-AND 7 They're the same only for unsigned values. Modulo of negative numbers since C++11 has an expected behavior and generates more code: %rax = %rax & 7: andl $7, %eax %rax = %rax % 8 with GCC: cqto shrq $61, %rdx addq %rdx, %rax andl $7, %eax subq %rdx, %rax [read as ((%rax + (%rax < 0 ? 7 : 0)) & 7) - (%rax < 0 ? 7 : 0))] With Clang: movq %rax, %rcx sarq $63, %rcx shrq $61, %rcx addq %rax, %rcx andq $-8, %rcx subq %rcx, %rax Change-Id: Ife213d861bb14c1787e1fffd15b83b004be7eba0 Reviewed-by: Lars Knoll --- src/corelib/tools/qbitarray.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qbitarray.cpp b/src/corelib/tools/qbitarray.cpp index 4e8e3c241e..4952090620 100644 --- a/src/corelib/tools/qbitarray.cpp +++ b/src/corelib/tools/qbitarray.cpp @@ -154,8 +154,8 @@ QBitArray::QBitArray(int size, bool value) uchar* c = reinterpret_cast(d.data()); memset(c + 1, value ? 0xff : 0, d.size() - 1); *c = d.size()*8 - size; - if (value && size && size % 8) - *(c+1+size/8) &= (1 << (size%8)) - 1; + if (value && size && size & 7) + *(c+1+size/8) &= (1 << (size & 7)) - 1; } /*! \fn int QBitArray::size() const @@ -227,8 +227,8 @@ void QBitArray::resize(int size) uchar* c = reinterpret_cast(d.data()); if (size > (s << 3)) memset(c + s, 0, d.size() - s); - else if ( size % 8) - *(c+1+size/8) &= (1 << (size%8)) - 1; + else if (size & 7) + *(c+1+size/8) &= (1 << (size & 7)) - 1; *c = d.size()*8 - size; } } -- cgit v1.2.3 From d502b19b283806d2ef5c6b7bfd79baef15f3845c Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Wed, 7 Aug 2019 08:21:35 +0800 Subject: Fix std detection for win32-clang-msvc clang-cl will never support C++ standards newer than C++14 without these flags. I didn't add them to msvc-based-version.conf because on Windows, only clang-cl use the same flags with MSVC, both ICC and MinGW have their own flags. So they are clang-cl specific flags. Change-Id: Ia44a5ea4237c77ea5e897fffded32cbc008a4729 Reviewed-by: Thiago Macieira --- mkspecs/win32-clang-msvc/qmake.conf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mkspecs/win32-clang-msvc/qmake.conf b/mkspecs/win32-clang-msvc/qmake.conf index 9a7f70454d..b60a4b8c8b 100644 --- a/mkspecs/win32-clang-msvc/qmake.conf +++ b/mkspecs/win32-clang-msvc/qmake.conf @@ -39,6 +39,11 @@ QMAKE_CXXFLAGS += -Wno-microsoft-enum-value QMAKE_LINK = lld-link QMAKE_LIB = llvm-lib /NOLOGO +QMAKE_CXXFLAGS_CXX11 = -std:c++11 +QMAKE_CXXFLAGS_CXX14 = -std:c++14 +QMAKE_CXXFLAGS_CXX1Z = -std:c++17 +QMAKE_CXXFLAGS_CXX2A = -std:c++latest + QMAKE_CFLAGS_LTCG = -flto QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG # Leave QMAKE_LFLAGS_LTCG empty because lld-link doesn't need any additional parameters -- cgit v1.2.3 From 9c891bead8c14af0aa2fd10f74275e35af87b16c Mon Sep 17 00:00:00 2001 From: Nils Jeisecke Date: Mon, 22 Jul 2019 19:06:34 +0200 Subject: QTextDocument: add manual test for table border logic This adds a manual test for the QTextTable border logic. Two HTML files are bundled as resources: table-border-test.html: Contains various test cases for the border logic. table-border-test-header.html: Contains a test case for printing a table with a repeated header. The test application allows: - editing - previewing - printing - opening the HTML in the system browser (via temp. file) It is possible to edit the HTML with "live preview" so new test cases can easily be implemented. Change-Id: Ic88488bc8b7dd74d5c03c3363f55840423462325 Reviewed-by: Shawn Rutledge --- tests/manual/manual.pro | 1 + tests/manual/qtexttableborders/main.cpp | 39 +++++ .../manual/qtexttableborders/qtexttableborders.pro | 10 ++ tests/manual/qtexttableborders/resources.qrc | 6 + .../table-border-test-header.html | 129 ++++++++++++++++ .../qtexttableborders/table-border-test.html | 171 +++++++++++++++++++++ tests/manual/qtexttableborders/widget.cpp | 125 +++++++++++++++ tests/manual/qtexttableborders/widget.h | 56 +++++++ tests/manual/qtexttableborders/widget.ui | 79 ++++++++++ 9 files changed, 616 insertions(+) create mode 100644 tests/manual/qtexttableborders/main.cpp create mode 100644 tests/manual/qtexttableborders/qtexttableborders.pro create mode 100644 tests/manual/qtexttableborders/resources.qrc create mode 100644 tests/manual/qtexttableborders/table-border-test-header.html create mode 100644 tests/manual/qtexttableborders/table-border-test.html create mode 100644 tests/manual/qtexttableborders/widget.cpp create mode 100644 tests/manual/qtexttableborders/widget.h create mode 100644 tests/manual/qtexttableborders/widget.ui diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro index e688546374..42f9878e44 100644 --- a/tests/manual/manual.pro +++ b/tests/manual/manual.pro @@ -35,6 +35,7 @@ qsslsocket \ qsysinfo \ qtabletevent \ qtexteditlist \ +qtexttableborders \ qtbug-8933 \ qtbug-52641 \ qtouchevent \ diff --git a/tests/manual/qtexttableborders/main.cpp b/tests/manual/qtexttableborders/main.cpp new file mode 100644 index 0000000000..a8fdf7becc --- /dev/null +++ b/tests/manual/qtexttableborders/main.cpp @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "widget.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + Widget w; + w.show(); + + return a.exec(); +} diff --git a/tests/manual/qtexttableborders/qtexttableborders.pro b/tests/manual/qtexttableborders/qtexttableborders.pro new file mode 100644 index 0000000000..7e454f978d --- /dev/null +++ b/tests/manual/qtexttableborders/qtexttableborders.pro @@ -0,0 +1,10 @@ +#This project can be used to verify QTBUG-36152 case. +QT += core gui printsupport +CONFIG += c++11 +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets +TARGET = qtexttableborders +TEMPLATE = app +SOURCES += main.cpp widget.cpp +HEADERS += widget.h +FORMS += widget.ui +RESOURCES += resources.qrc diff --git a/tests/manual/qtexttableborders/resources.qrc b/tests/manual/qtexttableborders/resources.qrc new file mode 100644 index 0000000000..a7000a73e3 --- /dev/null +++ b/tests/manual/qtexttableborders/resources.qrc @@ -0,0 +1,6 @@ + + + table-border-test-header.html + table-border-test.html + + diff --git a/tests/manual/qtexttableborders/table-border-test-header.html b/tests/manual/qtexttableborders/table-border-test-header.html new file mode 100644 index 0000000000..cb29d0a41d --- /dev/null +++ b/tests/manual/qtexttableborders/table-border-test-header.html @@ -0,0 +1,129 @@ + + + +

Printable table with repeated header

+ +

+ Please print (to PDF, save the trees) this table and compare this to the + print results of Chrome/Firefox. +

    +
  • Firefox fails to render the first repeated header correctly +
  • Chrome fails to render the Cell B top edge (should be red, except the first row after header +
  • Qt: Could do slightly better with the last row on each page (although both Firefox and Chrome don't work perfect here as well) +
+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Header AHeader B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
Cell ACell B
+ + + diff --git a/tests/manual/qtexttableborders/table-border-test.html b/tests/manual/qtexttableborders/table-border-test.html new file mode 100644 index 0000000000..0339f80d0f --- /dev/null +++ b/tests/manual/qtexttableborders/table-border-test.html @@ -0,0 +1,171 @@ + + + +

Working Test Cases

+ +

border-collapse: separate

+ +

TC-A1: table no border

+ + + + + + + +
Cell 1ACell 1B
+ +

TC-A2: table attribute controlled border (1px, red)

+ + + + + + + +
Cell 1ACell 1B
+ +

TC-A3: table attribute controlled border (4px, blue)

+ + + + + + + +
Cell 1ACell 1B
+ Note: Real browsers render the inner cells border with 1px, but QTextDocument's rendering has always been like this. + +

border-collapse: collapse

+ +

TC-B1: table no border

+ + + + + + + +
Cell 1ACell 1B
+ +

TC-B2: table attribute + css controlled grid (outer border 1px)

+ + + + + + + +
Cell 1ACell 1B
+ +

TC-B3: table attribute + css controlled grid (outer border 4px)

+ + + + + + + +
Cell 1ACell 1B
+ +

TC-B4: table attribute + css controlled grid (one cell with custom edge)

+ + + + + + + +
Cell 1ACell 1B (border-right: 8px solid green)
+ +

TC-B5: table with single decorated cell

+ + + + + + + +
Cell 1ACell 1B (border: 2px solid red)
+ +

cells with competing rules

+ +

TC-C1: vertical edge (pink, 6px) wins over horizontal edge (red|blue, 6px)

+ + + + + + + +
Cell 1ACell 2B
+ +

TC-C2: vertical edge (pink, 6px) loses over horizontal edge (red|blue, 8px)

+ + + + + + + +
Cell 1ACell 2B
+ +

TC-C3: cells with span and competing rules

+ + + + + + + + + + +
Cell 1A/B spans over two columns (border-bottom: red)
Cell 2A (border-top loses -> red)Cell 2B (border-top wins -> green)
+ +

Non-Working Test Cases

+ +

border-collapse: separate

+ +

TC-X1: table css border (red via style)

+ + + + + + + +
Cell 1ACell 1B
+ +

border-collapse: collapse

+ +

TC-X2: tr css border

+ + + + + + + + + + + +
Cell 1A (border-bottom should be red)Cell 1B (border-bottom should be red)
Cell 2A (border-left should be red)Cell 2B
+ +

TC-X3: cells with competing rules and colspan

+ + + + + + + + + + +
Cell 1A/B spans over two columns (border-bottom: red, border-right pink)
Cell 2A (border-top loses -> red)Cell 2B (border-top wins -> green)
+ This is currently not 100% correct but admittedly a constructed corner case (and Chrome failes here, too). + + + diff --git a/tests/manual/qtexttableborders/widget.cpp b/tests/manual/qtexttableborders/widget.cpp new file mode 100644 index 0000000000..21d958ce81 --- /dev/null +++ b/tests/manual/qtexttableborders/widget.cpp @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "widget.h" +#include "ui_widget.h" + +#include +#include +#include +#include + +#ifndef QT_NO_DESKTOPSERVICES +#include +#endif + +#ifndef QT_NO_PRINTER +#include +#include +#include +#endif + +// This manual test allows checking the QTextTable border logic (QTBUG-36152) + +Widget::Widget(QWidget *parent) : + QWidget(parent), + ui(new Ui::Widget) +{ + ui->setupUi(this); + resize(1400, 800); + + connect(ui->docComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, &Widget::onDocumentSelected); + connect(ui->printButton, &QPushButton::clicked, this, &Widget::onPrint); + connect(ui->previewButton, &QPushButton::clicked, this, &Widget::onPreview); + connect(ui->openBrowserButton, &QPushButton::clicked, this, &Widget::onOpenBrowser); + + connect(ui->sourceEdit, &QTextEdit::textChanged, this, + [this]() { + // make this a world class HTML IDE + auto pos = ui->htmlEdit->verticalScrollBar()->value(); + ui->htmlEdit->setHtml(ui->sourceEdit->toPlainText()); + ui->htmlEdit->verticalScrollBar()->setValue(pos); + }); + + ui->docComboBox->addItem(tr("Table Border Test"), ":/table-border-test.html"); + ui->docComboBox->addItem(tr("Table Border Header Test"), ":/table-border-test-header.html"); + + ui->docComboBox->setCurrentIndex(0); +} + +Widget::~Widget() +{ + delete ui; +} + +void Widget::onDocumentSelected() +{ + QString url = ui->docComboBox->itemData(ui->docComboBox->currentIndex()).toString(); + QFile f(url); + if (f.open(QFile::ReadOnly)) { + ui->sourceEdit->setPlainText(QString::fromUtf8(f.readAll())); + // preview HTML is set via textChanged signal + } +} + +void Widget::onPrint() +{ +#ifndef QT_NO_PRINTER + QPrinter printer(QPrinter::HighResolution); + QPrintDialog dlg(&printer, this); + if (ui->htmlEdit->textCursor().hasSelection()) + dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection); + dlg.setWindowTitle(tr("Print Document")); + if (dlg.exec() == QDialog::Accepted) { + ui->htmlEdit->print(&printer); + } +#endif +} + +void Widget::onPreview() +{ +#ifndef QT_NO_PRINTER + QPrinter printer(QPrinter::HighResolution); + QPrintPreviewDialog preview(&printer, this); + connect(&preview, &QPrintPreviewDialog::paintRequested, ui->htmlEdit, &QTextEdit::print); + preview.exec(); +#endif +} + +void Widget::onOpenBrowser() +{ + // write the current html to a temp file and open the system browser +#ifndef QT_NO_DESKTOPSERVICES + auto tf = new QTemporaryFile(QDir::tempPath() + "/XXXXXX.html", this); + if (tf->open()) { + tf->write(ui->sourceEdit->toPlainText().toUtf8()); + tf->close(); + QDesktopServices::openUrl(QUrl::fromLocalFile(tf->fileName())); + } +#endif +} diff --git a/tests/manual/qtexttableborders/widget.h b/tests/manual/qtexttableborders/widget.h new file mode 100644 index 0000000000..9cf459e1cd --- /dev/null +++ b/tests/manual/qtexttableborders/widget.h @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef WIDGET_H +#define WIDGET_H + +#include + +namespace Ui { +class Widget; +} + +class Widget : public QWidget +{ + Q_OBJECT + +public: + explicit Widget(QWidget *parent = nullptr); + ~Widget(); + +private slots: + void onDocumentSelected(); + void onPrint(); + void onPreview(); + void onOpenBrowser(); + +private: + Ui::Widget *ui; +}; + +#endif // WIDGET_H diff --git a/tests/manual/qtexttableborders/widget.ui b/tests/manual/qtexttableborders/widget.ui new file mode 100644 index 0000000000..95c23be69e --- /dev/null +++ b/tests/manual/qtexttableborders/widget.ui @@ -0,0 +1,79 @@ + + + Widget + + + + 0 + 0 + 606 + 522 + + + + QTextTable Border Manual Test + + + + + + + + + 0 + 0 + + + + + + + + Print + + + + + + + Preview + + + + + + + Open Browser + + + + + + + + + + 0 + 0 + + + + Qt::Horizontal + + + + + + + + + + docComboBox + printButton + previewButton + openBrowserButton + htmlEdit + + + + -- cgit v1.2.3 From aca43d29f8a1c90d14069ac602cf0ba7beaba300 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 6 Aug 2019 14:04:35 +0200 Subject: Fix sign change warning The conversion from int to uint is deliberate here, so let's cast and avoid a warning for users compiling with warnings enabled. Change-Id: I7136d6161ace735be49f8d987338f6d401a5c78a Fixes: QTBUG-77245 Reviewed-by: Thiago Macieira --- src/corelib/serialization/qjsonvalue.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/serialization/qjsonvalue.h b/src/corelib/serialization/qjsonvalue.h index d8e121524d..4df689078e 100644 --- a/src/corelib/serialization/qjsonvalue.h +++ b/src/corelib/serialization/qjsonvalue.h @@ -173,9 +173,9 @@ class Q_CORE_EXPORT QJsonValueRef { public: QJsonValueRef(QJsonArray *array, int idx) - : a(array), is_object(false), index(idx) {} + : a(array), is_object(false), index(static_cast(idx)) {} QJsonValueRef(QJsonObject *object, int idx) - : o(object), is_object(true), index(idx) {} + : o(object), is_object(true), index(static_cast(idx)) {} inline operator QJsonValue() const { return toValue(); } QJsonValueRef &operator = (const QJsonValue &val); -- cgit v1.2.3 From 3ed21726ecad6fad0d3fff40b96aa44aa8f85229 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Sat, 3 Aug 2019 09:06:50 +0300 Subject: Give some TLC to QAppleRefCounted - add conditional noexcept to move special member functions - use qExchange() in the move ctor implementation (turns a copy into a move) - separate the default ctor from the ctor that acquires a resource, then - overload the latter for rvalue payloads Change-Id: I6816143a94fe6a74cf0d02569b83a752a8da3089 Reviewed-by: Thiago Macieira --- src/corelib/kernel/qcore_mac_p.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h index 447dcd9cbe..3266dc10a8 100644 --- a/src/corelib/kernel/qcore_mac_p.h +++ b/src/corelib/kernel/qcore_mac_p.h @@ -86,8 +86,14 @@ template ::value) + : value(std::move(t)) {} + QAppleRefCounted(QAppleRefCounted &&other) + noexcept(std::is_nothrow_move_assignable::value && + std::is_nothrow_move_constructible::value) + : value(qExchange(other.value, T())) {} QAppleRefCounted(const QAppleRefCounted &other) : value(other.value) { if (value) RetainFunction(value); } ~QAppleRefCounted() { if (value) ReleaseFunction(value); } operator T() const { return value; } @@ -96,6 +102,8 @@ public: QAppleRefCounted &operator=(const QAppleRefCounted &other) { QAppleRefCounted copy(other); swap(copy); return *this; } QAppleRefCounted &operator=(QAppleRefCounted &&other) + noexcept(std::is_nothrow_move_assignable::value && + std::is_nothrow_move_constructible::value) { QAppleRefCounted moved(std::move(other)); swap(moved); return *this; } T *operator&() { return &value; } protected: -- cgit v1.2.3 From 38cfd3a8cbc93001e7e9707640694aba275a370b Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 5 Aug 2019 11:19:41 +0200 Subject: tst_qmake: Pass /nologo to jom like we do for nmake Change-Id: Id9b2ac4dd7d591d471d3e21e8d78d4915620a2c1 Reviewed-by: Oliver Wolff --- tests/auto/tools/qmake/testcompiler.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/auto/tools/qmake/testcompiler.cpp b/tests/auto/tools/qmake/testcompiler.cpp index 0a7ba3b40b..ab68b5c725 100644 --- a/tests/auto/tools/qmake/testcompiler.cpp +++ b/tests/auto/tools/qmake/testcompiler.cpp @@ -285,8 +285,10 @@ bool TestCompiler::make( const QString &workPath, const QString &target, bool ex D.setCurrent( workPath ); QStringList args = makeArgs_; - if (makeCmd_.contains("nmake", Qt::CaseInsensitive)) + if (makeCmd_.contains("nmake", Qt::CaseInsensitive) || + makeCmd_.contains("jom", Qt::CaseInsensitive)) { args << "/NOLOGO"; + } if (!target.isEmpty()) args << target; -- cgit v1.2.3 From e75aed1a96e626f079af307c5604ddf9054ecafc Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 31 Jul 2019 13:53:24 +0200 Subject: Warn about conflicting DESTDIR/TARGET combination in debug_and_release If a project has DESTDIR and TARGET set to fixed values, then the target paths conflict when doing debug_and_release builds. With this change we're detecting this situation and yield a warning. Fixes: QTBUG-2736 Change-Id: Ib163db3463322792ab9fa5b997285ac9fc9819ab Reviewed-by: Kai Koehne --- qmake/generators/makefile.cpp | 9 +++++ qmake/generators/makefile.h | 1 + qmake/generators/metamakefile.cpp | 39 ++++++++++++++++++++++ qmake/generators/win32/winmakefile.cpp | 5 +++ qmake/generators/win32/winmakefile.h | 3 ++ .../conflicting_targets/conflicting_targets.pro | 5 +++ .../qmake/testdata/conflicting_targets/main.cpp | 4 +++ tests/auto/tools/qmake/tst_qmake.cpp | 15 +++++++++ 8 files changed, 81 insertions(+) create mode 100644 tests/auto/tools/qmake/testdata/conflicting_targets/conflicting_targets.pro create mode 100644 tests/auto/tools/qmake/testdata/conflicting_targets/main.cpp diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 2082bd6dc3..59cae332d8 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -3456,4 +3456,13 @@ QString MakefileGenerator::shellQuote(const QString &str) return isWindowsShell() ? IoUtils::shellQuoteWin(str) : IoUtils::shellQuoteUnix(str); } +/* + * Returns the name of the variable that contains the fully resolved target + * (including DESTDIR) of this generator. + */ +ProKey MakefileGenerator::fullTargetVariable() const +{ + return "TARGET"; +} + QT_END_NAMESPACE diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h index ac1d5abb11..45250a6aa2 100644 --- a/qmake/generators/makefile.h +++ b/qmake/generators/makefile.h @@ -276,6 +276,7 @@ public: virtual bool openOutput(QFile &, const QString &build) const; bool isWindowsShell() const { return Option::dir_sep == QLatin1String("\\"); } QString shellQuote(const QString &str); + virtual ProKey fullTargetVariable() const; }; Q_DECLARE_TYPEINFO(MakefileGenerator::Compiler, Q_MOVABLE_TYPE); Q_DECLARE_OPERATORS_FOR_FLAGS(MakefileGenerator::FileFixifyTypes) diff --git a/qmake/generators/metamakefile.cpp b/qmake/generators/metamakefile.cpp index 705ad7008a..22a72100f7 100644 --- a/qmake/generators/metamakefile.cpp +++ b/qmake/generators/metamakefile.cpp @@ -33,6 +33,10 @@ #include "project.h" #include "cachekeys.h" +#include +#include +#include + #define BUILDSMETATYPE 1 #define SUBDIRSMETATYPE 2 @@ -58,6 +62,7 @@ private: void clearBuilds(); MakefileGenerator *processBuild(const ProString &); void accumulateVariableFromBuilds(const ProKey &name, Build *build) const; + void checkForConflictingTargets() const; public: @@ -186,6 +191,7 @@ BuildsMetaMakefileGenerator::write() if(!build->makefile) { ret = false; } else if(build == glue) { + checkForConflictingTargets(); accumulateVariableFromBuilds("QMAKE_INTERNAL_INCLUDED_FILES", build); ret = build->makefile->writeProjectMakefile(); } else { @@ -239,6 +245,39 @@ void BuildsMetaMakefileGenerator::accumulateVariableFromBuilds(const ProKey &nam values.removeDuplicates(); } +void BuildsMetaMakefileGenerator::checkForConflictingTargets() const +{ + if (makefiles.count() < 3) { + // Checking for conflicts only makes sense if we have more than one BUILD, + // and the last entry in makefiles is the "glue" Build. + return; + } + using TargetInfo = std::pair; + QVector targets; + const int last = makefiles.count() - 1; + targets.resize(last); + for (int i = 0; i < last; ++i) { + Build *b = makefiles.at(i); + auto mkf = b->makefile; + auto prj = mkf->projectFile(); + targets[i] = std::make_pair(b, prj->first(mkf->fullTargetVariable())); + } + std::stable_sort(targets.begin(), targets.end(), + [](const TargetInfo &lhs, const TargetInfo &rhs) + { + return lhs.second < rhs.second; + }); + for (auto prev = targets.begin(), it = std::next(prev); it != targets.end(); ++prev, ++it) { + if (prev->second == it->second) { + warn_msg(WarnLogic, "Targets of builds '%s' and '%s' conflict: %s.", + qPrintable(prev->first->build), + qPrintable(it->first->build), + qPrintable(prev->second.toQString())); + break; + } + } +} + class SubdirsMetaMakefileGenerator : public MetaMakefileGenerator { protected: diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index b79fd8f250..613a5a6a89 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -815,4 +815,9 @@ QString Win32MakefileGenerator::getManifestFileForRcFile() const return QString(); } +ProKey Win32MakefileGenerator::fullTargetVariable() const +{ + return "DEST_TARGET"; +} + QT_END_NAMESPACE diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h index 8eb633fdfa..09984fe355 100644 --- a/qmake/generators/win32/winmakefile.h +++ b/qmake/generators/win32/winmakefile.h @@ -64,6 +64,9 @@ protected: void processRcFileVar(); static QString cQuoted(const QString &str); virtual QString getManifestFileForRcFile() const; + +public: + ProKey fullTargetVariable() const override; }; QT_END_NAMESPACE diff --git a/tests/auto/tools/qmake/testdata/conflicting_targets/conflicting_targets.pro b/tests/auto/tools/qmake/testdata/conflicting_targets/conflicting_targets.pro new file mode 100644 index 0000000000..c3e8034e35 --- /dev/null +++ b/tests/auto/tools/qmake/testdata/conflicting_targets/conflicting_targets.pro @@ -0,0 +1,5 @@ +TEMPLATE = app +CONFIG += debug_and_release +TARGET = bah +DESTDIR = shu +SOURCES += main.cpp diff --git a/tests/auto/tools/qmake/testdata/conflicting_targets/main.cpp b/tests/auto/tools/qmake/testdata/conflicting_targets/main.cpp new file mode 100644 index 0000000000..39de28135a --- /dev/null +++ b/tests/auto/tools/qmake/testdata/conflicting_targets/main.cpp @@ -0,0 +1,4 @@ +int main(int, char **) +{ + return 0; +} diff --git a/tests/auto/tools/qmake/tst_qmake.cpp b/tests/auto/tools/qmake/tst_qmake.cpp index 1df31904d6..cda4c500e1 100644 --- a/tests/auto/tools/qmake/tst_qmake.cpp +++ b/tests/auto/tools/qmake/tst_qmake.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -82,6 +83,7 @@ private slots: void project(); void proFileCache(); void resources(); + void conflictingTargets(); private: TestCompiler test_compiler; @@ -621,5 +623,18 @@ void tst_qmake::resources() QVERIFY(test_compiler.make(workDir)); } +void tst_qmake::conflictingTargets() +{ + QString workDir = base_path + "/testdata/conflicting_targets"; + QVERIFY(test_compiler.qmake(workDir, "conflicting_targets")); + const QRegularExpression rex("Targets of builds '([^']+)' and '([^']+)' conflict"); + auto match = rex.match(test_compiler.commandOutput()); + QVERIFY(match.hasMatch()); + QStringList builds = { match.captured(1), match.captured(2) }; + std::sort(builds.begin(), builds.end()); + const QStringList expectedBuilds{"Debug", "Release"}; + QCOMPARE(builds, expectedBuilds); +} + QTEST_MAIN(tst_qmake) #include "tst_qmake.moc" -- cgit v1.2.3 From b7d073e9905bf9812ba96cecdcf6871a95517d30 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Fri, 26 Jul 2019 16:17:53 +0200 Subject: Refactor memory allocation for arguments of QMetaCallEvents There are two cases: In a BlockingQueuedConnection, QMetaCallEvent doesn't allocate memory and instead passes already existing pointers through. A QSemaphore is used to serialize data access between threads. So the constructor taking a QSemaphore can be simplified to only accept an existing arg array. In a QueuedConnection, QMetaCallEvent needs to make deep copies of the arguments, and memory needs to be allocated based on the number of arguments. The previous code put the burden of memory allocation on the code generating the event, while the memory was free'd by ~QMetaCallEvent. Instead, make it QMetaCallEvent's responsibility to allocate and free the memory as needed, and adjust the code generating QMetaCallEvents. We can allocate the memory for types and pointers to arguments in a single block, starting with the space for the array of void*, followed by the space for the array of integers to avoid byte alignment issues. By pre-allocating the space that's needed by three arguments, we can avoid all mallocs for the majority of QMetaCallEvents. Until this change has propagated through qt5.git, we need to keep the old API that is still used by QtDeclarative around. Once QtDeclarative has migrated to the new API, it can be removed. Change-Id: Id7359ffc14897237ea9672dabae9ef199a821907 Reviewed-by: Simon Hausmann --- src/corelib/kernel/qmetaobject.cpp | 38 ++--- src/corelib/kernel/qobject.cpp | 159 ++++++++++++++++----- src/corelib/kernel/qobject_p.h | 56 +++++--- src/network/kernel/qhostinfo.cpp | 12 +- .../corelib/kernel/qmetaobject/tst_qmetaobject.cpp | 14 ++ 5 files changed, 190 insertions(+), 89 deletions(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index acb1f54bdf..f366d2fe49 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -1542,21 +1542,14 @@ bool QMetaObject::invokeMethodImpl(QObject *object, QtPrivate::QSlotObjectBase * return false; } - // args and typesCopy will be deallocated by ~QMetaCallEvent() using free() - void **args = static_cast(calloc(1, sizeof(void *))); - Q_CHECK_PTR(args); - - int *types = static_cast(calloc(1, sizeof(int))); - Q_CHECK_PTR(types); - - QCoreApplication::postEvent(object, new QMetaCallEvent(slot, 0, -1, 1, types, args)); + QCoreApplication::postEvent(object, new QMetaCallEvent(slot, 0, -1, 1)); } else if (type == Qt::BlockingQueuedConnection) { #if QT_CONFIG(thread) if (currentThread == objectThread) qWarning("QMetaObject::invokeMethod: Dead lock detected"); QSemaphore semaphore; - QCoreApplication::postEvent(object, new QMetaCallEvent(slot, 0, -1, 0, 0, argv, &semaphore)); + QCoreApplication::postEvent(object, new QMetaCallEvent(slot, 0, -1, argv, &semaphore)); semaphore.acquire(); #endif // QT_CONFIG(thread) } else { @@ -2310,42 +2303,31 @@ bool QMetaMethod::invoke(QObject *object, return false; } - int nargs = 1; // include return type - void **args = (void **) malloc(paramCount * sizeof(void *)); - Q_CHECK_PTR(args); - int *types = (int *) malloc(paramCount * sizeof(int)); - Q_CHECK_PTR(types); - types[0] = 0; // return type - args[0] = 0; + QScopedPointer event(new QMetaCallEvent(idx_offset, idx_relative, callFunction, 0, -1, paramCount)); + int *types = event->types(); + void **args = event->args(); + int argIndex = 0; for (int i = 1; i < paramCount; ++i) { types[i] = QMetaType::type(typeNames[i]); if (types[i] == QMetaType::UnknownType && param[i]) { // Try to register the type and try again before reporting an error. - int index = nargs - 1; - void *argv[] = { &types[i], &index }; + void *argv[] = { &types[i], &argIndex }; QMetaObject::metacall(object, QMetaObject::RegisterMethodArgumentMetaType, idx_relative + idx_offset, argv); if (types[i] == -1) { qWarning("QMetaMethod::invoke: Unable to handle unregistered datatype '%s'", typeNames[i]); - for (int x = 1; x < i; ++x) { - if (types[x] && args[x]) - QMetaType::destroy(types[x], args[x]); - } - free(types); - free(args); return false; } } if (types[i] != QMetaType::UnknownType) { args[i] = QMetaType::create(types[i], param[i]); - ++nargs; + ++argIndex; } } - QCoreApplication::postEvent(object, new QMetaCallEvent(idx_offset, idx_relative, callFunction, - 0, -1, nargs, types, args)); + QCoreApplication::postEvent(object, event.take()); } else { // blocking queued connection #if QT_CONFIG(thread) QThread *currentThread = QThread::currentThread(); @@ -2358,7 +2340,7 @@ bool QMetaMethod::invoke(QObject *object, QSemaphore semaphore; QCoreApplication::postEvent(object, new QMetaCallEvent(idx_offset, idx_relative, callFunction, - 0, -1, 0, 0, param, &semaphore)); + 0, -1, param, &semaphore)); semaphore.acquire(); #endif // QT_CONFIG(thread) } diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index d364ae1087..048a47881f 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -511,25 +511,107 @@ QAbstractMetaCallEvent::~QAbstractMetaCallEvent() /*! \internal */ -QMetaCallEvent::QMetaCallEvent(ushort method_offset, ushort method_relative, QObjectPrivate::StaticMetaCallFunction callFunction, +inline void QMetaCallEvent::allocArgs() +{ + if (!d.nargs_) + return; + + constexpr size_t each = sizeof(void*) + sizeof(int); + void *const memory = d.nargs_ * each > sizeof(prealloc_) ? + calloc(d.nargs_, each) : prealloc_; + + Q_CHECK_PTR(memory); + d.args_ = static_cast(memory); +} + +/*! + \internal + + Only used by QtDeclarative - to be removed when migrated. + */ +QMetaCallEvent::QMetaCallEvent(ushort method_offset, ushort method_relative, + QObjectPrivate::StaticMetaCallFunction callFunction, const QObject *sender, int signalId, - int nargs, int *types, void **args, QSemaphore *semaphore) + int nargs, int *types_, void **args_) + : QAbstractMetaCallEvent(sender, signalId), + d({nullptr, nullptr, callFunction, nargs, method_offset, method_relative}), + prealloc_() +{ + allocArgs(); + for (int arg = 0; arg < nargs; ++arg) { + types()[arg] = types_[arg]; + args()[arg] = args_[arg]; + } + free(types_); + free(args_); +} + +/*! + \internal + + Used for blocking queued connections, just passes \a args through without + allocating any memory. + */ +QMetaCallEvent::QMetaCallEvent(ushort method_offset, ushort method_relative, + QObjectPrivate::StaticMetaCallFunction callFunction, + const QObject *sender, int signalId, + void **args, QSemaphore *semaphore) : QAbstractMetaCallEvent(sender, signalId, semaphore), - slotObj_(nullptr), nargs_(nargs), types_(types), args_(args), - callFunction_(callFunction), method_offset_(method_offset), method_relative_(method_relative) -{ } + d({nullptr, args, callFunction, 0, method_offset, method_relative}), + prealloc_() +{ +} /*! \internal + + Used for blocking queued connections, just passes \a args through without + allocating any memory. */ -QMetaCallEvent::QMetaCallEvent(QtPrivate::QSlotObjectBase *slotO, const QObject *sender, int signalId, - int nargs, int *types, void **args, QSemaphore *semaphore) +QMetaCallEvent::QMetaCallEvent(QtPrivate::QSlotObjectBase *slotO, + const QObject *sender, int signalId, + void **args, QSemaphore *semaphore) : QAbstractMetaCallEvent(sender, signalId, semaphore), - slotObj_(slotO), nargs_(nargs), types_(types), args_(args), - callFunction_(nullptr), method_offset_(0), method_relative_(ushort(-1)) + d({slotO, args, nullptr, 0, 0, ushort(-1)}), + prealloc_() { - if (slotObj_) - slotObj_->ref(); + if (d.slotObj_) + d.slotObj_->ref(); +} + +/*! + \internal + + Allocates memory for \a nargs; code creating an event needs to initialize + the void* and int arrays by accessing \a args() and \a types(), respectively. + */ +QMetaCallEvent::QMetaCallEvent(ushort method_offset, ushort method_relative, + QObjectPrivate::StaticMetaCallFunction callFunction, + const QObject *sender, int signalId, + int nargs) + : QAbstractMetaCallEvent(sender, signalId), + d({nullptr, nullptr, callFunction, nargs, method_offset, method_relative}), + prealloc_() +{ + allocArgs(); +} + +/*! + \internal + + Allocates memory for \a nargs; code creating an event needs to initialize + the void* and int arrays by accessing \a args() and \a types(), respectively. + */ +QMetaCallEvent::QMetaCallEvent(QtPrivate::QSlotObjectBase *slotO, + const QObject *sender, int signalId, + int nargs) + : QAbstractMetaCallEvent(sender, signalId), + d({slotO, nullptr, nullptr, nargs, 0, ushort(-1)}), + prealloc_() +{ + if (d.slotObj_) + d.slotObj_->ref(); + allocArgs(); } /*! @@ -537,16 +619,17 @@ QMetaCallEvent::QMetaCallEvent(QtPrivate::QSlotObjectBase *slotO, const QObject */ QMetaCallEvent::~QMetaCallEvent() { - if (types_) { - for (int i = 0; i < nargs_; ++i) { - if (types_[i] && args_[i]) - QMetaType::destroy(types_[i], args_[i]); + if (d.nargs_) { + int *typeIDs = types(); + for (int i = 0; i < d.nargs_; ++i) { + if (typeIDs[i] && d.args_[i]) + QMetaType::destroy(typeIDs[i], d.args_[i]); } - free(types_); - free(args_); + if (reinterpret_cast(d.args_) != reinterpret_cast(prealloc_)) + free(d.args_); } - if (slotObj_) - slotObj_->destroyIfLastRef(); + if (d.slotObj_) + d.slotObj_->destroyIfLastRef(); } /*! @@ -554,12 +637,13 @@ QMetaCallEvent::~QMetaCallEvent() */ void QMetaCallEvent::placeMetaCall(QObject *object) { - if (slotObj_) { - slotObj_->call(object, args_); - } else if (callFunction_ && method_offset_ <= object->metaObject()->methodOffset()) { - callFunction_(object, QMetaObject::InvokeMetaMethod, method_relative_, args_); + if (d.slotObj_) { + d.slotObj_->call(object, d.args_); + } else if (d.callFunction_ && d.method_offset_ <= object->metaObject()->methodOffset()) { + d.callFunction_(object, QMetaObject::InvokeMetaMethod, d.method_relative_, d.args_); } else { - QMetaObject::metacall(object, QMetaObject::InvokeMetaMethod, method_offset_ + method_relative_, args_); + QMetaObject::metacall(object, QMetaObject::InvokeMetaMethod, + d.method_offset_ + d.method_relative_, d.args_); } } @@ -3643,12 +3727,16 @@ static void queued_activate(QObject *sender, int signal, QObjectPrivate::Connect int nargs = 1; // include return type while (argumentTypes[nargs-1]) ++nargs; - int *types = (int *) malloc(nargs*sizeof(int)); - Q_CHECK_PTR(types); - void **args = (void **) malloc(nargs*sizeof(void *)); - Q_CHECK_PTR(args); + + QMetaCallEvent *ev = c->isSlotObject ? + new QMetaCallEvent(c->slotObj, sender, signal, nargs) : + new QMetaCallEvent(c->method_offset, c->method_relative, c->callFunction, sender, signal, nargs); + + void **args = ev->args(); + int *types = ev->types(); + types[0] = 0; // return type - args[0] = 0; // return value + args[0] = nullptr; // return value if (nargs > 1) { for (int n = 1; n < nargs; ++n) @@ -3662,16 +3750,10 @@ static void queued_activate(QObject *sender, int signal, QObjectPrivate::Connect if (!c->receiver.loadRelaxed()) { // the connection has been disconnected before we got the lock locker.unlock(); - for (int n = 1; n < nargs; ++n) - QMetaType::destroy(types[n], args[n]); - free(types); - free(args); + delete ev; return; } - QMetaCallEvent *ev = c->isSlotObject ? - new QMetaCallEvent(c->slotObj, sender, signal, nargs, types, args) : - new QMetaCallEvent(c->method_offset, c->method_relative, c->callFunction, sender, signal, nargs, types, args); QCoreApplication::postEvent(c->receiver.loadRelaxed(), ev); } @@ -3772,8 +3854,9 @@ void doActivate(QObject *sender, int signal_index, void **argv) if (!c->receiver.loadAcquire()) continue; QMetaCallEvent *ev = c->isSlotObject ? - new QMetaCallEvent(c->slotObj, sender, signal_index, 0, 0, argv, &semaphore) : - new QMetaCallEvent(c->method_offset, c->method_relative, c->callFunction, sender, signal_index, 0, 0, argv, &semaphore); + new QMetaCallEvent(c->slotObj, sender, signal_index, argv, &semaphore) : + new QMetaCallEvent(c->method_offset, c->method_relative, c->callFunction, + sender, signal_index, argv, &semaphore); QCoreApplication::postEvent(receiver, ev); } semaphore.acquire(); diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index 95ffc1b2e8..5d0b3a8399 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -509,29 +509,53 @@ private: class Q_CORE_EXPORT QMetaCallEvent : public QAbstractMetaCallEvent { public: - QMetaCallEvent(ushort method_offset, ushort method_relative, QObjectPrivate::StaticMetaCallFunction callFunction , const QObject *sender, int signalId, - int nargs = 0, int *types = nullptr, void **args = nullptr, QSemaphore *semaphore = nullptr); - /*! \internal - \a signalId is in the signal index range (see QObjectPrivate::signalIndex()). - */ - QMetaCallEvent(QtPrivate::QSlotObjectBase *slotObj, const QObject *sender, int signalId, - int nargs = 0, int *types = nullptr, void **args = nullptr, QSemaphore *semaphore = nullptr); + // kept for compatibility until QtDeclarative has moved over + QMetaCallEvent(ushort method_offset, ushort method_relative, + QObjectPrivate::StaticMetaCallFunction callFunction, + const QObject *sender, int signalId, + int nargs, int *types, void **args); + + // blocking queued with semaphore - args always owned by caller + QMetaCallEvent(ushort method_offset, ushort method_relative, + QObjectPrivate::StaticMetaCallFunction callFunction, + const QObject *sender, int signalId, + void **args, QSemaphore *semaphore); + QMetaCallEvent(QtPrivate::QSlotObjectBase *slotObj, + const QObject *sender, int signalId, + void **args, QSemaphore *semaphore); + + // queued - args allocated by event, copied by caller + QMetaCallEvent(ushort method_offset, ushort method_relative, + QObjectPrivate::StaticMetaCallFunction callFunction, + const QObject *sender, int signalId, + int nargs); + QMetaCallEvent(QtPrivate::QSlotObjectBase *slotObj, + const QObject *sender, int signalId, + int nargs); ~QMetaCallEvent() override; - inline int id() const { return method_offset_ + method_relative_; } - inline void **args() const { return args_; } + inline int id() const { return d.method_offset_ + d.method_relative_; } + inline const void * const* args() const { return d.args_; } + inline void ** args() { return d.args_; } + inline const int *types() const { return reinterpret_cast(d.args_ + d.nargs_); } + inline int *types() { return reinterpret_cast(d.args_ + d.nargs_); } virtual void placeMetaCall(QObject *object) override; private: - QtPrivate::QSlotObjectBase *slotObj_; - int nargs_; - int *types_; - void **args_; - QObjectPrivate::StaticMetaCallFunction callFunction_; - ushort method_offset_; - ushort method_relative_; + inline void allocArgs(); + + struct Data { + QtPrivate::QSlotObjectBase *slotObj_; + void **args_; + QObjectPrivate::StaticMetaCallFunction callFunction_; + int nargs_; + ushort method_offset_; + ushort method_relative_; + } d; + // preallocate enough space for three arguments + char prealloc_[3*(sizeof(void*) + sizeof(int))]; }; class QBoolBlocker diff --git a/src/network/kernel/qhostinfo.cpp b/src/network/kernel/qhostinfo.cpp index c2b89d12d4..9ce2d72bd3 100644 --- a/src/network/kernel/qhostinfo.cpp +++ b/src/network/kernel/qhostinfo.cpp @@ -140,17 +140,15 @@ void QHostInfoResult::postResultsReady(const QHostInfo &info) Q_CHECK_PTR(result); const int nargs = 2; - auto types = reinterpret_cast(malloc(nargs * sizeof(int))); - Q_CHECK_PTR(types); + auto metaCallEvent = new QMetaCallEvent(slotObj, nullptr, signal_index, nargs); + Q_CHECK_PTR(metaCallEvent); + void **args = metaCallEvent->args(); + int *types = metaCallEvent->types(); types[0] = QMetaType::type("void"); types[1] = QMetaType::type("QHostInfo"); - auto args = reinterpret_cast(malloc(nargs * sizeof(void *))); - Q_CHECK_PTR(args); - args[0] = 0; + args[0] = nullptr; args[1] = QMetaType::create(types[1], &info); Q_CHECK_PTR(args[1]); - auto metaCallEvent = new QMetaCallEvent(slotObj, nullptr, signal_index, nargs, types, args); - Q_CHECK_PTR(metaCallEvent); qApp->postEvent(result, metaCallEvent); } diff --git a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp index 026c6a6324..60000316cc 100644 --- a/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp +++ b/tests/auto/corelib/kernel/qmetaobject/tst_qmetaobject.cpp @@ -507,6 +507,7 @@ public slots: { QObject::moveToThread(t); } void slotWithUnregisteredParameterType(MyUnregisteredType); + void slotWithOneUnregisteredParameterType(QString a1, MyUnregisteredType a2); CountedStruct throwingSlot(const CountedStruct &, CountedStruct s2) { #ifndef QT_NO_EXCEPTIONS @@ -604,6 +605,9 @@ void QtTestObject::testSender() void QtTestObject::slotWithUnregisteredParameterType(MyUnregisteredType) { slotResult = "slotWithUnregisteredReturnType"; } +void QtTestObject::slotWithOneUnregisteredParameterType(QString a1, MyUnregisteredType) +{ slotResult = "slotWithUnregisteredReturnType-" + a1; } + void QtTestObject::staticFunction0() { staticResult = "staticFunction0"; @@ -885,6 +889,16 @@ void tst_QMetaObject::invokeQueuedMetaMember() QVERIFY(!QMetaObject::invokeMethod(&obj, "slotWithUnregisteredParameterType", Qt::QueuedConnection, Q_ARG(MyUnregisteredType, t))); QVERIFY(obj.slotResult.isEmpty()); } + + obj.slotResult.clear(); + { + QString a1("Cannot happen"); + MyUnregisteredType t; + QTest::ignoreMessage(QtWarningMsg, "QMetaMethod::invoke: Unable to handle unregistered datatype 'MyUnregisteredType'"); + QVERIFY(!QMetaObject::invokeMethod(&obj, "slotWithOneUnregisteredParameterType", Qt::QueuedConnection, + Q_ARG(QString, a1), Q_ARG(MyUnregisteredType, t))); + QVERIFY(obj.slotResult.isEmpty()); + } } void tst_QMetaObject::invokeQueuedPointer() -- cgit v1.2.3 From c58ca4256d881ffed865602fd3da8efb6ebc9d5f Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 26 Jul 2019 22:43:05 +0300 Subject: Deprecate QStringViewLiteral As a macro, we can't directly deprecate it, but need to make it call something deprecated. That is a new ctor with a new enum type added. The type might be useful for other such ventures, so put it into qglobal.h Remove the QT_NO_UNICODE_LITERAL protection, as it's always false these days, and QT_UNICODE_LITERAL is unconditionally #defined a 20 lines above. [ChangeLog][QtCore][QStringView] Deprecated the (undocumented) QStringViewLiteral macro. Just use u"" or QStringView(u"") instead. Change-Id: I9141320225037e1bc6b7f920bf01a9d0144fdac2 Reviewed-by: Volker Hilsheimer --- examples/widgets/tools/codecs/encodingdialog.cpp | 2 +- src/corelib/global/qglobal.h | 8 ++++++++ src/corelib/text/qstringliteral.h | 7 ++----- src/corelib/text/qstringview.h | 7 +++++++ tests/auto/corelib/text/qlatin1string/tst_qlatin1string.cpp | 8 ++++---- tests/auto/corelib/text/qstringview/tst_qstringview.cpp | 12 ++++++------ 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/examples/widgets/tools/codecs/encodingdialog.cpp b/examples/widgets/tools/codecs/encodingdialog.cpp index ca4b56db9e..aa57d47dc7 100644 --- a/examples/widgets/tools/codecs/encodingdialog.cpp +++ b/examples/widgets/tools/codecs/encodingdialog.cpp @@ -248,7 +248,7 @@ static const char *encodingToolTips[] { QT_TRANSLATE_NOOP("EncodingDialog", "Unicode points for use with any encoding (C++, Python)"), QT_TRANSLATE_NOOP("EncodingDialog", "QString::fromUtf8()"), - QT_TRANSLATE_NOOP("EncodingDialog", "QStringViewLiteral(), wchar_t on Windows"), + QT_TRANSLATE_NOOP("EncodingDialog", "wchar_t on Windows, char16_t everywhere"), QT_TRANSLATE_NOOP("EncodingDialog", "wchar_t on Unix (Ucs4)"), QT_TRANSLATE_NOOP("EncodingDialog", "QLatin1String") }; diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 77ca63803f..303b240a54 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -382,6 +382,14 @@ typedef double qreal; #define QT_DEPRECATED_VERSION_5(minor) QT_DEPRECATED_VERSION_5_##minor #define QT_DEPRECATED_VERSION(major, minor) QT_DEPRECATED_VERSION_##major(minor) +#ifdef __cplusplus +// A tag to help mark stuff deprecated (cf. QStringViewLiteral) +namespace QtPrivate { +enum class Deprecated_t {}; +constexpr Q_DECL_UNUSED Deprecated_t Deprecated = {}; +} +#endif + /* The Qt modules' export macros. The options are: diff --git a/src/corelib/text/qstringliteral.h b/src/corelib/text/qstringliteral.h index 603f19c0b4..2a7e607c63 100644 --- a/src/corelib/text/qstringliteral.h +++ b/src/corelib/text/qstringliteral.h @@ -82,11 +82,8 @@ Q_STATIC_ASSERT_X(sizeof(qunicodechar) == 2, Q_STATIC_STRING_DATA_HEADER_INITIALIZER_WITH_OFFSET(size, sizeof(QStringData)) \ /**/ -#ifndef QT_NO_UNICODE_LITERAL -# ifndef QT_UNICODE_LITERAL -# error "If you change QStringLiteral, please change QStringViewLiteral, too" -# endif -# define QStringViewLiteral(str) QStringView(QT_UNICODE_LITERAL(str)) +#if QT_DEPRECATED_SINCE(5, 14) +# define QStringViewLiteral(str) QStringView(QT_UNICODE_LITERAL(str), QtPrivate::Deprecated) #endif template diff --git a/src/corelib/text/qstringview.h b/src/corelib/text/qstringview.h index 0a82ac4201..4ab4d2570f 100644 --- a/src/corelib/text/qstringview.h +++ b/src/corelib/text/qstringview.h @@ -185,6 +185,13 @@ public: template Q_DECL_CONSTEXPR QStringView(const Char *str) noexcept; #else +#if QT_DEPRECATED_SINCE(5, 14) + template = true> + QT_DEPRECATED_VERSION_X_5_14(R"(Use u"~~~" or QStringView(u"~~~") instead of QStringViewLiteral("~~~"))") + Q_DECL_CONSTEXPR QStringView(const Array &str, QtPrivate::Deprecated_t) noexcept + : QStringView(str, lengthHelperArray(str)) {} +#endif // QT_DEPRECATED_SINCE + template = true> Q_DECL_CONSTEXPR QStringView(const Array &str) noexcept : QStringView(str, lengthHelperArray(str)) {} diff --git a/tests/auto/corelib/text/qlatin1string/tst_qlatin1string.cpp b/tests/auto/corelib/text/qlatin1string/tst_qlatin1string.cpp index cf46159251..0427c81b85 100644 --- a/tests/auto/corelib/text/qlatin1string/tst_qlatin1string.cpp +++ b/tests/auto/corelib/text/qlatin1string/tst_qlatin1string.cpp @@ -70,7 +70,7 @@ void tst_QLatin1String::arg() const do { \ auto p = QLatin1String(pattern); \ QCOMPARE(p.arg(QLatin1String(arg1)), expected); \ - QCOMPARE(p.arg(QStringViewLiteral(arg1)), expected); \ + QCOMPARE(p.arg(u"" arg1), expected); \ QCOMPARE(p.arg(QStringLiteral(arg1)), expected); \ QCOMPARE(p.arg(QString(QLatin1String(arg1))), expected); \ } while (false) \ @@ -79,9 +79,9 @@ void tst_QLatin1String::arg() const do { \ auto p = QLatin1String(pattern); \ QCOMPARE(p.arg(QLatin1String(arg1), QLatin1String(arg2)), expected); \ - QCOMPARE(p.arg(QStringViewLiteral(arg1), QLatin1String(arg2)), expected); \ - QCOMPARE(p.arg(QLatin1String(arg1), QStringViewLiteral(arg2)), expected); \ - QCOMPARE(p.arg(QStringViewLiteral(arg1), QStringViewLiteral(arg2)), expected); \ + QCOMPARE(p.arg(u"" arg1, QLatin1String(arg2)), expected); \ + QCOMPARE(p.arg(QLatin1String(arg1), u"" arg2), expected); \ + QCOMPARE(p.arg(u"" arg1, u"" arg2), expected); \ } while (false) \ /*end*/ diff --git a/tests/auto/corelib/text/qstringview/tst_qstringview.cpp b/tests/auto/corelib/text/qstringview/tst_qstringview.cpp index 5d95f43d6a..47ce9a6f63 100644 --- a/tests/auto/corelib/text/qstringview/tst_qstringview.cpp +++ b/tests/auto/corelib/text/qstringview/tst_qstringview.cpp @@ -431,20 +431,20 @@ void tst_QStringView::arg() const { #define CHECK1(pattern, arg1, expected) \ do { \ - auto p = QStringViewLiteral(pattern); \ + auto p = QStringView(u"" pattern); \ QCOMPARE(p.arg(QLatin1String(arg1)), expected); \ - QCOMPARE(p.arg(QStringViewLiteral(arg1)), expected); \ + QCOMPARE(p.arg(u"" arg1), expected); \ QCOMPARE(p.arg(QStringLiteral(arg1)), expected); \ QCOMPARE(p.arg(QString(QLatin1String(arg1))), expected); \ } while (false) \ /*end*/ #define CHECK2(pattern, arg1, arg2, expected) \ do { \ - auto p = QStringViewLiteral(pattern); \ + auto p = QStringView(u"" pattern); \ QCOMPARE(p.arg(QLatin1String(arg1), QLatin1String(arg2)), expected); \ - QCOMPARE(p.arg(QStringViewLiteral(arg1), QLatin1String(arg2)), expected); \ - QCOMPARE(p.arg(QLatin1String(arg1), QStringViewLiteral(arg2)), expected); \ - QCOMPARE(p.arg(QStringViewLiteral(arg1), QStringViewLiteral(arg2)), expected); \ + QCOMPARE(p.arg(u"" arg1, QLatin1String(arg2)), expected); \ + QCOMPARE(p.arg(QLatin1String(arg1), u"" arg2), expected); \ + QCOMPARE(p.arg(u"" arg1, u"" arg2), expected); \ } while (false) \ /*end*/ -- cgit v1.2.3 From a08ac1986d39b4d4614f654b3408c7b846c835c9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 8 Aug 2019 19:12:32 -0700 Subject: Fix integer overflow in QCryptographicHash's SHA-3 support Because 256 MB * 8 = 2 Gbit, but length*8 is a signed integer overflow, hence UB. Can't really autotest this. Not all systems where we're going to test can allocate 256 MB of RAM. [ChangeLog][QtCore][QCryptographicHash] Fixed a bug that caused the SHA-3 and Keccak algorithms to crash if passed 256 MB of data or more. Fixes: QTBUG-77362 Change-Id: Iec9c051acd73484c8d94fffd15b91f4b1450f5d7 Reviewed-by: Marc Mutz --- src/corelib/tools/qcryptographichash.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/corelib/tools/qcryptographichash.cpp b/src/corelib/tools/qcryptographichash.cpp index 3c79bb797d..51f48503fb 100644 --- a/src/corelib/tools/qcryptographichash.cpp +++ b/src/corelib/tools/qcryptographichash.cpp @@ -387,19 +387,19 @@ void QCryptographicHash::addData(const char *data, int length) break; case RealSha3_224: case Keccak_224: - sha3Update(&d->sha3Context, reinterpret_cast(data), length*8); + sha3Update(&d->sha3Context, reinterpret_cast(data), quint64(length) * 8); break; case RealSha3_256: case Keccak_256: - sha3Update(&d->sha3Context, reinterpret_cast(data), length*8); + sha3Update(&d->sha3Context, reinterpret_cast(data), quint64(length) * 8); break; case RealSha3_384: case Keccak_384: - sha3Update(&d->sha3Context, reinterpret_cast(data), length*8); + sha3Update(&d->sha3Context, reinterpret_cast(data), quint64(length) * 8); break; case RealSha3_512: case Keccak_512: - sha3Update(&d->sha3Context, reinterpret_cast(data), length*8); + sha3Update(&d->sha3Context, reinterpret_cast(data), quint64(length) * 8); break; #endif } -- cgit v1.2.3 From ffc2d5722317fcab86865b11491d7bf7fef3e16d Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 8 Aug 2019 19:13:55 -0700 Subject: QList: fix some integer cast warnings from 64- to 32-bit Not tested because we're not promising to fix them all. Just those two that were reported. Fixes: QTBUG-77391 Change-Id: Iec9c051acd73484c8d94fffd15b91f5e6348635d Reviewed-by: Marc Mutz --- src/corelib/tools/qlist.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h index e593ba9aa3..74b57f7ad4 100644 --- a/src/corelib/tools/qlist.h +++ b/src/corelib/tools/qlist.h @@ -111,7 +111,7 @@ struct Q_CORE_EXPORT QListData { void remove(int i); void remove(int i, int n); void move(int from, int to); - inline int size() const Q_DECL_NOTHROW { return d->end - d->begin; } + inline int size() const Q_DECL_NOTHROW { return int(d->end - d->begin); } // q6sizetype inline bool isEmpty() const Q_DECL_NOTHROW { return d->end == d->begin; } inline void **at(int i) const Q_DECL_NOTHROW { return d->array + d->begin + i; } inline void **begin() const Q_DECL_NOTHROW { return d->array + d->begin; } @@ -1031,7 +1031,7 @@ int lastIndexOf(const QList &list, const U &u, int from) Node *n = reinterpret_cast(list.p.at(from + 1)); while (n-- != b) { if (n->t() == u) - return n - b; + return typename QList::difference_type(n - b); } } return -1; -- cgit v1.2.3 From 5d7f1133205d14002463456c26a97f8ba17d69b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 7 Aug 2019 13:15:51 +0200 Subject: Add nullptr guard to QHighDScaling::scaleAndOrigin(QPlatformScreen *) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit b6ded193 added an unconditional dereference of the platformScreen pointer, for calls where nativePostion is non-nullptr. Change-Id: I4a6fbbd0337f91d4fcb76c17b4dc60e1b9ad10ed Reviewed-by: Tor Arne Vestbø --- src/gui/kernel/qhighdpiscaling.cpp | 2 ++ .../gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 0fea416404..64f1397771 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -456,6 +456,8 @@ QHighDpiScaling::ScaleAndOrigin QHighDpiScaling::scaleAndOrigin(const QPlatformS { if (!m_active) return { qreal(1), QPoint() }; + if (!platformScreen) + return { m_factor, QPoint() }; // the global factor const QPlatformScreen *actualScreen = nativePosition ? platformScreen->screenForPosition(*nativePosition) : platformScreen; return { m_factor * screenSubfactor(actualScreen), actualScreen->geometry().topLeft() }; diff --git a/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp b/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp index 969b2351ec..ec80c2d02c 100644 --- a/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp +++ b/tests/auto/gui/kernel/qhighdpiscaling/tst_qhighdpiscaling.cpp @@ -36,6 +36,7 @@ class tst_QHighDpiScaling: public QObject Q_OBJECT private slots: + void factor(); void scale(); }; @@ -50,6 +51,23 @@ public: QImage::Format format() const override { return QImage::Format_ARGB32_Premultiplied; } }; +void tst_QHighDpiScaling::factor() +{ + QHighDpiScaling::setGlobalFactor(2); + + // Verfy that QHighDpiScaling::factor() does not crash on nullptr contexts. + QPoint fakeNativePosition = QPoint(5, 5); + QPlatformScreen *screenContext = nullptr; + QVERIFY(QHighDpiScaling::factor(screenContext) >= 0); + QVERIFY(QHighDpiScaling::factor(screenContext, &fakeNativePosition) >= 0); + QPlatformScreen *platformScreenContext = nullptr; + QVERIFY(QHighDpiScaling::factor(platformScreenContext) >= 0); + QVERIFY(QHighDpiScaling::factor(platformScreenContext, &fakeNativePosition) >= 0); + QWindow *windowContext = nullptr; + QVERIFY(QHighDpiScaling::factor(windowContext) >= 0); + QVERIFY(QHighDpiScaling::factor(windowContext, &fakeNativePosition) >= 0); +} + // QTBUG-77255: Test some scaling overloads void tst_QHighDpiScaling::scale() { -- cgit v1.2.3 From 3729695cc9d550e831567772441ad55bd767ab1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 9 Aug 2019 12:25:05 +0200 Subject: =?UTF-8?q?macOS:=20Don=E2=80=99t=20show=20hidden=20windows=20whil?= =?UTF-8?q?e=20z-ordering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Calling [NSWindow orderBack] will make the window visible again, and will e.g. bring back closed menus on application modality changes. Fixes: QTBUG-77281 Change-Id: I2f89b852ea9f8ab34c709cec96d93fe305984fb9 Reviewed-by: Timur Pocheptsov Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qcocoawindowmanager.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/cocoa/qcocoawindowmanager.mm b/src/plugins/platforms/cocoa/qcocoawindowmanager.mm index 879bfaa546..9c45d8c7fc 100644 --- a/src/plugins/platforms/cocoa/qcocoawindowmanager.mm +++ b/src/plugins/platforms/cocoa/qcocoawindowmanager.mm @@ -92,7 +92,8 @@ void QCocoaWindowManager::modalSessionChanged() if (NSApp.modalWindow) { // Lower window to that of the modal windows, but no less nativeWindow.level = NSModalPanelWindowLevel; - [nativeWindow orderBack:nil]; + if ([nativeWindow isVisible]) + [nativeWindow orderBack:nil]; } else { // Restore window's natural window level, whatever that was nativeWindow.level = naturalWindowLevel; -- cgit v1.2.3 From 9bcbba36c73b8d03e8e58898629259489a24e040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 12 Jun 2019 15:29:31 +0200 Subject: QWizard: Account for missing background image on macOS 10.14+ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We were loading “Background.png” from the KeyboardSetupAssistant app bundle. As of macOS 10.14 that image is no longer there. Adjust auto tests and document the behavior. Change-Id: Icb4dd73b3fa88927e87bb86db2bc9f7b4a8094f7 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qcocoanativeinterface.mm | 3 +++ src/widgets/dialogs/qwizard.cpp | 2 +- tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp | 19 +++++++++---------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm index 7979e430ac..9bd19dd07c 100644 --- a/src/plugins/platforms/cocoa/qcocoanativeinterface.mm +++ b/src/plugins/platforms/cocoa/qcocoanativeinterface.mm @@ -177,6 +177,9 @@ void *QCocoaNativeInterface::NSPrintInfoForPrintEngine(QPrintEngine *printEngine QPixmap QCocoaNativeInterface::defaultBackgroundPixmapForQWizard() { + // Note: starting with macOS 10.14, the KeyboardSetupAssistant app bundle no + // longer contains the "Background.png" image. This function then returns a + // null pixmap. const int ExpectedImageWidth = 242; const int ExpectedImageHeight = 414; QCFType urls = LSCopyApplicationURLsForBundleIdentifier( diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp index 21e1ff2778..f19a4e99af 100644 --- a/src/widgets/dialogs/qwizard.cpp +++ b/src/widgets/dialogs/qwizard.cpp @@ -2890,7 +2890,7 @@ void QWizard::setPixmap(WizardPixmap which, const QPixmap &pixmap) Returns the pixmap set for role \a which. By default, the only pixmap that is set is the BackgroundPixmap on - \macos. + \macos version 10.13 and earlier. \sa QWizardPage::pixmap(), {Elements of a Wizard Page} */ diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp index 63f6e67a3e..da75e64d1e 100644 --- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp +++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp @@ -417,20 +417,19 @@ void tst_QWizard::setPixmap() QVERIFY(wizard.pixmap(QWizard::BannerPixmap).isNull()); QVERIFY(wizard.pixmap(QWizard::LogoPixmap).isNull()); QVERIFY(wizard.pixmap(QWizard::WatermarkPixmap).isNull()); -#ifdef Q_OS_OSX - QVERIFY(!wizard.pixmap(QWizard::BackgroundPixmap).isNull()); -#else - QVERIFY(wizard.pixmap(QWizard::BackgroundPixmap).isNull()); -#endif + if (QSysInfo::macVersion() <= Q_MV_OSX(10, 13)) + QVERIFY(!wizard.pixmap(QWizard::BackgroundPixmap).isNull()); + else + QVERIFY(wizard.pixmap(QWizard::BackgroundPixmap).isNull()); QVERIFY(page->pixmap(QWizard::BannerPixmap).isNull()); QVERIFY(page->pixmap(QWizard::LogoPixmap).isNull()); QVERIFY(page->pixmap(QWizard::WatermarkPixmap).isNull()); -#ifdef Q_OS_OSX - QVERIFY(!wizard.pixmap(QWizard::BackgroundPixmap).isNull()); -#else - QVERIFY(page->pixmap(QWizard::BackgroundPixmap).isNull()); -#endif + if (QSysInfo::macVersion() <= Q_MV_OSX(10, 13)) + QVERIFY(!wizard.pixmap(QWizard::BackgroundPixmap).isNull()); + else + QVERIFY(page->pixmap(QWizard::BackgroundPixmap).isNull()); + wizard.setPixmap(QWizard::BannerPixmap, p1); wizard.setPixmap(QWizard::LogoPixmap, p2); wizard.setPixmap(QWizard::WatermarkPixmap, p3); -- cgit v1.2.3 From fcc5323a08f955bcedd8a8a9750173384fa7d71f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 7 Jun 2019 16:04:23 +0200 Subject: Make test less dependent on moving the cursor The sendMouseMove() function calls QTest::mouseMove(), which again calls QCursor::setPos() to move the cursor. It then creates and sends a MouseMove event, using the constructor which picks up the global position by calling QCursor::pos(). On macOS 10.14, QCursor::setPos() may silently fail if the user does not grant the application permission to move the cursor (via a dialog). As result of this the mouse move event gets an incorrect global position. Provide the global position directly when creating the event to make sure it gets the correct value. Task-number: QTBUG-75786 Change-Id: I3e8df450fea802783a3d1dbe471753f502b42de3 Reviewed-by: Richard Moe Gustavsen --- tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp index 28df3a3c38..1456b9e35c 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp @@ -88,7 +88,7 @@ static void sendMousePress(QWidget *widget, const QPoint &point, Qt::MouseButton static void sendMouseMove(QWidget *widget, const QPoint &point, Qt::MouseButton button = Qt::NoButton, Qt::MouseButtons buttons = 0) { QTest::mouseMove(widget, point); - QMouseEvent event(QEvent::MouseMove, point, button, buttons, 0); + QMouseEvent event(QEvent::MouseMove, point, widget->mapToGlobal(point), button, buttons, 0); QApplication::sendEvent(widget, &event); QApplication::processEvents(); } -- cgit v1.2.3 From 08f0db4a72aef570f7fb1ce51ad892740455b67f Mon Sep 17 00:00:00 2001 From: Samuel Gaist Date: Thu, 8 Aug 2019 08:13:04 +0200 Subject: doc: Fix QImage Format_RGBX64 documentation The current explanation refers to itself rather than Format_RGBA64. This patch fixes that. Change-Id: Idc4c44ca71813ea2bdddba0c936f772cb7091ca8 Reviewed-by: Paul Wicking Reviewed-by: Sze Howe Koh --- src/gui/image/qimage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index ebd9037e44..f23debd931 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -713,7 +713,7 @@ bool QImageData::checkForAlphaPixels() const \value Format_Grayscale8 The image is stored using an 8-bit grayscale format. (added in Qt 5.5) \value Format_Grayscale16 The image is stored using an 16-bit grayscale format. (added in Qt 5.13) \value Format_RGBX64 The image is stored using a 64-bit halfword-ordered RGB(x) format (16-16-16-16). - This is the same as the Format_RGBX64 except alpha must always be 65535. (added in Qt 5.12) + This is the same as the Format_RGBA64 except alpha must always be 65535. (added in Qt 5.12) \value Format_RGBA64 The image is stored using a 64-bit halfword-ordered RGBA format (16-16-16-16). (added in Qt 5.12) \value Format_RGBA64_Premultiplied The image is stored using a premultiplied 64-bit halfword-ordered RGBA format (16-16-16-16). (added in Qt 5.12) -- cgit v1.2.3 From e66f247ccf345f1d303a92e53c21bb53d96c5af2 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 9 Aug 2019 15:54:00 +0200 Subject: Doc: Extend QMake's documentation of RC_FILE and RES_FILE RC_FILE is not an internal variable that "rarely needs to be modified". Mention that it's about Windows resources and link to the corresponding section. RES_FILE: Add link to RC_FILE and the more general section. Also rephrase "compiled Windows resource file" to "Windows resource compiler's output file" which is more precise. Fixes: QTBUG-8709 Change-Id: I19c61e6a9505d45fc13fefbcd0ba9441191aa42e Reviewed-by: Kai Koehne Reviewed-by: Kavindra Palaraja --- qmake/doc/src/qmake-manual.qdoc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/qmake/doc/src/qmake-manual.qdoc b/qmake/doc/src/qmake-manual.qdoc index d3148a1e62..2e2962f86c 100644 --- a/qmake/doc/src/qmake-manual.qdoc +++ b/qmake/doc/src/qmake-manual.qdoc @@ -2541,10 +2541,8 @@ \section1 RC_FILE - Specifies the name of the resource file for the application. - The value of this variable is typically handled by - qmake or \l{#QMAKESPEC}{qmake.conf} and rarely - needs to be modified. + Windows only. Specifies the name of the Windows resource file (.rc) for the + target. See \l{Adding Windows Resource Files}. \target RC_CODEPAGE \section1 RC_CODEPAGE @@ -2607,7 +2605,9 @@ \section1 RES_FILE - Specifies the name of the compiled Windows resource file for the target. + Windows only. Specifies the name of the Windows resource compiler's output + file for this target. See \l{RC_FILE} and \l{Adding Windows Resource Files}. + The value of this variable is typically handled by qmake or \l{#QMAKESPEC}{qmake.conf} and rarely needs to be modified. -- cgit v1.2.3 From 50e496bd3ac71ccebc99c0a429b41fb0e7864ac2 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 6 Aug 2019 15:01:49 +0200 Subject: Do not use QList QMakeLocalFileName is not suitable for QList. Use QVector instead. Change-Id: I5a3c4c8da14c0a920b5a57cba148ad68ac0f85a2 Reviewed-by: Edward Welbourne --- qmake/generators/makefile.cpp | 6 +++--- qmake/generators/makefiledeps.cpp | 8 ++++---- qmake/generators/makefiledeps.h | 7 ++++--- qmake/generators/projectgenerator.cpp | 2 +- qmake/generators/unix/unixmake.cpp | 7 +++---- qmake/generators/win32/winmakefile.cpp | 8 +++----- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 59cae332d8..ec73ccfe54 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -764,7 +764,7 @@ MakefileGenerator::init() ProStringList incDirs = v["DEPENDPATH"] + v["QMAKE_ABSOLUTE_SOURCE_PATH"]; if(project->isActiveConfig("depend_includepath")) incDirs += v["INCLUDEPATH"]; - QList deplist; + QVector deplist; deplist.reserve(incDirs.size()); for (ProStringList::Iterator it = incDirs.begin(); it != incDirs.end(); ++it) deplist.append(QMakeLocalFileName((*it).toQString())); @@ -1839,7 +1839,7 @@ static QStringList splitDeps(const QString &indeps, bool lineMode) QString MakefileGenerator::resolveDependency(const QDir &outDir, const QString &file) { - const QList &depdirs = QMakeSourceFileInfo::dependencyPaths(); + const QVector &depdirs = QMakeSourceFileInfo::dependencyPaths(); for (const auto &depdir : depdirs) { const QString &local = depdir.local(); QString lf = outDir.absoluteFilePath(local + '/' + file); @@ -3105,7 +3105,7 @@ MakefileGenerator::findFileForDep(const QMakeLocalFileName &dep, const QMakeLoca if(Option::output_dir != qmake_getpwd() && QDir::isRelativePath(dep.real())) { //is it from the shadow tree - QList depdirs = QMakeSourceFileInfo::dependencyPaths(); + QVector depdirs = QMakeSourceFileInfo::dependencyPaths(); depdirs.prepend(fileInfo(file.real()).absoluteDir().path()); QString pwd = qmake_getpwd(); if(pwd.at(pwd.length()-1) != '/') diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp index 69a3217723..10fcc1493c 100644 --- a/qmake/generators/makefiledeps.cpp +++ b/qmake/generators/makefiledeps.cpp @@ -199,10 +199,10 @@ void QMakeSourceFileInfo::dependTreeWalker(SourceFile *node, SourceDependChildre } } -void QMakeSourceFileInfo::setDependencyPaths(const QList &l) +void QMakeSourceFileInfo::setDependencyPaths(const QVector &l) { // Ensure that depdirs does not contain the same paths several times, to minimize the stats - QList ll; + QVector ll; for (int i = 0; i < l.count(); ++i) { if (!ll.contains(l.at(i))) ll.append(l.at(i)); @@ -853,8 +853,8 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file) } } if(!exists) { //path lookup - for(QList::Iterator it = depdirs.begin(); it != depdirs.end(); ++it) { - QMakeLocalFileName f((*it).real() + Option::dir_sep + lfn.real()); + for (const QMakeLocalFileName &depdir : qAsConst(depdirs)) { + QMakeLocalFileName f(depdir.real() + Option::dir_sep + lfn.real()); QFileInfo fi(findFileInfo(f)); if(fi.exists() && !fi.isDir()) { lfn = fixPathForFile(f); diff --git a/qmake/generators/makefiledeps.h b/qmake/generators/makefiledeps.h index 89ada9ed49..b91a3e0a0f 100644 --- a/qmake/generators/makefiledeps.h +++ b/qmake/generators/makefiledeps.h @@ -33,6 +33,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -65,7 +66,7 @@ private: //quick project lookups SourceFiles *files, *includes; bool files_changed; - QList depdirs; + QVector depdirs; QStringList systemIncludes; //sleezy buffer code @@ -91,8 +92,8 @@ public: QMakeSourceFileInfo(const QString &cachefile=""); virtual ~QMakeSourceFileInfo(); - QList dependencyPaths() const { return depdirs; } - void setDependencyPaths(const QList &); + QVector dependencyPaths() const { return depdirs; } + void setDependencyPaths(const QVector &); enum DependencyMode { Recursive, NonRecursive }; inline void setDependencyMode(DependencyMode mode) { dep_mode = mode; } diff --git a/qmake/generators/projectgenerator.cpp b/qmake/generators/projectgenerator.cpp index 119dd652b3..c43f6b4e4a 100644 --- a/qmake/generators/projectgenerator.cpp +++ b/qmake/generators/projectgenerator.cpp @@ -215,7 +215,7 @@ ProjectGenerator::init() } //setup deplist - QList deplist; + QVector deplist; { const ProStringList &d = v["DEPENDPATH"]; for(int i = 0; i < d.size(); ++i) diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp index 227dc8908a..664c81296c 100644 --- a/qmake/generators/unix/unixmake.cpp +++ b/qmake/generators/unix/unixmake.cpp @@ -392,7 +392,7 @@ UnixMakefileGenerator::fixLibFlag(const ProString &lib) bool UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) { - QList libdirs, frameworkdirs; + QVector libdirs, frameworkdirs; int libidx = 0, fwidx = 0; for (const ProString &dlib : project->values("QMAKE_DEFAULT_LIBDIRS")) libdirs.append(QMakeLocalFileName(dlib.toQString())); @@ -418,9 +418,8 @@ UnixMakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) libdirs.insert(libidx++, f); } else if(opt.startsWith("-l")) { QString lib = opt.mid(2); - for (QList::Iterator dep_it = libdirs.begin(); - dep_it != libdirs.end(); ++dep_it) { - QString libBase = (*dep_it).local() + '/' + for (const QMakeLocalFileName &libdir : qAsConst(libdirs)) { + QString libBase = libdir.local() + '/' + project->first("QMAKE_PREFIX_SHLIB") + lib; if (linkPrl && processPrlFile(libBase, true)) goto found; diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 613a5a6a89..392d825f5b 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -79,7 +79,7 @@ Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) ProStringList impexts = project->values("QMAKE_LIB_EXTENSIONS"); if (impexts.isEmpty()) impexts = project->values("QMAKE_EXTENSION_STATICLIB"); - QList dirs; + QVector dirs; int libidx = 0; for (const ProString &dlib : project->values("QMAKE_DEFAULT_LIBDIRS")) dirs.append(QMakeLocalFileName(dlib.toQString())); @@ -104,8 +104,7 @@ Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) QString lib = arg.toQString(); ProString verovr = project->first(ProKey("QMAKE_" + lib.toUpper() + "_VERSION_OVERRIDE")); - for (QList::Iterator dir_it = dirs.begin(); - dir_it != dirs.end(); ++dir_it) { + for (auto dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) { QString cand = (*dir_it).real() + Option::dir_sep + lib; if (linkPrl && processPrlFile(cand, true)) { (*it) = cand; @@ -128,8 +127,7 @@ Win32MakefileGenerator::findLibraries(bool linkPrl, bool mergeLflags) if (processPrlFile(lib, false)) (*it) = lib; } else { - for (QList::Iterator dir_it = dirs.begin(); - dir_it != dirs.end(); ++dir_it) { + for (auto dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) { QString cand = (*dir_it).real() + Option::dir_sep + lib; if (processPrlFile(cand, false)) { (*it) = cand; -- cgit v1.2.3 From 7f4f346e51b0479a0ab0b927e586e6c626028b4b Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 7 Aug 2019 10:57:31 +0200 Subject: Fix escaping of < and > in QMake's XML generator Having those characters in QMAKE_EXTRA_COMPILERS broke the generated VS project file. They must be replaced by XML entities. Fixes: QTBUG-1935 Change-Id: Iff1edbeabec4cedef777071682412970b7769f19 Reviewed-by: Oliver Wolff --- qmake/generators/xmloutput.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/qmake/generators/xmloutput.cpp b/qmake/generators/xmloutput.cpp index e92749a126..5d96128442 100644 --- a/qmake/generators/xmloutput.cpp +++ b/qmake/generators/xmloutput.cpp @@ -113,7 +113,8 @@ QString XmlOutput::doConversion(const QString &text) // this is a way to escape characters that shouldn't be converted for (int i=0; i')) { + output += QLatin1String(">"); } else { - QChar c = text.at(i); if (c.unicode() < 0x20) { output += QString("&#x%1;").arg(c.unicode(), 2, 16, QLatin1Char('0')); } else { - output += text.at(i); + output += c; } } } -- cgit v1.2.3 From ef74730a59fcfd4fff5b719c0310e817737e0efb Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 20 Jun 2019 17:38:47 +0200 Subject: CMake: Prevent creation of library target when it already exists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When doing plugin auto-importing as part of a Qt static build, it can happen that the same module FooConfig.cmake file is loaded twice. Make sure not to create the same target twice if it was already created previously. Task-number: QTBUG-38913 Change-Id: I734c83ff3c0bb9e3ee9bff37971209c57abaa2b9 Reviewed-by: Jörg Bornemann --- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index d4fd057682..2b7c1d28c4 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -317,6 +317,22 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) list(REMOVE_DUPLICATES Qt5$${CMAKE_MODULE_NAME}_EXECUTABLE_COMPILE_FLAGS) !!ENDIF // TEMPLATE != aux + # It can happen that the same FooConfig.cmake file is included when calling find_package() + # on some Qt component. An example of that is when using a Qt static build with auto inclusion + # of plugins: + # + # Qt5WidgetsConfig.cmake -> Qt5GuiConfig.cmake -> Qt5Gui_QSvgIconPlugin.cmake -> + # Qt5SvgConfig.cmake -> Qt5WidgetsConfig.cmake -> + # finish processing of second Qt5WidgetsConfig.cmake -> + # return to first Qt5WidgetsConfig.cmake -> + # add_library cannot create imported target "Qt5::Widgets". + # + # Make sure to return early in the original Config inclusion, because the target has already + # been defined as part of the second inclusion. + if(TARGET Qt5::$${CMAKE_MODULE_NAME}) + return() + endif() + set(_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES \"$${CMAKE_QT5_MODULE_DEPS}\") !!IF !isEmpty(CMAKE_INTERFACE_QT5_MODULE_DEPS) -- cgit v1.2.3 From 63d9cd17d01765f02ede5050c40a554cefa50744 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Wed, 17 Oct 2018 16:03:28 -0400 Subject: CMake: Add support for auto-importing plugins in CMake This commit adds transitive dependencies to the plugins, so that a sane set of default plugins get auto-imported when linking against a module. It also provides a new function, qt5_import_plugins(), which allows you to override the set of plugins that get imported. The decision of whether or not to import a specific plugin is based on several custom target properties and a very clever generator expression. Note that this change only imports plugins on static Qt builds. It does nothing on shared Qt builds, as the shared libraries already have their own plugin import mechanism. [ChangeLog][CMake] Added ability to auto-import non-qml plugins on CMake builds Task-number: QTBUG-38913 Task-number: QTBUG-76562 Change-Id: I2d6c8908b521cf6ba1ebbbc33a87cb7ddd9935cf Reviewed-by: Simon Hausmann --- mkspecs/features/create_cmake.prf | 94 +++++++++++------ .../features/data/cmake/Qt5BasicConfig.cmake.in | 35 ++++++- mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in | 2 + .../features/data/cmake/Qt5PluginTarget.cmake.in | 95 +++++++++++++++++- src/corelib/Qt5CoreMacros.cmake | 32 ++++++ sync.profile | 3 + tests/auto/cmake/CMakeLists.txt | 2 + tests/auto/cmake/cmake.pro | 7 +- .../cmake/mockplugins/mock1plugin/mock1plugin.json | 1 + .../cmake/mockplugins/mock1plugin/mock1plugin.pro | 9 ++ .../cmake/mockplugins/mock1plugin/qmock1plugin.cpp | 10 ++ .../cmake/mockplugins/mock1plugin/qmock1plugin.h | 70 +++++++++++++ .../cmake/mockplugins/mock2plugin/mock2plugin.json | 1 + .../cmake/mockplugins/mock2plugin/mock2plugin.pro | 10 ++ .../cmake/mockplugins/mock2plugin/qmock2plugin.cpp | 10 ++ .../cmake/mockplugins/mock2plugin/qmock2plugin.h | 70 +++++++++++++ .../cmake/mockplugins/mock3plugin/mock3plugin.json | 1 + .../cmake/mockplugins/mock3plugin/mock3plugin.pro | 10 ++ .../cmake/mockplugins/mock3plugin/qmock3plugin.cpp | 10 ++ .../cmake/mockplugins/mock3plugin/qmock3plugin.h | 70 +++++++++++++ .../cmake/mockplugins/mock4plugin/mock4plugin.json | 1 + .../cmake/mockplugins/mock4plugin/mock4plugin.pro | 10 ++ .../cmake/mockplugins/mock4plugin/qmock4plugin.cpp | 10 ++ .../cmake/mockplugins/mock4plugin/qmock4plugin.h | 70 +++++++++++++ .../cmake/mockplugins/mock5plugin/mock5plugin.json | 1 + .../cmake/mockplugins/mock5plugin/mock5plugin.pro | 10 ++ .../cmake/mockplugins/mock5plugin/qmock5plugin.cpp | 10 ++ .../cmake/mockplugins/mock5plugin/qmock5plugin.h | 70 +++++++++++++ .../cmake/mockplugins/mock6plugin/mock6plugin.json | 1 + .../cmake/mockplugins/mock6plugin/mock6plugin.pro | 9 ++ .../cmake/mockplugins/mock6plugin/qmock6plugin.cpp | 10 ++ .../cmake/mockplugins/mock6plugin/qmock6plugin.h | 70 +++++++++++++ tests/auto/cmake/mockplugins/mockplugins.pro | 36 +++++++ tests/auto/cmake/mockplugins/mockplugins1/fake.cpp | 34 +++++++ .../mockplugins/mockplugins1/mockplugins1.pro | 10 ++ .../cmake/mockplugins/mockplugins1/qmockplugin.h | 72 +++++++++++++ tests/auto/cmake/mockplugins/mockplugins2/fake.cpp | 34 +++++++ .../mockplugins/mockplugins2/mockplugins2.pro | 4 + tests/auto/cmake/mockplugins/mockplugins3/fake.cpp | 34 +++++++ .../mockplugins/mockplugins3/mockplugins3.pro | 11 ++ .../mockplugins/mockplugins3/qmockauxplugin.h | 72 +++++++++++++ .../auto/cmake/test_import_plugins/CMakeLists.txt | 111 +++++++++++++++++++++ tests/auto/cmake/test_import_plugins/check.cpp.in | 8 ++ tests/auto/cmake/test_import_plugins/main.cpp | 101 +++++++++++++++++++ 44 files changed, 1308 insertions(+), 33 deletions(-) create mode 100644 mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in create mode 100644 tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.json create mode 100644 tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.pro create mode 100644 tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.cpp create mode 100644 tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.h create mode 100644 tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.json create mode 100644 tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.pro create mode 100644 tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.cpp create mode 100644 tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.h create mode 100644 tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.json create mode 100644 tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.pro create mode 100644 tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.cpp create mode 100644 tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.h create mode 100644 tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.json create mode 100644 tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.pro create mode 100644 tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.cpp create mode 100644 tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.h create mode 100644 tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.json create mode 100644 tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.pro create mode 100644 tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.cpp create mode 100644 tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.h create mode 100644 tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.json create mode 100644 tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.pro create mode 100644 tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.cpp create mode 100644 tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.h create mode 100644 tests/auto/cmake/mockplugins/mockplugins.pro create mode 100644 tests/auto/cmake/mockplugins/mockplugins1/fake.cpp create mode 100644 tests/auto/cmake/mockplugins/mockplugins1/mockplugins1.pro create mode 100644 tests/auto/cmake/mockplugins/mockplugins1/qmockplugin.h create mode 100644 tests/auto/cmake/mockplugins/mockplugins2/fake.cpp create mode 100644 tests/auto/cmake/mockplugins/mockplugins2/mockplugins2.pro create mode 100644 tests/auto/cmake/mockplugins/mockplugins3/fake.cpp create mode 100644 tests/auto/cmake/mockplugins/mockplugins3/mockplugins3.pro create mode 100644 tests/auto/cmake/mockplugins/mockplugins3/qmockauxplugin.h create mode 100644 tests/auto/cmake/test_import_plugins/CMakeLists.txt create mode 100644 tests/auto/cmake/test_import_plugins/check.cpp.in create mode 100644 tests/auto/cmake/test_import_plugins/main.cpp diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 376a7ded5d..e88d6175a4 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -160,60 +160,95 @@ debug_and_release { } contains(CONFIG, plugin) { - !isEmpty(PLUGIN_EXTENDS):!equals(PLUGIN_EXTENDS, -) { - count(PLUGIN_EXTENDS, 1, greaterThan): \ - error("Plugin declares to extend multiple modules. We don't handle that ...") - PLUGIN_MODULE_NAME = $$PLUGIN_EXTENDS + equals(PLUGIN_EXTENDS, -) { + CMAKE_PLUGIN_EXTENDS = - } else { - PLUGIN_MODULE_NAME = - for (mod, QT_MODULES) { - contains(QT.$${mod}.plugin_types, $$PLUGIN_TYPE) { - !isEmpty(PLUGIN_MODULE_NAME): \ - error("Multiple modules claim plugin type '$$PLUGIN_TYPE' ($$mod, in addition to $$PLUGIN_MODULE_NAME)") - PLUGIN_MODULE_NAME = $$mod - break() - } + list_plugin_extends = + for (p, PLUGIN_EXTENDS) { + m = $$cmakeModuleName($$p) + list_plugin_extends += Qt5::$$m } - isEmpty(PLUGIN_MODULE_NAME): error("No module claims plugin type '$$PLUGIN_TYPE'") + CMAKE_PLUGIN_EXTENDS = $$join(list_plugin_extends, ";") } + PLUGIN_MODULE_NAME = + unique_qt_modules = $$unique(QT_MODULES) # In case modules appear in multiple places + for (mod, unique_qt_modules) { + contains(QT.$${mod}.plugin_types, $$PLUGIN_TYPE) { + !isEmpty(PLUGIN_MODULE_NAME): \ + error("Multiple modules claim plugin type '$$PLUGIN_TYPE' ($$mod, in addition to $$PLUGIN_MODULE_NAME)") + PLUGIN_MODULE_NAME = $$mod + } + } + isEmpty(PLUGIN_MODULE_NAME): error("No module claims plugin type '$$PLUGIN_TYPE'") + + sorted_deps = $$sort_depends(QT_PLUGIN.$${CMAKE_QT_STEM}.DEPENDS, QT.) + mod_deps = + lib_deps = + aux_mod_deps = + aux_lib_deps = + for (dep, sorted_deps) { + cdep = $$cmakeModuleName($$dep) + mod_deps += $$cdep + lib_deps += Qt5::$$cdep + } + CMAKE_PLUGIN_MODULE_DEPS = $$join(mod_deps, ";") + CMAKE_PLUGIN_QT5_MODULE_DEPS = $$join(lib_deps, ";") + CMAKE_MODULE_NAME = $$cmakeModuleName($$PLUGIN_MODULE_NAME) CMAKE_PLUGIN_NAME = $$PLUGIN_CLASS_NAME + CMAKE_PLUGIN_TYPE = $$PLUGIN_TYPE + CMAKE_PLUGIN_TYPE_ESCAPED = $$replace(PLUGIN_TYPE, [-/], _) win32 { isEmpty(CMAKE_STATIC_TYPE) { - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.dll - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.dll + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.dll + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.dll + CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.prl } else:mingw { - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}.a - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}d.a + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}.a + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}d.a + CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}d.prl } else { # MSVC static - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${TARGET}.lib - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${TARGET}d.lib + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.lib + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.lib + CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/$${CMAKE_QT_STEM}d.prl } } else { mac { - isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .dylib - else: CMAKE_PlUGIN_EXT = .a + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PLUGIN_EXT = .dylib + else: CMAKE_PLUGIN_EXT = .a - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT} - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT} + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}$${CMAKE_PLUGIN_EXT} + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}_debug$${CMAKE_PLUGIN_EXT} + CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}_debug.prl } else { - isEmpty(CMAKE_STATIC_TYPE): CMAKE_PlUGIN_EXT = .so - else: CMAKE_PlUGIN_EXT = .a + isEmpty(CMAKE_STATIC_TYPE): CMAKE_PLUGIN_EXT = .so + else: CMAKE_PLUGIN_EXT = .a - CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT} - CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${TARGET}$${CMAKE_PlUGIN_EXT} + CMAKE_PLUGIN_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}$${CMAKE_PLUGIN_EXT} + CMAKE_PLUGIN_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}$${CMAKE_PLUGIN_EXT} + CMAKE_PRL_FILE_LOCATION_RELEASE = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}.prl + CMAKE_PRL_FILE_LOCATION_DEBUG = $$PLUGIN_TYPE/lib$${CMAKE_QT_STEM}.prl } } cmake_target_file.input = $$PWD/data/cmake/Qt5PluginTarget.cmake.in cmake_target_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}.cmake + cmake_qt5_plugin_import_file.input = $$PWD/data/cmake/Qt5ImportPlugin.cpp.in + cmake_qt5_plugin_import_file.output = $$CMAKE_OUT_DIR/Qt5$${CMAKE_MODULE_NAME}/Qt5$${CMAKE_MODULE_NAME}_$${PLUGIN_CLASS_NAME}_Import.cpp - !build_pass:QMAKE_SUBSTITUTES += \ - cmake_target_file + !build_pass { + QMAKE_SUBSTITUTES += cmake_target_file + static|staticlib: QMAKE_SUBSTITUTES += cmake_qt5_plugin_import_file + } cmake_qt5_plugin_file.files = $$cmake_target_file.output + static|staticlib: cmake_qt5_plugin_file.files += $$cmake_qt5_plugin_import_file.output cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME} INSTALLS += cmake_qt5_plugin_file @@ -244,6 +279,7 @@ CMAKE_MODULE_DEPS = $$join(mod_deps, ";") CMAKE_QT5_MODULE_DEPS = $$join(lib_deps, ";") CMAKE_INTERFACE_MODULE_DEPS = $$join(aux_mod_deps, ";") CMAKE_INTERFACE_QT5_MODULE_DEPS = $$join(aux_lib_deps, ";") +CMAKE_MODULE_PLUGIN_TYPES = $$join(QT.$${MODULE}.plugin_types, ";") mac { !isEmpty(CMAKE_STATIC_TYPE) { diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 2b7c1d28c4..7a599d30d5 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -397,6 +397,8 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_ENABLED_FEATURES $$join(QT.$${MODULE}.enabled_features, ";")) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_DISABLED_FEATURES $$join(QT.$${MODULE}.disabled_features, ";")) + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY QT_PLUGIN_TYPES \"$${CMAKE_MODULE_PLUGIN_TYPES}\") + set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST TRUE) foreach (_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR ${Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS}) if (NOT EXISTS ${_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR}) @@ -504,7 +506,8 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) file(GLOB pluginTargets \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_*Plugin.cmake\") - macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION) + macro(_populate_$${CMAKE_MODULE_NAME}_plugin_properties Plugin Configuration PLUGIN_LOCATION + IsDebugAndRelease) set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration}) !!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE) @@ -516,6 +519,36 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_target_properties(Qt5::${Plugin} PROPERTIES \"IMPORTED_LOCATION_${Configuration}\" ${imported_location} ) + +!!IF !isEmpty(CMAKE_STATIC_TYPE) + set(_static_deps + ${_Qt5${Plugin}_STATIC_${Configuration}_LIB_DEPENDENCIES} + ) + + if(NOT "${IsDebugAndRelease}") + set(_genex_condition \"1\") + else() + if("${Configuration}" STREQUAL "DEBUG") + set(_genex_condition \"$\") + else() + set(_genex_condition \"$>\") + endif() + endif() + if(_static_deps) + set(_static_deps_genex \"$<${_genex_condition}:${_static_deps}>\") + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_LIBRARIES + \"${_static_deps_genex}\" + ) + endif() + + set(_static_link_flags \"${_Qt5${Plugin}_STATIC_${Configuration}_LINK_FLAGS}\") + if(NOT CMAKE_VERSION VERSION_LESS \"3.13\" AND _static_link_flags) + set(_static_link_flags_genex \"$<${_genex_condition}:${_static_link_flags}>\") + set_property(TARGET Qt5::${Plugin} APPEND PROPERTY INTERFACE_LINK_OPTIONS + \"${_static_link_flags_genex}\" + ) + endif() +!!ENDIF endmacro() if (pluginTargets) diff --git a/mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in b/mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in new file mode 100644 index 0000000000..6e27f7a260 --- /dev/null +++ b/mkspecs/features/data/cmake/Qt5ImportPlugin.cpp.in @@ -0,0 +1,2 @@ +#include +Q_IMPORT_PLUGIN($$CMAKE_PLUGIN_NAME) diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in index 5baf0fdb10..7b70cfed09 100644 --- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in +++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in @@ -1,11 +1,102 @@ add_library(Qt5::$$CMAKE_PLUGIN_NAME MODULE IMPORTED) +!!IF !isEmpty(CMAKE_STATIC_TYPE) +set(_Qt5$${CMAKE_PLUGIN_NAME}_MODULE_DEPENDENCIES \"$${CMAKE_PLUGIN_MODULE_DEPS}\") + +foreach(_module_dep ${_Qt5$${CMAKE_PLUGIN_NAME}_MODULE_DEPENDENCIES}) + if(NOT Qt5${_module_dep}_FOUND) + find_package(Qt5${_module_dep} + $$VERSION ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT} + ${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET} + ${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED} + PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH + ) + endif() +endforeach() + !!IF !isEmpty(CMAKE_RELEASE_TYPE) -_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\") +!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) +_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS +) +!!ELSE +_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( + \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_RELEASE}\" RELEASE + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LIB_DEPENDENCIES + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_RELEASE_LINK_FLAGS +) !!ENDIF +!!ENDIF + !!IF !isEmpty(CMAKE_DEBUG_TYPE) -_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\") +!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) +_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( + \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS +) +!!ELSE +_qt5_$${CMAKE_MODULE_NAME}_process_prl_file( + \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PRL_FILE_LOCATION_DEBUG}\" DEBUG + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LIB_DEPENDENCIES + _Qt5$${CMAKE_PLUGIN_NAME}_STATIC_DEBUG_LINK_FLAGS +) +!!ENDIF +!!ENDIF + +set_property(TARGET Qt5::$$CMAKE_PLUGIN_NAME PROPERTY INTERFACE_SOURCES + \"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}_$${CMAKE_PLUGIN_NAME}_Import.cpp\" +) +!!ENDIF + +!!IF !isEmpty(CMAKE_RELEASE_TYPE) +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE}) +!!ENDIF +!!IF !isEmpty(CMAKE_DEBUG_TYPE) +_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE}) !!ENDIF list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME) +set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY QT_ALL_PLUGINS_$${CMAKE_PLUGIN_TYPE_ESCAPED} Qt5::$${CMAKE_PLUGIN_NAME}) +!!IF !isEmpty(CMAKE_STATIC_TYPE) +# $ wasn\'t added until CMake 3.12, so put a version guard around it +if(CMAKE_VERSION VERSION_LESS \"3.12\") + set(_manual_plugins_genex \"$\") + set(_plugin_type_genex \"$\") + set(_no_plugins_genex \"$\") +else() + set(_manual_plugins_genex \"$>\") + set(_plugin_type_genex \"$>\") + set(_no_plugins_genex \"$>\") +endif() +set(_user_specified_genex + \"$\" +) +string(CONCAT _plugin_genex + \"$<$,\" + \"$,Qt5::$${CMAKE_MODULE_NAME}>,\" + \"$,>\" + \">,\" + \"$>\" + \">\" + \">:Qt5::$$CMAKE_PLUGIN_NAME>\" +) +set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES + ${_plugin_genex} +) +set_property(TARGET Qt5::$${CMAKE_PLUGIN_NAME} APPEND PROPERTY INTERFACE_LINK_LIBRARIES + \"$${CMAKE_PLUGIN_QT5_MODULE_DEPS}\" +) +!!ENDIF +set_property(TARGET Qt5::$${CMAKE_PLUGIN_NAME} PROPERTY QT_PLUGIN_TYPE \"$$CMAKE_PLUGIN_TYPE\") +set_property(TARGET Qt5::$${CMAKE_PLUGIN_NAME} PROPERTY QT_PLUGIN_EXTENDS \"$$CMAKE_PLUGIN_EXTENDS\") diff --git a/src/corelib/Qt5CoreMacros.cmake b/src/corelib/Qt5CoreMacros.cmake index 0f006fe1e3..17cc19fc4e 100644 --- a/src/corelib/Qt5CoreMacros.cmake +++ b/src/corelib/Qt5CoreMacros.cmake @@ -393,3 +393,35 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.9) endforeach() endmacro() endif() + +function(QT5_IMPORT_PLUGINS TARGET_NAME) + set(_doing "") + foreach(_arg ${ARGN}) + if(_arg STREQUAL "INCLUDE") + set(_doing "INCLUDE") + elseif(_arg STREQUAL "EXCLUDE") + set(_doing "EXCLUDE") + elseif(_arg STREQUAL "INCLUDE_BY_TYPE") + set(_doing "INCLUDE_BY_TYPE") + elseif(_arg STREQUAL "EXCLUDE_BY_TYPE") + set(_doing "EXCLUDE_BY_TYPE") + else() + if(_doing STREQUAL "INCLUDE") + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY QT_PLUGINS "${_arg}") + elseif(_doing STREQUAL "EXCLUDE") + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY QT_NO_PLUGINS "${_arg}") + elseif(_doing STREQUAL "INCLUDE_BY_TYPE") + string(REGEX REPLACE "[-/]" "_" _plugin_type "${_arg}") + set(_doing "INCLUDE_BY_TYPE_PLUGINS") + elseif(_doing STREQUAL "INCLUDE_BY_TYPE_PLUGINS") + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY "QT_PLUGINS_${_plugin_type}" "${_arg}") + elseif(_doing STREQUAL "EXCLUDE_BY_TYPE") + string(REGEX REPLACE "[-/]" "_" _plugin_type "${_arg}") + set_property(TARGET ${TARGET_NAME} PROPERTY "QT_PLUGINS_${_plugin_type}" -) + set(_doing "") + else() + message(FATAL_ERROR "Unexpected extra argument: \"${_arg}\"") + endif() + endif() + endforeach() +endfunction() diff --git a/sync.profile b/sync.profile index e6fc285573..fd44197a00 100644 --- a/sync.profile +++ b/sync.profile @@ -37,6 +37,9 @@ "QtZlib" => "!>$basedir/src/corelib;$basedir/src/3rdparty/zlib", "QtOpenGLExtensions" => "$basedir/src/openglextensions", "QtEglFSDeviceIntegration" => "$basedir/src/plugins/platforms/eglfs", + "QtMockPlugins1" => "$basedir/tests/auto/cmake/mockplugins/mockplugins1", + "QtMockPlugins2" => "$basedir/tests/auto/cmake/mockplugins/mockplugins2", + "QtMockPlugins3" => "$basedir/tests/auto/cmake/mockplugins/mockplugins3", ); %moduleheaders = ( # restrict the module headers to those found in relative path "QtEglFSDeviceIntegration" => "api", diff --git a/tests/auto/cmake/CMakeLists.txt b/tests/auto/cmake/CMakeLists.txt index 5b10a74d3f..ed900f7805 100644 --- a/tests/auto/cmake/CMakeLists.txt +++ b/tests/auto/cmake/CMakeLists.txt @@ -160,3 +160,5 @@ if (NOT CMAKE_VERSION VERSION_LESS 3.8) # Reason: SKIP_* properties were added in CMake 3.8 only expect_pass(test_QTBUG-63422) endif() + +expect_pass(test_import_plugins BINARY ${CMAKE_CTEST_COMMAND}) diff --git a/tests/auto/cmake/cmake.pro b/tests/auto/cmake/cmake.pro index 9c715974f8..06509f4ad3 100644 --- a/tests/auto/cmake/cmake.pro +++ b/tests/auto/cmake/cmake.pro @@ -1,7 +1,12 @@ -# Cause make to do nothing. TEMPLATE = subdirs +# installed_cmake includes this file, and tries to add the mockplugins +# directory relative to itself, but doesn't have its own copy of the directory. +# So, we make the path absolute so it includes this copy of the directory +# instead. +SUBDIRS += $$PWD/mockplugins + CMAKE_QT_MODULES_UNDER_TEST = core network xml sql testlib qtHaveModule(dbus): CMAKE_QT_MODULES_UNDER_TEST += dbus diff --git a/tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.json b/tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.json @@ -0,0 +1 @@ +{} diff --git a/tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.pro b/tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.pro new file mode 100644 index 0000000000..1ccbe924ae --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock1plugin/mock1plugin.pro @@ -0,0 +1,9 @@ +TARGET = mock1plugin + +HEADERS += qmock1plugin.h +SOURCES += qmock1plugin.cpp +QT = mockplugins1 + +PLUGIN_TYPE = mockplugin +PLUGIN_CLASS_NAME = QMock1Plugin +load(qt_plugin) diff --git a/tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.cpp b/tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.cpp new file mode 100644 index 0000000000..2ee817d80a --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.cpp @@ -0,0 +1,10 @@ +#include "qmock1plugin.h" + +QT_BEGIN_NAMESPACE + +QString QMock1Plugin::pluginName() const +{ + return "QMock1Plugin"; +} + +QT_END_NAMESPACE diff --git a/tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.h b/tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.h new file mode 100644 index 0000000000..e2e114b1d9 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock1plugin/qmock1plugin.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCK1PLUGIN_H +#define QMOCK1PLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QMock1Plugin : public QObject, public QMockPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QMockPlugin_iid FILE "mock1plugin.json") + Q_INTERFACES(QMockPlugin) +public: + QString pluginName() const override; +}; + +QT_END_NAMESPACE + +#endif // QMOCK1PLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.json b/tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.json @@ -0,0 +1 @@ +{} diff --git a/tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.pro b/tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.pro new file mode 100644 index 0000000000..75dc21cf0a --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock2plugin/mock2plugin.pro @@ -0,0 +1,10 @@ +TARGET = mock2plugin + +HEADERS += qmock2plugin.h +SOURCES += qmock2plugin.cpp +QT = mockplugins1 + +PLUGIN_TYPE = mockplugin +PLUGIN_CLASS_NAME = QMock2Plugin +PLUGIN_EXTENDS = mockplugins1 +load(qt_plugin) diff --git a/tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.cpp b/tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.cpp new file mode 100644 index 0000000000..5b3280e884 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.cpp @@ -0,0 +1,10 @@ +#include "qmock2plugin.h" + +QT_BEGIN_NAMESPACE + +QString QMock2Plugin::pluginName() const +{ + return "QMock2Plugin"; +} + +QT_END_NAMESPACE diff --git a/tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.h b/tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.h new file mode 100644 index 0000000000..be99133dc8 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock2plugin/qmock2plugin.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCK2PLUGIN_H +#define QMOCK2PLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QMock2Plugin : public QObject, public QMockPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QMockPlugin_iid FILE "mock2plugin.json") + Q_INTERFACES(QMockPlugin) +public: + QString pluginName() const override; +}; + +QT_END_NAMESPACE + +#endif // QMOCK2PLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.json b/tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.json @@ -0,0 +1 @@ +{} diff --git a/tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.pro b/tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.pro new file mode 100644 index 0000000000..ed7df603bb --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock3plugin/mock3plugin.pro @@ -0,0 +1,10 @@ +TARGET = mock3plugin + +HEADERS += qmock3plugin.h +SOURCES += qmock3plugin.cpp +QT = mockplugins1 + +PLUGIN_TYPE = mockplugin +PLUGIN_CLASS_NAME = QMock3Plugin +PLUGIN_EXTENDS = mockplugins1 mockplugins2 +load(qt_plugin) diff --git a/tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.cpp b/tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.cpp new file mode 100644 index 0000000000..b38f854e4b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.cpp @@ -0,0 +1,10 @@ +#include "qmock3plugin.h" + +QT_BEGIN_NAMESPACE + +QString QMock3Plugin::pluginName() const +{ + return "QMock3Plugin"; +} + +QT_END_NAMESPACE diff --git a/tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.h b/tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.h new file mode 100644 index 0000000000..08d1aa68ce --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock3plugin/qmock3plugin.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCK3PLUGIN_H +#define QMOCK3PLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QMock3Plugin : public QObject, public QMockPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QMockPlugin_iid FILE "mock3plugin.json") + Q_INTERFACES(QMockPlugin) +public: + QString pluginName() const override; +}; + +QT_END_NAMESPACE + +#endif // QMOCK3PLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.json b/tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.json @@ -0,0 +1 @@ +{} diff --git a/tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.pro b/tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.pro new file mode 100644 index 0000000000..4dd2d6c547 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock4plugin/mock4plugin.pro @@ -0,0 +1,10 @@ +TARGET = mock4plugin + +HEADERS += qmock4plugin.h +SOURCES += qmock4plugin.cpp +QT = mockplugins1 + +PLUGIN_TYPE = mockplugin +PLUGIN_CLASS_NAME = QMock4Plugin +PLUGIN_EXTENDS = - +load(qt_plugin) diff --git a/tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.cpp b/tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.cpp new file mode 100644 index 0000000000..5deaf7f43f --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.cpp @@ -0,0 +1,10 @@ +#include "qmock4plugin.h" + +QT_BEGIN_NAMESPACE + +QString QMock4Plugin::pluginName() const +{ + return "QMock4Plugin"; +} + +QT_END_NAMESPACE diff --git a/tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.h b/tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.h new file mode 100644 index 0000000000..0776bef002 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock4plugin/qmock4plugin.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCK4PLUGIN_H +#define QMOCK4PLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QMock4Plugin : public QObject, public QMockPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QMockPlugin_iid FILE "mock4plugin.json") + Q_INTERFACES(QMockPlugin) +public: + QString pluginName() const override; +}; + +QT_END_NAMESPACE + +#endif // QMOCK4PLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.json b/tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.json @@ -0,0 +1 @@ +{} diff --git a/tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.pro b/tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.pro new file mode 100644 index 0000000000..29496868fe --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock5plugin/mock5plugin.pro @@ -0,0 +1,10 @@ +TARGET = mock5plugin + +HEADERS += qmock5plugin.h +SOURCES += qmock5plugin.cpp +QT = mockplugins3 + +PLUGIN_TYPE = mockplugin +PLUGIN_CLASS_NAME = QMock5Plugin +PLUGIN_EXTENDS = - +load(qt_plugin) diff --git a/tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.cpp b/tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.cpp new file mode 100644 index 0000000000..c5b4620516 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.cpp @@ -0,0 +1,10 @@ +#include "qmock5plugin.h" + +QT_BEGIN_NAMESPACE + +QString QMock5Plugin::pluginName() const +{ + return "QMock5Plugin"; +} + +QT_END_NAMESPACE diff --git a/tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.h b/tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.h new file mode 100644 index 0000000000..2f387da203 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock5plugin/qmock5plugin.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCK5PLUGIN_H +#define QMOCK5PLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QMock5Plugin : public QObject, public QMockPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QMockPlugin_iid FILE "mock5plugin.json") + Q_INTERFACES(QMockPlugin) +public: + QString pluginName() const override; +}; + +QT_END_NAMESPACE + +#endif // QMOCK5PLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.json b/tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.json @@ -0,0 +1 @@ +{} diff --git a/tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.pro b/tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.pro new file mode 100644 index 0000000000..140f198811 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock6plugin/mock6plugin.pro @@ -0,0 +1,9 @@ +TARGET = mock6plugin + +HEADERS += qmock6plugin.h +SOURCES += qmock6plugin.cpp +QT = mockplugins3 + +PLUGIN_TYPE = mockauxplugin +PLUGIN_CLASS_NAME = QMock6Plugin +load(qt_plugin) diff --git a/tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.cpp b/tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.cpp new file mode 100644 index 0000000000..4a0329c68a --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.cpp @@ -0,0 +1,10 @@ +#include "qmock6plugin.h" + +QT_BEGIN_NAMESPACE + +QString QMock6Plugin::pluginName() const +{ + return "QMock6Plugin"; +} + +QT_END_NAMESPACE diff --git a/tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.h b/tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.h new file mode 100644 index 0000000000..6b29b6703b --- /dev/null +++ b/tests/auto/cmake/mockplugins/mock6plugin/qmock6plugin.h @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCK6PLUGIN_H +#define QMOCK6PLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +class QMock6Plugin : public QObject, public QMockAuxPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QMockAuxPlugin_iid FILE "mock6plugin.json") + Q_INTERFACES(QMockAuxPlugin) +public: + QString pluginName() const override; +}; + +QT_END_NAMESPACE + +#endif // QMOCK6PLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mockplugins.pro b/tests/auto/cmake/mockplugins/mockplugins.pro new file mode 100644 index 0000000000..830d130a05 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins.pro @@ -0,0 +1,36 @@ +TEMPLATE = subdirs + +src_mock1plugin.subdir = $$PWD/mock1plugin +src_mock1plugin.target = sub-mockplugin1 +src_mock1plugin.depends = mockplugins1 + +src_mock2plugin.subdir = $$PWD/mock2plugin +src_mock2plugin.target = sub-mockplugin2 +src_mock2plugin.depends = mockplugins1 + +src_mock3plugin.subdir = $$PWD/mock3plugin +src_mock3plugin.target = sub-mockplugin3 +src_mock3plugin.depends = mockplugins1 + +src_mock4plugin.subdir = $$PWD/mock4plugin +src_mock4plugin.target = sub-mockplugin4 +src_mock4plugin.depends = mockplugins1 + +src_mock5plugin.subdir = $$PWD/mock5plugin +src_mock5plugin.target = sub-mockplugin5 +src_mock5plugin.depends = mockplugins3 + +src_mock6plugin.subdir = $$PWD/mock6plugin +src_mock6plugin.target = sub-mockplugin6 +src_mock6plugin.depends = mockplugins3 + +SUBDIRS += \ + mockplugins1 \ + mockplugins2 \ + mockplugins3 \ + src_mock1plugin \ + src_mock2plugin \ + src_mock3plugin \ + src_mock4plugin \ + src_mock5plugin \ + src_mock6plugin diff --git a/tests/auto/cmake/mockplugins/mockplugins1/fake.cpp b/tests/auto/cmake/mockplugins/mockplugins1/fake.cpp new file mode 100644 index 0000000000..f95eba6055 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins1/fake.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +// Empty exported function needed to create .lib on Windows. +Q_DECL_EXPORT void mockplugins1_foo() { + +} diff --git a/tests/auto/cmake/mockplugins/mockplugins1/mockplugins1.pro b/tests/auto/cmake/mockplugins/mockplugins1/mockplugins1.pro new file mode 100644 index 0000000000..dd98937ee3 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins1/mockplugins1.pro @@ -0,0 +1,10 @@ +TARGET = QtMockPlugins1 +QT = core +MODULE_PLUGIN_TYPES = mockplugin + +# Fake a git_build, to force qmake to run syncqt.pl when doing a standalone tests build +# like it is done in Coin, otherwise module headers would not be generated. +CONFIG += git_build +HEADERS += qmockplugin.h +SOURCES += fake.cpp # Needed to make libtool / ar happy on macOS +load(qt_module) diff --git a/tests/auto/cmake/mockplugins/mockplugins1/qmockplugin.h b/tests/auto/cmake/mockplugins/mockplugins1/qmockplugin.h new file mode 100644 index 0000000000..9427ae9212 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins1/qmockplugin.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCKPLUGIN_H +#define QMOCKPLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +#define QMockPlugin_iid "org.qt-project.Qt.Tests.QMockPlugin" + +class QMockPlugin +{ +public: + virtual ~QMockPlugin() {} + virtual QString pluginName() const = 0; +}; + +Q_DECLARE_INTERFACE(QMockPlugin, QMockPlugin_iid) + +QT_END_NAMESPACE + +#endif // QMOCKPLUGIN_H diff --git a/tests/auto/cmake/mockplugins/mockplugins2/fake.cpp b/tests/auto/cmake/mockplugins/mockplugins2/fake.cpp new file mode 100644 index 0000000000..384623d646 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins2/fake.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +// Empty exported function needed to create .lib on Windows. +Q_DECL_EXPORT void mockplugins2_foo() { + +} diff --git a/tests/auto/cmake/mockplugins/mockplugins2/mockplugins2.pro b/tests/auto/cmake/mockplugins/mockplugins2/mockplugins2.pro new file mode 100644 index 0000000000..1dd03391e8 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins2/mockplugins2.pro @@ -0,0 +1,4 @@ +TARGET = QtMockPlugins2 +QT = core +SOURCES += fake.cpp # Needed to make libtool / ar happy on macOS +load(qt_module) diff --git a/tests/auto/cmake/mockplugins/mockplugins3/fake.cpp b/tests/auto/cmake/mockplugins/mockplugins3/fake.cpp new file mode 100644 index 0000000000..9ec2b42181 --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins3/fake.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +// Empty exported function needed to create .lib on Windows. +Q_DECL_EXPORT void mockplugins3_foo() { + +} diff --git a/tests/auto/cmake/mockplugins/mockplugins3/mockplugins3.pro b/tests/auto/cmake/mockplugins/mockplugins3/mockplugins3.pro new file mode 100644 index 0000000000..3651abaafa --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins3/mockplugins3.pro @@ -0,0 +1,11 @@ +TARGET = QtMockPlugins3 +QT = core +MODULE_PLUGIN_TYPES = mockauxplugin + +# Fake a git_build, to force qmake to run syncqt.pl when doing a standalone tests build +# like it is done in Coin, otherwise module headers would not be generated. +CONFIG += git_build +HEADERS += qmockauxplugin.h +SOURCES += fake.cpp # Needed to make libtool / ar happy on macOS + +load(qt_module) diff --git a/tests/auto/cmake/mockplugins/mockplugins3/qmockauxplugin.h b/tests/auto/cmake/mockplugins/mockplugins3/qmockauxplugin.h new file mode 100644 index 0000000000..25e4762bac --- /dev/null +++ b/tests/auto/cmake/mockplugins/mockplugins3/qmockauxplugin.h @@ -0,0 +1,72 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMOCKAUXPLUGIN_H +#define QMOCKAUXPLUGIN_H + +#include +#include + +QT_BEGIN_NAMESPACE + +#define QMockAuxPlugin_iid "org.qt-project.Qt.Tests.QMockAuxPlugin" + +class QMockAuxPlugin +{ +public: + virtual ~QMockAuxPlugin() {} + virtual QString pluginName() const = 0; +}; + +Q_DECLARE_INTERFACE(QMockAuxPlugin, QMockAuxPlugin_iid) + +QT_END_NAMESPACE + +#endif // QMOCKAUXPLUGIN_H diff --git a/tests/auto/cmake/test_import_plugins/CMakeLists.txt b/tests/auto/cmake/test_import_plugins/CMakeLists.txt new file mode 100644 index 0000000000..a793fe211d --- /dev/null +++ b/tests/auto/cmake/test_import_plugins/CMakeLists.txt @@ -0,0 +1,111 @@ + +cmake_minimum_required(VERSION 3.1) + +project(import_plugins_advanced) +enable_testing() + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/FindPackageHints.cmake") + include("${CMAKE_CURRENT_LIST_DIR}/FindPackageHints.cmake") +endif() + +# Need to find Qt5Core explicitly because the MockPlugins1 and MockPlugins2 config files +# are in a different directory (the source dir) when doing a standalone tests build, +# whereas Core is in the installed directory, and due to NO_DEFAULT_PATH being used +# for the Core dependency call in Qt5MockPlugins, Core would not be found in the source +# dir. +find_package(Qt5 COMPONENTS Core REQUIRED HINTS ${Qt5Tests_PREFIX_PATH}) +get_target_property(qt_is_static Qt5::Core TYPE) + +# For a similar reason, we need to find the MockPlugins packages not via COMPONENTS argument, +# but directly, because the location of Qt5Config.cmake is in the installed dir, while +# the MockPlugins are in the source dir, and Qt5Config only looks for packages relative +# to its own location. +# The packages are still successfuly found, because the CMAKE_PREFIX_PATH populated by qmake +# contains both the installed Qt dir, and the Qt source dir. +find_package(Qt5MockPlugins1 REQUIRED HINTS ${Qt5Tests_PREFIX_PATH}) +find_package(Qt5MockPlugins2 REQUIRED HINTS ${Qt5Tests_PREFIX_PATH}) + +function(create_test_executable TARGET_NAME) + set(CHECK_FILE ${CMAKE_BINARY_DIR}/${TARGET_NAME}_check.cpp) + + set(EXPECTED_PLUGINS) + foreach(_p ${ARGN}) + string(APPEND EXPECTED_PLUGINS " \"${_p}\",\n") + endforeach() + configure_file("${CMAKE_SOURCE_DIR}/check.cpp.in" ${CHECK_FILE}) + + add_executable(${TARGET_NAME} main.cpp ${CHECK_FILE}) + target_link_libraries(${TARGET_NAME} Qt5::MockPlugins1) + add_test(test_${TARGET_NAME} ${TARGET_NAME}) +endfunction() + +create_test_executable(default QMock1Plugin QMock2Plugin) +# No call to qt5_import_plugins() for the default + +# TODO This test is known to fail because CMake currently doesn't have a way to +# implement its own equivalent of the PLUGIN_EXTENDS mechanism at generate- +# time (meaning a library only gets linked if a set of other libraries are +# *also* linked.) CMake 3.14 or beyond may have such a mechanism, but until +# then, this test is expected to fail, because QMock3Plugin is not being +# linked even though MockPlugins2 is present. +create_test_executable(default_link QMock1Plugin QMock2Plugin QMock3Plugin) +target_link_libraries(default_link Qt5::MockPlugins2) +set_property(TEST test_default_link PROPERTY DISABLED 1) +# No call to qt5_import_plugins() for the default + +create_test_executable(manual QMock1Plugin QMock2Plugin QMock3Plugin QMock4Plugin) +qt5_import_plugins(manual + INCLUDE Qt5::QMock3Plugin Qt5::QMock4Plugin +) + +create_test_executable(manual_genex QMock1Plugin QMock2Plugin QMock3Plugin) +qt5_import_plugins(manual_genex + INCLUDE $<1:Qt5::QMock3Plugin> $<0:Qt5::QMock4Plugin> +) + +create_test_executable(blacklist QMock1Plugin) +qt5_import_plugins(blacklist + EXCLUDE Qt5::QMock2Plugin Qt5::QMock3Plugin +) + +create_test_executable(blacklist_genex QMock1Plugin) +qt5_import_plugins(blacklist_genex + EXCLUDE $<1:Qt5::QMock2Plugin> $<1:Qt5::QMock3Plugin> $<0:Qt5::QMock1Plugin> +) + +create_test_executable(override QMock3Plugin QMock4Plugin) +qt5_import_plugins(override + INCLUDE_BY_TYPE mockplugin Qt5::QMock3Plugin Qt5::QMock4Plugin +) + +create_test_executable(override_genex QMock3Plugin) +qt5_import_plugins(override_genex + INCLUDE_BY_TYPE mockplugin $<1:Qt5::QMock3Plugin> $<0:Qt5::QMock4Plugin> +) + +create_test_executable(override_mix QMock2Plugin QMock3Plugin) +qt5_import_plugins(override_mix + INCLUDE Qt5::QMock2Plugin + INCLUDE_BY_TYPE mockplugin Qt5::QMock3Plugin +) + +if(NOT WIN32) + # Compiling an empty static array fails on Windows. + create_test_executable(none) + qt5_import_plugins(none + EXCLUDE_BY_TYPE mockplugin + ) +endif() + +create_test_executable(none_mix QMock3Plugin QMock4Plugin) +qt5_import_plugins(none_mix + INCLUDE Qt5::QMock3Plugin Qt5::QMock4Plugin + EXCLUDE_BY_TYPE mockplugin +) + +create_test_executable(recursive QMock5Plugin QMock6Plugin) +qt5_import_plugins(recursive + INCLUDE_BY_TYPE mockplugin Qt5::QMock5Plugin +) diff --git a/tests/auto/cmake/test_import_plugins/check.cpp.in b/tests/auto/cmake/test_import_plugins/check.cpp.in new file mode 100644 index 0000000000..df6ea03d2d --- /dev/null +++ b/tests/auto/cmake/test_import_plugins/check.cpp.in @@ -0,0 +1,8 @@ +#include +#include + +QString expectedPlugins[] = { +@EXPECTED_PLUGINS@ +}; + +std::size_t numExpectedPlugins = sizeof(expectedPlugins) / sizeof(numExpectedPlugins); diff --git a/tests/auto/cmake/test_import_plugins/main.cpp b/tests/auto/cmake/test_import_plugins/main.cpp new file mode 100644 index 0000000000..9fcc81754b --- /dev/null +++ b/tests/auto/cmake/test_import_plugins/main.cpp @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Kitware, Inc. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include + +#include +#include + +extern QString expectedPlugins[]; +extern std::size_t numExpectedPlugins; + +int main(int argc, char **argv) +{ +#ifdef QT_STATIC + QSet expectedPluginSet; + for (std::size_t i = 0; i < numExpectedPlugins; i++) { + expectedPluginSet.insert(expectedPlugins[i]); + } + + QVector plugins = QPluginLoader::staticPlugins(); + QSet actualPluginSet; + for (QStaticPlugin plugin : plugins) { + actualPluginSet.insert(plugin.metaData()["className"].toString()); + } + + if (expectedPluginSet != actualPluginSet) { + std::cerr << "Loaded plugins do not match what was expected!" << std::endl + << "Expected plugins:" << std::endl; + + QList expectedPluginList = expectedPluginSet.toList(); + expectedPluginList.sort(); + for (QString plugin : expectedPluginList) { + std::cerr << (actualPluginSet.contains(plugin) ? " " : "- ") + << plugin.toStdString() << std::endl; + } + + std::cerr << std::endl << "Actual plugins:" << std::endl; + + QList actualPluginList = actualPluginSet.toList(); + actualPluginList.sort(); + for (QString plugin : actualPluginList) { + std::cerr << (expectedPluginSet.contains(plugin) ? " " : "+ ") + << plugin.toStdString() << std::endl; + } + + return 1; + } + +#endif + return 0; +} -- cgit v1.2.3 From a1609d1603bfaeaa54f691f994c458a6a27e5229 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Tue, 6 Aug 2019 12:43:43 +0200 Subject: CMake: Add documentation for qt5_import_plugins() Task-number: QTBUG-38913 Change-Id: If4a51e695864ab658fb5223fd8c2162b14a267c8 Reviewed-by: Kavindra Palaraja --- .../doc/snippets/cmake-macros/examples.cmake | 11 ++++ src/corelib/doc/src/cmake-macros.qdoc | 69 ++++++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/src/corelib/doc/snippets/cmake-macros/examples.cmake b/src/corelib/doc/snippets/cmake-macros/examples.cmake index bba082586f..ea7da56ec7 100644 --- a/src/corelib/doc/snippets/cmake-macros/examples.cmake +++ b/src/corelib/doc/snippets/cmake-macros/examples.cmake @@ -24,3 +24,14 @@ add_dependencies(myapp resources) #! [qt5_generate_moc] qt5_generate_moc(main.cpp main.moc TARGET myapp) #! [qt5_generate_moc] + +#! [qt5_import_plugins] +add_executable(myapp main.cpp) +target_link_libraries(myapp Qt5::Gui Qt5::Sql) +qt5_import_plugins(myapp + INCLUDE Qt5::QCocoaIntegrationPlugin + EXCLUDE Qt5::QMinimalIntegrationPlugin + INCLUDE_BY_TYPE imageformats Qt5::QGifPlugin Qt5::QJpegPlugin + EXCLUDE_BY_TYPE sqldrivers +) +#! [qt5_import_plugins] diff --git a/src/corelib/doc/src/cmake-macros.qdoc b/src/corelib/doc/src/cmake-macros.qdoc index 7fb133020f..7c0443fba7 100644 --- a/src/corelib/doc/src/cmake-macros.qdoc +++ b/src/corelib/doc/src/cmake-macros.qdoc @@ -212,3 +212,72 @@ when scanning the source files with \c{moc}. \snippet cmake-macros/examples.cmake qt5_generate_moc */ + + +/*! +\page qtcore-cmake-qt5-import-plugins.html +\ingroup cmake-macros-qtcore + +\title qt5_import_plugins + +\brief Specifies a custom set of plugins to import for a static Qt build + +\section1 Synopsis + +\badcode +qt5_import_plugins(target + [INCLUDE plugin ...] + [EXCLUDE plugin ...] + [INCLUDE_BY_TYPE plugin_type plugin ...] + [EXCLUDE_BY_TYPE plugin_type]) +\endcode + +\section1 Description + +Specifies a custom set of plugins to import. The optional arguments: +\c INCLUDE, \c EXCLUDE, \c INCLUDE_BY_TYPE, and \c EXCLUDE_BY_TYPE, +can be used more than once. + +This CMake command was introduced in Qt 5.14. + +\list +\li \c INCLUDE -- can be used to specify a list of plugins to import. +\li \c EXCLUDE -- can be used to specify a list of plugins to exclude. +\li \c INCLUDE_BY_TYPE -- can be used to override the list of plugins to + import for a certain plugin type. +\li \c EXCLUDE_BY_TYPE -- can be used to specify a plugin type to exclude; + then no plugins of that type are imported. +\endlist + +Qt provides plugin types such as \c imageformats, \c platforms, +and \c sqldrivers. + +If \c qt5_import_plugins() isn't called, the target automatically links against +a sane set of default plugins, for each Qt module that the target is linked +against. For more information, see +\l{CMake target_link_libraries Documentation}{target_link_libraries}. + +Each plugin comes with a C++ stub file that automatically +initializes the plugin. Consequently, any target that links against a plugin +has this C++ file added to its \c SOURCES. + +\note This macro imports plugins from static Qt builds only. +On shared builds, it does nothing. + +\section1 Example + +\snippet cmake-macros/examples.cmake qt5_import_plugins + +In the snippet above, the following occurs with the executable \c myapp: + +\list +\li The \c Qt5::QCocoaIntegrationPlugin is imported into myapp. +\li The \c Qt5::QMinimalIntegrationPlugin plugin is + excluded from being automatically imported into myapp. +\li The default list of plugins for \c imageformats is + overridden to only include Qt5::QGifPlugin and Qt5::QJpegPlugin. +\li All \c sqldrivers plugins are excluded from automatic importing. +\endlist + +*/ + -- cgit v1.2.3 From d45908e24292a41ff7838366b34be7340bf9fda5 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 26 Mar 2019 12:48:36 +0100 Subject: Support missing white-space:pre-line CSS A mode that only preserves new lines. Change-Id: I612347b181c6e6c41dfae0cf60b22a662cba1b7e Reviewed-by: Lars Knoll --- src/gui/text/qcssparser.cpp | 9 ++++--- src/gui/text/qcssparser_p.h | 1 + src/gui/text/qtextdocumentfragment.cpp | 9 ++++++- src/gui/text/qtexthtmlparser.cpp | 9 ++++--- src/gui/text/qtexthtmlparser_p.h | 1 + tests/auto/gui/text/qcssparser/tst_qcssparser.cpp | 29 ++++++++++++++++++++++ .../tst_qtextdocumentfragment.cpp | 14 ++++++++--- 7 files changed, 60 insertions(+), 12 deletions(-) diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index b5489c7ed9..45f1ca596e 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -222,6 +222,7 @@ static const QCssKnownValue values[NumKnownValues - 1] = { { "outset", Value_Outset }, { "overline", Value_Overline }, { "pre", Value_Pre }, + { "pre-line", Value_PreLine }, { "pre-wrap", Value_PreWrap }, { "ridge", Value_Ridge }, { "right", Value_Right }, @@ -248,10 +249,10 @@ static const QCssKnownValue values[NumKnownValues - 1] = { }; //Map id to strings as they appears in the 'values' array above -static const short indexOfId[NumKnownValues] = { 0, 41, 48, 42, 49, 54, 35, 26, 70, 71, 25, 43, 5, 63, 47, - 29, 58, 59, 27, 51, 61, 6, 10, 39, 56, 19, 13, 17, 18, 20, 21, 50, 24, 46, 67, 37, 3, 2, 40, 62, 16, - 11, 57, 14, 32, 64, 33, 65, 55, 66, 34, 69, 8, 28, 38, 12, 36, 60, 7, 9, 4, 68, 53, 22, 23, 30, 31, - 1, 15, 0, 52, 45, 44 }; +static const short indexOfId[NumKnownValues] = { 0, 41, 48, 42, 49, 50, 55, 35, 26, 71, 72, 25, 43, 5, 64, 48, + 29, 59, 60, 27, 52, 62, 6, 10, 39, 56, 19, 13, 17, 18, 20, 21, 51, 24, 46, 68, 37, 3, 2, 40, 63, 16, + 11, 58, 14, 32, 65, 33, 66, 56, 67, 34, 70, 8, 28, 38, 12, 36, 61, 7, 9, 4, 69, 54, 22, 23, 30, 31, + 1, 15, 0, 53, 45, 44 }; QString Value::toString() const { diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h index b0fa4be682..ddc46803ae 100644 --- a/src/gui/text/qcssparser_p.h +++ b/src/gui/text/qcssparser_p.h @@ -205,6 +205,7 @@ enum KnownValue { Value_Normal, Value_Pre, Value_NoWrap, + Value_PreLine, Value_PreWrap, Value_Small, Value_Medium, diff --git a/src/gui/text/qtextdocumentfragment.cpp b/src/gui/text/qtextdocumentfragment.cpp index 1905d9a1b1..8ad1300e6c 100644 --- a/src/gui/text/qtextdocumentfragment.cpp +++ b/src/gui/text/qtextdocumentfragment.cpp @@ -576,6 +576,9 @@ bool QTextHtmlImporter::appendNodeText() && ch != QChar::Nbsp && ch != QChar::ParagraphSeparator) { + if (wsm == QTextHtmlParserNode::WhiteSpacePreLine && (ch == QLatin1Char('\n') || ch == QLatin1Char('\r'))) + compressNextWhitespace = PreserveWhiteSpace; + if (compressNextWhitespace == CollapseWhiteSpace) compressNextWhitespace = RemoveWhiteSpace; // allow this one, and remove the ones coming next. else if(compressNextWhitespace == RemoveWhiteSpace) @@ -592,7 +595,9 @@ bool QTextHtmlImporter::appendNodeText() } } else if (wsm != QTextHtmlParserNode::WhiteSpacePreWrap) { compressNextWhitespace = RemoveWhiteSpace; - if (wsm == QTextHtmlParserNode::WhiteSpaceNoWrap) + if (wsm == QTextHtmlParserNode::WhiteSpacePreLine && (ch == QLatin1Char('\n') || ch == QLatin1Char('\r'))) + { } + else if (wsm == QTextHtmlParserNode::WhiteSpaceNoWrap) ch = QChar::Nbsp; else ch = QLatin1Char(' '); @@ -605,6 +610,8 @@ bool QTextHtmlImporter::appendNodeText() || ch == QChar::ParagraphSeparator) { if (!textToInsert.isEmpty()) { + if (wsm == QTextHtmlParserNode::WhiteSpacePreLine && textToInsert.at(textToInsert.length() - 1) == QChar(' ')) + textToInsert = textToInsert.chopped(1); cursor.insertText(textToInsert, format); textToInsert.clear(); } diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index 1ee317d27c..43b32e7e2c 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -649,7 +649,7 @@ void QTextHtmlParser::parseTag() parseExclamationTag(); if (nodes.last().wsm != QTextHtmlParserNode::WhiteSpacePre && nodes.last().wsm != QTextHtmlParserNode::WhiteSpacePreWrap - && !textEditMode) + && !textEditMode) eatSpace(); return; } @@ -717,7 +717,8 @@ void QTextHtmlParser::parseTag() // in a white-space preserving environment strip off a initial newline // since the element itself already generates a newline if ((node->wsm == QTextHtmlParserNode::WhiteSpacePre - || node->wsm == QTextHtmlParserNode::WhiteSpacePreWrap) + || node->wsm == QTextHtmlParserNode::WhiteSpacePreWrap + || node->wsm == QTextHtmlParserNode::WhiteSpacePreLine) && node->isBlock()) { if (pos < len - 1 && txt.at(pos) == QLatin1Char('\n')) ++pos; @@ -761,7 +762,8 @@ void QTextHtmlParser::parseCloseTag() // in a new block for elements following the
     // ...foo\n

blah -> foo

blah if ((at(p).wsm == QTextHtmlParserNode::WhiteSpacePre - || at(p).wsm == QTextHtmlParserNode::WhiteSpacePreWrap) + || at(p).wsm == QTextHtmlParserNode::WhiteSpacePreWrap + || at(p).wsm == QTextHtmlParserNode::WhiteSpacePreLine) && at(p).isBlock()) { if (at(last()).text.endsWith(QLatin1Char('\n'))) nodes[last()].text.chop(1); @@ -1278,6 +1280,7 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector case QCss::Value_Pre: wsm = QTextHtmlParserNode::WhiteSpacePre; break; case QCss::Value_NoWrap: wsm = QTextHtmlParserNode::WhiteSpaceNoWrap; break; case QCss::Value_PreWrap: wsm = QTextHtmlParserNode::WhiteSpacePreWrap; break; + case QCss::Value_PreLine: wsm = QTextHtmlParserNode::WhiteSpacePreLine; break; default: break; } break; diff --git a/src/gui/text/qtexthtmlparser_p.h b/src/gui/text/qtexthtmlparser_p.h index c174b54a61..ff5f5b4c35 100644 --- a/src/gui/text/qtexthtmlparser_p.h +++ b/src/gui/text/qtexthtmlparser_p.h @@ -158,6 +158,7 @@ struct QTextHtmlParserNode { WhiteSpacePre, WhiteSpaceNoWrap, WhiteSpacePreWrap, + WhiteSpacePreLine, WhiteSpaceModeUndefined = -1 }; diff --git a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp index 7dbeb13aa7..7764a716ca 100644 --- a/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp +++ b/tests/auto/gui/text/qcssparser/tst_qcssparser.cpp @@ -78,6 +78,8 @@ private slots: void extractBorder(); void noTextDecoration(); void quotedAndUnquotedIdentifiers(); + void whitespaceValues_data(); + void whitespaceValues(); }; void tst_QCssParser::scanner_data() @@ -1746,6 +1748,33 @@ void tst_QCssParser::quotedAndUnquotedIdentifiers() QCOMPARE(decls.at(1).d->values.first().toString(), QLatin1String("bold")); } +void tst_QCssParser::whitespaceValues_data() +{ + QTest::addColumn("value"); + + QTest::newRow("normal") << "normal"; + QTest::newRow("inherit") << "inherit"; + QTest::newRow("nowrap") << "nowrap"; + QTest::newRow("pre") << "pre"; + QTest::newRow("pre-wrap") << "pre-wrap"; + QTest::newRow("pre-line") << "pre-line"; +} + +void tst_QCssParser::whitespaceValues() +{ + QFETCH(QString, value); + QCss::Parser parser(QString("foo { white-space: %1 }").arg(value)); + QCss::StyleSheet sheet; + QVERIFY(parser.parse(&sheet)); + + QCss::StyleRule rule = (!sheet.styleRules.isEmpty()) ? + sheet.styleRules.at(0) : *sheet.nameIndex.begin(); + QCOMPARE(rule.declarations.size(), 1); + + QCOMPARE(rule.declarations.at(0).d->property, QLatin1String("white-space")); + QCOMPARE(rule.declarations.at(0).d->values.first().toString(), value); +} + QTEST_MAIN(tst_QCssParser) #include "tst_qcssparser.moc" diff --git a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp index 664ca98a3f..c5243d1535 100644 --- a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp +++ b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp @@ -1272,11 +1272,11 @@ void tst_QTextDocumentFragment::html_whitespace_data() QTest::newRow("2") << QString(" nowhitespacehereplease") << QString::fromLatin1("nowhitespacehereplease"); - QTest::newRow("3") << QString(" white space here ") - << QString::fromLatin1(" white space here "); + QTest::newRow("3") << QString(" white space \n\n here ") + << QString::fromLatin1(" white space \n\n here "); - QTest::newRow("4") << QString(" white space here ") - << QString::fromLatin1(" white space here "); + QTest::newRow("4") << QString(" white space \n\n here ") + << QString::fromLatin1(" white space \n\n here "); QTest::newRow("5") << QString("One Two Three\n" "Four") @@ -1291,6 +1291,12 @@ void tst_QTextDocumentFragment::html_whitespace_data() QTest::newRow("8") << QString("
Blah
Blub") << QString("\nBlah\nBlub"); + QTest::newRow("9") << QString(" white space \n\n here ") + << QString::fromLatin1("white space here "); + + QTest::newRow("10") << QString(" white space \n\n here ") + << QString::fromLatin1("white space\n\nhere "); + QTest::newRow("task116492") << QString("

a b c

") << QString("a b c"); -- cgit v1.2.3 From fb703aea697b12de4810deec9f8605fd062208bd Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 23 Jul 2019 14:47:07 +0200 Subject: Docs: Fix the snippet lookup for QFileDialog::getOpenFileContent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src_gui_dialogs_qfiledialog.cpp had two snippets labeled "14". This change bumps one of them to "15" and fixes the the snippet lookup for QFileDialog::getOpenFileContent accordingly. Also, fix two typos: "QSting" -> "QString" and "contents has" -> "contents have". Change-Id: Ic018c23b6ca585f30c116b8a6eb29293560c7a35 Reviewed-by: Morten Johan Sørvig --- src/widgets/dialogs/qfiledialog.cpp | 4 ++-- src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index f772eb1241..2c2d209226 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -2376,10 +2376,10 @@ QList QFileDialog::getOpenFileUrls(QWidget *parent, It can also be used on other platforms, where it will fall back to using QFileDialog. The function is asynchronous and returns immediately. The \a fileOpenCompleted - callback will be called when a file has been selected and its contents has been + callback will be called when a file has been selected and its contents have been read into memory. - \snippet code/src_gui_dialogs_qfiledialog.cpp 14 + \snippet code/src_gui_dialogs_qfiledialog.cpp 15 \since 5.13 */ void QFileDialog::getOpenFileContent(const QString &nameFilter, const std::function &fileOpenCompleted) diff --git a/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp b/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp index 1e9daf824b..39aca459db 100644 --- a/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp +++ b/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp @@ -145,8 +145,8 @@ dialog.exec(); "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)" //! [14] -//! [14] -auto fileOpenCompleted = [](const QSting &fileName, const QByteArray &fileContent) { +//! [15] +auto fileOpenCompleted = [](const QString &fileName, const QByteArray &fileContent) { if (fileName.isEmpty()) { // No file was selected } else { @@ -154,4 +154,4 @@ auto fileOpenCompleted = [](const QSting &fileName, const QByteArray &fileConten } } QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)", fileContentReady); -//! [14] +//! [15] -- cgit v1.2.3 From 09b0038513bb738a89d9a0f1e64f7084f2dd5da0 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 5 Jul 2019 12:39:57 +0200 Subject: Short live qt_unique_lock/qt_scoped_lock! (until C++17) Now that QRecursiveMutex is getting split off of QMutex, QMutexLocker will stop working on QRecursiveMutex once the split has been finalized in Qt 6. Even today, QMutexLocker contains casts from QBasicMutex to QMutex that some reviewers are uncomfortable with. One way to carry QMutexLocker forward is to template it on the mutex type, possibly with aliases like QBasicMutexLocker and QRecursiveMutexLocker. C++17 code would then not require a port, thanks to CTAD. But we have the problem now, and we can't template QMutexLocker in Qt 5. The alternative is to look at std and realize that they have surpassed QMutexLocker in expressiveness already. A scoped_lock cannot be unlocked again, a unique_lock can be moved around. QMutexLocker doesn't do either. The only "problem" is that the std lock classes are already templates, but we can't, yet, rely on C++17 CTAD to make them look as if they weren't. So, prepare for a future with C++17 CTAD by writing factory functions, qt_scoped_lock and qt_unique_lock, which will later port mechanically to their C++17 equivalents (mostly). The functions are added to a new private qlocking_p.h becauee we don't want to make them public. These are for use in Qt's own implementation, or for users that don't care about compatibility and will not mind them to be removed once we depend on C++17. Originally, I planned to use qmutex_p.h instead, but that header is not self-contained and causes build errors when we started to include it into libraries other than QtCore. Regarding the return value of qt_scoped_lock: Ideally, we'd like to return a std::scoped_lock, but two things stand in the way: First, scoped_lock was only added in C++17 (we fall back to lock_guard if scoped_lock is not available). Second, returning one from a function requires C++17 guaranteed copy elision, because neither scoped_lock not lock_guard have a copy ctor. In order for code not to come to depend on a particular lock class, we return any of lock_guard, unique_lock or scoped_guard, depending on what the compiler supports, and therefore wrap the functions in the unnamed namespace to avoid running into ODR if (private) headers are used from different projects (autotests, e.g.). By the time we can drop them, however, qt_*_lock will be semantically 100% identical to their replacements. Port some initial users. Change-Id: I2a208ef2a4a533ee8e675812273986460e6b4d00 Reviewed-by: Thiago Macieira --- src/corelib/thread/qlocking_p.h | 119 +++++++++++++++++++++++++ src/corelib/thread/thread.pri | 1 + src/network/bearer/qbearerengine.cpp | 4 +- src/network/bearer/qnetworkconfigmanager_p.cpp | 69 +++++++------- src/plugins/bearer/connman/qconnmanengine.cpp | 45 +++++----- 5 files changed, 181 insertions(+), 57 deletions(-) create mode 100644 src/corelib/thread/qlocking_p.h diff --git a/src/corelib/thread/qlocking_p.h b/src/corelib/thread/qlocking_p.h new file mode 100644 index 0000000000..9a796cf7f7 --- /dev/null +++ b/src/corelib/thread/qlocking_p.h @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Marc Mutz +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QLOCKING_P_H +#define QLOCKING_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of qmutex.cpp, qmutex_unix.cpp, and qmutex_win.cpp. This header +// file may change from version to version without notice, or even be +// removed. +// +// We mean it. +// + +#include + +#include + +QT_BEGIN_NAMESPACE + +// +// This API is bridging the time until we can depend on C++17: +// +// - qt_scoped_lock returns a lock that cannot be unlocked again before the end of the scope +// - qt_unique_lock returns a lock that can be unlock()ed and moved around +// - for compat with QMutexLocker, qt_unique_lock supports passing by pointer. +// Do NOT use this overload lightly; it's only for cases such as where a Q_GLOBAL_STATIC +// may have already been deleted. In particular, do NOT port from +// QMutexLocker locker(&mutex); +// to +// auto locker = qt_unique_lock(&mutex); +// as this will not port automatically to std::unique_lock come C++17! +// +// The intent, come C++17, is to replace +// qt_scoped_lock(mutex); +// qt_unique_lock(mutex); // except qt_unique_lock(&mutex) +// with +// std::scoped_lock(mutex); +// std::unique_lock(mutex); +// resp. (C++17 meaning CTAD, guaranteed copy elision + scoped_lock available on all platforms), +// so please use these functions only in ways which don't break this mechanical search & replace. +// + +namespace { + +template = 201606L +# if defined(__cpp_lib_scoped_lock) && __cpp_lib_scoped_lock >= 201703L + std::scoped_lock +# else + std::lock_guard +# endif +#else + std::unique_lock +#endif + ::type> +> +Lock qt_scoped_lock(Mutex &mutex) +{ + return Lock(mutex); +} + +template ::type>> +Lock qt_unique_lock(Mutex &mutex) +{ + return Lock(mutex); +} + +template ::type>> +Lock qt_unique_lock(Mutex *mutex) +{ + return mutex ? Lock(*mutex) : Lock() ; +} + +} // unnamed namespace + +QT_END_NAMESPACE + +#endif // QLOCKING_P_H diff --git a/src/corelib/thread/thread.pri b/src/corelib/thread/thread.pri index d11e6500ff..9fc9af0e65 100644 --- a/src/corelib/thread/thread.pri +++ b/src/corelib/thread/thread.pri @@ -28,6 +28,7 @@ qtConfig(thread) { thread/qbasicatomic.h \ thread/qfutex_p.h \ thread/qgenericatomic.h \ + thread/qlocking_p.h \ thread/qmutex_p.h \ thread/qorderedmutexlocker_p.h \ thread/qreadwritelock_p.h \ diff --git a/src/network/bearer/qbearerengine.cpp b/src/network/bearer/qbearerengine.cpp index a7c139fe63..06bf449611 100644 --- a/src/network/bearer/qbearerengine.cpp +++ b/src/network/bearer/qbearerengine.cpp @@ -38,6 +38,8 @@ ****************************************************************************/ #include "qbearerengine_p.h" +#include + #include #ifndef QT_NO_BEARERMANAGEMENT @@ -86,7 +88,7 @@ bool QBearerEngine::requiresPolling() const */ bool QBearerEngine::configurationsInUse() const { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); return hasUsedConfiguration(accessPointConfigurations) || hasUsedConfiguration(snapConfigurations) || hasUsedConfiguration(userChoiceConfigurations); diff --git a/src/network/bearer/qnetworkconfigmanager_p.cpp b/src/network/bearer/qnetworkconfigmanager_p.cpp index 91ea063af1..b432444669 100644 --- a/src/network/bearer/qnetworkconfigmanager_p.cpp +++ b/src/network/bearer/qnetworkconfigmanager_p.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -115,10 +116,10 @@ QNetworkConfiguration QNetworkConfigurationManagerPrivate::defaultConfiguration( QNetworkConfigurationPrivatePointer defaultConfiguration; for (QBearerEngine *engine : sessionEngines) { - QMutexLocker locker(&engine->mutex); + const auto locker = qt_scoped_lock(engine->mutex); for (const auto &ptr : qAsConst(engine->snapConfigurations)) { - QMutexLocker configLocker(&ptr->mutex); + const auto locker = qt_scoped_lock(ptr->mutex); if ((ptr->state & QNetworkConfiguration::Active) == QNetworkConfiguration::Active) { QNetworkConfiguration config; @@ -211,11 +212,11 @@ QList QNetworkConfigurationManagerPrivate::allConfigurati for (QBearerEngine *engine : sessionEngines) { - QMutexLocker locker(&engine->mutex); + const auto locker = qt_scoped_lock(engine->mutex); //find all InternetAccessPoints for (const auto &ptr : qAsConst(engine->accessPointConfigurations)) { - QMutexLocker configLocker(&ptr->mutex); + const auto locker = qt_scoped_lock(ptr->mutex); if ((ptr->state & filter) == filter) { QNetworkConfiguration pt; @@ -226,7 +227,7 @@ QList QNetworkConfigurationManagerPrivate::allConfigurati //find all service networks for (const auto &ptr : qAsConst(engine->snapConfigurations)) { - QMutexLocker configLocker(&ptr->mutex); + const auto locker = qt_scoped_lock(ptr->mutex); if ((ptr->state & filter) == filter) { QNetworkConfiguration pt; @@ -243,10 +244,10 @@ QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIden { QNetworkConfiguration item; - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); for (QBearerEngine *engine : sessionEngines) { - QMutexLocker locker(&engine->mutex); + const auto locker = qt_scoped_lock(engine->mutex); if (auto ptr = engine->accessPointConfigurations.value(identifier)) { item.d = std::move(ptr); break; @@ -266,7 +267,7 @@ QNetworkConfiguration QNetworkConfigurationManagerPrivate::configurationFromIden bool QNetworkConfigurationManagerPrivate::isOnline() const { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); // We need allConfigurations since onlineConfigurations is filled with queued connections // and thus is not always (more importantly just after creation) up to date @@ -275,7 +276,7 @@ bool QNetworkConfigurationManagerPrivate::isOnline() const QNetworkConfigurationManager::Capabilities QNetworkConfigurationManagerPrivate::capabilities() const { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QNetworkConfigurationManager::Capabilities capFlags; @@ -287,7 +288,7 @@ QNetworkConfigurationManager::Capabilities QNetworkConfigurationManagerPrivate:: void QNetworkConfigurationManagerPrivate::configurationAdded(QNetworkConfigurationPrivatePointer ptr) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); if (!firstUpdate) { QNetworkConfiguration item; @@ -295,24 +296,24 @@ void QNetworkConfigurationManagerPrivate::configurationAdded(QNetworkConfigurati emit configurationAdded(item); } - ptr->mutex.lock(); + auto ptrLocker = qt_unique_lock(ptr->mutex); if (ptr->state == QNetworkConfiguration::Active) { - ptr->mutex.unlock(); - onlineConfigurations.insert(ptr->id); + const auto id = ptr->id; + ptrLocker.unlock(); + onlineConfigurations.insert(id); if (!firstUpdate && onlineConfigurations.count() == 1) emit onlineStateChanged(true); - } else { - ptr->mutex.unlock(); } } void QNetworkConfigurationManagerPrivate::configurationRemoved(QNetworkConfigurationPrivatePointer ptr) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); - ptr->mutex.lock(); - ptr->isValid = false; - ptr->mutex.unlock(); + { + const auto locker = qt_scoped_lock(ptr->mutex); + ptr->isValid = false; + } if (!firstUpdate) { QNetworkConfiguration item; @@ -327,7 +328,7 @@ void QNetworkConfigurationManagerPrivate::configurationRemoved(QNetworkConfigura void QNetworkConfigurationManagerPrivate::configurationChanged(QNetworkConfigurationPrivatePointer ptr) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); if (!firstUpdate) { QNetworkConfiguration item; @@ -337,12 +338,13 @@ void QNetworkConfigurationManagerPrivate::configurationChanged(QNetworkConfigura bool previous = !onlineConfigurations.isEmpty(); - ptr->mutex.lock(); - if (ptr->state == QNetworkConfiguration::Active) - onlineConfigurations.insert(ptr->id); - else - onlineConfigurations.remove(ptr->id); - ptr->mutex.unlock(); + { + const auto locker = qt_scoped_lock(ptr->mutex); + if (ptr->state == QNetworkConfiguration::Active) + onlineConfigurations.insert(ptr->id); + else + onlineConfigurations.remove(ptr->id); + } bool online = !onlineConfigurations.isEmpty(); @@ -354,7 +356,8 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations() { typedef QMultiMap PluginKeyMap; typedef PluginKeyMap::const_iterator PluginKeyMapConstIterator; - QMutexLocker locker(&mutex); + + auto locker = qt_unique_lock(mutex); if (firstUpdate) { if (qobject_cast(sender())) @@ -432,7 +435,7 @@ void QNetworkConfigurationManagerPrivate::updateConfigurations() void QNetworkConfigurationManagerPrivate::performAsyncConfigurationUpdate() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); if (sessionEngines.isEmpty()) { emit configurationUpdateComplete(); @@ -449,14 +452,14 @@ void QNetworkConfigurationManagerPrivate::performAsyncConfigurationUpdate() QList QNetworkConfigurationManagerPrivate::engines() const { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); return sessionEngines; } void QNetworkConfigurationManagerPrivate::startPolling() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); if (!pollTimer) { pollTimer = new QTimer(this); bool ok; @@ -482,7 +485,7 @@ void QNetworkConfigurationManagerPrivate::startPolling() void QNetworkConfigurationManagerPrivate::pollEngines() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); for (QBearerEngine *engine : qAsConst(sessionEngines)) { if (engine->requiresPolling() && (forcedPolling || engine->configurationsInUse())) { @@ -494,7 +497,7 @@ void QNetworkConfigurationManagerPrivate::pollEngines() void QNetworkConfigurationManagerPrivate::enablePolling() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); ++forcedPolling; @@ -504,7 +507,7 @@ void QNetworkConfigurationManagerPrivate::enablePolling() void QNetworkConfigurationManagerPrivate::disablePolling() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); --forcedPolling; } diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index eabae5a07b..8b2076bd18 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -46,6 +46,7 @@ #include #include +#include #include #include @@ -74,13 +75,13 @@ QConnmanEngine::~QConnmanEngine() bool QConnmanEngine::connmanAvailable() const { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); return connmanManager->isValid(); } void QConnmanEngine::initialize() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); connect(ofonoManager,SIGNAL(modemChanged()),this,SLOT(changedModem())); ofonoNetwork = new QOfonoNetworkRegistrationInterface(ofonoManager->currentModem(),this); @@ -101,7 +102,7 @@ void QConnmanEngine::initialize() void QConnmanEngine::changedModem() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); if (ofonoNetwork) delete ofonoNetwork; @@ -114,7 +115,7 @@ void QConnmanEngine::changedModem() void QConnmanEngine::servicesReady(const QStringList &list) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); for (const QString &servPath : list) addServiceConfiguration(servPath); @@ -123,7 +124,7 @@ void QConnmanEngine::servicesReady(const QStringList &list) QList QConnmanEngine::getConfigurations() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QList fetchedConfigurations; QNetworkConfigurationPrivate* cpPriv = 0; const int numFoundConfigurations = foundConfigurations.count(); @@ -150,19 +151,19 @@ QList QConnmanEngine::getConfigurations() QString QConnmanEngine::getInterfaceFromId(const QString &id) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); return configInterfaces.value(id); } bool QConnmanEngine::hasIdentifier(const QString &id) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); return accessPointConfigurations.contains(id); } void QConnmanEngine::connectToId(const QString &id) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QConnmanServiceInterface *serv = connmanServiceInterfaces.value(id); @@ -184,7 +185,7 @@ void QConnmanEngine::connectToId(const QString &id) void QConnmanEngine::disconnectFromId(const QString &id) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QConnmanServiceInterface *serv = connmanServiceInterfaces.value(id); if (!serv || !serv->isValid()) { @@ -196,7 +197,7 @@ void QConnmanEngine::disconnectFromId(const QString &id) void QConnmanEngine::requestUpdate() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QTimer::singleShot(0, this, SLOT(doRequestUpdate())); } @@ -215,7 +216,7 @@ void QConnmanEngine::finishedScan(bool error) void QConnmanEngine::updateServices(const ConnmanMapList &changed, const QList &removed) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); foreach (const QDBusObjectPath &objectPath, removed) { removeConfiguration(objectPath.path()); @@ -234,7 +235,7 @@ void QConnmanEngine::updateServices(const ConnmanMapList &changed, const QListgetServices(); for (const QString &servPath : servPaths) { if (connmanServiceInterfaces.contains(servPath)) { @@ -352,7 +353,7 @@ void QConnmanEngine::configurationChange(QConnmanServiceInterface *serv) { if (!serv) return; - QMutexLocker locker(&mutex); + auto locker = qt_unique_lock(mutex); QString id = serv->path(); if (accessPointConfigurations.contains(id)) { @@ -381,7 +382,7 @@ void QConnmanEngine::configurationChange(QConnmanServiceInterface *serv) if (changed) { locker.unlock(); emit configurationChanged(ptr); - locker.relock(); + locker.lock(); } } @@ -391,7 +392,7 @@ void QConnmanEngine::configurationChange(QConnmanServiceInterface *serv) QNetworkConfiguration::StateFlags QConnmanEngine::getStateForService(const QString &service) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QConnmanServiceInterface *serv = connmanServiceInterfaces.value(service); if (!serv) return QNetworkConfiguration::Undefined; @@ -472,7 +473,7 @@ bool QConnmanEngine::isRoamingAllowed(const QString &context) void QConnmanEngine::removeConfiguration(const QString &id) { - QMutexLocker locker(&mutex); + auto locker = qt_unique_lock(mutex); if (accessPointConfigurations.contains(id)) { @@ -485,13 +486,12 @@ void QConnmanEngine::removeConfiguration(const QString &id) foundConfigurations.removeOne(ptr.data()); locker.unlock(); emit configurationRemoved(ptr); - locker.relock(); } } void QConnmanEngine::addServiceConfiguration(const QString &servicePath) { - QMutexLocker locker(&mutex); + auto locker = qt_unique_lock(mutex); if (!connmanServiceInterfaces.contains(servicePath)) { QConnmanServiceInterface *serv = new QConnmanServiceInterface(servicePath, this); connmanServiceInterfaces.insert(serv->path(),serv); @@ -547,7 +547,6 @@ void QConnmanEngine::addServiceConfiguration(const QString &servicePath) locker.unlock(); Q_EMIT configurationAdded(ptr); - locker.relock(); } } -- cgit v1.2.3 From 7922cd5272f84ca4180d6ebb45e5a81a45d14a92 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 17 Jul 2019 11:36:35 -0700 Subject: QChar: add FormFeed (FF) special character [ChangeLog][QtCore][QChar] Added FormFeed (FF) special character. Fixes: QTBUG-77089 Change-Id: I1024ee42da0c4323953afffd15b245a508f545f0 Reviewed-by: Edward Welbourne --- src/corelib/text/qchar.cpp | 1 + src/corelib/text/qchar.h | 1 + tests/manual/diaglib/textdump.cpp | 3 +++ 3 files changed, 5 insertions(+) diff --git a/src/corelib/text/qchar.cpp b/src/corelib/text/qchar.cpp index 0c190c6a3d..7dd353b4ba 100644 --- a/src/corelib/text/qchar.cpp +++ b/src/corelib/text/qchar.cpp @@ -572,6 +572,7 @@ QT_BEGIN_NAMESPACE \value Null A QChar with this value isNull(). \value Tabulation Character tabulation. \value LineFeed + \value FormFeed \value CarriageReturn \value Space \value Nbsp Non-breaking space. diff --git a/src/corelib/text/qchar.h b/src/corelib/text/qchar.h index e028a24c24..f67a7ea90a 100644 --- a/src/corelib/text/qchar.h +++ b/src/corelib/text/qchar.h @@ -78,6 +78,7 @@ public: Null = 0x0000, Tabulation = 0x0009, LineFeed = 0x000a, + FormFeed = 0x000c, CarriageReturn = 0x000d, Space = 0x0020, Nbsp = 0x00a0, diff --git a/tests/manual/diaglib/textdump.cpp b/tests/manual/diaglib/textdump.cpp index 8bb899783b..383ec4edb0 100644 --- a/tests/manual/diaglib/textdump.cpp +++ b/tests/manual/diaglib/textdump.cpp @@ -44,6 +44,9 @@ static const EnumLookup specialCharactersEnumLookup[] = #if QT_VERSION >= 0x050000 {QChar::Tabulation, "Tabulation"}, {QChar::LineFeed, "LineFeed"}, +# if QT_VERSION >= 0x050e00 + {QChar::FormFeed, "FormFeed"}, +# endif {QChar::CarriageReturn, "CarriageReturn"}, {QChar::Space, "Space"}, #endif -- cgit v1.2.3 From cc3918abbc45ccb2716c279a603d1aaee96b974e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 12 Aug 2019 14:08:50 +0200 Subject: RHI/Windows: Fix launching of MSVC binaries on Windows 7 Dynamically resolve CreateDXGIFactory2() which is not present on the platform. Task-number: QTBUG-76845 Change-Id: I4d15d72633544a8c11d2b78c8736cd20a2afdff1 Reviewed-by: Laszlo Agocs --- src/gui/rhi/qrhid3d11.cpp | 45 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp index 0c5df600a0..c0b13f1cc8 100644 --- a/src/gui/rhi/qrhid3d11.cpp +++ b/src/gui/rhi/qrhid3d11.cpp @@ -157,6 +157,36 @@ static inline Int aligned(Int v, Int byteAlign) return (v + byteAlign - 1) & ~(byteAlign - 1); } +static IDXGIFactory1 *createDXGIFactory2() +{ + IDXGIFactory1 *result = nullptr; + if (QOperatingSystemVersion::current() > QOperatingSystemVersion::Windows7) { + using PtrCreateDXGIFactory2 = HRESULT (WINAPI *)(UINT, REFIID, void **); + QSystemLibrary dxgilib(QStringLiteral("dxgi")); + if (auto createDXGIFactory2 = (PtrCreateDXGIFactory2)dxgilib.resolve("CreateDXGIFactory2")) { + const HRESULT hr = createDXGIFactory2(0, IID_IDXGIFactory2, reinterpret_cast(&result)); + if (FAILED(hr)) { + qWarning("CreateDXGIFactory2() failed to create DXGI factory: %s", qPrintable(comErrorMessage(hr))); + result = nullptr; + } + } else { + qWarning("Unable to resolve CreateDXGIFactory2()"); + } + } + return result; +} + +static IDXGIFactory1 *createDXGIFactory1() +{ + IDXGIFactory1 *result = nullptr; + const HRESULT hr = CreateDXGIFactory1(IID_IDXGIFactory1, reinterpret_cast(&result)); + if (FAILED(hr)) { + qWarning("CreateDXGIFactory1() failed to create DXGI factory: %s", qPrintable(comErrorMessage(hr))); + result = nullptr; + } + return result; +} + bool QRhiD3D11::create(QRhi::Flags flags) { Q_UNUSED(flags); @@ -165,19 +195,14 @@ bool QRhiD3D11::create(QRhi::Flags flags) if (debugLayer) devFlags |= D3D11_CREATE_DEVICE_DEBUG; - HRESULT hr; -#if !defined(Q_CC_MINGW) - hasDxgi2 = QOperatingSystemVersion::current() > QOperatingSystemVersion::Windows7; - if (hasDxgi2) - hr = CreateDXGIFactory2(0, IID_IDXGIFactory2, reinterpret_cast(&dxgiFactory)); + dxgiFactory = createDXGIFactory2(); + if (dxgiFactory != nullptr) + hasDxgi2 = true; else -#endif - hr = CreateDXGIFactory1(IID_IDXGIFactory1, reinterpret_cast(&dxgiFactory)); + dxgiFactory = createDXGIFactory1(); - if (FAILED(hr)) { - qWarning("Failed to create DXGI factory: %s", qPrintable(comErrorMessage(hr))); + if (dxgiFactory == nullptr) return false; - } if (!importedDevice) { IDXGIAdapter1 *adapterToUse = nullptr; -- cgit v1.2.3 From 965a5cc5ad40a163c789cef80394b6c69e131c77 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 14 Jan 2019 10:16:38 +0100 Subject: Inline QMetaObjectPrivate::signalOffset() This saves one more function call in activate(). before after string based connect: 2436 2380 pointer based connect: 3265 3160 not connected: 400 307 disconnected: 489 404 5 slots connected: 4515 4522 Change-Id: I4789c7400497c2aa08886ea964af5e5e4703eeab Reviewed-by: Thiago Macieira Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/kernel/qmetaobject.cpp | 9 +-------- src/corelib/kernel/qmetaobject_p.h | 8 +++++++- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/corelib/kernel/qmetaobject.cpp b/src/corelib/kernel/qmetaobject.cpp index f366d2fe49..cc396d9239 100644 --- a/src/corelib/kernel/qmetaobject.cpp +++ b/src/corelib/kernel/qmetaobject.cpp @@ -814,6 +814,7 @@ int QMetaObjectPrivate::indexOfConstructor(const QMetaObject *m, const QByteArra } /*! + \fn int QMetaObjectPrivate::signalOffset(const QMetaObject *m) \internal \since 5.0 @@ -823,14 +824,6 @@ int QMetaObjectPrivate::indexOfConstructor(const QMetaObject *m, const QByteArra Similar to QMetaObject::methodOffset(), but non-signal methods are excluded. */ -int QMetaObjectPrivate::signalOffset(const QMetaObject *m) -{ - Q_ASSERT(m != 0); - int offset = 0; - for (m = m->d.superdata; m; m = m->d.superdata) - offset += priv(m->d.data)->signalCount; - return offset; -} /*! \internal diff --git a/src/corelib/kernel/qmetaobject_p.h b/src/corelib/kernel/qmetaobject_p.h index 0cd9da2eac..56e3d6cb44 100644 --- a/src/corelib/kernel/qmetaobject_p.h +++ b/src/corelib/kernel/qmetaobject_p.h @@ -208,7 +208,13 @@ struct QMetaObjectPrivate static int indexOfConstructor(const QMetaObject *m, const QByteArray &name, int argc, const QArgumentType *types); Q_CORE_EXPORT static QMetaMethod signal(const QMetaObject *m, int signal_index); - Q_CORE_EXPORT static int signalOffset(const QMetaObject *m); + static inline int signalOffset(const QMetaObject *m) { + Q_ASSERT(m != nullptr); + int offset = 0; + for (m = m->d.superdata; m; m = m->d.superdata) + offset += reinterpret_cast(m->d.data)->signalCount; + return offset; + } Q_CORE_EXPORT static int absoluteSignalCount(const QMetaObject *m); Q_CORE_EXPORT static int signalIndex(const QMetaMethod &m); static bool checkConnectArgs(int signalArgc, const QArgumentType *signalTypes, -- cgit v1.2.3 From b68dbdd0094a546c49c5771173ff40577b3c02b2 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Fri, 18 Jan 2019 10:59:04 +0100 Subject: Fix return value The method actually returns a boolean. Change-Id: I5887ad23e19be9a9c87c7858d81891378fd23cc9 Reviewed-by: Thiago Macieira Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/kernel/qobject.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 048a47881f..82fe546715 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -5179,7 +5179,7 @@ bool QObject::disconnectImpl(const QObject *sender, void **signal, const QObject } if (!senderMetaObject) { qWarning("QObject::disconnect: signal not found in %s", sender->metaObject()->className()); - return QMetaObject::Connection(0); + return false; } signal_index += QMetaObjectPrivate::signalOffset(senderMetaObject); } -- cgit v1.2.3 From 00076a2695ddf429f478b43472b742921288bba0 Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 3 Dec 2018 10:29:07 +0100 Subject: Don't insert items into the wrong row This happened to work by chance, as QList::insert() would gracefully handle out of bounds insertions. Change-Id: I7ee1e645ed9a538946a509957ce5155641ffea1d Reviewed-by: David Faure --- tests/auto/other/qabstractitemmodelutils/dynamictreemodel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/auto/other/qabstractitemmodelutils/dynamictreemodel.cpp b/tests/auto/other/qabstractitemmodelutils/dynamictreemodel.cpp index c8698242d5..ecc95d30b6 100644 --- a/tests/auto/other/qabstractitemmodelutils/dynamictreemodel.cpp +++ b/tests/auto/other/qabstractitemmodelutils/dynamictreemodel.cpp @@ -228,7 +228,7 @@ void ModelMoveCommand::doCommand() if (srcParent == destParent) d = m_destRow - (m_endRow - m_startRow + 1); else - d = m_destRow - (m_endRow - m_startRow) + 1; + d = m_destRow; } foreach (const qint64 id, l) -- cgit v1.2.3 From 3d29f2198fdb7e710767b6711edf96f412d9bfac Mon Sep 17 00:00:00 2001 From: Volker Krause Date: Thu, 8 Aug 2019 14:18:34 +0200 Subject: Add Q_ENUM for QCompleter enums This is necessary in order to use the properties of QCompleter that use these enums. Change-Id: I9f7edfc1137f200810b6bc98d27709695f37de5d Reviewed-by: Friedemann Kleint --- src/widgets/util/qcompleter.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widgets/util/qcompleter.h b/src/widgets/util/qcompleter.h index 5620b55589..5448fc313c 100644 --- a/src/widgets/util/qcompleter.h +++ b/src/widgets/util/qcompleter.h @@ -75,12 +75,14 @@ public: UnfilteredPopupCompletion, InlineCompletion }; + Q_ENUM(CompletionMode) enum ModelSorting { UnsortedModel = 0, CaseSensitivelySortedModel, CaseInsensitivelySortedModel }; + Q_ENUM(ModelSorting) QCompleter(QObject *parent = nullptr); QCompleter(QAbstractItemModel *model, QObject *parent = nullptr); -- cgit v1.2.3 From 42d32e468aa89631161884f07b3e25814c47b879 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 2 Aug 2019 13:18:46 +0200 Subject: Determine dependencies of Windows resource files Windows resource files support a subset of C preprocessor directives. Among others they can have #include directives. Use QMake's own scanner to retrieve the files that are included by a Windows resource file and add them to its dependencies. For the test case the TestCompiler class had to be extended: runCommand is now public, and commandOutput is less peculiar. Fixes: QTBUG-3859 Change-Id: I138703352c37c98297c0574a9a440510c1c494b8 Reviewed-by: Oliver Wolff Reviewed-by: Edward Welbourne --- qmake/generators/win32/mingw_make.cpp | 6 +++- qmake/generators/win32/winmakefile.cpp | 6 +++- tests/auto/tools/qmake/testcompiler.cpp | 14 +++++---- tests/auto/tools/qmake/testcompiler.h | 8 +++-- .../qmake/testdata/windows_resources/inter.inc | 1 + .../qmake/testdata/windows_resources/main.cpp | 1 + .../qmake/testdata/windows_resources/version.inc | 28 +++++++++++++++++ .../windows_resources/windows_resources.pro | 4 +++ .../windows_resources/windows_resources.rc | 2 ++ tests/auto/tools/qmake/tst_qmake.cpp | 36 ++++++++++++++++++++-- 10 files changed, 93 insertions(+), 13 deletions(-) create mode 100644 tests/auto/tools/qmake/testdata/windows_resources/inter.inc create mode 100644 tests/auto/tools/qmake/testdata/windows_resources/main.cpp create mode 100644 tests/auto/tools/qmake/testdata/windows_resources/version.inc create mode 100644 tests/auto/tools/qmake/testdata/windows_resources/windows_resources.pro create mode 100644 tests/auto/tools/qmake/testdata/windows_resources/windows_resources.rc diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp index 40114948c2..878291fae9 100644 --- a/qmake/generators/win32/mingw_make.cpp +++ b/qmake/generators/win32/mingw_make.cpp @@ -342,7 +342,11 @@ void MingwMakefileGenerator::writeRcFilePart(QTextStream &t) if (defines.isEmpty()) defines = ProString(" $(DEFINES)"); - t << escapeDependencyPath(var("RES_FILE")) << ": " << escapeDependencyPath(rc_file) << "\n\t" + addSourceFile(rc_file, QMakeSourceFileInfo::SEEK_DEPS); + const QStringList rcDeps = QStringList(rc_file) << dependencies(rc_file); + + t << escapeDependencyPath(var("RES_FILE")) << ": " + << escapeDependencyPaths(rcDeps).join(' ') << "\n\t" << var("QMAKE_RC") << " -i " << escapeFilePath(rc_file) << " -o " << fileVar("RES_FILE") << incPathStr << defines << "\n\n"; } diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 392d825f5b..27d2a7c0a5 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -667,6 +667,9 @@ void Win32MakefileGenerator::writeRcFilePart(QTextStream &t) incPathStr += escapeFilePath(path); } + addSourceFile(rc_file, QMakeSourceFileInfo::SEEK_DEPS); + const QStringList rcDeps = QStringList(rc_file) << dependencies(rc_file); + // The resource tool may use defines. This might be the same defines passed in as the // compiler, since you may use these defines in the .rc file itself. // As the escape syntax for the command line defines for RC is different from that for CL, @@ -678,7 +681,8 @@ void Win32MakefileGenerator::writeRcFilePart(QTextStream &t) // Also, we need to add the _DEBUG define manually since the compiler defines this symbol // by itself, and we use it in the automatically created rc file when VERSION is defined // in the .pro file. - t << escapeDependencyPath(res_file) << ": " << escapeDependencyPath(rc_file) << "\n\t" + t << escapeDependencyPath(res_file) << ": " + << escapeDependencyPaths(rcDeps).join(' ') << "\n\t" << var("QMAKE_RC") << (project->isActiveConfig("debug") ? " -D_DEBUG" : "") << defines << incPathStr << " -fo " << escapeFilePath(res_file) << ' ' << escapeFilePath(rc_file); diff --git a/tests/auto/tools/qmake/testcompiler.cpp b/tests/auto/tools/qmake/testcompiler.cpp index ab68b5c725..b5aa4bec82 100644 --- a/tests/auto/tools/qmake/testcompiler.cpp +++ b/tests/auto/tools/qmake/testcompiler.cpp @@ -164,15 +164,17 @@ bool TestCompiler::runCommand(const QString &cmd, const QStringList &args, bool return errorOut(); } - child.setReadChannel(QProcess::StandardError); child.waitForFinished(-1); bool ok = child.exitStatus() == QProcess::NormalExit && (expectFail ^ (child.exitCode() == 0)); - foreach (const QByteArray &output, child.readAllStandardError().split('\n')) { - testOutput_.append(QString::fromLocal8Bit(output)); - - if (output.startsWith("Project MESSAGE: FAILED")) - ok = false; + for (auto channel : { QProcess::StandardOutput, QProcess::StandardError }) { + child.setReadChannel(channel); + while (!child.atEnd()) { + const QString output = QString::fromLocal8Bit(child.readLine()); + if (output.startsWith("Project MESSAGE: FAILED")) + ok = false; + testOutput_.append(output); + } } return ok ? true : errorOut(); diff --git a/tests/auto/tools/qmake/testcompiler.h b/tests/auto/tools/qmake/testcompiler.h index 50232669c0..73a79201fe 100644 --- a/tests/auto/tools/qmake/testcompiler.h +++ b/tests/auto/tools/qmake/testcompiler.h @@ -71,13 +71,17 @@ public: bool removeProject( const QString &workPath, const QString &project ); // removes the file specified by 'fileName' on the 'workPath' bool removeFile( const QString &workPath, const QString &fileName ); - // returns each line of stdout of the last command append with a "new line" character(s) to suit the platform + + // Returns each line of stdout/stderr of the last commands + // separated by platform-specific line endings. QString commandOutput() const; + // clear the results of storage of stdout for running previous commands void clearCommandOutput(); -private: bool runCommand(const QString &cmd, const QStringList &args, bool expectFail = false); + +private: bool errorOut(); QString makeCmd_; diff --git a/tests/auto/tools/qmake/testdata/windows_resources/inter.inc b/tests/auto/tools/qmake/testdata/windows_resources/inter.inc new file mode 100644 index 0000000000..0c2594214e --- /dev/null +++ b/tests/auto/tools/qmake/testdata/windows_resources/inter.inc @@ -0,0 +1 @@ +#include "version.inc" diff --git a/tests/auto/tools/qmake/testdata/windows_resources/main.cpp b/tests/auto/tools/qmake/testdata/windows_resources/main.cpp new file mode 100644 index 0000000000..237c8ce181 --- /dev/null +++ b/tests/auto/tools/qmake/testdata/windows_resources/main.cpp @@ -0,0 +1 @@ +int main() {} diff --git a/tests/auto/tools/qmake/testdata/windows_resources/version.inc b/tests/auto/tools/qmake/testdata/windows_resources/version.inc new file mode 100644 index 0000000000..b797c9acce --- /dev/null +++ b/tests/auto/tools/qmake/testdata/windows_resources/version.inc @@ -0,0 +1,28 @@ +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGS 0x0L + FILEFLAGSMASK 0x3fL + FILEOS 0x00040004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "000004b0" + BEGIN + VALUE "CompanyName", "The Qt Company Ltd" + VALUE "FileDescription", "A Good File" + VALUE "FileVersion", "1.0.0.0" + VALUE "LegalCopyright", "Copyright (C) 2019 The Qt Company Ltd." + VALUE "InternalName", "foo" + VALUE "OriginalFilename", "foo.exe" + VALUE "ProductName", "A Good Product" + VALUE "ProductVersion", "1.0.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0, 1200 + END +END diff --git a/tests/auto/tools/qmake/testdata/windows_resources/windows_resources.pro b/tests/auto/tools/qmake/testdata/windows_resources/windows_resources.pro new file mode 100644 index 0000000000..80a5e5c19a --- /dev/null +++ b/tests/auto/tools/qmake/testdata/windows_resources/windows_resources.pro @@ -0,0 +1,4 @@ +QT = core +SOURCES = main.cpp +RC_FILE = windows_resources.rc +TEMPLATE = app diff --git a/tests/auto/tools/qmake/testdata/windows_resources/windows_resources.rc b/tests/auto/tools/qmake/testdata/windows_resources/windows_resources.rc new file mode 100644 index 0000000000..4df652de35 --- /dev/null +++ b/tests/auto/tools/qmake/testdata/windows_resources/windows_resources.rc @@ -0,0 +1,2 @@ +#include "winver.h" +#include "inter.inc" diff --git a/tests/auto/tools/qmake/tst_qmake.cpp b/tests/auto/tools/qmake/tst_qmake.cpp index cda4c500e1..290ff49304 100644 --- a/tests/auto/tools/qmake/tst_qmake.cpp +++ b/tests/auto/tools/qmake/tst_qmake.cpp @@ -76,8 +76,10 @@ private slots: void findMocs(); void findDeps(); void rawString(); -#if defined(Q_OS_MAC) +#if defined(Q_OS_DARWIN) void bundle_spaces(); +#elif defined(Q_OS_WIN) + void windowsResources(); #endif void substitutes(); void project(); @@ -512,7 +514,8 @@ struct TempFile } }; -#if defined(Q_OS_MAC) +#if defined(Q_OS_DARWIN) + void tst_qmake::bundle_spaces() { QString workDir = base_path + "/testdata/bundle-spaces"; @@ -543,7 +546,34 @@ void tst_qmake::bundle_spaces() QVERIFY( !non_existing_file.exists() ); QVERIFY( test_compiler.removeMakefile(workDir) ); } -#endif // defined(Q_OS_MAC) + +#elif defined(Q_OS_WIN) // defined(Q_OS_DARWIN) + +void tst_qmake::windowsResources() +{ + QString workDir = base_path + "/testdata/windows_resources"; + QVERIFY(test_compiler.qmake(workDir, "windows_resources")); + QVERIFY(test_compiler.make(workDir)); + + // Another "make" must not rebuild the .res file + test_compiler.clearCommandOutput(); + QVERIFY(test_compiler.make(workDir)); + QVERIFY(!test_compiler.commandOutput().contains("windows_resources.rc")); + test_compiler.clearCommandOutput(); + + // Wait a second to make sure we get a new timestamp in the touch below + QTest::qWait(1000); + + // Touch the deepest include of the .rc file + QVERIFY(test_compiler.runCommand("cmd", QStringList{"/c", + "echo.>>" + QDir::toNativeSeparators(workDir + "/version.inc")})); + + // The next "make" must rebuild the .res file + QVERIFY(test_compiler.make(workDir)); + QVERIFY(test_compiler.commandOutput().contains("windows_resources.rc")); +} + +#endif // defined(Q_OS_WIN) void tst_qmake::substitutes() { -- cgit v1.2.3 From 9dc594b2bf3572aa5df3ec3ad2b9842c96e8290d Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 13 Aug 2019 09:41:33 +0200 Subject: QNetworkConnectionMonitor: Fix compilation with older Windows Kits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove "final" since it has problems with 10.0.15063.0: qnetconmonitor_win.cpp C:\Program Files (x86)\Windows Kits\10\include\10.0.15063.0\winrt\wrl/client.h(61): error C3246: 'Microsoft::WRL::Details::RemoveIUnknownBase': cannot inherit from 'QNetworkConnectionEvents' as it has been declared as 'final' with [ T=QNetworkConnectionEvents ] kernel\qnetconmonitor_win.cpp(102): note: see declaration of 'QNetworkConnectionEvents' kernel\qnetconmonitor_win.cpp(373): note: see reference to class template instantiation 'Microsoft::WRL::Details::RemoveIUnknownBase' being compiled with [ T=QNetworkConnectionEvents ] C:\Program Files (x86)\Windows Kits\10\include\10.0.15063.0\winrt\wrl/client.h(61): error C3246: 'Microsoft::WRL::Details::RemoveIUnknownBase': cannot inherit from 'QNetworkListManagerEvents' as it has been declared as 'final' with [ T=QNetworkListManagerEvents ] kernel\qnetconmonitor_win.cpp(468): note: see declaration of 'QNetworkListManagerEvents' kernel\qnetconmonitor_win.cpp(650): note: see reference to class template instantiation 'Microsoft::WRL::Details::RemoveIUnknownBase' being compiled with [ T=QNetworkListManagerEvents ] Change-Id: Ia35545b65acaebea3fcff194884be8a156974123 Reviewed-by: Timur Pocheptsov Reviewed-by: Mårten Nordheim --- src/network/kernel/qnetconmonitor_win.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/kernel/qnetconmonitor_win.cpp b/src/network/kernel/qnetconmonitor_win.cpp index b543508169..f9d660d738 100644 --- a/src/network/kernel/qnetconmonitor_win.cpp +++ b/src/network/kernel/qnetconmonitor_win.cpp @@ -99,7 +99,7 @@ QNetworkInterface getInterfaceFromHostAddress(const QHostAddress &local) } } // anonymous namespace -class QNetworkConnectionEvents final : public INetworkConnectionEvents +class QNetworkConnectionEvents : public INetworkConnectionEvents { public: QNetworkConnectionEvents(QNetworkConnectionMonitorPrivate *monitor); @@ -465,7 +465,7 @@ bool QNetworkConnectionMonitor::isReachable() return d_func()->connectivity & required; } -class QNetworkListManagerEvents final : public INetworkListManagerEvents +class QNetworkListManagerEvents : public INetworkListManagerEvents { public: QNetworkListManagerEvents(QNetworkStatusMonitorPrivate *monitor); -- cgit v1.2.3 From 25354bd01a7fefab45f81d946de205ead2694231 Mon Sep 17 00:00:00 2001 From: Vitaly Fanaskov Date: Fri, 9 Aug 2019 16:39:19 +0200 Subject: QSignalSpy: Extract connection functionality into a separate method Change-Id: Ie6406c79b070cba715250711578cd3d80c089559 Reviewed-by: Volker Hilsheimer --- src/testlib/qsignalspy.h | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 0285080662..91d23db715 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -59,7 +59,6 @@ public: explicit QSignalSpy(const QObject *obj, const char *aSignal) : m_waiting(false) { - static const int memberOffset = QObject::staticMetaObject.methodCount(); if (!obj) { qWarning("QSignalSpy: Cannot spy on a null object"); return; @@ -83,11 +82,9 @@ public: return; } - if (!QMetaObject::connect(obj, sigIndex, this, memberOffset, - Qt::DirectConnection, nullptr)) { - qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); + if (!connectToSignal(obj, sigIndex)) return; - } + sig = ba; initArgs(mo->method(sigIndex), obj); } @@ -100,7 +97,6 @@ public: QSignalSpy(const typename QtPrivate::FunctionPointer::Object *obj, Func signal0) : m_waiting(false) { - static const int memberOffset = QObject::staticMetaObject.methodCount(); if (!obj) { qWarning("QSignalSpy: Cannot spy on a null object"); return; @@ -121,11 +117,9 @@ public: return; } - if (!QMetaObject::connect(obj, sigIndex, this, memberOffset, - Qt::DirectConnection, nullptr)) { - qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); + if (!connectToSignal(obj, sigIndex)) return; - } + sig = signalMetaMethod.methodSignature(); initArgs(mo->method(sigIndex), obj); } @@ -160,6 +154,18 @@ public: } private: + bool connectToSignal(const QObject *sender, int sigIndex) + { + static const int memberOffset = QObject::staticMetaObject.methodCount(); + const bool connected = QMetaObject::connect( + sender, sigIndex, this, memberOffset, Qt::DirectConnection, nullptr); + + if (!connected) + qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); + + return connected; + } + void initArgs(const QMetaMethod &member, const QObject *obj) { args.reserve(member.parameterCount()); -- cgit v1.2.3 From 51567cbe214ac6f82948d05aeed19d46d48f210a Mon Sep 17 00:00:00 2001 From: Vitaly Fanaskov Date: Fri, 9 Aug 2019 16:49:51 +0200 Subject: QSignalSpy: Extract meta signal validation to the separate method Change-Id: I37a74ea4487a437646815d3117ec8b0fd7073205 Reviewed-by: Volker Hilsheimer --- src/testlib/qsignalspy.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 91d23db715..7a8f9efa9a 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -110,12 +110,9 @@ public: const QMetaObject * const mo = obj->metaObject(); const QMetaMethod signalMetaMethod = QMetaMethod::fromSignal(signal0); const int sigIndex = signalMetaMethod.methodIndex(); - if (!signalMetaMethod.isValid() || - signalMetaMethod.methodType() != QMetaMethod::Signal) { - qWarning("QSignalSpy: Not a valid signal: '%s'", - signalMetaMethod.methodSignature().constData()); + + if (!isSignalMetaMethodValid(signalMetaMethod)) return; - } if (!connectToSignal(obj, sigIndex)) return; @@ -166,6 +163,16 @@ private: return connected; } + static bool isSignalMetaMethodValid(const QMetaMethod &signal) + { + const bool valid = signal.isValid() && signal.methodType() == QMetaMethod::Signal; + + if (!valid) + qWarning("QSignalSpy: Not a valid signal: '%s'", signal.methodSignature().constData()); + + return valid; + } + void initArgs(const QMetaMethod &member, const QObject *obj) { args.reserve(member.parameterCount()); -- cgit v1.2.3 From 94a3f3a037a7c58a46d90eb653e027a2381c2f27 Mon Sep 17 00:00:00 2001 From: Vitaly Fanaskov Date: Mon, 12 Aug 2019 10:43:30 +0200 Subject: QSignalSpy: Extract object validation to a separate method Change-Id: I167a01257cfdb679cb81861bfae26d8fa40f8c27 Reviewed-by: Volker Hilsheimer --- src/testlib/qsignalspy.h | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 7a8f9efa9a..91c2d139a8 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -59,10 +59,8 @@ public: explicit QSignalSpy(const QObject *obj, const char *aSignal) : m_waiting(false) { - if (!obj) { - qWarning("QSignalSpy: Cannot spy on a null object"); + if (!isObjectValid(obj)) return; - } if (!aSignal) { qWarning("QSignalSpy: Null signal name is not valid"); @@ -97,10 +95,8 @@ public: QSignalSpy(const typename QtPrivate::FunctionPointer::Object *obj, Func signal0) : m_waiting(false) { - if (!obj) { - qWarning("QSignalSpy: Cannot spy on a null object"); + if (!isObjectValid(obj)) return; - } if (!signal0) { qWarning("QSignalSpy: Null signal name is not valid"); @@ -173,6 +169,16 @@ private: return valid; } + static bool isObjectValid(const QObject *object) + { + const bool valid = !!object; + + if (!valid) + qWarning("QSignalSpy: Cannot spy on a null object"); + + return valid; + } + void initArgs(const QMetaMethod &member, const QObject *obj) { args.reserve(member.parameterCount()); -- cgit v1.2.3 From 0b984e141bff9ae760efa0e81a9f106093552538 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Mon, 12 Aug 2019 10:58:06 +0200 Subject: Bound the scope of QTRY_LOOP_IMPL()'s local variable QTRY_IMPL() exercises QTRY_LOOP_IMPL() twice, once directly, the second time via QTRY_TIMEOUT_DEBUG_IMPL(); and QTRY_LOOP_IMPL() deliberately doesn't bound its scope (e.g. with the canonical do{...}while(0) trick) so that the latter can access its local variable. Unfortunately, this means the local's declaration in the second use of QTRY_LOOP_IMPL() shadows the first. So enclose the first in braces to bound the scope. Fixes: QTBUG-77297 Change-Id: I849bfe0b8abfb517ed3e783abf86c602163db137 Reviewed-by: Marc Mutz --- src/testlib/qtestcase.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h index 5fed9d6bcc..6e865f1278 100644 --- a/src/testlib/qtestcase.h +++ b/src/testlib/qtestcase.h @@ -152,7 +152,7 @@ do {\ #define QTRY_IMPL(expr, timeout)\ const int qt_test_step = timeout < 350 ? timeout / 7 + 1 : 50; \ const int qt_test_timeoutValue = timeout; \ - QTRY_LOOP_IMPL((expr), qt_test_timeoutValue, qt_test_step); \ + { QTRY_LOOP_IMPL((expr), qt_test_timeoutValue, qt_test_step); } \ QTRY_TIMEOUT_DEBUG_IMPL((expr), qt_test_timeoutValue, qt_test_step)\ // Will try to wait for the expression to become true while allowing event processing -- cgit v1.2.3 From fdffa035ba261d374101d230c0a884725f34e362 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Fri, 9 Aug 2019 17:38:41 +0200 Subject: Unix: Disable complex page ranges widget when printing to pdf It doesn't work since it relies on cups to do the heavy lifting and cups is not used when printing to PDF Task-number: QTBUG-77351 Change-Id: I1bdda58b50112b9bb3d7991f3cfd860d6b4f4fc4 Reviewed-by: Shawn Rutledge --- src/printsupport/dialogs/qprintdialog_unix.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/printsupport/dialogs/qprintdialog_unix.cpp b/src/printsupport/dialogs/qprintdialog_unix.cpp index 9fb9d6c55e..d2937e7547 100644 --- a/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -727,6 +727,11 @@ void QPrintDialogPrivate::selectPrinter(const QPrinter::OutputFormat outputForma else options.pageSetCombo->setEnabled(true); + // Disable complex page ranges widget when printing to pdf + // It doesn't work since it relies on cups to do the heavy lifting and cups + // is not used when printing to PDF + options.pagesRadioButton->setEnabled(outputFormat != QPrinter::PdfFormat); + #if QT_CONFIG(cups) // Disable color options on main dialog if not printing to file, it will be handled by CUPS advanced dialog options.colorMode->setVisible(outputFormat == QPrinter::PdfFormat); -- cgit v1.2.3 From 730893c123cf30a94a494f1d292478d98f6095af Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 23 Jul 2019 18:37:34 +0300 Subject: QResource: port from QMutexLocker to qt_scoped_lock Change-Id: I483e4765ef83d13e81bb830c9f48421410c5718b Reviewed-by: Thiago Macieira --- src/corelib/io/qresource.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp index 52b746d04a..22c22ce711 100644 --- a/src/corelib/io/qresource.cpp +++ b/src/corelib/io/qresource.cpp @@ -42,7 +42,7 @@ #include "qresource_p.h" #include "qresource_iterator_p.h" #include "qset.h" -#include "qmutex.h" +#include #include "qdebug.h" #include "qlocale.h" #include "qglobal.h" @@ -203,8 +203,8 @@ struct QResourceGlobalData }; Q_GLOBAL_STATIC(QResourceGlobalData, resourceGlobalData) -static inline QRecursiveMutex *resourceMutex() -{ return &resourceGlobalData->resourceMutex; } +static inline QRecursiveMutex &resourceMutex() +{ return resourceGlobalData->resourceMutex; } static inline ResourceList *resourceList() { return &resourceGlobalData->resourceList; } @@ -337,7 +337,7 @@ bool QResourcePrivate::load(const QString &file) { related.clear(); - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); const ResourceList *list = resourceList(); QString cleaned = cleanPath(file); for(int i = 0; i < list->size(); ++i) { @@ -392,7 +392,7 @@ QResourcePrivate::ensureInitialized() const if(path.startsWith(QLatin1Char('/'))) { that->load(path.toString()); } else { - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); QStringList searchPaths = *resourceSearchPaths(); searchPaths << QLatin1String(""); for(int i = 0; i < searchPaths.size(); ++i) { @@ -688,7 +688,7 @@ QResource::addSearchPath(const QString &path) path.toLocal8Bit().data()); return; } - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); resourceSearchPaths()->prepend(path); } @@ -706,7 +706,7 @@ QResource::addSearchPath(const QString &path) QStringList QResource::searchPaths() { - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); return *resourceSearchPaths(); } #endif @@ -950,7 +950,7 @@ Q_CORE_EXPORT bool qRegisterResourceData(int version, const unsigned char *tree, { if (resourceGlobalData.isDestroyed()) return false; - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); ResourceList *list = resourceList(); if (version >= 0x01 && version <= 0x3) { bool found = false; @@ -977,7 +977,7 @@ Q_CORE_EXPORT bool qUnregisterResourceData(int version, const unsigned char *tre if (resourceGlobalData.isDestroyed()) return false; - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); if (version >= 0x01 && version <= 0x3) { QResourceRoot res(version, tree, name, data); ResourceList *list = resourceList(); @@ -1198,7 +1198,7 @@ QResource::registerResource(const QString &rccFilename, const QString &resourceR QDynamicFileResourceRoot *root = new QDynamicFileResourceRoot(r); if(root->registerSelf(rccFilename)) { root->ref.ref(); - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); resourceList()->append(root); return true; } @@ -1222,7 +1222,7 @@ QResource::unregisterResource(const QString &rccFilename, const QString &resourc { QString r = qt_resource_fixResourceRoot(resourceRoot); - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); ResourceList *list = resourceList(); for(int i = 0; i < list->size(); ++i) { QResourceRoot *res = list->at(i); @@ -1269,7 +1269,7 @@ QResource::registerResource(const uchar *rccData, const QString &resourceRoot) QDynamicBufferResourceRoot *root = new QDynamicBufferResourceRoot(r); if (root->registerSelf(rccData, -1)) { root->ref.ref(); - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); resourceList()->append(root); return true; } @@ -1293,7 +1293,7 @@ QResource::unregisterResource(const uchar *rccData, const QString &resourceRoot) { QString r = qt_resource_fixResourceRoot(resourceRoot); - QMutexLocker lock(resourceMutex()); + const auto locker = qt_scoped_lock(resourceMutex()); ResourceList *list = resourceList(); for(int i = 0; i < list->size(); ++i) { QResourceRoot *res = list->at(i); -- cgit v1.2.3 From 743fdd3fe7ad8d3cafa237a202c089fa6ff1c78c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 27 Jun 2019 15:42:50 +0200 Subject: QTextCodec: port to QRecursiveMutex Write a local mutex locker for DRY. Use qt_unique_lock(Mutex*) because we do not intend to add a QRecursiveMutexLocker and by Qt 6, the current work-around where QMutexLocker works for QRecursiveMutex, too, will be gone. Could have used qt_scoped_lock, because no premature unlock() calls are present, but it turns out the code attempts to take the mutex after it's destroyed by Q_GLOBAL_STATIC, so we need QMutexLocker compat, thus qt_unique_lock(Mutex*) instead of qt_scoped_lock(Mutex&). Need to use decltype and using because auto doesn't work for NSDMs. Change-Id: I8b0f8a3067f0a412279d075cb959105e485789cd Reviewed-by: Lars Knoll --- src/corelib/codecs/qtextcodec.cpp | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/corelib/codecs/qtextcodec.cpp b/src/corelib/codecs/qtextcodec.cpp index 8639e4f2f0..14f9abc28a 100644 --- a/src/corelib/codecs/qtextcodec.cpp +++ b/src/corelib/codecs/qtextcodec.cpp @@ -47,6 +47,7 @@ #include "qendian.h" #include "qfile.h" #include "qlist.h" +#include #include "qstringlist.h" #include "qvarlengtharray.h" #if !defined(QT_BOOTSTRAPPED) @@ -86,7 +87,7 @@ #endif // icu #endif // QT_BOOTSTRAPPED -#include "qmutex.h" +#include #include #include @@ -100,8 +101,13 @@ QT_BEGIN_NAMESPACE typedef QList::ConstIterator TextCodecListConstIt; typedef QList::ConstIterator ByteArrayListConstIt; -Q_GLOBAL_STATIC_WITH_ARGS(QMutex, textCodecsMutex, (QMutex::Recursive)); -QMutex *qTextCodecsMutex() { return textCodecsMutex(); } +Q_GLOBAL_STATIC(QRecursiveMutex, textCodecsMutex); + +class TextCodecsMutexLocker { + using Lock = decltype(qt_unique_lock(std::declval())); + // ### FIXME: this is used when textCodecsMutex already == nullptr + const Lock lock = qt_unique_lock(textCodecsMutex()); +}; #if !QT_CONFIG(icu) static char qtolower(char c) @@ -162,7 +168,7 @@ static QTextCodec *setupLocaleMapper() QTextCodec *locale = nullptr; { - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; if (globalData->allCodecs.isEmpty()) setup(); } @@ -477,7 +483,7 @@ QTextCodec::ConverterState::~ConverterState() */ QTextCodec::QTextCodec() { - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; QCoreGlobalData *globalInstance = QCoreGlobalData::instance(); if (globalInstance->allCodecs.isEmpty()) @@ -501,7 +507,7 @@ QTextCodec::~QTextCodec() globalData->codecForLocale.testAndSetRelaxed(this, nullptr); - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; globalData->allCodecs.removeOne(this); @@ -534,7 +540,7 @@ QTextCodec *QTextCodec::codecForName(const QByteArray &name) if (name.isEmpty()) return nullptr; - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; QCoreGlobalData *globalData = QCoreGlobalData::instance(); if (!globalData) @@ -578,7 +584,7 @@ QTextCodec *QTextCodec::codecForName(const QByteArray &name) */ QTextCodec* QTextCodec::codecForMib(int mib) { - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; QCoreGlobalData *globalData = QCoreGlobalData::instance(); if (!globalData) @@ -624,7 +630,7 @@ QTextCodec* QTextCodec::codecForMib(int mib) */ QList QTextCodec::availableCodecs() { - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; QCoreGlobalData *globalData = QCoreGlobalData::instance(); if (globalData->allCodecs.isEmpty()) @@ -656,7 +662,7 @@ QList QTextCodec::availableMibs() #if QT_CONFIG(icu) return QIcuCodec::availableMibs(); #else - QMutexLocker locker(textCodecsMutex()); + const TextCodecsMutexLocker locker; QCoreGlobalData *globalData = QCoreGlobalData::instance(); if (globalData->allCodecs.isEmpty()) @@ -706,9 +712,8 @@ QTextCodec* QTextCodec::codecForLocale() QTextCodec *codec = globalData->codecForLocale.loadAcquire(); if (!codec) { #if QT_CONFIG(icu) - textCodecsMutex()->lock(); + const TextCodecsMutexLocker locker; codec = QIcuCodec::defaultCodecUnlocked(); - textCodecsMutex()->unlock(); #else // setupLocaleMapper locks as necessary codec = setupLocaleMapper(); -- cgit v1.2.3 From 19b52e7c1dc2c447c1682f9438ebd37cbfc7d31d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 14 May 2019 15:03:24 +0200 Subject: tst_QFormLayout: use QAutoPointer to simplify test and avoid leak MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... in case of a test failure. QAutoPointer is private API, but here we can use it. Change-Id: I45b734385cd13fdea95d0100f2d8152f969612f9 Reviewed-by: Friedemann Kleint Reviewed-by: Jan Arve Sæther --- tests/auto/widgets/kernel/qformlayout/qformlayout.pro | 2 +- tests/auto/widgets/kernel/qformlayout/tst_qformlayout.cpp | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/auto/widgets/kernel/qformlayout/qformlayout.pro b/tests/auto/widgets/kernel/qformlayout/qformlayout.pro index 617183fee6..0766b50f68 100644 --- a/tests/auto/widgets/kernel/qformlayout/qformlayout.pro +++ b/tests/auto/widgets/kernel/qformlayout/qformlayout.pro @@ -1,4 +1,4 @@ CONFIG += testcase TARGET = tst_qformlayout -QT += widgets testlib testlib-private +QT += widgets widgets-private testlib testlib-private SOURCES += tst_qformlayout.cpp diff --git a/tests/auto/widgets/kernel/qformlayout/tst_qformlayout.cpp b/tests/auto/widgets/kernel/qformlayout/tst_qformlayout.cpp index ab32643061..c6760000f4 100644 --- a/tests/auto/widgets/kernel/qformlayout/tst_qformlayout.cpp +++ b/tests/auto/widgets/kernel/qformlayout/tst_qformlayout.cpp @@ -38,6 +38,9 @@ #include #include #include + +#include + #include #include @@ -1196,22 +1199,20 @@ void tst_QFormLayout::layoutAlone() void tst_QFormLayout::taskQTBUG_27420_takeAtShouldUnparentLayout() { QSharedPointer outer(new QFormLayout); - QPointer inner = new QFormLayout; + QAutoPointer holder{new QFormLayout}; + auto inner = holder.get(); outer->addRow(inner); QCOMPARE(outer->count(), 1); QCOMPARE(inner->parent(), outer.data()); QLayoutItem *item = outer->takeAt(0); - QCOMPARE(item->layout(), inner.data()); + QCOMPARE(item->layout(), inner); QVERIFY(!item->layout()->parent()); outer.reset(); - if (inner) - delete item; // success: a taken item/layout should not be deleted when the old parent is deleted - else - QVERIFY(!inner.isNull()); + QVERIFY(holder); // a taken item/layout should not be deleted when the old parent is deleted } void tst_QFormLayout::taskQTBUG_40609_addingWidgetToItsOwnLayout(){ -- cgit v1.2.3 From c29a136804f5952c0b4c15920f3ab4032c21573c Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 13 Aug 2019 11:01:03 +0200 Subject: Fix tst_QImageReader::saveColorSpace After comparing colorspaces was remove from QImage equality, the test was no longer testing what it was supposed to. Change-Id: Ie7ee8ac2f488ea4254086cbb91a2662dc729e80b Reviewed-by: Eirik Aavitsland --- tests/auto/gui/image/qimagereader/tst_qimagereader.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp index 8b42b139a3..866a41c3d1 100644 --- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp @@ -1913,6 +1913,7 @@ void tst_QImageReader::saveColorSpace() QImage stored = QImage::fromData(buf.buffer(), "png"); QCOMPARE(stored, orig); + QCOMPARE(stored.colorSpace(), orig.colorSpace()); } void tst_QImageReader::readText_data() -- cgit v1.2.3 From e8c7124768b0e3e556a8ae53629478284bbdca8e Mon Sep 17 00:00:00 2001 From: Vitaly Fanaskov Date: Mon, 12 Aug 2019 14:36:06 +0200 Subject: Introduce QSignalSpy constructor allows to spy on a meta method This functionality is especially convenient if meta-object system is heavily used in a test. For example, if you need to test a bunch of signals based on their names and/or argument types. Change-Id: I09a4ecbbd3d0859b5fd466d9dde7679804eb7614 Reviewed-by: Volker Hilsheimer --- .../doc/snippets/code/doc_src_qsignalspy.cpp | 48 ++++++++++++++++++++ src/testlib/qsignalspy.h | 10 +++++ src/testlib/qsignalspy.qdoc | 22 +++++++++ tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp | 52 ++++++++++++++++++++++ 4 files changed, 132 insertions(+) diff --git a/src/testlib/doc/snippets/code/doc_src_qsignalspy.cpp b/src/testlib/doc/snippets/code/doc_src_qsignalspy.cpp index a4513a55a9..37aba2715b 100644 --- a/src/testlib/doc/snippets/code/doc_src_qsignalspy.cpp +++ b/src/testlib/doc/snippets/code/doc_src_qsignalspy.cpp @@ -98,3 +98,51 @@ QVERIFY(spy.wait(1000)); QSignalSpy spy(myPushButton, &QPushButton::clicked); //! [6] +//! [7] +QObject object; +auto mo = object.metaObject(); +auto signalIndex = mo->indexOfSignal("objectNameChanged(QString)"); +auto signal = mo->method(signalIndex); + +QSignalSpy spy(&object, signal); +object.setObjectName("A new object name"); +QCOMPARE(spy.count(), 1); +//! [7] + +//! [8] +void tst_QWindow::writeMinMaxDimensionalProps_data() + QTest::addColumn("propertyIndex"); + + // Collect all relevant properties + static const auto mo = QWindow::staticMetaObject; + for (int i = mo.propertyOffset(); i < mo.propertyCount(); ++i) { + auto property = mo.property(i); + + // ...that have type int + if (property.type() == QVariant::Int) { + static const QRegularExpression re("^minimum|maximum"); + const auto name = property.name(); + + // ...and start with "minimum" or "maximum" + if (re.match(name).hasMatch()) { + QTest::addRow("%s", name) << i; + } + } + } +} + +void tst_QWindow::writeMinMaxDimensionalProps() +{ + QFETCH(int, propertyIndex); + + auto property = QWindow::staticMetaObject.property(propertyIndex); + QVERIFY(property.isWritable()); + QVERIFY(property.hasNotifySignal()); + + QWindow window; + QSignalSpy spy(&window, property.notifySignal()); + + QVERIFY(property.write(&window, 42)); + QCOMPARE(spy.count(), 1); +} +//! [8] diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 91c2d139a8..dc0c58044f 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -118,6 +118,16 @@ public: } #endif // Q_CLANG_QDOC + QSignalSpy(const QObject *obj, const QMetaMethod &signal) + : m_waiting(false) + { + if (isObjectValid(obj) && isSignalMetaMethodValid(signal) && + connectToSignal(obj, signal.methodIndex())) { + sig = signal.methodSignature(); + initArgs(signal, obj); + } + } + inline bool isValid() const { return !sig.isEmpty(); } inline QByteArray signal() const { return sig; } diff --git a/src/testlib/qsignalspy.qdoc b/src/testlib/qsignalspy.qdoc index 3352307d69..5ea6bc5dc7 100644 --- a/src/testlib/qsignalspy.qdoc +++ b/src/testlib/qsignalspy.qdoc @@ -86,6 +86,28 @@ \snippet code/doc_src_qsignalspy.cpp 6 */ +/*! \fn QSignalSpy(const QObject *obj, const QMetaMethod &signal) + \since 5.14 + + Constructs a new QSignalSpy that listens for emissions of the \a signal + from the QObject \a object. If QSignalSpy is not able to listen for a + valid signal (for example, because \a object is \nullptr or \a signal does + not denote a valid signal of \a object), an explanatory warning message + will be output using qWarning() and subsequent calls to \c isValid() will + return false. + + This constructor is convenient to use when Qt's meta-object system is + heavily used in a test. + + Basic usage example: + \snippet code/doc_src_qsignalspy.cpp 7 + + Imagine we need to check whether all properties of the QWindow class + that represent minimum and maximum dimensions are properly writable. + The following example demonstrates one of the approaches: + \snippet code/doc_src_qsignalspy.cpp 8 +*/ + /*! \fn QSignalSpy::isValid() const Returns \c true if the signal spy listens to a valid signal, otherwise false. diff --git a/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp b/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp index df241c030e..9555c2a844 100644 --- a/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp +++ b/tests/auto/testlib/qsignalspy/tst_qsignalspy.cpp @@ -65,6 +65,11 @@ private slots: void waitFunctionPointer_signalEmittedLater(); void waitFunctionPointer_signalEmittedTooLate(); void waitFunctionPointer_signalEmittedMultipleTimes(); + + void spyOnMetaMethod(); + + void spyOnMetaMethod_invalid(); + void spyOnMetaMethod_invalid_data(); }; class QtTestObject: public QObject @@ -432,5 +437,52 @@ void tst_QSignalSpy::waitFunctionPointer_signalEmittedMultipleTimes() QCOMPARE(spy.count(), 3); } +void tst_QSignalSpy::spyOnMetaMethod() +{ + QObject obj; + auto mo = obj.metaObject(); + + auto signalIndex = mo->indexOfSignal("objectNameChanged(QString)"); + QVERIFY(signalIndex != -1); + + auto signal = mo->method(signalIndex); + QVERIFY(signal.isValid()); + QCOMPARE(signal.methodType(), QMetaMethod::Signal); + + QSignalSpy spy(&obj, signal); + QVERIFY(spy.isValid()); + + obj.setObjectName("A new object name"); + QCOMPARE(spy.count(), 1); +} + +Q_DECLARE_METATYPE(QMetaMethod); +void tst_QSignalSpy::spyOnMetaMethod_invalid() +{ + QFETCH(QObject*, object); + QFETCH(QMetaMethod, signal); + + QSignalSpy spy(object, signal); + QVERIFY(!spy.isValid()); +} + +void tst_QSignalSpy::spyOnMetaMethod_invalid_data() +{ + QTest::addColumn("object"); + QTest::addColumn("signal"); + + QTest::addRow("Invalid object") + << static_cast(nullptr) + << QMetaMethod(); + + QTest::addRow("Empty signal") + << new QObject(this) + << QMetaMethod(); + + QTest::addRow("Method is not a signal") + << new QObject(this) + << QObject::staticMetaObject.method(QObject::staticMetaObject.indexOfMethod("deleteLater()")); +} + QTEST_MAIN(tst_QSignalSpy) #include "tst_qsignalspy.moc" -- cgit v1.2.3 From 9cae146c42376868432040bf7427c0b995f2bb64 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 9 Jul 2019 13:22:26 +0200 Subject: QFileInfoGatherer: Make it possible to turn off file watching Add a boolean watch property and delay-create the file system watcher in watchPaths(). De-inline the watchedFiles(), watchedDirectories(), watchPaths(), unwatchPaths() helpers and a check for the watcher. Task-number: QTBUG-76493 Change-Id: Ie02ac496c8c0246be62bc67ff7e0fcdb990b5ca6 Reviewed-by: Volker Hilsheimer --- src/widgets/dialogs/qfileinfogatherer.cpp | 117 ++++++++++++++++++++++++------ src/widgets/dialogs/qfileinfogatherer_p.h | 20 +++-- 2 files changed, 107 insertions(+), 30 deletions(-) diff --git a/src/widgets/dialogs/qfileinfogatherer.cpp b/src/widgets/dialogs/qfileinfogatherer.cpp index 9ab75e0b0a..0beca82f28 100644 --- a/src/widgets/dialogs/qfileinfogatherer.cpp +++ b/src/widgets/dialogs/qfileinfogatherer.cpp @@ -82,21 +82,6 @@ QFileInfoGatherer::QFileInfoGatherer(QObject *parent) : QThread(parent) , m_iconProvider(&defaultProvider) { -#if QT_CONFIG(filesystemwatcher) - watcher = new QFileSystemWatcher(this); - connect(watcher, SIGNAL(directoryChanged(QString)), this, SLOT(list(QString))); - connect(watcher, SIGNAL(fileChanged(QString)), this, SLOT(updateFile(QString))); - -# if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - const QVariant listener = watcher->property("_q_driveListener"); - if (listener.canConvert()) { - if (QObject *driveListener = listener.value()) { - connect(driveListener, SIGNAL(driveAdded()), this, SLOT(driveAdded())); - connect(driveListener, SIGNAL(driveRemoved()), this, SLOT(driveRemoved())); - } - } -# endif // Q_OS_WIN && !Q_OS_WINRT -#endif start(LowPriority); } @@ -177,8 +162,8 @@ void QFileInfoGatherer::fetchExtendedInformation(const QString &path, const QStr if (files.isEmpty() && !path.isEmpty() && !path.startsWith(QLatin1String("//")) /*don't watch UNC path*/) { - if (!watcher->directories().contains(path)) - watcher->addPath(path); + if (!watchedDirectories().contains(path)) + watchPaths(QStringList(path)); } #endif } @@ -195,6 +180,91 @@ void QFileInfoGatherer::updateFile(const QString &filePath) fetchExtendedInformation(dir, QStringList(fileName)); } +QStringList QFileInfoGatherer::watchedFiles() const +{ +#if QT_CONFIG(filesystemwatcher) + if (m_watcher) + return m_watcher->files(); +#endif + return {}; +} + +QStringList QFileInfoGatherer::watchedDirectories() const +{ +#if QT_CONFIG(filesystemwatcher) + if (m_watcher) + return m_watcher->directories(); +#endif + return {}; +} + +void QFileInfoGatherer::createWatcher() +{ +#if QT_CONFIG(filesystemwatcher) + m_watcher = new QFileSystemWatcher(this); + connect(m_watcher, &QFileSystemWatcher::directoryChanged, this, &QFileInfoGatherer::list); + connect(m_watcher, &QFileSystemWatcher::fileChanged, this, &QFileInfoGatherer::updateFile); +# if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + const QVariant listener = m_watcher->property("_q_driveListener"); + if (listener.canConvert()) { + if (QObject *driveListener = listener.value()) { + connect(driveListener, SIGNAL(driveAdded()), this, SLOT(driveAdded())); + connect(driveListener, SIGNAL(driveRemoved()), this, SLOT(driveRemoved())); + } + } +# endif // Q_OS_WIN && !Q_OS_WINRT +#endif +} + +void QFileInfoGatherer::watchPaths(const QStringList &paths) +{ +#if QT_CONFIG(filesystemwatcher) + if (m_watching) { + if (m_watcher == nullptr) + createWatcher(); + m_watcher->addPaths(paths); + } +#else + Q_UNUSED(paths); +#endif +} + +void QFileInfoGatherer::unwatchPaths(const QStringList &paths) +{ +#if QT_CONFIG(filesystemwatcher) + if (m_watcher) + m_watcher->removePaths(paths); +#else + Q_UNUSED(paths); +#endif +} + +bool QFileInfoGatherer::isWatching() const +{ + bool result = false; +#if QT_CONFIG(filesystemwatcher) + QMutexLocker locker(&mutex); + result = m_watching; +#endif + return result; +} + +void QFileInfoGatherer::setWatching(bool v) +{ +#if QT_CONFIG(filesystemwatcher) + QMutexLocker locker(&mutex); + if (v != m_watching) { + if (!v) { + delete m_watcher; + m_watcher = nullptr; + } + m_watching = v; + } +#else + Q_UNUSED(v); +#endif +} + /* List all files in \a directoryPath @@ -204,8 +274,8 @@ void QFileInfoGatherer::clear() { #if QT_CONFIG(filesystemwatcher) QMutexLocker locker(&mutex); - watcher->removePaths(watcher->files()); - watcher->removePaths(watcher->directories()); + unwatchPaths(watchedFiles()); + unwatchPaths(watchedDirectories()); #endif } @@ -218,7 +288,7 @@ void QFileInfoGatherer::removePath(const QString &path) { #if QT_CONFIG(filesystemwatcher) QMutexLocker locker(&mutex); - watcher->removePath(path); + unwatchPaths(QStringList(path)); #else Q_UNUSED(path); #endif @@ -265,12 +335,13 @@ QExtendedInformation QFileInfoGatherer::getInfo(const QFileInfo &fileInfo) const static const bool watchFiles = qEnvironmentVariableIsSet("QT_FILESYSTEMMODEL_WATCH_FILES"); if (watchFiles) { if (!fileInfo.exists() && !fileInfo.isSymLink()) { - watcher->removePath(fileInfo.absoluteFilePath()); + const_cast(this)-> + unwatchPaths(QStringList(fileInfo.absoluteFilePath())); } else { const QString path = fileInfo.absoluteFilePath(); if (!path.isEmpty() && fileInfo.exists() && fileInfo.isFile() && fileInfo.isReadable() - && !watcher->files().contains(path)) { - watcher->addPath(path); + && !watchedFiles().contains(path)) { + const_cast(this)->watchPaths(QStringList(path)); } } } diff --git a/src/widgets/dialogs/qfileinfogatherer_p.h b/src/widgets/dialogs/qfileinfogatherer_p.h index 829c620c1e..3d30a98d04 100644 --- a/src/widgets/dialogs/qfileinfogatherer_p.h +++ b/src/widgets/dialogs/qfileinfogatherer_p.h @@ -169,12 +169,13 @@ public: explicit QFileInfoGatherer(QObject *parent = nullptr); ~QFileInfoGatherer(); -#if QT_CONFIG(filesystemwatcher) && defined(Q_OS_WIN) - QStringList watchedFiles() const { return watcher->files(); } - QStringList watchedDirectories() const { return watcher->directories(); } - void watchPaths(const QStringList &paths) { watcher->addPaths(paths); } - void unwatchPaths(const QStringList &paths) { watcher->removePaths(paths); } -#endif // filesystemwatcher && Q_OS_WIN + QStringList watchedFiles() const; + QStringList watchedDirectories() const; + void watchPaths(const QStringList &paths); + void unwatchPaths(const QStringList &paths); + + bool isWatching() const; + void setWatching(bool v); // only callable from this->thread(): void clear(); @@ -201,6 +202,8 @@ private: void fetch(const QFileInfo &info, QElapsedTimer &base, bool &firstTime, QVector > &updatedFiles, const QString &path); private: + void createWatcher(); + mutable QMutex mutex; // begin protected by mutex QWaitCondition condition; @@ -210,13 +213,16 @@ private: QAtomicInt abort; #if QT_CONFIG(filesystemwatcher) - QFileSystemWatcher *watcher = nullptr; + QFileSystemWatcher *m_watcher = nullptr; #endif QFileIconProvider *m_iconProvider; // not accessed by run() QFileIconProvider defaultProvider; #ifdef Q_OS_WIN bool m_resolveSymlinks = true; // not accessed by run() #endif +#if QT_CONFIG(filesystemwatcher) + bool m_watching = true; +#endif }; QT_END_NAMESPACE -- cgit v1.2.3 From 5e0c98558c206dcab117ff8201f75175d6a93a71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Br=C3=BCning?= Date: Tue, 13 Aug 2019 15:29:21 +0200 Subject: Remove extra semicolon from QConcatenable::size Reduces the number of warnings when building a bit. Change-Id: I18e9a95a211736f18876405ba3d866f704e4dbe0 Reviewed-by: Volker Hilsheimer --- src/corelib/text/qstringbuilder.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/text/qstringbuilder.h b/src/corelib/text/qstringbuilder.h index b3cf2f695e..288d98d633 100644 --- a/src/corelib/text/qstringbuilder.h +++ b/src/corelib/text/qstringbuilder.h @@ -375,7 +375,7 @@ template <> struct QConcatenable : private QAbstractConcatenab using type = const char16_t *; using ConvertTo = QString; enum { ExactSize = true }; - static int size(const char16_t *a) { return QStringView(a).length(); }; + static int size(const char16_t *a) { return QStringView(a).length(); } static inline void QT_ASCII_CAST_WARN appendTo(const char16_t *a, QChar *&out) { if (!a) -- cgit v1.2.3 From 02ae522f54e93af46fb7cae5fcbc630a804cab50 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 9 Apr 2019 14:58:29 +0200 Subject: eglfs: Drop annoying warnings without drm atomic No point in warning on every application startup that framebuffer size setting is not available. Just ignore it then. Change-Id: Id36ff0ab9560b99cc3f2d56a4ee51455cfa43cb7 Reviewed-by: Johan Helsing --- src/platformsupport/kmsconvenience/qkmsdevice.cpp | 29 +++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/platformsupport/kmsconvenience/qkmsdevice.cpp b/src/platformsupport/kmsconvenience/qkmsdevice.cpp index 1ba32895f8..07ef60c5ff 100644 --- a/src/platformsupport/kmsconvenience/qkmsdevice.cpp +++ b/src/platformsupport/kmsconvenience/qkmsdevice.cpp @@ -387,23 +387,26 @@ QPlatformScreen *QKmsDevice::createScreenForConnector(drmModeResPtr resources, if (!cloneSource.isEmpty()) qCDebug(qLcKmsDebug) << "Output" << connectorName << " clones output " << cloneSource; - const QByteArray fbsize = userConnectorConfig.value(QStringLiteral("size")).toByteArray().toLower(); QSize framebufferSize; - framebufferSize.setWidth(modes[selected_mode].hdisplay); - framebufferSize.setHeight(modes[selected_mode].vdisplay); - + bool framebufferSizeSet = false; + const QByteArray fbsize = userConnectorConfig.value(QStringLiteral("size")).toByteArray().toLower(); + if (!fbsize.isEmpty()) { + if (sscanf(fbsize.constData(), "%dx%d", &framebufferSize.rwidth(), &framebufferSize.rheight()) == 2) { #if QT_CONFIG(drm_atomic) - if (hasAtomicSupport()) { - if (sscanf(fbsize.constData(), "%dx%d", &framebufferSize.rwidth(), &framebufferSize.rheight()) != 2) { - qWarning("Framebuffer size format is invalid."); + if (hasAtomicSupport()) + framebufferSizeSet = true; +#endif + if (!framebufferSizeSet) + qWarning("Setting framebuffer size is only available with DRM atomic API"); + } else { + qWarning("Invalid framebuffer size '%s'", fbsize.constData()); } - } else { - qWarning("Setting framebuffer size is only available with DRM atomic API"); } -#else - if (fbsize.size()) - qWarning("Setting framebuffer size is only available with DRM atomic API"); -#endif + if (!framebufferSizeSet) { + framebufferSize.setWidth(modes[selected_mode].hdisplay); + framebufferSize.setHeight(modes[selected_mode].vdisplay); + } + qCDebug(qLcKmsDebug) << "Output" << connectorName << "framebuffer size is " << framebufferSize; QKmsOutput output; -- cgit v1.2.3 From de26ea6a7ff921995b6229f1f683821adb95e973 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 10 Aug 2019 18:21:59 +0200 Subject: QTree/TableView: allow to reset the sort order to natural sorting QTreeView allowed to set the sort column to -1 which shows the data in it's natural order (when the model supports it). This functionality was removed during the porting away from the deprecated sortByColumn(int) functionality done in d0f909f8dbdd8594b0d950822f0e7ab8728da513 Readd the functionality and also allow it for QTableView. Fixes: QTBUG-77419 Change-Id: I96b0c09ab9da36ca0a9de58fe0f37e2c56b1d51b Reviewed-by: Samuel Gaist Reviewed-by: David Faure --- src/widgets/itemviews/qtableview.cpp | 8 +++-- src/widgets/itemviews/qtreeview.cpp | 4 +-- .../itemviews/qtableview/tst_qtableview.cpp | 26 +++++++++----- .../widgets/itemviews/qtreeview/tst_qtreeview.cpp | 41 +++++++++++++++------- 4 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/widgets/itemviews/qtableview.cpp b/src/widgets/itemviews/qtableview.cpp index d4a6433c4d..b05662f6bc 100644 --- a/src/widgets/itemviews/qtableview.cpp +++ b/src/widgets/itemviews/qtableview.cpp @@ -3187,14 +3187,18 @@ void QTableView::sortByColumn(int column) /*! \since 4.2 - Sorts the model by the values in the given \a column in the given \a order. + Sorts the model by the values in the given \a column and \a order. + + \a column may be -1, in which case no sort indicator will be shown + and the model will return to its natural, unsorted order. Note that not + all models support this and may even crash in this case. \sa sortingEnabled */ void QTableView::sortByColumn(int column, Qt::SortOrder order) { Q_D(QTableView); - if (column < 0) + if (column < -1) return; // If sorting is enabled it will emit a signal connected to // _q_sortIndicatorChanged, which then actually sorts diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 55b10d13c1..e9228edcda 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -2618,7 +2618,7 @@ void QTreeView::sortByColumn(int column) /*! \since 4.2 - Sets the model up for sorting by the values in the given \a column and \a order. + Sorts the model by the values in the given \a column and \a order. \a column may be -1, in which case no sort indicator will be shown and the model will return to its natural, unsorted order. Note that not @@ -2629,7 +2629,7 @@ void QTreeView::sortByColumn(int column) void QTreeView::sortByColumn(int column, Qt::SortOrder order) { Q_D(QTreeView); - if (column < 0) + if (column < -1) return; // If sorting is enabled it will emit a signal connected to // _q_sortIndicatorChanged, which then actually sorts diff --git a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp index b1ddc6e7a2..c8eecd3693 100644 --- a/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp +++ b/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp @@ -4248,32 +4248,42 @@ void tst_QTableView::task191545_dragSelectRows() void tst_QTableView::task234926_setHeaderSorting() { QStringListModel model; - QStringList data; - data << "orange" << "apple" << "banana" << "lemon" << "pumpkin"; + QSortFilterProxyModel sfpm; // default QStandardItemModel does not support 'unsorted' state + sfpm.setSourceModel(&model); + const QStringList data({"orange", "apple", "banana", "lemon", "pumpkin"}); QStringList sortedDataA = data; QStringList sortedDataD = data; std::sort(sortedDataA.begin(), sortedDataA.end()); std::sort(sortedDataD.begin(), sortedDataD.end(), std::greater()); model.setStringList(data); QTableView view; - view.setModel(&model); -// view.show(); + view.setModel(&sfpm); + QTRY_COMPARE(model.stringList(), data); view.setSortingEnabled(true); view.sortByColumn(0, Qt::AscendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataA); + for (int i = 0; i < sortedDataA.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataA.at(i)); view.horizontalHeader()->setSortIndicator(0, Qt::DescendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataD); + for (int i = 0; i < sortedDataD.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataD.at(i)); QHeaderView *h = new QHeaderView(Qt::Horizontal); h->setModel(&model); view.setHorizontalHeader(h); h->setSortIndicator(0, Qt::AscendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataA); + for (int i = 0; i < sortedDataA.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataA.at(i)); h->setSortIndicator(0, Qt::DescendingOrder); - QTRY_COMPARE(model.stringList() , sortedDataD); + for (int i = 0; i < sortedDataD.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), sortedDataD.at(i)); + + view.sortByColumn(-1, Qt::AscendingOrder); + QCOMPARE(view.horizontalHeader()->sortIndicatorSection(), -1); + for (int i = 0; i < data.size(); ++i) + QCOMPARE(view.model()->data(view.model()->index(i, 0)).toString(), data.at(i)); } void tst_QTableView::taskQTBUG_5062_spansInconsistency() diff --git a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp index c31de2ba22..2a1163ec66 100644 --- a/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp +++ b/tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp @@ -2783,25 +2783,40 @@ void tst_QTreeView::sortByColumn() QFETCH(bool, sortingEnabled); QTreeView view; QStandardItemModel model(4,2); - model.setItem(0,0,new QStandardItem("b")); - model.setItem(1,0,new QStandardItem("d")); - model.setItem(2,0,new QStandardItem("c")); - model.setItem(3,0,new QStandardItem("a")); - model.setItem(0,1,new QStandardItem("e")); - model.setItem(1,1,new QStandardItem("g")); - model.setItem(2,1,new QStandardItem("h")); - model.setItem(3,1,new QStandardItem("f")); + QSortFilterProxyModel sfpm; // default QStandardItemModel does not support 'unsorted' state + sfpm.setSourceModel(&model); + model.setItem(0, 0, new QStandardItem("b")); + model.setItem(1, 0, new QStandardItem("d")); + model.setItem(2, 0, new QStandardItem("c")); + model.setItem(3, 0, new QStandardItem("a")); + model.setItem(0, 1, new QStandardItem("e")); + model.setItem(1, 1, new QStandardItem("g")); + model.setItem(2, 1, new QStandardItem("h")); + model.setItem(3, 1, new QStandardItem("f")); view.setSortingEnabled(sortingEnabled); - view.setModel(&model); + view.setModel(&sfpm); + view.sortByColumn(1, Qt::DescendingOrder); QCOMPARE(view.header()->sortIndicatorSection(), 1); - QCOMPARE(view.model()->data(view.model()->index(0,1)).toString(), QString::fromLatin1("h")); - QCOMPARE(view.model()->data(view.model()->index(1,1)).toString(), QString::fromLatin1("g")); + QCOMPARE(view.model()->data(view.model()->index(0, 0)).toString(), QString::fromLatin1("c")); + QCOMPARE(view.model()->data(view.model()->index(1, 0)).toString(), QString::fromLatin1("d")); + QCOMPARE(view.model()->data(view.model()->index(0, 1)).toString(), QString::fromLatin1("h")); + QCOMPARE(view.model()->data(view.model()->index(1, 1)).toString(), QString::fromLatin1("g")); + view.sortByColumn(0, Qt::AscendingOrder); QCOMPARE(view.header()->sortIndicatorSection(), 0); - QCOMPARE(view.model()->data(view.model()->index(0,0)).toString(), QString::fromLatin1("a")); - QCOMPARE(view.model()->data(view.model()->index(1,0)).toString(), QString::fromLatin1("b")); + QCOMPARE(view.model()->data(view.model()->index(0, 0)).toString(), QString::fromLatin1("a")); + QCOMPARE(view.model()->data(view.model()->index(1, 0)).toString(), QString::fromLatin1("b")); + QCOMPARE(view.model()->data(view.model()->index(0, 1)).toString(), QString::fromLatin1("f")); + QCOMPARE(view.model()->data(view.model()->index(1, 1)).toString(), QString::fromLatin1("e")); + + view.sortByColumn(-1, Qt::AscendingOrder); + QCOMPARE(view.header()->sortIndicatorSection(), -1); + QCOMPARE(view.model()->data(view.model()->index(0, 0)).toString(), QString::fromLatin1("b")); + QCOMPARE(view.model()->data(view.model()->index(1, 0)).toString(), QString::fromLatin1("d")); + QCOMPARE(view.model()->data(view.model()->index(0, 1)).toString(), QString::fromLatin1("e")); + QCOMPARE(view.model()->data(view.model()->index(1, 1)).toString(), QString::fromLatin1("g")); } /* -- cgit v1.2.3 From ecb6327762e58a83309027da90ebb953411a264e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 30 Jul 2019 10:16:53 +0200 Subject: QTestLib: Introduce initMain() to run in main before qApp exists When running Qt autotests on a developer machine with a high resolution, failures occur due to either some widget becoming too small, some rounding fuzz appearing when Qt High DPI scaling is active, or some test taking screenshots failing to deal with device pixel ratios != 1 in the obtained pixmaps. It is not feasible to adapt all tests to pass on high resolution monitors in both modes (Qt High DPI scaling enabled/disabled). It should be possible to specify the High DPI setting per test. Previously, it was not possible to set the Qt High DPI scaling attributes since they must be applied before QApplication instantiation. Enable this by checking for the presence of a static void initMain() function on the test object and invoking it before QApplication instantiation. Prototypically use it in tst_qtimer and to turn off High DPI scaling for tst_QGL. [ChangeLog][QtTestLib] It is now possible to perform static initialization before QApplication instantiation by implementing a initMain() function in the test class. Change-Id: Idec0134b189710a14c41a451fa8445bc0c5b1cf3 Reviewed-by: Volker Hilsheimer Reviewed-by: Paul Wicking Reviewed-by: Edward Welbourne --- src/testlib/doc/src/qttestlib-manual.qdoc | 5 +++ src/testlib/qtest.h | 32 ++++++++++++++ tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp | 27 ++++++++---- tests/auto/opengl/qgl/tst_qgl.cpp | 7 ++++ tests/auto/testlib/initmain/initmain.pro | 5 +++ tests/auto/testlib/initmain/tst_initmain.cpp | 56 +++++++++++++++++++++++++ tests/auto/testlib/testlib.pro | 1 + 7 files changed, 124 insertions(+), 9 deletions(-) create mode 100644 tests/auto/testlib/initmain/initmain.pro create mode 100644 tests/auto/testlib/initmain/tst_initmain.cpp diff --git a/src/testlib/doc/src/qttestlib-manual.qdoc b/src/testlib/doc/src/qttestlib-manual.qdoc index 71b4541313..65836d0706 100644 --- a/src/testlib/doc/src/qttestlib-manual.qdoc +++ b/src/testlib/doc/src/qttestlib-manual.qdoc @@ -107,6 +107,11 @@ Example: \snippet code/doc_src_qtestlib.cpp 0 + Finally, if the test class has a static public \c{void initMain()} method, + it is called by the QTEST_MAIN macros before the QApplication object + is instantiated. For example, this allows for setting application + attributes like Qt::AA_DisableHighDpiScaling. This was added in 5.14. + For more examples, refer to the \l{Qt Test Tutorial}. \if !defined(qtforpython) diff --git a/src/testlib/qtest.h b/src/testlib/qtest.h index cdf0800371..27fe08e8f4 100644 --- a/src/testlib/qtest.h +++ b/src/testlib/qtest.h @@ -379,8 +379,36 @@ inline bool qCompare(quint32 const &t1, quint64 const &t2, const char *actual, { return qCompare(static_cast(t1), t2, actual, expected, file, line); } +namespace Internal { +template +class HasInitMain // SFINAE test for the presence of initMain() +{ +private: + using YesType = char[1]; + using NoType = char[2]; + + template static YesType& test( decltype(&C::initMain) ) ; + template static NoType& test(...); + +public: + enum { value = sizeof(test(nullptr)) == sizeof(YesType) }; +}; + +template +typename std::enable_if::value, void>::type callInitMain() +{ + T::initMain(); +} + +template +typename std::enable_if::value, void>::type callInitMain() +{ } + +} // namespace Internal + +} // namespace QTest QT_END_NAMESPACE #ifdef QT_TESTCASE_BUILDDIR @@ -441,6 +469,7 @@ int main(int argc, char *argv[]) \ #define QTEST_MAIN_IMPL(TestObject) \ TESTLIB_SELFCOVERAGE_START(#TestObject) \ + QT_PREPEND_NAMESPACE(QTest::Internal::callInitMain)(); \ QApplication app(argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ QTEST_DISABLE_KEYPAD_NAVIGATION \ @@ -454,6 +483,7 @@ int main(int argc, char *argv[]) \ #define QTEST_MAIN_IMPL(TestObject) \ TESTLIB_SELFCOVERAGE_START(#TestObject) \ + QT_PREPEND_NAMESPACE(QTest::Internal::callInitMain)(); \ QGuiApplication app(argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ TestObject tc; \ @@ -464,6 +494,7 @@ int main(int argc, char *argv[]) \ #define QTEST_MAIN_IMPL(TestObject) \ TESTLIB_SELFCOVERAGE_START(#TestObject) \ + QT_PREPEND_NAMESPACE(QTest::Internal::callInitMain)(); \ QCoreApplication app(argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ TestObject tc; \ @@ -482,6 +513,7 @@ int main(int argc, char *argv[]) \ int main(int argc, char *argv[]) \ { \ TESTLIB_SELFCOVERAGE_START(#TestObject) \ + QT_PREPEND_NAMESPACE(QTest::Internal::callInitMain)(); \ QCoreApplication app(argc, argv); \ app.setAttribute(Qt::AA_Use96Dpi, true); \ TestObject tc; \ diff --git a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp index 262dbea913..8e0bdac520 100644 --- a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp +++ b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp @@ -47,7 +47,11 @@ class tst_QTimer : public QObject { Q_OBJECT +public: + static void initMain(); + private slots: + void cleanupTestCase(); void zeroTimer(); void singleShotTimeout(); void timeout(); @@ -1138,22 +1142,27 @@ struct StaticSingleShotUser } }; +// NOTE: to prevent any static initialization order fiasco, we implement +// initMain() to instantiate staticSingleShotUser before qApp + static StaticSingleShotUser *s_staticSingleShotUser = nullptr; -void tst_QTimer::singleShot_static() +void tst_QTimer::initMain() { - QCoreApplication::processEvents(); - QCOMPARE(s_staticSingleShotUser->helper.calls, s_staticSingleShotUser->calls()); + s_staticSingleShotUser = new StaticSingleShotUser; } -// NOTE: to prevent any static initialization order fiasco, we handle QTEST_MAIN -// ourselves, but instantiate the staticSingleShotUser before qApp +void tst_QTimer::cleanupTestCase() +{ + delete s_staticSingleShotUser; +} -int main(int argc, char *argv[]) +void tst_QTimer::singleShot_static() { - StaticSingleShotUser staticSingleShotUser; - s_staticSingleShotUser = &staticSingleShotUser; - QTEST_MAIN_IMPL(tst_QTimer) + QCoreApplication::processEvents(); + QCOMPARE(s_staticSingleShotUser->helper.calls, s_staticSingleShotUser->calls()); } +QTEST_MAIN(tst_QTimer) + #include "tst_qtimer.moc" diff --git a/tests/auto/opengl/qgl/tst_qgl.cpp b/tests/auto/opengl/qgl/tst_qgl.cpp index 053c4b026b..3cc9592fb1 100644 --- a/tests/auto/opengl/qgl/tst_qgl.cpp +++ b/tests/auto/opengl/qgl/tst_qgl.cpp @@ -60,6 +60,8 @@ public: tst_QGL(); virtual ~tst_QGL(); + static void initMain(); + private slots: void initTestCase(); void getSetCheck(); @@ -101,6 +103,11 @@ tst_QGL::~tst_QGL() { } +void tst_QGL::initMain() +{ + QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); +} + void tst_QGL::initTestCase() { QGLWidget glWidget; diff --git a/tests/auto/testlib/initmain/initmain.pro b/tests/auto/testlib/initmain/initmain.pro new file mode 100644 index 0000000000..4c12aba08d --- /dev/null +++ b/tests/auto/testlib/initmain/initmain.pro @@ -0,0 +1,5 @@ +CONFIG += testcase +SOURCES += tst_initmain.cpp +QT = core testlib + +TARGET = tst_initmain diff --git a/tests/auto/testlib/initmain/tst_initmain.cpp b/tests/auto/testlib/initmain/tst_initmain.cpp new file mode 100644 index 0000000000..f08f82c5ec --- /dev/null +++ b/tests/auto/testlib/initmain/tst_initmain.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include +#include + +class tst_InitMain : public QObject +{ + Q_OBJECT + +public: + static void initMain() { m_initMainCalled = true; } + +private slots: + void testcase(); + +private: + static bool m_initMainCalled; +}; + +bool tst_InitMain::m_initMainCalled = false; + +void tst_InitMain::testcase() +{ + QVERIFY(m_initMainCalled); +} + +QTEST_MAIN(tst_InitMain) + +#include "tst_initmain.moc" diff --git a/tests/auto/testlib/testlib.pro b/tests/auto/testlib/testlib.pro index 587c76a189..55f1f9b87b 100644 --- a/tests/auto/testlib/testlib.pro +++ b/tests/auto/testlib/testlib.pro @@ -1,5 +1,6 @@ TEMPLATE = subdirs SUBDIRS = \ + initmain \ outformat \ qsignalspy \ selftests \ -- cgit v1.2.3 From 63abcfcade946e64ea1c1213259cab8e2ad2df81 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Mon, 5 Aug 2019 13:11:22 +0200 Subject: Make our connection-level window half of a possible maximum Some servers seem to be unable to properly calculate our window size from a delta we send via WINDOW_UPDATE frame immediately after our client preface and the SETTINGS frame. The remote replies with a GOAWAY frame blaming flow control error. Guessing what's this magic number they use seems to be not feasible, we now use a half of what we had before. Fixes: QTBUG-77308 Change-Id: I41dacfd25a395a27003f330d01b6d8d60b8f407c Reviewed-by: Edward Welbourne Reviewed-by: Volker Hilsheimer --- src/network/access/http2/http2protocol_p.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h index f7a89859d3..7142d6f1fa 100644 --- a/src/network/access/http2/http2protocol_p.h +++ b/src/network/access/http2/http2protocol_p.h @@ -168,8 +168,10 @@ struct Q_AUTOTEST_EXPORT ProtocolParameters bool indexStrings = true; // This parameter is not negotiated via SETTINGS frames, so we have it - // as a member and will convey it to our peer as a WINDOW_UPDATE frame: - qint32 maxSessionReceiveWindowSize = Http2::maxSessionReceiveWindowSize; + // as a member and will convey it to our peer as a WINDOW_UPDATE frame. + // Note, some servers do not accept our WINDOW_UPDATE from the default + // 64 KB to the possible maximum. Let's use a half of it: + qint32 maxSessionReceiveWindowSize = Http2::maxSessionReceiveWindowSize / 2; // This is our default SETTINGS frame: // -- cgit v1.2.3 From afb5746e62aa0de6e297ed2004a44e438778f858 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Wed, 7 Aug 2019 09:06:23 +0800 Subject: Enable /OPT:REF explicitly for MSVC /OPT:REF is enabled for release builds for MSVC by default, however, clang-cl may not enable it without this flag, add it to MSVC's mkspec so that all compilers based on MSVC can benefit from it as well. Change-Id: Ia80c20a8510cfa1e4687e39104ce99b37a2aa13f Reviewed-by: Friedemann Kleint --- mkspecs/common/msvc-desktop.conf | 2 +- mkspecs/win32-clang-msvc/qmake.conf | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/mkspecs/common/msvc-desktop.conf b/mkspecs/common/msvc-desktop.conf index 0b94e5a3f5..0bb3e13337 100644 --- a/mkspecs/common/msvc-desktop.conf +++ b/mkspecs/common/msvc-desktop.conf @@ -84,7 +84,7 @@ QMAKE_RUN_CXX_IMP_BATCH = $(CXX) -c $(CXXFLAGS) $(INCPATH) -Fo$@ @<< QMAKE_LINK = link QMAKE_LFLAGS = /NOLOGO /DYNAMICBASE /NXCOMPAT -QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO +QMAKE_LFLAGS_RELEASE = /OPT:REF /INCREMENTAL:NO QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /DEBUG /OPT:REF /INCREMENTAL:NO QMAKE_LFLAGS_DEBUG = /DEBUG QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE diff --git a/mkspecs/win32-clang-msvc/qmake.conf b/mkspecs/win32-clang-msvc/qmake.conf index 7279f77b40..238e401b84 100644 --- a/mkspecs/win32-clang-msvc/qmake.conf +++ b/mkspecs/win32-clang-msvc/qmake.conf @@ -54,6 +54,4 @@ QMAKE_LFLAGS_LTCG = QMAKE_CFLAGS_OPTIMIZE_SIZE = /clang:-Oz QMAKE_CFLAGS_OPTIMIZE_FULL = /clang:-O3 -QMAKE_LFLAGS_RELEASE += /OPT:REF,ICF,LBR - load(qt_config) -- cgit v1.2.3 From 7a67a78d0528a30bbda1d5d321ea73d4af232c65 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Tue, 2 Jul 2019 12:28:25 +1000 Subject: wasm: remove clamp mode for WASM_OBJECT_FILES builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I2ddda7423c6546ab287111485da9c145ce7d31ea Fixes: QTBUG-76771 Reviewed-by: Morten Johan Sørvig --- mkspecs/wasm-emscripten/qmake.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mkspecs/wasm-emscripten/qmake.conf b/mkspecs/wasm-emscripten/qmake.conf index c6c3af3622..992803e055 100644 --- a/mkspecs/wasm-emscripten/qmake.conf +++ b/mkspecs/wasm-emscripten/qmake.conf @@ -14,6 +14,8 @@ load(device_config) QMAKE_CFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES QMAKE_CXXFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES QMAKE_LFLAGS += -s WASM_OBJECT_FILES=$$WASM_OBJECT_FILES +} else { + EMCC_COMMON_LFLAGS += -s \"BINARYEN_TRAP_MODE=\'clamp\'\" } EMTERP_FLAGS = \ @@ -29,8 +31,7 @@ EMCC_COMMON_LFLAGS = \ -s USE_WEBGL2=1 \ -s NO_EXIT_RUNTIME=0 \ -s ERROR_ON_UNDEFINED_SYMBOLS=1 \ - --bind \ - -s \"BINARYEN_TRAP_MODE=\'clamp\'\" + --bind # The -s arguments can also be used with release builds, # but are here in debug for clarity. -- cgit v1.2.3 From b5677bc6da9c5e7517edc4902dc1fe7cf211685d Mon Sep 17 00:00:00 2001 From: Milla Pohjanheimo Date: Wed, 19 Jun 2019 16:19:25 +0300 Subject: Add binary compatibility files for Qt5.13.0 for QtBase Binary compatibility files added. Change-Id: If013647f17ade6a51e9f8678252b373d8f51d010 Reviewed-by: David Faure --- .../data/QtConcurrent.5.13.0.linux-gcc-amd64.txt | 5029 +++++ .../bic/data/QtCore.5.13.0.linux-gcc-amd64.txt | 4977 +++++ .../bic/data/QtDBus.5.13.0.linux-gcc-amd64.txt | 5316 +++++ .../auto/bic/data/QtGui.5.13.0.linux-gcc-amd64.txt | 8792 ++++++++ .../bic/data/QtNetwork.5.13.0.linux-gcc-amd64.txt | 5884 ++++++ .../bic/data/QtOpenGL.5.13.0.linux-gcc-amd64.txt | 19811 ++++++++++++++++++ .../data/QtPrintSupport.5.13.0.linux-gcc-amd64.txt | 20062 +++++++++++++++++++ .../auto/bic/data/QtSql.5.13.0.linux-gcc-amd64.txt | 5404 +++++ .../bic/data/QtTest.5.13.0.linux-gcc-amd64.txt | 5074 +++++ .../bic/data/QtWidgets.5.13.0.linux-gcc-amd64.txt | 19561 ++++++++++++++++++ .../auto/bic/data/QtXml.5.13.0.linux-gcc-amd64.txt | 5417 +++++ 11 files changed, 105327 insertions(+) create mode 100644 tests/auto/bic/data/QtConcurrent.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtCore.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtDBus.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtGui.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtNetwork.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtOpenGL.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtPrintSupport.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtSql.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtTest.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtWidgets.5.13.0.linux-gcc-amd64.txt create mode 100644 tests/auto/bic/data/QtXml.5.13.0.linux-gcc-amd64.txt diff --git a/tests/auto/bic/data/QtConcurrent.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtConcurrent.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..30e00ed226 --- /dev/null +++ b/tests/auto/bic/data/QtConcurrent.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,5029 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f05ecfb6c60) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f05ebc91420) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f05ebc91660) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f05ebc918a0) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f05ebc91ae0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f05ebc91c60) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f05ebccd060) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f05ebcfd180) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f05ebd53840) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f05ebd53900) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f05ebd53cc0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f05ebd53d20) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f05ebd53d80) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f05ebd53de0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f05ebd53e40) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f05ebd53f00) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f05ebd82000) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f05ebd820c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f05ebd82180) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f05ebd824e0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f05ebd82840) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f05ebd828a0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f05ebd82e40) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f05eb9d14e0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f05ebdb5410) 0 empty + std::__nonesuch (0x0x7f05eb9d19c0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f05eba4e360) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f05eba4e3c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f05ebaad0c0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f05ebaad120) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f05ebdb58f0) 0 empty + std::input_iterator_tag (0x0x7f05ebaad180) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f05ebdb5958) 0 empty + std::forward_iterator_tag (0x0x7f05ebdb59c0) 0 empty + std::input_iterator_tag (0x0x7f05ebaad1e0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f05ebdb5a28) 0 empty + std::bidirectional_iterator_tag (0x0x7f05ebdb5a90) 0 empty + std::forward_iterator_tag (0x0x7f05ebdb5af8) 0 empty + std::input_iterator_tag (0x0x7f05ebaad240) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f05ebb3dd20) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f05ebb3de40) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f05ebb5e180) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f05ebb5e480) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f05ebb5e5a0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f05eb7eb8a0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f05eb7ebba0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f05eb7ebc00) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f05eb7ebcc0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f05eb7ebd20) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f05eb7ebd80) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f05eb7ebde0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f05eb82e0c0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f05eb82e360) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f05eb82e3c0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f05eb8e5180) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f05ebdb5e38) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f05eb8e5360) 0 nearly-empty + primary-for std::bad_exception (0x0x7f05ebdb5e38) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f05eb8e5540) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f05ebdb5ea0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f05eb8e5900) 0 nearly-empty + primary-for std::bad_cast (0x0x7f05ebdb5ea0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f05ebdb5f08) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f05eb8e5ae0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f05ebdb5f08) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f05eb8e5cc0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f05eb91c2a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f05ebdb5f70) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f05eb91c960) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f05ebdb5f70) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f05eb942000) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f05eb942068) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f05eb942000) + std::exception (0x0x7f05eb91cb40) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f05eb942068) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f05eb91cd20) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f05eb91cf00) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f05eb5c6420) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f05eb779ea0) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f05eb779f60) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f05eb23e900) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f05eb23ea20) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f05eb23ed80) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f05eb27d300) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f05eb2b4a80) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f05eb351ea0) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f05eb2f2ea0) 0 + std::__atomic_flag_base (0x0x7f05eb351f00) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f05eb08b618) 0 + QAtomicInteger (0x0x7f05eb08b680) 0 + QBasicAtomicInteger (0x0x7f05eae88ea0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f05eaab91e0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f05eaafd780) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f05eaafdea0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f05eab2f208) 0 + QGenericArgument (0x0x7f05eab3f180) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f05eab3f5a0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f05eab3f9c0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f05ea7f14e0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f05ea7f1780) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f05ea8bb5a0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f05ea8bb900) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f05ea917c00) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f05ea616480) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f05ea616540) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f05ea6c3660) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f05ea6c3720) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f05ea6c3780) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f05ea6c37e0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f05ea6c3840) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f05ea6c3960) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f05ea6c39c0) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f05ea403960) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f05ea4039c0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f05ea1bfa20) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f05ea1bfba0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f05ea332d20) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f05ea380120) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f05ea3803c0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f05ea3805a0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f05e9fcb5a0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f05e9fd61a0) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f05e9fcb660) 0 nearly-empty + primary-for std::logic_error (0x0x7f05e9fd61a0) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f05e9fd6208) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f05e9fd6270) 0 + primary-for std::domain_error (0x0x7f05e9fd6208) + std::exception (0x0x7f05e9fcb6c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f05e9fd6270) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f05e9fd62d8) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f05e9fd6340) 0 + primary-for std::invalid_argument (0x0x7f05e9fd62d8) + std::exception (0x0x7f05e9fcb720) 0 nearly-empty + primary-for std::logic_error (0x0x7f05e9fd6340) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f05e9fd63a8) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f05e9fd6410) 0 + primary-for std::length_error (0x0x7f05e9fd63a8) + std::exception (0x0x7f05e9fcb780) 0 nearly-empty + primary-for std::logic_error (0x0x7f05e9fd6410) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f05e9fd6478) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f05e9fd64e0) 0 + primary-for std::out_of_range (0x0x7f05e9fd6478) + std::exception (0x0x7f05e9fcb7e0) 0 nearly-empty + primary-for std::logic_error (0x0x7f05e9fd64e0) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f05e9fd6548) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f05e9fcb840) 0 nearly-empty + primary-for std::runtime_error (0x0x7f05e9fd6548) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f05e9fd65b0) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f05e9fd6618) 0 + primary-for std::range_error (0x0x7f05e9fd65b0) + std::exception (0x0x7f05e9fcb8a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f05e9fd6618) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f05e9fd6680) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f05e9fd66e8) 0 + primary-for std::overflow_error (0x0x7f05e9fd6680) + std::exception (0x0x7f05e9fcb900) 0 nearly-empty + primary-for std::runtime_error (0x0x7f05e9fd66e8) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f05e9fd6750) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f05e9fd67b8) 0 + primary-for std::underflow_error (0x0x7f05e9fd6750) + std::exception (0x0x7f05e9fcb960) 0 nearly-empty + primary-for std::runtime_error (0x0x7f05e9fd67b8) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f05e9fcbae0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f05e9fcbe40) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f05ea0276c0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f05e9fd6bc8) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f05e9fd6c30) 0 + primary-for std::system_error (0x0x7f05e9fd6bc8) + std::exception (0x0x7f05ea0512a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f05e9fd6c30) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f05e9fd6ea0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f05e9fd6f08) 0 + primary-for std::ios_base::failure (0x0x7f05e9fd6ea0) + std::runtime_error (0x0x7f05e9fd6f70) 0 + primary-for std::system_error (0x0x7f05e9fd6f08) + std::exception (0x0x7f05ea084840) 0 nearly-empty + primary-for std::runtime_error (0x0x7f05e9fd6f70) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f05ea0848a0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f05ea084900) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f05ea084960) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f05ea0847e0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f05ea1782a0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f05e9e41480) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f05e99db680 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f05e99db750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f05e9a1a410 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f05e9a1a4e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f05e9a1bde0) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f05e9a1be40) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f05e9b85240) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f05e98140c0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f05e9814540) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f05e98e5300) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f05e9968d20) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f05e9968cc0) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f05e9737ea0) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f05e94d6720) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f05e92eba20) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f05e92ebae0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f05e8fbe000) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f05e9577820) 0 + std::iterator (0x0x7f05e8fbe720) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f05e9577958) 0 + std::_Bit_iterator_base (0x0x7f05e95779c0) 0 + std::iterator (0x0x7f05e8fbed80) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f05e9577a28) 0 + std::_Bit_iterator_base (0x0x7f05e9577a90) 0 + std::iterator (0x0x7f05e8ff45a0) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f05e8dabc00) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f05e8eac9c0) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f05e8eaca20) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f05e911a4e0) 0 empty + QListData::NotIndirectLayout (0x0x7f05e8eaca80) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f05e8e9e150) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f05e8eacae0) 0 empty + QListData::NotIndirectLayout (0x0x7f05e8eacb40) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f05e911a548) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f05e8eacba0) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f05e8eacc00) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f05e8eac960) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f05e8b9ade0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f05e8c92480) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f05e8c92420) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f05e8c96270) 0 + QList (0x0x7f05e8c962d8) 0 + QListSpecialMethods (0x0x7f05e8c926c0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f05e8d5d240) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f05e89e4360) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f05e89e46c0) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f05e87c5c60) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f05e87c5cc0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f05e87c5e40) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f05e87c5f00) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f05e8b5e618) 0 + std::__uses_alloc_base (0x0x7f05e87c5ea0) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f05e89532a0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f05e8569720) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f05e8569a80) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f05e8591000) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f05e8591540) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f05e85f4720) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f05e85f4de0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f05e8628c60) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f05e8708360) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f05e83618a0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f05e81a16c0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f05e7ed3180) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f05e7ed31e0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f05e7ed33c0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f05e7ed3360) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f05e7f991e0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f05e7f99360) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f05e7f99c00) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f05e7f71820) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f05e7f99ba0) 0 + primary-for QAbstractAnimation (0x0x7f05e7f71820) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f05e7fd7000) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f05e7f71888) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f05e7f99f60) 0 + primary-for QAnimationDriver (0x0x7f05e7f71888) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f05e7fd7240) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f05e7f718f0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f05e7fd71e0) 0 + primary-for QEventLoop (0x0x7f05e7f718f0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f05e7fd7ae0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f05e7fd7ba0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f05e7fd7c00) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f05e7f71a28) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f05e7fd7b40) 0 + primary-for QAbstractEventDispatcher (0x0x7f05e7f71a28) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f05e7ca43a8) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f05e7cb32a0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f05e7ca43a8) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f05e7cb3360) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f05e7cb33c0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f05e7cb36c0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f05e7aac660) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f05e7ae4300) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f05e7badc60) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f05e7badc00) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f05e7badf00) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f05e78d94e0) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f05e78d95a0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f05e78d9540) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f05e78d9600) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f05e78d9480) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f05e7a328a0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f05e7a75f00) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f05e7a75ea0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f05e76a0060) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f05e76a0000) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f05e775f1e0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f05e77b4de0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f05e7880c00) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f05e787df70) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f05e7880ba0) 0 + primary-for QAbstractItemModel (0x0x7f05e787df70) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f05e7562000) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f05e74c65b0) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f05e74c6618) 0 + primary-for QAbstractTableModel (0x0x7f05e74c65b0) + QObject (0x0x7f05e74d9f60) 0 + primary-for QAbstractItemModel (0x0x7f05e74c6618) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f05e7562180) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f05e74c6680) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f05e74c66e8) 0 + primary-for QAbstractListModel (0x0x7f05e74c6680) + QObject (0x0x7f05e7562120) 0 + primary-for QAbstractItemModel (0x0x7f05e74c66e8) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f05e75628a0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f05e7562960) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f05e74c67b8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f05e74c6820) 0 + primary-for QAbstractProxyModel (0x0x7f05e74c67b8) + QObject (0x0x7f05e7562900) 0 + primary-for QAbstractItemModel (0x0x7f05e74c6820) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f05e7562ba0) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f05e74c6888) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7f05e7562b40) 0 + primary-for QAbstractState (0x0x7f05e74c6888) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f05e7562de0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f05e74c68f0) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7f05e7562d80) 0 + primary-for QAbstractTransition (0x0x7f05e74c68f0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f05e75fa120) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f05e74c6958) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f05e74c69c0) 0 + primary-for QAnimationGroup (0x0x7f05e74c6958) + QObject (0x0x7f05e75fa0c0) 0 + primary-for QAbstractAnimation (0x0x7f05e74c69c0) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f05e764a480) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f05e728c840) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f05e72dccc0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f05e734d0c0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f05e7336f08) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f05e734d060) 0 + primary-for QIODevice (0x0x7f05e7336f08) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f05e734da20) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f05e736d068) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f05e736d0d0) 0 + primary-for QBuffer (0x0x7f05e736d068) + QObject (0x0x7f05e734d9c0) 0 + primary-for QIODevice (0x0x7f05e736d0d0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f05e734dcc0) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f05e734dc60) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f05e734de40) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f05e734dde0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f05e73b5d20) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f05e7411cc0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f05e747b5a0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f05e70e7240) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f05e70e72a0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f05e70e71e0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f05e71ba960) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f05e6ea4f00) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f05e6f087e0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f05e6faf300) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f05e6fd5f60) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f05e7005120) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f05e6c8dd20) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f05e6c8dcc0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f05e6e36d80) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f05e6e36e40) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f05e6ae4180) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f05e6ae4900) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f05e6b8c7e0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f05e6bfc5a0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f05e6c6e000) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f05e6994f60) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7f05e6a29ae0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f05e6a29ba0) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f05e649aba0) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f05e652f600) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f05e652f660) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f05e652f5a0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f05e6645060) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f05e66450c0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f05e6645000) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f05e643b7e0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f05e60f7780) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f05e612a4e0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f05e61af600) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f05e61af7e0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f05e5ea3d80) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f05e5f2f4e0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f05e5f12270) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f05e5f2f8a0) 0 + primary-for QTimerEvent (0x0x7f05e5f12270) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f05e5f122d8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f05e5f2f960) 0 + primary-for QChildEvent (0x0x7f05e5f122d8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f05e5f12820) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f05e5f6d000) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f05e5f12820) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f05e5f12888) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f05e5f6d0c0) 0 + primary-for QDeferredDeleteEvent (0x0x7f05e5f12888) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f05e5f6d1e0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f05e5f128f0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f05e5f6d180) 0 + primary-for QCoreApplication (0x0x7f05e5f128f0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f05e5f6d420) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f05e5f6d5a0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f05e5f12958) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f05e5f129c0) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f05e5f12958) + QObject (0x0x7f05e5f6d540) 0 + primary-for QAbstractItemModel (0x0x7f05e5f129c0) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f05e5f6d780) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f05e5f6d8a0) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f05e5f6da20) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f05e602c180) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f05e602c8a0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f05e5d71600) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f05e5d61bc8) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f05e5d61c30) 0 + primary-for QFileDevice (0x0x7f05e5d61bc8) + QObject (0x0x7f05e5d715a0) 0 + primary-for QIODevice (0x0x7f05e5d61c30) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f05e5d71f00) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f05e5d61d68) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f05e5d61dd0) 0 + primary-for QFile (0x0x7f05e5d61d68) + QIODevice (0x0x7f05e5d61e38) 0 + primary-for QFileDevice (0x0x7f05e5d61dd0) + QObject (0x0x7f05e5d71ea0) 0 + primary-for QIODevice (0x0x7f05e5d61e38) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f05e5dd55a0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f05e5e40960) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f05e5aabcc0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f05e5afa480) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f05e5c045a0) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f05e5c0d0d0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7f05e5c0d138) 0 + primary-for QEventTransition (0x0x7f05e5c0d0d0) + QObject (0x0x7f05e5c04540) 0 + primary-for QAbstractTransition (0x0x7f05e5c0d138) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f05e5c0d1a0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f05e5c04780) 0 nearly-empty + primary-for QException (0x0x7f05e5c0d1a0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f05e5c0d208) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f05e5c0d270) 0 nearly-empty + primary-for QUnhandledException (0x0x7f05e5c0d208) + std::exception (0x0x7f05e5c047e0) 0 nearly-empty + primary-for QException (0x0x7f05e5c0d270) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f05e5c04840) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f05e5c04900) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f05e5c04960) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f05e5c04ba0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f05e5c0d2d8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f05e5c04b40) 0 + primary-for QFileSelector (0x0x7f05e5c0d2d8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f05e5c04de0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f05e5c0d340) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f05e5c04d80) 0 + primary-for QFileSystemWatcher (0x0x7f05e5c0d340) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f05e585c060) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f05e5c0d3a8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7f05e5c0d410) 0 + primary-for QFinalState (0x0x7f05e5c0d3a8) + QObject (0x0x7f05e585c000) 0 + primary-for QAbstractState (0x0x7f05e5c0d410) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f05e585c240) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f05e585c4e0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f05e5c0d4e0) 0 + QBasicMutex (0x0x7f05e58e1180) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f05e58e13c0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f05e58e1840) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f05e58e1e40) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f05e5935060) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f05e5982840) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f05e5a1eb40) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f05e59b0af8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f05e5a1eae0) 0 + primary-for QFutureWatcherBase (0x0x7f05e59b0af8) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f05e5a47ea0) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f05e5662340) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7f05e56623a8) 0 + primary-for QHistoryState (0x0x7f05e5662340) + QObject (0x0x7f05e5a47e40) 0 + primary-for QAbstractState (0x0x7f05e56623a8) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f05e567b1e0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f05e5662410) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f05e5662478) 0 + primary-for QIdentityProxyModel (0x0x7f05e5662410) + QAbstractItemModel (0x0x7f05e56624e0) 0 + primary-for QAbstractProxyModel (0x0x7f05e5662478) + QObject (0x0x7f05e567b180) 0 + primary-for QAbstractItemModel (0x0x7f05e56624e0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f05e567b3c0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f05e5733cc0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f05e5731e38) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f05e5733c60) 0 + primary-for QItemSelectionModel (0x0x7f05e5731e38) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f05e57b3000) 0 + QList (0x0x7f05e57b3068) 0 + QListSpecialMethods (0x0x7f05e576d7e0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f05e5801120) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f05e555c300) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f05e55a52a0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f05e55a5540) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f05e55e68a0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f05e55e6900) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f05e55e6840) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f05e53127e0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f05e5312840) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f05e5383060) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f05e53830c0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f05e5383000) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f05e5095420) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f05e50980d0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f05e50953c0) 0 + primary-for QLibrary (0x0x7f05e50980d0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f05e50e12a0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f05e5095d80) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f05e51769c0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f05e5176a20) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f05e51e5840) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f05e4e569c0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f05e4ec7d80) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f05e4f74060) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f05e50051e0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f05e5005420) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f05e50053c0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f05e5005840) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f05e4cbf780) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f05e4b06f60) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f05e4b2e000) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f05e4b8f840) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f05e4bcea80) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f05e4bceba0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f05e4c2c180) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f05e4c18d00) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f05e4c2c120) 0 + primary-for QMimeData (0x0x7f05e4c18d00) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f05e4c2c360) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f05e488f480) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f05e488f540) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f05e4896068) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f05e488f4e0) 0 + primary-for QObjectCleanupHandler (0x0x7f05e4896068) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f05e488f660) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f05e48fade0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f05e490b8f0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f05e490b958) 0 + primary-for QParallelAnimationGroup (0x0x7f05e490b8f0) + QAbstractAnimation (0x0x7f05e490b9c0) 0 + primary-for QAnimationGroup (0x0x7f05e490b958) + QObject (0x0x7f05e48fad80) 0 + primary-for QAbstractAnimation (0x0x7f05e490b9c0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f05e4922060) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f05e490ba28) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f05e490ba90) 0 + primary-for QPauseAnimation (0x0x7f05e490ba28) + QObject (0x0x7f05e4922000) 0 + primary-for QAbstractAnimation (0x0x7f05e490ba90) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f05e4922c60) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f05e4972de0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f05e4977dd0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f05e4972d80) 0 + primary-for QPluginLoader (0x0x7f05e4977dd0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f05e4972f00) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f05e49e95a0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f05e49e3a28) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f05e49e3a90) 0 + primary-for QProcess (0x0x7f05e49e3a28) + QObject (0x0x7f05e49e9540) 0 + primary-for QIODevice (0x0x7f05e49e3a90) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f05e49e9c60) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f05e49e3af8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f05e49e3b60) 0 + primary-for QVariantAnimation (0x0x7f05e49e3af8) + QObject (0x0x7f05e49e9c00) 0 + primary-for QAbstractAnimation (0x0x7f05e49e3b60) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f05e49e9f00) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f05e49e3c30) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f05e49e3c98) 0 + primary-for QPropertyAnimation (0x0x7f05e49e3c30) + QAbstractAnimation (0x0x7f05e49e3d00) 0 + primary-for QVariantAnimation (0x0x7f05e49e3c98) + QObject (0x0x7f05e49e9ea0) 0 + primary-for QAbstractAnimation (0x0x7f05e49e3d00) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f05e46b1660) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f05e47bd3c0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f05e47bd360) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f05e45a8120) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f05e43b1d80) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f05e43b1d20) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f05e44419c0) 0 + QRandomGenerator (0x0x7f05e3fdb8a0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f05e4000480) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f05e4000720) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f05e4000c00) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f05e4088120) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f05e40cef00) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f05e4148ea0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f05e3deff00) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f05e3ef8060) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f05e3ef8300) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f05e3e8e3a8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f05e3e8e410) 0 + primary-for QSaveFile (0x0x7f05e3e8e3a8) + QIODevice (0x0x7f05e3e8e478) 0 + primary-for QFileDevice (0x0x7f05e3e8e410) + QObject (0x0x7f05e3ef82a0) 0 + primary-for QIODevice (0x0x7f05e3e8e478) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f05e3ef8900) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f05e3ef8a80) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f05e3c21d20) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f05e3c2f1a0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f05e3c2f208) 0 + primary-for QSequentialAnimationGroup (0x0x7f05e3c2f1a0) + QAbstractAnimation (0x0x7f05e3c2f270) 0 + primary-for QAnimationGroup (0x0x7f05e3c2f208) + QObject (0x0x7f05e3c21cc0) 0 + primary-for QAbstractAnimation (0x0x7f05e3c2f270) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f05e3c21f60) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f05e3c2f2d8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f05e3c21f00) 0 + primary-for QSettings (0x0x7f05e3c2f2d8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f05e3c61420) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f05e3c2f340) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f05e3c613c0) 0 + primary-for QSharedMemory (0x0x7f05e3c2f340) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f05e3c61660) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f05e3c2f3a8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f05e3c61600) 0 + primary-for QSignalMapper (0x0x7f05e3c2f3a8) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f05e3c618a0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f05e3c2f410) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7f05e3c2f478) 0 + primary-for QSignalTransition (0x0x7f05e3c2f410) + QObject (0x0x7f05e3c61840) 0 + primary-for QAbstractTransition (0x0x7f05e3c2f478) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f05e3c61b40) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f05e3c2f4e0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f05e3c61ae0) 0 + primary-for QSocketNotifier (0x0x7f05e3c2f4e0) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f05e3c61d80) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f05e3c2f548) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f05e3c2f5b0) 0 + primary-for QSortFilterProxyModel (0x0x7f05e3c2f548) + QAbstractItemModel (0x0x7f05e3c2f618) 0 + primary-for QAbstractProxyModel (0x0x7f05e3c2f5b0) + QObject (0x0x7f05e3c61d20) 0 + primary-for QAbstractItemModel (0x0x7f05e3c2f618) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f05e3cd01e0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f05e3cd0ae0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f05e3c2f7b8) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7f05e3c2f820) 0 + primary-for QState (0x0x7f05e3c2f7b8) + QObject (0x0x7f05e3cd0a80) 0 + primary-for QAbstractState (0x0x7f05e3c2f820) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f05e3cd0f60) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f05e3c2f9c0) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7f05e3d20000) 0 + primary-for QStateMachine::SignalEvent (0x0x7f05e3c2f9c0) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f05e3c2fa28) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7f05e3d20060) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f05e3c2fa28) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f05e3c2f888) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7f05e3c2f8f0) 0 + primary-for QStateMachine (0x0x7f05e3c2f888) + QAbstractState (0x0x7f05e3c2f958) 0 + primary-for QState (0x0x7f05e3c2f8f0) + QObject (0x0x7f05e3cd0f00) 0 + primary-for QAbstractState (0x0x7f05e3c2f958) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f05e3d20420) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f05e3dc0420) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f05e3a4b780) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f05e3a31b60) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f05e3a31bc8) 0 + primary-for QStringListModel (0x0x7f05e3a31b60) + QAbstractItemModel (0x0x7f05e3a31c30) 0 + primary-for QAbstractListModel (0x0x7f05e3a31bc8) + QObject (0x0x7f05e3a4b720) 0 + primary-for QAbstractItemModel (0x0x7f05e3a31c30) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f05e3a4b8a0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f05e3a4b960) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f05e3a4ba80) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f05e3a31c98) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f05e3a31d00) 0 + primary-for QTemporaryFile (0x0x7f05e3a31c98) + QFileDevice (0x0x7f05e3a31d68) 0 + primary-for QFile (0x0x7f05e3a31d00) + QIODevice (0x0x7f05e3a31dd0) 0 + primary-for QFileDevice (0x0x7f05e3a31d68) + QObject (0x0x7f05e3a4ba20) 0 + primary-for QIODevice (0x0x7f05e3a31dd0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f05e3a4bde0) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f05e3ab1660) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f05e3ab1600) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f05e3b17060) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f05e3b17240) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f05e3b17420) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f05e3b30000) 0 + std::__mutex_base (0x0x7f05e3b17480) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f05e3b17660) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f05e3b176c0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f05e3b17720) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f05e3b5b180) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f05e3b30068) 0 + std::__recursive_mutex_base (0x0x7f05e3b5b1e0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f05e3b0bf50) 0 + std::__mutex_base (0x0x7f05e3b5b5a0) 0 + std::__timed_mutex_impl (0x0x7f05e3b5b600) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f05e3b7b2a0) 0 + std::__recursive_mutex_base (0x0x7f05e3b5b960) 0 + std::__timed_mutex_impl (0x0x7f05e3b5b9c0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f05e3ba1120) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f05e3b301a0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f05e3ba1660) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f05e3b301a0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f05e3b30208) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f05e3ba1780) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f05e3b30208) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f05e3b30270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f05e3ba18a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f05e3b30270) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f05e3b30340) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f05e3ba19c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f05e3b30340) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f05e37d1a20) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f05e37d1d20) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f05e37ef060) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f05e37ef3c0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f05e3b303a8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f05e386c5a0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f05e3b303a8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f05e38d5540) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f05e38d5960) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f05e36217e0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f05e364dc60) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f05e364dcc0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f05e364dc00) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f05e35100c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f05e3510480) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f05e35104e0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f05e32937e0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f05e328cc30) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f05e328cc98) 0 + primary-for std::future_error (0x0x7f05e328cc30) + std::exception (0x0x7f05e3293f00) 0 nearly-empty + primary-for std::logic_error (0x0x7f05e328cc98) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f05e32c5660) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f05e32c5600) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f05e3088d80) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f05e30b44e0) 0 + std::__at_thread_exit_elt (0x0x7f05e3088e40) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f05e32c57e0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f05e32c55a0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f05e286c208) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f05e2841e40) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f05e286c208) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f05e287c720) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f05e286c548) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f05e287c6c0) 0 + primary-for QThread (0x0x7f05e286c548) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f05e287cae0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f05e286c5b0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f05e287ca80) 0 + primary-for QThreadPool (0x0x7f05e286c5b0) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f05e287ccc0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f05e28c03c0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f05e286c618) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f05e28c0360) 0 + primary-for QTimeLine (0x0x7f05e286c618) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f05e28c0600) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f05e286c680) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f05e28c05a0) 0 + primary-for QTimer (0x0x7f05e286c680) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f05e2903f60) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f05e2903f00) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f05e25cb060) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f05e29b2d68) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f05e25cb000) 0 + primary-for QTranslator (0x0x7f05e29b2d68) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f05e25cb2a0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f05e29b2dd0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f05e29b2e38) 0 + primary-for QTransposeProxyModel (0x0x7f05e29b2dd0) + QAbstractItemModel (0x0x7f05e29b2ea0) 0 + primary-for QAbstractProxyModel (0x0x7f05e29b2e38) + QObject (0x0x7f05e25cb240) 0 + primary-for QAbstractItemModel (0x0x7f05e29b2ea0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f05e25cb480) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f05e2651e40) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f05e2651f60) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f05e26fb360) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f05e2766548) 0 + QVector (0x0x7f05e2760a80) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f05e2760d80) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f05e22ddd20) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f05e233ad20) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f05e23a4de0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f05e23a4e40) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f05e23e2d20) 0 + +Class QtConcurrent::MedianDouble + size=72 align=8 + base size=70 base align=8 +QtConcurrent::MedianDouble (0x0x7f05e243a2a0) 0 + +Class QtConcurrent::ThreadEngineBarrier + size=16 align=8 + base size=16 base align=8 +QtConcurrent::ThreadEngineBarrier (0x0x7f05e243ac60) 0 + +Vtable for QtConcurrent::ThreadEngineBase +QtConcurrent::ThreadEngineBase::_ZTVN12QtConcurrent16ThreadEngineBaseE: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN12QtConcurrent16ThreadEngineBaseE) +16 (int (*)(...))QtConcurrent::ThreadEngineBase::run +24 0 +32 0 +40 (int (*)(...))QtConcurrent::ThreadEngineBase::start +48 (int (*)(...))QtConcurrent::ThreadEngineBase::finish +56 (int (*)(...))QtConcurrent::ThreadEngineBase::threadFunction +64 (int (*)(...))QtConcurrent::ThreadEngineBase::shouldStartThread +72 (int (*)(...))QtConcurrent::ThreadEngineBase::shouldThrottleThread +80 (int (*)(...))__cxa_pure_virtual + +Class QtConcurrent::ThreadEngineBase + size=56 align=8 + base size=56 base align=8 +QtConcurrent::ThreadEngineBase (0x0x7f05e24166e8) 0 + vptr=((& QtConcurrent::ThreadEngineBase::_ZTVN12QtConcurrent16ThreadEngineBaseE) + 16) + QRunnable (0x0x7f05e243acc0) 0 + primary-for QtConcurrent::ThreadEngineBase (0x0x7f05e24166e8) + +VTT for QtConcurrent::ThreadEngine +QtConcurrent::ThreadEngine::_ZTTN12QtConcurrent12ThreadEngineIvEE: 2 entries +0 ((& QtConcurrent::ThreadEngine::_ZTVN12QtConcurrent12ThreadEngineIvEE) + 24) +8 ((& QtConcurrent::ThreadEngine::_ZTVN12QtConcurrent12ThreadEngineIvEE) + 136) + +Class QtConcurrent::BlockSizeManager + size=96 align=8 + base size=92 base align=8 +QtConcurrent::BlockSizeManager (0x0x7f05e24689c0) 0 + +Class QtConcurrent::BlockSizeManagerV2 + size=176 align=8 + base size=172 base align=8 +QtConcurrent::BlockSizeManagerV2 (0x0x7f05e2468ba0) 0 + +Class QtPrivate::PushBackWrapper + size=1 align=1 + base size=0 base align=1 +QtPrivate::PushBackWrapper (0x0x7f05e215e540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e2061de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e2082180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e2082360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e20826c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e20828a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e2082c00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e2082de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e20bd180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e20bd360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e20bd6c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e20bd8a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e20bdc00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e20bdde0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1cf5180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1cf5360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1cf56c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d2aba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d2af00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d520c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d52420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d525a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d52900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d52a80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d52de0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d52f60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d87300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d87480) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d877e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d87960) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1d87cc0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f05e1d87e40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f05e1db51e0) 0 empty + diff --git a/tests/auto/bic/data/QtCore.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtCore.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..037e280978 --- /dev/null +++ b/tests/auto/bic/data/QtCore.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,4977 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fcb24284c60) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fcb22f51420) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fcb22f51660) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7fcb22f518a0) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7fcb22f51ae0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7fcb22f51c60) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7fcb22f8f060) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7fcb22fbe180) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fcb23013840) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fcb23013900) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7fcb23013cc0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7fcb23013d20) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7fcb23013d80) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7fcb23013de0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7fcb23013e40) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fcb23013f00) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fcb23044000) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fcb230440c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fcb23044180) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fcb230444e0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7fcb23044840) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7fcb230448a0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7fcb23044e40) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fcb22c934e0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7fcb23077410) 0 empty + std::__nonesuch (0x0x7fcb22c939c0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fcb22d0e360) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fcb22d0e3c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fcb22d6f0c0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fcb22d6f120) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fcb230778f0) 0 empty + std::input_iterator_tag (0x0x7fcb22d6f180) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fcb23077958) 0 empty + std::forward_iterator_tag (0x0x7fcb230779c0) 0 empty + std::input_iterator_tag (0x0x7fcb22d6f1e0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fcb23077a28) 0 empty + std::bidirectional_iterator_tag (0x0x7fcb23077a90) 0 empty + std::forward_iterator_tag (0x0x7fcb23077af8) 0 empty + std::input_iterator_tag (0x0x7fcb22d6f240) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fcb22dfcd20) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fcb22dfce40) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fcb22e21180) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fcb22e21480) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fcb22e215a0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fcb22aac8a0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fcb22aacba0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fcb22aacc00) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7fcb22aaccc0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fcb22aacd20) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7fcb22aacd80) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7fcb22aacde0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fcb22af00c0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fcb22af0360) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fcb22af03c0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fcb22ba8180) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fcb23077e38) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7fcb22ba8360) 0 nearly-empty + primary-for std::bad_exception (0x0x7fcb23077e38) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fcb22ba8540) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fcb23077ea0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7fcb22ba8900) 0 nearly-empty + primary-for std::bad_cast (0x0x7fcb23077ea0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fcb23077f08) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7fcb22ba8ae0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fcb23077f08) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fcb22ba8cc0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fcb22bde2a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fcb23077f70) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7fcb22bde960) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fcb23077f70) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fcb22c03000) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7fcb22c03068) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fcb22c03000) + std::exception (0x0x7fcb22bdeb40) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fcb22c03068) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fcb22bded20) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7fcb22bdef00) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fcb22c88420) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7fcb22a3bea0) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7fcb22a3bf60) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fcb22500900) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fcb22500a20) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fcb22500d80) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fcb2253f300) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fcb22578a80) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fcb2260fea0) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fcb225b7ea0) 0 + std::__atomic_flag_base (0x0x7fcb2260ff00) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fcb2234c618) 0 + QAtomicInteger (0x0x7fcb2234c680) 0 + QBasicAtomicInteger (0x0x7fcb2214eea0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fcb21d7d1e0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fcb21dbe780) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fcb21dbeea0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fcb21df2208) 0 + QGenericArgument (0x0x7fcb21e00180) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7fcb21e005a0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fcb21e009c0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fcb21ab34e0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fcb21ab3780) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fcb21b7e5a0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7fcb21b7e900) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fcb21bd9c00) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fcb218d9480) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fcb218d9540) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fcb21984660) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fcb21984720) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fcb21984780) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fcb219847e0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fcb21984840) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fcb21984960) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fcb219849c0) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7fcb216c5960) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fcb216c59c0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fcb2187ea20) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fcb2187eba0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fcb215f0d20) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fcb21641120) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fcb216413c0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fcb216415a0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fcb2168b5a0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fcb212981a0) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7fcb2168b660) 0 nearly-empty + primary-for std::logic_error (0x0x7fcb212981a0) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fcb21298208) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7fcb21298270) 0 + primary-for std::domain_error (0x0x7fcb21298208) + std::exception (0x0x7fcb2168b6c0) 0 nearly-empty + primary-for std::logic_error (0x0x7fcb21298270) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fcb212982d8) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7fcb21298340) 0 + primary-for std::invalid_argument (0x0x7fcb212982d8) + std::exception (0x0x7fcb2168b720) 0 nearly-empty + primary-for std::logic_error (0x0x7fcb21298340) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fcb212983a8) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7fcb21298410) 0 + primary-for std::length_error (0x0x7fcb212983a8) + std::exception (0x0x7fcb2168b780) 0 nearly-empty + primary-for std::logic_error (0x0x7fcb21298410) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fcb21298478) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7fcb212984e0) 0 + primary-for std::out_of_range (0x0x7fcb21298478) + std::exception (0x0x7fcb2168b7e0) 0 nearly-empty + primary-for std::logic_error (0x0x7fcb212984e0) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fcb21298548) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7fcb2168b840) 0 nearly-empty + primary-for std::runtime_error (0x0x7fcb21298548) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fcb212985b0) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7fcb21298618) 0 + primary-for std::range_error (0x0x7fcb212985b0) + std::exception (0x0x7fcb2168b8a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fcb21298618) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fcb21298680) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7fcb212986e8) 0 + primary-for std::overflow_error (0x0x7fcb21298680) + std::exception (0x0x7fcb2168b900) 0 nearly-empty + primary-for std::runtime_error (0x0x7fcb212986e8) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fcb21298750) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7fcb212987b8) 0 + primary-for std::underflow_error (0x0x7fcb21298750) + std::exception (0x0x7fcb2168b960) 0 nearly-empty + primary-for std::runtime_error (0x0x7fcb212987b8) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fcb2168bae0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fcb2168be40) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fcb212ea6c0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fcb21298bc8) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7fcb21298c30) 0 + primary-for std::system_error (0x0x7fcb21298bc8) + std::exception (0x0x7fcb213142a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fcb21298c30) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fcb21298ea0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7fcb21298f08) 0 + primary-for std::ios_base::failure (0x0x7fcb21298ea0) + std::runtime_error (0x0x7fcb21298f70) 0 + primary-for std::system_error (0x0x7fcb21298f08) + std::exception (0x0x7fcb21345840) 0 nearly-empty + primary-for std::runtime_error (0x0x7fcb21298f70) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fcb213458a0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fcb21345900) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fcb21345960) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fcb213457e0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fcb214362a0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fcb21100480) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fcb20c9e680 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fcb20c9e750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7fcb20cda410 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fcb20cda4e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7fcb20cdcde0) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7fcb20cdce40) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7fcb20e48240) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7fcb20ac40c0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7fcb20ac4540) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fcb20b9b300) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7fcb20c1ad20) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7fcb20c1acc0) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7fcb209f7ea0) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7fcb20797720) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fcb205ada20) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fcb205adae0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fcb20281000) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fcb20839820) 0 + std::iterator (0x0x7fcb20281720) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fcb20839958) 0 + std::_Bit_iterator_base (0x0x7fcb208399c0) 0 + std::iterator (0x0x7fcb20281d80) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fcb20839a28) 0 + std::_Bit_iterator_base (0x0x7fcb20839a90) 0 + std::iterator (0x0x7fcb202b55a0) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fcb2006cc00) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7fcb2016e9c0) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7fcb2016ea20) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7fcb203db4e0) 0 empty + QListData::NotIndirectLayout (0x0x7fcb2016ea80) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7fcb201620e0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fcb2016eae0) 0 empty + QListData::NotIndirectLayout (0x0x7fcb2016eb40) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7fcb203db548) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fcb2016eba0) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7fcb2016ec00) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7fcb2016e960) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7fcb2025ade0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7fcb1ff56480) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7fcb1ff56420) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7fcb1ff59270) 0 + QList (0x0x7fcb1ff592d8) 0 + QListSpecialMethods (0x0x7fcb1ff566c0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fcb20021240) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fcb1fca5360) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7fcb1fca56c0) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7fcb1fa87c60) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fcb1fa87cc0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fcb1fa87e40) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fcb1fa87f00) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fcb1fe1f618) 0 + std::__uses_alloc_base (0x0x7fcb1fa87ea0) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fcb1fc162a0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7fcb1f82b720) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7fcb1f82ba80) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7fcb1f851000) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7fcb1f851540) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7fcb1f8b5720) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7fcb1f8b5de0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7fcb1f8e9c60) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7fcb1f9c9360) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fcb1f6228a0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fcb1f4666c0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fcb1f194180) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7fcb1f1941e0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fcb1f1943c0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fcb1f194360) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7fcb1f2591e0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fcb1f259360) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fcb1f259c00) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fcb1f234820) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7fcb1f259ba0) 0 + primary-for QAbstractAnimation (0x0x7fcb1f234820) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fcb1f298000) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fcb1f234888) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7fcb1f259f60) 0 + primary-for QAnimationDriver (0x0x7fcb1f234888) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fcb1f298240) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fcb1f2348f0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7fcb1f2981e0) 0 + primary-for QEventLoop (0x0x7fcb1f2348f0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fcb1f298ae0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fcb1f298ba0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fcb1f298c00) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fcb1f234a28) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7fcb1f298b40) 0 + primary-for QAbstractEventDispatcher (0x0x7fcb1f234a28) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fcb1ef673a8) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7fcb1ef772a0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fcb1ef673a8) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fcb1ef77360) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fcb1ef773c0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fcb1ef776c0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7fcb1ed6d660) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7fcb1eda6300) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7fcb1ee6fc60) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7fcb1ee6fc00) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fcb1ee6ff00) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7fcb1eb9d4e0) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7fcb1eb9d5a0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7fcb1eb9d540) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7fcb1eb9d600) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7fcb1eb9d480) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7fcb1ecf68a0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7fcb1ed38f00) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7fcb1ed38ea0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7fcb1e95f060) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7fcb1e95f000) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fcb1ea1e1e0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fcb1ea75de0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fcb1eb42c00) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fcb1eb3df70) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7fcb1eb42ba0) 0 + primary-for QAbstractItemModel (0x0x7fcb1eb3df70) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fcb1e822000) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fcb1e7855b0) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7fcb1e785618) 0 + primary-for QAbstractTableModel (0x0x7fcb1e7855b0) + QObject (0x0x7fcb1e79af60) 0 + primary-for QAbstractItemModel (0x0x7fcb1e785618) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fcb1e822180) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fcb1e785680) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7fcb1e7856e8) 0 + primary-for QAbstractListModel (0x0x7fcb1e785680) + QObject (0x0x7fcb1e822120) 0 + primary-for QAbstractItemModel (0x0x7fcb1e7856e8) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fcb1e8228a0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fcb1e822960) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fcb1e7857b8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7fcb1e785820) 0 + primary-for QAbstractProxyModel (0x0x7fcb1e7857b8) + QObject (0x0x7fcb1e822900) 0 + primary-for QAbstractItemModel (0x0x7fcb1e785820) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7fcb1e822ba0) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7fcb1e785888) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7fcb1e822b40) 0 + primary-for QAbstractState (0x0x7fcb1e785888) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7fcb1e822de0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7fcb1e7858f0) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7fcb1e822d80) 0 + primary-for QAbstractTransition (0x0x7fcb1e7858f0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fcb1e8bb120) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fcb1e785958) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7fcb1e7859c0) 0 + primary-for QAnimationGroup (0x0x7fcb1e785958) + QObject (0x0x7fcb1e8bb0c0) 0 + primary-for QAbstractAnimation (0x0x7fcb1e7859c0) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fcb1e90b480) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7fcb1e94d840) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7fcb1e59dcc0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fcb1e60f0c0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fcb1e5faf08) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7fcb1e60f060) 0 + primary-for QIODevice (0x0x7fcb1e5faf08) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fcb1e60fa20) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fcb1e630068) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7fcb1e6300d0) 0 + primary-for QBuffer (0x0x7fcb1e630068) + QObject (0x0x7fcb1e60f9c0) 0 + primary-for QIODevice (0x0x7fcb1e6300d0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fcb1e60fcc0) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7fcb1e60fc60) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7fcb1e60fe40) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7fcb1e60fde0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fcb1e677d20) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fcb1e6d2cc0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fcb1e73d5a0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fcb1e3a9240) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fcb1e3a92a0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fcb1e3a91e0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fcb1e47b960) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fcb1e164f00) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fcb1e1ca7e0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7fcb1e270300) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fcb1e297f60) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fcb1e2c7120) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7fcb1e34cd20) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fcb1e34ccc0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fcb1e0f7d80) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fcb1e0f7e40) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7fcb1dda3180) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fcb1dda3900) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fcb1de4c7e0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fcb1debc5a0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fcb1df30000) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fcb1dc57f60) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7fcb1dce9ae0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7fcb1dce9ba0) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7fcb1d75bba0) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7fcb1d7f1600) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7fcb1d7f1660) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7fcb1d7f15a0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7fcb1d906060) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7fcb1d9060c0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7fcb1d906000) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7fcb1d6fd7e0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7fcb1d3b7780) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7fcb1d3ea4e0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fcb1d470600) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fcb1d4707e0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fcb1d167d80) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7fcb1d1ee4e0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7fcb1d1d2270) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7fcb1d1ee8a0) 0 + primary-for QTimerEvent (0x0x7fcb1d1d2270) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7fcb1d1d22d8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7fcb1d1ee960) 0 + primary-for QChildEvent (0x0x7fcb1d1d22d8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7fcb1d1d2820) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7fcb1d22e000) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fcb1d1d2820) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7fcb1d1d2888) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7fcb1d22e0c0) 0 + primary-for QDeferredDeleteEvent (0x0x7fcb1d1d2888) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fcb1d22e1e0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fcb1d1d28f0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7fcb1d22e180) 0 + primary-for QCoreApplication (0x0x7fcb1d1d28f0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fcb1d22e420) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7fcb1d22e5a0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7fcb1d1d2958) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7fcb1d1d29c0) 0 + primary-for QConcatenateTablesProxyModel (0x0x7fcb1d1d2958) + QObject (0x0x7fcb1d22e540) 0 + primary-for QAbstractItemModel (0x0x7fcb1d1d29c0) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fcb1d22e780) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fcb1d22e8a0) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fcb1d22ea20) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fcb1d2eb180) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fcb1d2eb8a0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fcb1d033600) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fcb1d023bc8) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7fcb1d023c30) 0 + primary-for QFileDevice (0x0x7fcb1d023bc8) + QObject (0x0x7fcb1d0335a0) 0 + primary-for QIODevice (0x0x7fcb1d023c30) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fcb1d033f00) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fcb1d023d68) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7fcb1d023dd0) 0 + primary-for QFile (0x0x7fcb1d023d68) + QIODevice (0x0x7fcb1d023e38) 0 + primary-for QFileDevice (0x0x7fcb1d023dd0) + QObject (0x0x7fcb1d033ea0) 0 + primary-for QIODevice (0x0x7fcb1d023e38) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fcb1d0955a0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fcb1d102960) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fcb1cd6ccc0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fcb1cdbc480) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7fcb1cec45a0) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7fcb1cecc0d0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7fcb1cecc138) 0 + primary-for QEventTransition (0x0x7fcb1cecc0d0) + QObject (0x0x7fcb1cec4540) 0 + primary-for QAbstractTransition (0x0x7fcb1cecc138) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fcb1cecc1a0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7fcb1cec4780) 0 nearly-empty + primary-for QException (0x0x7fcb1cecc1a0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7fcb1cecc208) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7fcb1cecc270) 0 nearly-empty + primary-for QUnhandledException (0x0x7fcb1cecc208) + std::exception (0x0x7fcb1cec47e0) 0 nearly-empty + primary-for QException (0x0x7fcb1cecc270) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7fcb1cec4840) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fcb1cec4900) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fcb1cec4960) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fcb1cec4ba0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fcb1cecc2d8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7fcb1cec4b40) 0 + primary-for QFileSelector (0x0x7fcb1cecc2d8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fcb1cec4de0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fcb1cecc340) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7fcb1cec4d80) 0 + primary-for QFileSystemWatcher (0x0x7fcb1cecc340) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7fcb1cb1c060) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7fcb1cecc3a8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7fcb1cecc410) 0 + primary-for QFinalState (0x0x7fcb1cecc3a8) + QObject (0x0x7fcb1cb1c000) 0 + primary-for QAbstractState (0x0x7fcb1cecc410) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7fcb1cb1c240) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fcb1cb1c4e0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fcb1cecc4e0) 0 + QBasicMutex (0x0x7fcb1cba1180) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7fcb1cba13c0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fcb1cba1840) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fcb1cba1e40) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fcb1cbf6060) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fcb1cc41840) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fcb1cce0b40) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fcb1cc71af8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7fcb1cce0ae0) 0 + primary-for QFutureWatcherBase (0x0x7fcb1cc71af8) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7fcb1cd08ea0) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7fcb1c921340) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7fcb1c9213a8) 0 + primary-for QHistoryState (0x0x7fcb1c921340) + QObject (0x0x7fcb1cd08e40) 0 + primary-for QAbstractState (0x0x7fcb1c9213a8) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fcb1c93b1e0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fcb1c921410) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7fcb1c921478) 0 + primary-for QIdentityProxyModel (0x0x7fcb1c921410) + QAbstractItemModel (0x0x7fcb1c9214e0) 0 + primary-for QAbstractProxyModel (0x0x7fcb1c921478) + QObject (0x0x7fcb1c93b180) 0 + primary-for QAbstractItemModel (0x0x7fcb1c9214e0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fcb1c93b3c0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fcb1c9f4cc0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fcb1c9f0e38) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7fcb1c9f4c60) 0 + primary-for QItemSelectionModel (0x0x7fcb1c9f0e38) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7fcb1ca74000) 0 + QList (0x0x7fcb1ca74068) 0 + QListSpecialMethods (0x0x7fcb1ca2c7e0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7fcb1cac3120) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7fcb1c81f300) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7fcb1c8642a0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7fcb1c864540) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7fcb1c8a78a0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7fcb1c8a7900) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7fcb1c8a7840) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fcb1c5d57e0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fcb1c5d5840) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7fcb1c643060) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7fcb1c6430c0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7fcb1c643000) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fcb1c353420) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7fcb1c3560d0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7fcb1c3533c0) 0 + primary-for QLibrary (0x0x7fcb1c3560d0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fcb1c3a02a0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fcb1c353d80) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fcb1c4369c0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fcb1c436a20) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fcb1c4a6840) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fcb1c5169c0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fcb1c188d80) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7fcb1c235060) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fcb1c2c71e0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fcb1c2c7420) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fcb1c2c73c0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fcb1c2c7840) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fcb1bf82780) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fcb1bdc8f60) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7fcb1bdef000) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7fcb1be52840) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fcb1be92a80) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7fcb1be92ba0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fcb1beee180) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fcb1bedad00) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7fcb1beee120) 0 + primary-for QMimeData (0x0x7fcb1bedad00) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fcb1beee360) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fcb1bb4e480) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fcb1bb4e540) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7fcb1bb56068) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7fcb1bb4e4e0) 0 + primary-for QObjectCleanupHandler (0x0x7fcb1bb56068) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7fcb1bb4e660) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fcb1bbbcde0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fcb1bbcd8f0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7fcb1bbcd958) 0 + primary-for QParallelAnimationGroup (0x0x7fcb1bbcd8f0) + QAbstractAnimation (0x0x7fcb1bbcd9c0) 0 + primary-for QAnimationGroup (0x0x7fcb1bbcd958) + QObject (0x0x7fcb1bbbcd80) 0 + primary-for QAbstractAnimation (0x0x7fcb1bbcd9c0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fcb1bbe5060) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fcb1bbcda28) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7fcb1bbcda90) 0 + primary-for QPauseAnimation (0x0x7fcb1bbcda28) + QObject (0x0x7fcb1bbe5000) 0 + primary-for QAbstractAnimation (0x0x7fcb1bbcda90) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7fcb1bbe5c60) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fcb1bc34de0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fcb1bc37dd0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7fcb1bc34d80) 0 + primary-for QPluginLoader (0x0x7fcb1bc37dd0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fcb1bc34f00) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fcb1bcad5a0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fcb1bca7a28) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7fcb1bca7a90) 0 + primary-for QProcess (0x0x7fcb1bca7a28) + QObject (0x0x7fcb1bcad540) 0 + primary-for QIODevice (0x0x7fcb1bca7a90) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fcb1bcadc60) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fcb1bca7af8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7fcb1bca7b60) 0 + primary-for QVariantAnimation (0x0x7fcb1bca7af8) + QObject (0x0x7fcb1bcadc00) 0 + primary-for QAbstractAnimation (0x0x7fcb1bca7b60) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fcb1bcadf00) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fcb1bca7c30) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7fcb1bca7c98) 0 + primary-for QPropertyAnimation (0x0x7fcb1bca7c30) + QAbstractAnimation (0x0x7fcb1bca7d00) 0 + primary-for QVariantAnimation (0x0x7fcb1bca7c98) + QObject (0x0x7fcb1bcadea0) 0 + primary-for QAbstractAnimation (0x0x7fcb1bca7d00) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fcb1b973660) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fcb1ba7e3c0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fcb1ba7e360) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fcb1b869120) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7fcb1b673d80) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7fcb1b673d20) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7fcb1b7049c0) 0 + QRandomGenerator (0x0x7fcb1b29d8a0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fcb1b2c3480) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fcb1b2c3720) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fcb1b2c3c00) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fcb1b347120) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fcb1b391f00) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fcb1b409ea0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fcb1b0b0f00) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fcb1b1b9060) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fcb1b1b9300) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fcb1b1503a8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7fcb1b150410) 0 + primary-for QSaveFile (0x0x7fcb1b1503a8) + QIODevice (0x0x7fcb1b150478) 0 + primary-for QFileDevice (0x0x7fcb1b150410) + QObject (0x0x7fcb1b1b92a0) 0 + primary-for QIODevice (0x0x7fcb1b150478) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fcb1b1b9900) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7fcb1b1b9a80) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fcb1aee3d20) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fcb1aef41a0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7fcb1aef4208) 0 + primary-for QSequentialAnimationGroup (0x0x7fcb1aef41a0) + QAbstractAnimation (0x0x7fcb1aef4270) 0 + primary-for QAnimationGroup (0x0x7fcb1aef4208) + QObject (0x0x7fcb1aee3cc0) 0 + primary-for QAbstractAnimation (0x0x7fcb1aef4270) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fcb1aee3f60) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fcb1aef42d8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7fcb1aee3f00) 0 + primary-for QSettings (0x0x7fcb1aef42d8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fcb1af24420) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fcb1aef4340) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7fcb1af243c0) 0 + primary-for QSharedMemory (0x0x7fcb1aef4340) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fcb1af24660) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fcb1aef43a8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7fcb1af24600) 0 + primary-for QSignalMapper (0x0x7fcb1aef43a8) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7fcb1af248a0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7fcb1aef4410) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7fcb1aef4478) 0 + primary-for QSignalTransition (0x0x7fcb1aef4410) + QObject (0x0x7fcb1af24840) 0 + primary-for QAbstractTransition (0x0x7fcb1aef4478) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fcb1af24b40) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fcb1aef44e0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7fcb1af24ae0) 0 + primary-for QSocketNotifier (0x0x7fcb1aef44e0) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fcb1af24d80) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fcb1aef4548) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7fcb1aef45b0) 0 + primary-for QSortFilterProxyModel (0x0x7fcb1aef4548) + QAbstractItemModel (0x0x7fcb1aef4618) 0 + primary-for QAbstractProxyModel (0x0x7fcb1aef45b0) + QObject (0x0x7fcb1af24d20) 0 + primary-for QAbstractItemModel (0x0x7fcb1aef4618) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fcb1af931e0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7fcb1af93ae0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7fcb1aef47b8) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7fcb1aef4820) 0 + primary-for QState (0x0x7fcb1aef47b8) + QObject (0x0x7fcb1af93a80) 0 + primary-for QAbstractState (0x0x7fcb1aef4820) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7fcb1af93f60) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7fcb1aef49c0) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7fcb1afdf000) 0 + primary-for QStateMachine::SignalEvent (0x0x7fcb1aef49c0) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7fcb1aef4a28) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7fcb1afdf060) 0 + primary-for QStateMachine::WrappedEvent (0x0x7fcb1aef4a28) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7fcb1aef4888) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7fcb1aef48f0) 0 + primary-for QStateMachine (0x0x7fcb1aef4888) + QAbstractState (0x0x7fcb1aef4958) 0 + primary-for QState (0x0x7fcb1aef48f0) + QObject (0x0x7fcb1af93f00) 0 + primary-for QAbstractState (0x0x7fcb1aef4958) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fcb1afdf420) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fcb1b081420) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fcb1ad0c780) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7fcb1acf3b60) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7fcb1acf3bc8) 0 + primary-for QStringListModel (0x0x7fcb1acf3b60) + QAbstractItemModel (0x0x7fcb1acf3c30) 0 + primary-for QAbstractListModel (0x0x7fcb1acf3bc8) + QObject (0x0x7fcb1ad0c720) 0 + primary-for QAbstractItemModel (0x0x7fcb1acf3c30) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fcb1ad0c8a0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fcb1ad0c960) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fcb1ad0ca80) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fcb1acf3c98) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7fcb1acf3d00) 0 + primary-for QTemporaryFile (0x0x7fcb1acf3c98) + QFileDevice (0x0x7fcb1acf3d68) 0 + primary-for QFile (0x0x7fcb1acf3d00) + QIODevice (0x0x7fcb1acf3dd0) 0 + primary-for QFileDevice (0x0x7fcb1acf3d68) + QObject (0x0x7fcb1ad0ca20) 0 + primary-for QIODevice (0x0x7fcb1acf3dd0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7fcb1ad0cde0) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7fcb1ad71660) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7fcb1ad71600) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7fcb1adda060) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7fcb1adda240) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7fcb1adda420) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7fcb1adf2000) 0 + std::__mutex_base (0x0x7fcb1adda480) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7fcb1adda660) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7fcb1adda6c0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7fcb1adda720) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7fcb1ae1d180) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7fcb1adf2068) 0 + std::__recursive_mutex_base (0x0x7fcb1ae1d1e0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7fcb1add0ee0) 0 + std::__mutex_base (0x0x7fcb1ae1d5a0) 0 + std::__timed_mutex_impl (0x0x7fcb1ae1d600) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7fcb1ae3f230) 0 + std::__recursive_mutex_base (0x0x7fcb1ae1d960) 0 + std::__timed_mutex_impl (0x0x7fcb1ae1d9c0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7fcb1ae60120) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7fcb1adf21a0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7fcb1ae60660) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7fcb1adf21a0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7fcb1adf2208) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7fcb1ae60780) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7fcb1adf2208) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7fcb1adf2270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7fcb1ae608a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7fcb1adf2270) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7fcb1adf2340) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7fcb1ae609c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7fcb1adf2340) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7fcb1ae92a20) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7fcb1ae92d20) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7fcb1aab4060) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7fcb1aab43c0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7fcb1adf23a8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7fcb1ab2e5a0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7fcb1adf23a8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7fcb1ab97540) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7fcb1ab97960) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7fcb1a8e37e0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7fcb1a910c60) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7fcb1a910cc0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7fcb1a910c00) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7fcb1a7d20c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7fcb1a7d2480) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7fcb1a7d24e0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7fcb1a5537e0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7fcb1a54ec30) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7fcb1a54ec98) 0 + primary-for std::future_error (0x0x7fcb1a54ec30) + std::exception (0x0x7fcb1a553f00) 0 nearly-empty + primary-for std::logic_error (0x0x7fcb1a54ec98) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7fcb1a58a660) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7fcb1a58a600) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7fcb1a348d80) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7fcb1a3754e0) 0 + std::__at_thread_exit_elt (0x0x7fcb1a348e40) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7fcb1a58a7e0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7fcb1a58a5a0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7fcb19b2e208) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7fcb19b00e40) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7fcb19b2e208) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fcb19b3e720) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fcb19b2e548) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7fcb19b3e6c0) 0 + primary-for QThread (0x0x7fcb19b2e548) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fcb19b3eae0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fcb19b2e5b0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7fcb19b3ea80) 0 + primary-for QThreadPool (0x0x7fcb19b2e5b0) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fcb19b3ecc0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fcb19b833c0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fcb19b2e618) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7fcb19b83360) 0 + primary-for QTimeLine (0x0x7fcb19b2e618) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fcb19b83600) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7fcb19b2e680) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7fcb19b835a0) 0 + primary-for QTimer (0x0x7fcb19b2e680) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7fcb19bc6f60) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fcb19bc6f00) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fcb19c8c060) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fcb19c73d68) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7fcb19c8c000) 0 + primary-for QTranslator (0x0x7fcb19c73d68) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7fcb19c8c2a0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7fcb19c73dd0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7fcb19c73e38) 0 + primary-for QTransposeProxyModel (0x0x7fcb19c73dd0) + QAbstractItemModel (0x0x7fcb19c73ea0) 0 + primary-for QAbstractProxyModel (0x0x7fcb19c73e38) + QObject (0x0x7fcb19c8c240) 0 + primary-for QAbstractItemModel (0x0x7fcb19c73ea0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fcb19c8c480) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fcb19910e40) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7fcb19910f60) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7fcb199bc360) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7fcb19a28548) 0 + QVector (0x0x7fcb19a21a80) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fcb19a21d80) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7fcb196a0d20) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7fcb196fcd20) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fcb19765de0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fcb19765e40) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fcb197a5d20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1982b1e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1982b540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1982b720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1982ba80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1982bc60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb19864000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb198641e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb19864540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb19864720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb19864a80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb19864c60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1949a000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1949a1e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1949a540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1949a720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1949aa80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb194d2f60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb194ff300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb194ff480) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb194ff7e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb194ff960) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb194ffcc0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb194ffe40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1952e1e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1952e360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1952e6c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1952e840) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1952eba0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1952ed20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1955e0c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fcb1955e240) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fcb1955e5a0) 0 empty + diff --git a/tests/auto/bic/data/QtDBus.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtDBus.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..9c77964eeb --- /dev/null +++ b/tests/auto/bic/data/QtDBus.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,5316 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f36334d2f00) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f36321bf6c0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f36321bf900) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f36321bfb40) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f36321bfd80) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f36321bff00) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f36321ee300) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f3632229420) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f3632281ae0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f3632281ba0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f3632281f60) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f36322b0000) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f36322b0060) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f36322b00c0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f36322b0120) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f36322b01e0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f36322b02a0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f36322b0360) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f36322b0420) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f36322b0780) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f36322b0ae0) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f36322b0b40) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f3631efa120) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f3631efa780) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f36322d35b0) 0 empty + std::__nonesuch (0x0x7f3631efac60) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f3631f7c600) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f3631f7c660) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f3631fd4360) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f3631fd43c0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f36322d3a90) 0 empty + std::input_iterator_tag (0x0x7f3631fd4420) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f36322d3af8) 0 empty + std::forward_iterator_tag (0x0x7f36322d3b60) 0 empty + std::input_iterator_tag (0x0x7f3631fd4480) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f36322d3bc8) 0 empty + std::bidirectional_iterator_tag (0x0x7f36322d3c30) 0 empty + std::forward_iterator_tag (0x0x7f36322d3c98) 0 empty + std::input_iterator_tag (0x0x7f3631fd44e0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f3632089000) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f3632089120) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f3632089420) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f3632089720) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f3632089840) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f3631d16b40) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f3631d16e40) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f3631d16ea0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f3631d16f60) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f3631d5c000) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f3631d5c060) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f3631d5c0c0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f3631d5c360) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f3631d5c600) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f3631d5c660) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f3631e12420) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f3631e22000) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f3631e12600) 0 nearly-empty + primary-for std::bad_exception (0x0x7f3631e22000) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f3631e127e0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f3631e22068) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f3631e12ba0) 0 nearly-empty + primary-for std::bad_cast (0x0x7f3631e22068) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f3631e220d0) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f3631e12d80) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f3631e220d0) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f3631e12f60) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f3631e4f540) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f3631e22138) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f3631e4fc00) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f3631e22138) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f3631e221a0) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f3631e22208) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f3631e221a0) + std::exception (0x0x7f3631e4fde0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f3631e22208) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f3631e7c000) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f3631e7c1e0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f3631af46c0) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f3631cd7180) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f3631cd7240) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f3631770ba0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f3631770cc0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f36317a1060) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f36317a15a0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f36317e6d20) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f363189c180) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f3631841068) 0 + std::__atomic_flag_base (0x0x7f363189c1e0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f36318417b8) 0 + QAtomicInteger (0x0x7f3631841820) 0 + QBasicAtomicInteger (0x0x7f36313ca180) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f3630fe9480) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f3631023a20) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f3631068180) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f36310373a8) 0 + QGenericArgument (0x0x7f3631068420) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f3631068840) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f3631068c60) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f3630d1d780) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f3630d1da20) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f3630de8840) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f3630de8ba0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f3630e45ea0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f3630b27720) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f3630b277e0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f3630bea900) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f3630bea9c0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f3630beaa20) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f3630beaa80) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f3630beaae0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f3630beac00) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f3630beac60) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f3630930c00) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f3630930c60) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f36306efcc0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f36306efe40) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f363089b000) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f363089b3c0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f363089b660) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f363089b840) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f36304f6840) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f36304e2340) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f36304f6900) 0 nearly-empty + primary-for std::logic_error (0x0x7f36304e2340) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f36304e23a8) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f36304e2410) 0 + primary-for std::domain_error (0x0x7f36304e23a8) + std::exception (0x0x7f36304f6960) 0 nearly-empty + primary-for std::logic_error (0x0x7f36304e2410) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f36304e2478) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f36304e24e0) 0 + primary-for std::invalid_argument (0x0x7f36304e2478) + std::exception (0x0x7f36304f69c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f36304e24e0) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f36304e2548) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f36304e25b0) 0 + primary-for std::length_error (0x0x7f36304e2548) + std::exception (0x0x7f36304f6a20) 0 nearly-empty + primary-for std::logic_error (0x0x7f36304e25b0) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f36304e2618) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f36304e2680) 0 + primary-for std::out_of_range (0x0x7f36304e2618) + std::exception (0x0x7f36304f6a80) 0 nearly-empty + primary-for std::logic_error (0x0x7f36304e2680) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f36304e26e8) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f36304f6ae0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f36304e26e8) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f36304e2750) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f36304e27b8) 0 + primary-for std::range_error (0x0x7f36304e2750) + std::exception (0x0x7f36304f6b40) 0 nearly-empty + primary-for std::runtime_error (0x0x7f36304e27b8) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f36304e2820) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f36304e2888) 0 + primary-for std::overflow_error (0x0x7f36304e2820) + std::exception (0x0x7f36304f6ba0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f36304e2888) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f36304e28f0) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f36304e2958) 0 + primary-for std::underflow_error (0x0x7f36304e28f0) + std::exception (0x0x7f36304f6c00) 0 nearly-empty + primary-for std::runtime_error (0x0x7f36304e2958) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f36304f6d80) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f3630550120) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f3630550960) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f36304e2d68) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f36304e2dd0) 0 + primary-for std::system_error (0x0x7f36304e2d68) + std::exception (0x0x7f363057c540) 0 nearly-empty + primary-for std::runtime_error (0x0x7f36304e2dd0) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f36305cb068) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f36305cb0d0) 0 + primary-for std::ios_base::failure (0x0x7f36305cb068) + std::runtime_error (0x0x7f36305cb138) 0 + primary-for std::system_error (0x0x7f36305cb0d0) + std::exception (0x0x7f36305b2ae0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f36305cb138) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f36305b2b40) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f36305b2ba0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f36305b2c00) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f36305b2a80) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f36306a9540) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f3630368720) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f362ff0e820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f362ff0e8f0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f362ff4c5b0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f362ff4c680 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f362ff8e0c0) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f362ff8e120) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f36300b54e0) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f362fd45360) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f362fd457e0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f362fe175a0) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f362fb37000) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f362fe97f60) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f362fc9c180) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f362fa079c0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f362f817cc0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f362f817d80) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f362f4ed2a0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f362faa99c0) 0 + std::iterator (0x0x7f362f4ed9c0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f362faa9af8) 0 + std::_Bit_iterator_base (0x0x7f362faa9b60) 0 + std::iterator (0x0x7f362f51e060) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f362faa9bc8) 0 + std::_Bit_iterator_base (0x0x7f362faa9c30) 0 + std::iterator (0x0x7f362f51e840) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f362f2dbea0) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f362f3ddc60) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f362f3ddcc0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f362f5bf680) 0 empty + QListData::NotIndirectLayout (0x0x7f362f3ddd20) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f362f35c540) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f362f3ddd80) 0 empty + QListData::NotIndirectLayout (0x0x7f362f3ddde0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f362f5bf6e8) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f362f3dde40) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f362f3ddea0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f362f3ddc00) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f362f1150c0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f362f1c6720) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f362f1c66c0) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f362f1c8410) 0 + QList (0x0x7f362f1c8478) 0 + QListSpecialMethods (0x0x7f362f1c6960) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f362f28e4e0) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f362ef16600) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f362ef16960) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f362ecfaf00) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f362ecfaf60) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f362ed1a120) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f362ed1a1e0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f362f0917b8) 0 + std::__uses_alloc_base (0x0x7f362ed1a180) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f362ee7c540) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f362ea9c9c0) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f362ea9cd20) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f362eac22a0) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f362eac27e0) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f362eb239c0) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f362eb470c0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f362eb47f00) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f362e838600) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f362e88db40) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f362e6ce960) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f362e3fc420) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f362e3fc480) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f362e3fc660) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f362e3fc600) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f362e4cb480) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f362e4cb600) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f362e4cbea0) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f362e4a69c0) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f362e4cbe40) 0 + primary-for QAbstractAnimation (0x0x7f362e4a69c0) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f362e5072a0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f362e4a6a28) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f362e507240) 0 + primary-for QAnimationDriver (0x0x7f362e4a6a28) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f362e5074e0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f362e4a6a90) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f362e507480) 0 + primary-for QEventLoop (0x0x7f362e4a6a90) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f362e507d80) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f362e507e40) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f362e507ea0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f362e4a6bc8) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f362e507de0) 0 + primary-for QAbstractEventDispatcher (0x0x7f362e4a6bc8) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f362e1d5548) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f362e1df540) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f362e1d5548) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f362e1df600) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f362e1df660) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f362e1df960) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f362dfda900) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f362e0115a0) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f362e0d8f00) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f362e0d8ea0) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f362e1031e0) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f362de0b780) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f362de0b840) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f362de0b7e0) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f362de0b8a0) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f362de0b720) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f362df43b40) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f362dbc21e0) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f362dbc2180) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f362dbc2300) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f362dbc22a0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f362dc8e480) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f362dd020c0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f362d9b3ea0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f362d9cd138) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f362d9b3e40) 0 + primary-for QAbstractItemModel (0x0x7f362d9cd138) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f362da902a0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f362d9cd750) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f362d9cd7b8) 0 + primary-for QAbstractTableModel (0x0x7f362d9cd750) + QObject (0x0x7f362da90240) 0 + primary-for QAbstractItemModel (0x0x7f362d9cd7b8) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f362da90420) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f362d9cd820) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f362d9cd888) 0 + primary-for QAbstractListModel (0x0x7f362d9cd820) + QObject (0x0x7f362da903c0) 0 + primary-for QAbstractItemModel (0x0x7f362d9cd888) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f362da90b40) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f362da90c00) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f362d9cd958) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f362d9cd9c0) 0 + primary-for QAbstractProxyModel (0x0x7f362d9cd958) + QObject (0x0x7f362da90ba0) 0 + primary-for QAbstractItemModel (0x0x7f362d9cd9c0) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f362da90e40) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f362d9cda28) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7f362da90de0) 0 + primary-for QAbstractState (0x0x7f362d9cda28) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f362db1d0c0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f362d9cda90) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7f362db1d060) 0 + primary-for QAbstractTransition (0x0x7f362d9cda90) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f362db1d3c0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f362d9cdaf8) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f362d9cdb60) 0 + primary-for QAnimationGroup (0x0x7f362d9cdaf8) + QObject (0x0x7f362db1d360) 0 + primary-for QAbstractAnimation (0x0x7f362d9cdb60) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f362db7b720) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f362d7b8ae0) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f362d809f60) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f362d87f360) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f362d8820d0) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f362d87f300) 0 + primary-for QIODevice (0x0x7f362d8820d0) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f362d87fcc0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f362d882208) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f362d882270) 0 + primary-for QBuffer (0x0x7f362d882208) + QObject (0x0x7f362d87fc60) 0 + primary-for QIODevice (0x0x7f362d882270) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f362d87ff60) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f362d87ff00) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f362d8de120) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f362d8de0c0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f362d91d000) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f362d945f60) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f362d5af840) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f362d6194e0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f362d619540) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f362d619480) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f362d6eac00) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f362d40b1e0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f362d40ba80) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f362d4e35a0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f362d532240) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f362d5323c0) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f362d200000) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f362d1b6f60) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f362d384060) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f362d384120) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f362d009420) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f362d009ba0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f362d0c0a80) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f362d129840) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f362d1a12a0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f362cef4240) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7f362cf55d80) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f362cf55e40) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f362c9c3e40) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f362ca618a0) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f362ca61900) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f362ca61840) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f362cb75300) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f362cb75360) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f362cb752a0) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f362c96ca80) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f362c624a20) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f362c65b780) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f362c6e18a0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f362c6e1a80) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f362c3f2060) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f362c448780) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f362c443410) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f362c448b40) 0 + primary-for QTimerEvent (0x0x7f362c443410) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f362c443478) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f362c448c00) 0 + primary-for QChildEvent (0x0x7f362c443478) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f362c4439c0) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f362c4972a0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f362c4439c0) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f362c443a28) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f362c497360) 0 + primary-for QDeferredDeleteEvent (0x0x7f362c443a28) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f362c497480) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f362c443a90) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f362c497420) 0 + primary-for QCoreApplication (0x0x7f362c443a90) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f362c4976c0) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f362c497840) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f362c443af8) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f362c443b60) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f362c443af8) + QObject (0x0x7f362c4977e0) 0 + primary-for QAbstractItemModel (0x0x7f362c443b60) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f362c497a20) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f362c497b40) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f362c497cc0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f362c55e420) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f362c55eb40) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f362c2a18a0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f362c293d68) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f362c293dd0) 0 + primary-for QFileDevice (0x0x7f362c293d68) + QObject (0x0x7f362c2a1840) 0 + primary-for QIODevice (0x0x7f362c293dd0) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f362c2ef1e0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f362c293f08) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f362c293f70) 0 + primary-for QFile (0x0x7f362c293f08) + QIODevice (0x0x7f362c2f5000) 0 + primary-for QFileDevice (0x0x7f362c293f70) + QObject (0x0x7f362c2ef180) 0 + primary-for QIODevice (0x0x7f362c2f5000) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f362c2ef840) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f362c369c00) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f362bfd9f60) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f362c011720) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f362c139840) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f362c101270) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7f362c1012d8) 0 + primary-for QEventTransition (0x0x7f362c101270) + QObject (0x0x7f362c1397e0) 0 + primary-for QAbstractTransition (0x0x7f362c1012d8) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f362c101340) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f362c139a20) 0 nearly-empty + primary-for QException (0x0x7f362c101340) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f362c1013a8) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f362c101410) 0 nearly-empty + primary-for QUnhandledException (0x0x7f362c1013a8) + std::exception (0x0x7f362c139a80) 0 nearly-empty + primary-for QException (0x0x7f362c101410) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f362c139ae0) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f362c139ba0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f362c139c00) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f362c139e40) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f362c101478) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f362c139de0) 0 + primary-for QFileSelector (0x0x7f362c101478) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f362bd820c0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f362c1014e0) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f362bd82060) 0 + primary-for QFileSystemWatcher (0x0x7f362c1014e0) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f362bd82300) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f362c101548) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7f362c1015b0) 0 + primary-for QFinalState (0x0x7f362c101548) + QObject (0x0x7f362bd822a0) 0 + primary-for QAbstractState (0x0x7f362c1015b0) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f362bd824e0) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f362bd82780) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f362c101680) 0 + QBasicMutex (0x0x7f362be0f420) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f362be0f660) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f362be0fae0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f362be38120) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f362be38300) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f362beb1ae0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f362bf4fde0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f362bed0c98) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f362bf4fd80) 0 + primary-for QFutureWatcherBase (0x0x7f362bed0c98) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f362bb9b180) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f362bb944e0) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7f362bb94548) 0 + primary-for QHistoryState (0x0x7f362bb944e0) + QObject (0x0x7f362bb9b120) 0 + primary-for QAbstractState (0x0x7f362bb94548) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f362bb9b480) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f362bb945b0) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f362bb94618) 0 + primary-for QIdentityProxyModel (0x0x7f362bb945b0) + QAbstractItemModel (0x0x7f362bb94680) 0 + primary-for QAbstractProxyModel (0x0x7f362bb94618) + QObject (0x0x7f362bb9b420) 0 + primary-for QAbstractItemModel (0x0x7f362bb94680) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f362bb9b660) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f362bc63f60) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f362bc80000) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f362bc63f00) 0 + primary-for QItemSelectionModel (0x0x7f362bc80000) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f362bc801a0) 0 + QList (0x0x7f362bc80208) 0 + QListSpecialMethods (0x0x7f362bc91a80) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f362bd2e3c0) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f362ba825a0) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f362bad2540) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f362bad27e0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f362bb14b40) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f362bb14ba0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f362bb14ae0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f362b843a80) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f362b843ae0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f362b8af300) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f362b8af360) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f362b8af2a0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f362b5c36c0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f362b5cb270) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f362b5c3660) 0 + primary-for QLibrary (0x0x7f362b5cb270) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f362b60e540) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f362b60e060) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f362b6a6c60) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f362b6a6cc0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f362b714ae0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f362b386c60) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f362b424060) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f362b499300) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f362b536480) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f362b5366c0) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f362b536660) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f362b536ae0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f362b1e8a20) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f362b059240) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f362b0592a0) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f362b0c1ae0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f362b0ffd20) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f362b0ffe40) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f362b15f420) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f362b14eea0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f362b15f3c0) 0 + primary-for QMimeData (0x0x7f362b14eea0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f362b15f600) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f362adc0720) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f362adc07e0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f362adc7208) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f362adc0780) 0 + primary-for QObjectCleanupHandler (0x0x7f362adc7208) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f362adc0900) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f362ae480c0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f362ae3ca90) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f362ae3caf8) 0 + primary-for QParallelAnimationGroup (0x0x7f362ae3ca90) + QAbstractAnimation (0x0x7f362ae3cb60) 0 + primary-for QAnimationGroup (0x0x7f362ae3caf8) + QObject (0x0x7f362ae48060) 0 + primary-for QAbstractAnimation (0x0x7f362ae3cb60) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f362ae48300) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f362ae3cbc8) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f362ae3cc30) 0 + primary-for QPauseAnimation (0x0x7f362ae3cbc8) + QObject (0x0x7f362ae482a0) 0 + primary-for QAbstractAnimation (0x0x7f362ae3cc30) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f362ae48f00) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f362aebf0c0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f362aeaaf70) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f362aebf060) 0 + primary-for QPluginLoader (0x0x7f362aeaaf70) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f362aebf1e0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f362af1c840) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f362af15bc8) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f362af15c30) 0 + primary-for QProcess (0x0x7f362af15bc8) + QObject (0x0x7f362af1c7e0) 0 + primary-for QIODevice (0x0x7f362af15c30) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f362af1cf00) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f362af15c98) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f362af15d00) 0 + primary-for QVariantAnimation (0x0x7f362af15c98) + QObject (0x0x7f362af1cea0) 0 + primary-for QAbstractAnimation (0x0x7f362af15d00) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f362ab6d1e0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f362af15dd0) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f362af15e38) 0 + primary-for QPropertyAnimation (0x0x7f362af15dd0) + QAbstractAnimation (0x0x7f362af15ea0) 0 + primary-for QVariantAnimation (0x0x7f362af15e38) + QObject (0x0x7f362ab6d180) 0 + primary-for QAbstractAnimation (0x0x7f362af15ea0) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f362abe3900) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f362acee660) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f362acee600) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f362aadc3c0) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f362a913060) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f362a913000) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f362a4f3b60) 0 + QRandomGenerator (0x0x7f362a50cb40) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f362a532720) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f362a5329c0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f362a532ea0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f362a5b63c0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f362a6291e0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f362a69f180) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f362a35c1e0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f362a416300) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f362a4165a0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f362a3c1548) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f362a3c15b0) 0 + primary-for QSaveFile (0x0x7f362a3c1548) + QIODevice (0x0x7f362a3c1618) 0 + primary-for QFileDevice (0x0x7f362a3c15b0) + QObject (0x0x7f362a416540) 0 + primary-for QIODevice (0x0x7f362a3c1618) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f362a416ba0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f362a416d20) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f362a170000) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f362a165340) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f362a1653a8) 0 + primary-for QSequentialAnimationGroup (0x0x7f362a165340) + QAbstractAnimation (0x0x7f362a165410) 0 + primary-for QAnimationGroup (0x0x7f362a1653a8) + QObject (0x0x7f362a14ff60) 0 + primary-for QAbstractAnimation (0x0x7f362a165410) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f362a170240) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f362a165478) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f362a1701e0) 0 + primary-for QSettings (0x0x7f362a165478) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f362a1706c0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f362a1654e0) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f362a170660) 0 + primary-for QSharedMemory (0x0x7f362a1654e0) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f362a170900) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f362a165548) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f362a1708a0) 0 + primary-for QSignalMapper (0x0x7f362a165548) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f362a170b40) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f362a1655b0) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7f362a165618) 0 + primary-for QSignalTransition (0x0x7f362a1655b0) + QObject (0x0x7f362a170ae0) 0 + primary-for QAbstractTransition (0x0x7f362a165618) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f362a170de0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f362a165680) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f362a170d80) 0 + primary-for QSocketNotifier (0x0x7f362a165680) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f362a1dd060) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f362a1656e8) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f362a165750) 0 + primary-for QSortFilterProxyModel (0x0x7f362a1656e8) + QAbstractItemModel (0x0x7f362a1657b8) 0 + primary-for QAbstractProxyModel (0x0x7f362a165750) + QObject (0x0x7f362a1dd000) 0 + primary-for QAbstractItemModel (0x0x7f362a1657b8) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f362a1dd480) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f362a1ddd80) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f362a165958) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7f362a1659c0) 0 + primary-for QState (0x0x7f362a165958) + QObject (0x0x7f362a1ddd20) 0 + primary-for QAbstractState (0x0x7f362a1659c0) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f362a251240) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f362a165b60) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7f362a2512a0) 0 + primary-for QStateMachine::SignalEvent (0x0x7f362a165b60) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f362a165bc8) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7f362a251300) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f362a165bc8) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f362a165a28) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7f362a165a90) 0 + primary-for QStateMachine (0x0x7f362a165a28) + QAbstractState (0x0x7f362a165af8) 0 + primary-for QState (0x0x7f362a165a90) + QObject (0x0x7f362a2511e0) 0 + primary-for QAbstractState (0x0x7f362a165af8) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f362a2516c0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f3629ef06c0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f3629f78a20) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f3629f5dd00) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f3629f5dd68) 0 + primary-for QStringListModel (0x0x7f3629f5dd00) + QAbstractItemModel (0x0x7f3629f5ddd0) 0 + primary-for QAbstractListModel (0x0x7f3629f5dd68) + QObject (0x0x7f3629f789c0) 0 + primary-for QAbstractItemModel (0x0x7f3629f5ddd0) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f3629f78b40) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f3629f78c00) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f3629f78d20) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f3629f5de38) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f3629f5dea0) 0 + primary-for QTemporaryFile (0x0x7f3629f5de38) + QFileDevice (0x0x7f3629f5df08) 0 + primary-for QFile (0x0x7f3629f5dea0) + QIODevice (0x0x7f3629f5df70) 0 + primary-for QFileDevice (0x0x7f3629f5df08) + QObject (0x0x7f3629f78cc0) 0 + primary-for QIODevice (0x0x7f3629f5df70) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f3629fd70c0) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f3629fd7900) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f3629fd78a0) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f362a043300) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f362a0434e0) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f362a0436c0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f3629fe41a0) 0 + std::__mutex_base (0x0x7f362a043720) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f362a043900) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f362a043960) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f362a0439c0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f362a08a420) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f3629fe4208) 0 + std::__recursive_mutex_base (0x0x7f362a08a480) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f362a085380) 0 + std::__mutex_base (0x0x7f362a08a840) 0 + std::__timed_mutex_impl (0x0x7f362a08a8a0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f362a085700) 0 + std::__recursive_mutex_base (0x0x7f362a08ac00) 0 + std::__timed_mutex_impl (0x0x7f362a08ac60) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f362a0ce3c0) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f3629fe4340) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f362a0ce900) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f3629fe4340) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f3629fe43a8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f362a0cea20) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f3629fe43a8) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f3629fe4410) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f362a0ceb40) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f3629fe4410) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f3629fe44e0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f362a0cec60) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f3629fe44e0) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f3629cfdcc0) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f3629d20000) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f3629d20300) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f3629d20660) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f3629fe4548) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f3629d97840) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f3629fe4548) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f3629e037e0) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f3629e03c00) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f3629b41a80) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f3629b78f00) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f3629b78f60) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f3629b78ea0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f3629a3a360) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f3629a3a720) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f3629a3a780) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f36297c5a80) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f36297bfdd0) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f36297bfe38) 0 + primary-for std::future_error (0x0x7f36297bfdd0) + std::exception (0x0x7f36297ef1e0) 0 nearly-empty + primary-for std::logic_error (0x0x7f36297bfe38) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f36297ef900) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f36297ef8a0) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f362960d060) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f36295e5680) 0 + std::__at_thread_exit_elt (0x0x7f362960d120) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f36297efa80) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f36297ef840) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f3628d673a8) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f3628dab120) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f3628d673a8) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f3628dab9c0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f3628d676e8) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f3628dab960) 0 + primary-for QThread (0x0x7f3628d676e8) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f3628dabd80) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f3628d67750) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f3628dabd20) 0 + primary-for QThreadPool (0x0x7f3628d67750) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f3628dabf60) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f3628dee660) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f3628d677b8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f3628dee600) 0 + primary-for QTimeLine (0x0x7f3628d677b8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f3628dee8a0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f3628d67820) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f3628dee840) 0 + primary-for QTimer (0x0x7f3628d67820) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f3628e5a240) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f3628e5a1e0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f3628afb300) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f3628ee5f08) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f3628afb2a0) 0 + primary-for QTranslator (0x0x7f3628ee5f08) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f3628afb540) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f3628ee5f70) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f3628b0f000) 0 + primary-for QTransposeProxyModel (0x0x7f3628ee5f70) + QAbstractItemModel (0x0x7f3628b0f068) 0 + primary-for QAbstractProxyModel (0x0x7f3628b0f000) + QObject (0x0x7f3628afb4e0) 0 + primary-for QAbstractItemModel (0x0x7f3628b0f068) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f3628afb720) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f3628b9d120) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f3628b9d240) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f3628c2d600) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f3628c996e8) 0 + QVector (0x0x7f3628c8ad20) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f3628cd7060) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f362892e000) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f362898e000) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f36289f50c0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f36289f5120) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f3628a54000) 0 + +Class QDBusAbstractAdaptor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusAbstractAdaptor::QPrivateSignal (0x0x7f3628a54240) 0 empty + +Vtable for QDBusAbstractAdaptor +QDBusAbstractAdaptor::_ZTV20QDBusAbstractAdaptor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDBusAbstractAdaptor) +16 (int (*)(...))QDBusAbstractAdaptor::metaObject +24 (int (*)(...))QDBusAbstractAdaptor::qt_metacast +32 (int (*)(...))QDBusAbstractAdaptor::qt_metacall +40 (int (*)(...))QDBusAbstractAdaptor::~QDBusAbstractAdaptor +48 (int (*)(...))QDBusAbstractAdaptor::~QDBusAbstractAdaptor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDBusAbstractAdaptor + size=16 align=8 + base size=16 base align=8 +QDBusAbstractAdaptor (0x0x7f3628a4c3a8) 0 + vptr=((& QDBusAbstractAdaptor::_ZTV20QDBusAbstractAdaptor) + 16) + QObject (0x0x7f3628a541e0) 0 + primary-for QDBusAbstractAdaptor (0x0x7f3628a4c3a8) + +Class QDBusError + size=32 align=8 + base size=32 base align=8 +QDBusError (0x0x7f3628a54420) 0 + +Class QDBusMessage + size=8 align=8 + base size=8 base align=8 +QDBusMessage (0x0x7f362871da20) 0 + +Class QDBusObjectPath + size=8 align=8 + base size=8 base align=8 +QDBusObjectPath (0x0x7f36287f3300) 0 + +Class QDBusSignature + size=8 align=8 + base size=8 base align=8 +QDBusSignature (0x0x7f3628858180) 0 + +Class QDBusVariant + size=16 align=8 + base size=16 base align=8 +QDBusVariant (0x0x7f362889df60) 0 + +Class QDBusConnection + size=8 align=8 + base size=8 base align=8 +QDBusConnection (0x0x7f3628431ba0) 0 + +Vtable for QDBusAbstractInterfaceBase +QDBusAbstractInterfaceBase::_ZTV26QDBusAbstractInterfaceBase: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QDBusAbstractInterfaceBase) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QDBusAbstractInterfaceBase::qt_metacall +40 (int (*)(...))QDBusAbstractInterfaceBase::~QDBusAbstractInterfaceBase +48 (int (*)(...))QDBusAbstractInterfaceBase::~QDBusAbstractInterfaceBase +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDBusAbstractInterfaceBase + size=16 align=8 + base size=16 base align=8 +QDBusAbstractInterfaceBase (0x0x7f3628535a28) 0 + vptr=((& QDBusAbstractInterfaceBase::_ZTV26QDBusAbstractInterfaceBase) + 16) + QObject (0x0x7f36285758a0) 0 + primary-for QDBusAbstractInterfaceBase (0x0x7f3628535a28) + +Class QDBusAbstractInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusAbstractInterface::QPrivateSignal (0x0x7f3628575a20) 0 empty + +Vtable for QDBusAbstractInterface +QDBusAbstractInterface::_ZTV22QDBusAbstractInterface: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QDBusAbstractInterface) +16 (int (*)(...))QDBusAbstractInterface::metaObject +24 (int (*)(...))QDBusAbstractInterface::qt_metacast +32 (int (*)(...))QDBusAbstractInterface::qt_metacall +40 (int (*)(...))QDBusAbstractInterface::~QDBusAbstractInterface +48 (int (*)(...))QDBusAbstractInterface::~QDBusAbstractInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QDBusAbstractInterface::connectNotify +104 (int (*)(...))QDBusAbstractInterface::disconnectNotify + +Class QDBusAbstractInterface + size=16 align=8 + base size=16 base align=8 +QDBusAbstractInterface (0x0x7f3628535a90) 0 + vptr=((& QDBusAbstractInterface::_ZTV22QDBusAbstractInterface) + 16) + QDBusAbstractInterfaceBase (0x0x7f3628535af8) 0 + primary-for QDBusAbstractInterface (0x0x7f3628535a90) + QObject (0x0x7f36285759c0) 0 + primary-for QDBusAbstractInterfaceBase (0x0x7f3628535af8) + +Class QDBusArgument + size=8 align=8 + base size=8 base align=8 +QDBusArgument (0x0x7f3628575c00) 0 + +Class QDBusPendingCall + size=8 align=8 + base size=8 base align=8 +QDBusPendingCall (0x0x7f36282d2f60) 0 + +Class QDBusPendingCallWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusPendingCallWatcher::QPrivateSignal (0x0x7f3628370480) 0 empty + +Vtable for QDBusPendingCallWatcher +QDBusPendingCallWatcher::_ZTV23QDBusPendingCallWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QDBusPendingCallWatcher) +16 (int (*)(...))QDBusPendingCallWatcher::metaObject +24 (int (*)(...))QDBusPendingCallWatcher::qt_metacast +32 (int (*)(...))QDBusPendingCallWatcher::qt_metacall +40 (int (*)(...))QDBusPendingCallWatcher::~QDBusPendingCallWatcher +48 (int (*)(...))QDBusPendingCallWatcher::~QDBusPendingCallWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDBusPendingCallWatcher + size=24 align=8 + base size=24 base align=8 +QDBusPendingCallWatcher (0x0x7f3628371070) 0 + vptr=((& QDBusPendingCallWatcher::_ZTV23QDBusPendingCallWatcher) + 16) + QObject (0x0x7f36283703c0) 0 + primary-for QDBusPendingCallWatcher (0x0x7f3628371070) + QDBusPendingCall (0x0x7f3628370420) 16 + +Class QDBusPendingReplyData + size=8 align=8 + base size=8 base align=8 +QDBusPendingReplyData (0x0x7f3628369820) 0 + QDBusPendingCall (0x0x7f3628370660) 0 + +Class QDBusPendingReplyTypes::TypeIsVoid + size=1 align=1 + base size=0 base align=1 +QDBusPendingReplyTypes::TypeIsVoid (0x0x7f3628370e40) 0 empty + +Class QDBusConnectionInterface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusConnectionInterface::QPrivateSignal (0x0x7f36283bc600) 0 empty + +Vtable for QDBusConnectionInterface +QDBusConnectionInterface::_ZTV24QDBusConnectionInterface: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QDBusConnectionInterface) +16 (int (*)(...))QDBusConnectionInterface::metaObject +24 (int (*)(...))QDBusConnectionInterface::qt_metacast +32 (int (*)(...))QDBusConnectionInterface::qt_metacall +40 (int (*)(...))QDBusConnectionInterface::~QDBusConnectionInterface +48 (int (*)(...))QDBusConnectionInterface::~QDBusConnectionInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QDBusConnectionInterface::connectNotify +104 (int (*)(...))QDBusConnectionInterface::disconnectNotify + +Class QDBusConnectionInterface + size=16 align=8 + base size=16 base align=8 +QDBusConnectionInterface (0x0x7f3628369b60) 0 + vptr=((& QDBusConnectionInterface::_ZTV24QDBusConnectionInterface) + 16) + QDBusAbstractInterface (0x0x7f3628369bc8) 0 + primary-for QDBusConnectionInterface (0x0x7f3628369b60) + QDBusAbstractInterfaceBase (0x0x7f3628369c30) 0 + primary-for QDBusAbstractInterface (0x0x7f3628369bc8) + QObject (0x0x7f36283bc5a0) 0 + primary-for QDBusAbstractInterfaceBase (0x0x7f3628369c30) + +Class QDBusContext + size=8 align=8 + base size=8 base align=8 +QDBusContext (0x0x7f36283bca20) 0 + +Vtable for QDBusInterface +QDBusInterface::_ZTV14QDBusInterface: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDBusInterface) +16 (int (*)(...))QDBusInterface::metaObject +24 (int (*)(...))QDBusInterface::qt_metacast +32 (int (*)(...))QDBusInterface::qt_metacall +40 (int (*)(...))QDBusInterface::~QDBusInterface +48 (int (*)(...))QDBusInterface::~QDBusInterface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QDBusAbstractInterface::connectNotify +104 (int (*)(...))QDBusAbstractInterface::disconnectNotify + +Class QDBusInterface + size=16 align=8 + base size=16 base align=8 +QDBusInterface (0x0x7f3628369c98) 0 + vptr=((& QDBusInterface::_ZTV14QDBusInterface) + 16) + QDBusAbstractInterface (0x0x7f3628369d00) 0 + primary-for QDBusInterface (0x0x7f3628369c98) + QDBusAbstractInterfaceBase (0x0x7f3628369d68) 0 + primary-for QDBusAbstractInterface (0x0x7f3628369d00) + QObject (0x0x7f36283bca80) 0 + primary-for QDBusAbstractInterfaceBase (0x0x7f3628369d68) + +Class QDBusMetaType + size=1 align=1 + base size=0 base align=1 +QDBusMetaType (0x0x7f36283bcba0) 0 empty + +Class QDBusServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusServer::QPrivateSignal (0x0x7f36283bcd80) 0 empty + +Vtable for QDBusServer +QDBusServer::_ZTV11QDBusServer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDBusServer) +16 (int (*)(...))QDBusServer::metaObject +24 (int (*)(...))QDBusServer::qt_metacast +32 (int (*)(...))QDBusServer::qt_metacall +40 (int (*)(...))QDBusServer::~QDBusServer +48 (int (*)(...))QDBusServer::~QDBusServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDBusServer + size=24 align=8 + base size=24 base align=8 +QDBusServer (0x0x7f3628369e38) 0 + vptr=((& QDBusServer::_ZTV11QDBusServer) + 16) + QObject (0x0x7f36283bcd20) 0 + primary-for QDBusServer (0x0x7f3628369e38) + +Class QDBusServiceWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusServiceWatcher::QPrivateSignal (0x0x7f36283bcf00) 0 empty + +Vtable for QDBusServiceWatcher +QDBusServiceWatcher::_ZTV19QDBusServiceWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QDBusServiceWatcher) +16 (int (*)(...))QDBusServiceWatcher::metaObject +24 (int (*)(...))QDBusServiceWatcher::qt_metacast +32 (int (*)(...))QDBusServiceWatcher::qt_metacall +40 (int (*)(...))QDBusServiceWatcher::~QDBusServiceWatcher +48 (int (*)(...))QDBusServiceWatcher::~QDBusServiceWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDBusServiceWatcher + size=16 align=8 + base size=16 base align=8 +QDBusServiceWatcher (0x0x7f3628369ea0) 0 + vptr=((& QDBusServiceWatcher::_ZTV19QDBusServiceWatcher) + 16) + QObject (0x0x7f36283bcea0) 0 + primary-for QDBusServiceWatcher (0x0x7f3628369ea0) + +Class QDBusUnixFileDescriptor + size=8 align=8 + base size=8 base align=8 +QDBusUnixFileDescriptor (0x0x7f362800c8a0) 0 + +Class QDBusVirtualObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDBusVirtualObject::QPrivateSignal (0x0x7f36280838a0) 0 empty + +Vtable for QDBusVirtualObject +QDBusVirtualObject::_ZTV18QDBusVirtualObject: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QDBusVirtualObject) +16 (int (*)(...))QDBusVirtualObject::metaObject +24 (int (*)(...))QDBusVirtualObject::qt_metacast +32 (int (*)(...))QDBusVirtualObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QDBusVirtualObject + size=16 align=8 + base size=16 base align=8 +QDBusVirtualObject (0x0x7f3628086478) 0 + vptr=((& QDBusVirtualObject::_ZTV18QDBusVirtualObject) + 16) + QObject (0x0x7f3628083840) 0 + primary-for QDBusVirtualObject (0x0x7f3628086478) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36280c1c60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f36280e1000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36280e11e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f36280e1540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36280e1720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f36280e1a80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36280e1c60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3628121000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36281211e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3628121540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3628121720) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3628121a80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3628121c60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3628156000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36281561e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3628156540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3628187a20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3628187d80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3628187f00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f36281b92a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36281b9420) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f36281b9780) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36281b9900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f36281b9c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f36281b9de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3627de7180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3627de7300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3627de7660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3627de77e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3627de7b40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f3627de7cc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f3627e15060) 0 empty + diff --git a/tests/auto/bic/data/QtGui.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtGui.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..155a5331d8 --- /dev/null +++ b/tests/auto/bic/data/QtGui.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,8792 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fdf11780b40) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fdf10c75300) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fdf10c75540) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7fdf10c75780) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7fdf10c759c0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7fdf10c75b40) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7fdf10c75f00) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7fdf10ce2060) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fdf10d35720) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fdf10d357e0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7fdf10d35ba0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7fdf10d35c00) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7fdf10d35c60) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7fdf10d35cc0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7fdf10d35d20) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fdf10d35de0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fdf10d35ea0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fdf10d35f60) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fdf10d69060) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fdf10d693c0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7fdf10d69720) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7fdf10d69780) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7fdf10d69d20) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fdf10db23c0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7fdf10cf8f70) 0 empty + std::__nonesuch (0x0x7fdf10db28a0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fdf10a31240) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fdf10a312a0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fdf10a65f60) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fdf10a93000) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fdf10dd9478) 0 empty + std::input_iterator_tag (0x0x7fdf10a93060) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fdf10dd94e0) 0 empty + std::forward_iterator_tag (0x0x7fdf10dd9548) 0 empty + std::input_iterator_tag (0x0x7fdf10a930c0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fdf10dd95b0) 0 empty + std::bidirectional_iterator_tag (0x0x7fdf10dd9618) 0 empty + std::forward_iterator_tag (0x0x7fdf10dd9680) 0 empty + std::input_iterator_tag (0x0x7fdf10a93120) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fdf10b1fc00) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fdf10b1fd20) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fdf10b43060) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fdf10b43360) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fdf10b43480) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fdf10bcd780) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fdf10bcda80) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fdf10bcdae0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7fdf10bcdba0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fdf10bcdc00) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7fdf10bcdc60) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7fdf10bcdcc0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fdf10bcdf60) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fdf10811240) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fdf108112a0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fdf108ca060) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fdf10dd99c0) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7fdf108ca240) 0 nearly-empty + primary-for std::bad_exception (0x0x7fdf10dd99c0) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fdf108ca420) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fdf10dd9a28) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7fdf108ca7e0) 0 nearly-empty + primary-for std::bad_cast (0x0x7fdf10dd9a28) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fdf10dd9a90) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7fdf108ca9c0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fdf10dd9a90) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fdf108caba0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fdf10900180) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fdf10dd9af8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7fdf10900840) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fdf10dd9af8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fdf10dd9b60) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7fdf10dd9bc8) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fdf10dd9b60) + std::exception (0x0x7fdf10900a20) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fdf10dd9bc8) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fdf10900c00) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7fdf10900de0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fdf109a7300) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7fdf1075dd80) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7fdf1075de40) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fdf102227e0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fdf10222900) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fdf10222c60) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fdf1025f1e0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fdf1029f960) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fdf10335d80) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fdf102dfa28) 0 + std::__atomic_flag_base (0x0x7fdf10335de0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fdf101b61a0) 0 + QAtomicInteger (0x0x7fdf101b6208) 0 + QBasicAtomicInteger (0x0x7fdf0fe6ad80) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fdf0fa9d0c0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fdf0fae2660) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fdf0fae2d80) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fdf0fcbbd68) 0 + QGenericArgument (0x0x7fdf0fb21060) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7fdf0fb21480) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fdf0fb218a0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fdf0fbd43c0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fdf0fbd4660) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fdf0f89e480) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7fdf0f89e7e0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fdf0f8fbae0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fdf0f9fa360) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fdf0f9fa420) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fdf0f6aa540) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fdf0f6aa600) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fdf0f6aa660) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fdf0f6aa6c0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fdf0f6aa720) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fdf0f6aa840) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fdf0f6aa8a0) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7fdf0f7e9840) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fdf0f7e98a0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fdf0f5a1900) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fdf0f5a1a80) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fdf0f315c00) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fdf0f364000) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fdf0f3642a0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fdf0f364480) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fdf0f3b1480) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fdf0f5beea0) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7fdf0f3b1540) 0 nearly-empty + primary-for std::logic_error (0x0x7fdf0f5beea0) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fdf0f5bef08) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7fdf0f5bef70) 0 + primary-for std::domain_error (0x0x7fdf0f5bef08) + std::exception (0x0x7fdf0f3b15a0) 0 nearly-empty + primary-for std::logic_error (0x0x7fdf0f5bef70) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fdf0f5be3a8) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7fdf0f5be410) 0 + primary-for std::invalid_argument (0x0x7fdf0f5be3a8) + std::exception (0x0x7fdf0f3b1600) 0 nearly-empty + primary-for std::logic_error (0x0x7fdf0f5be410) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fdf0f5be750) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7fdf0f5be7b8) 0 + primary-for std::length_error (0x0x7fdf0f5be750) + std::exception (0x0x7fdf0f3b1660) 0 nearly-empty + primary-for std::logic_error (0x0x7fdf0f5be7b8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fdf0f3de000) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7fdf0f3de068) 0 + primary-for std::out_of_range (0x0x7fdf0f3de000) + std::exception (0x0x7fdf0f3b16c0) 0 nearly-empty + primary-for std::logic_error (0x0x7fdf0f3de068) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fdf0f3de0d0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7fdf0f3b1720) 0 nearly-empty + primary-for std::runtime_error (0x0x7fdf0f3de0d0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fdf0f3de138) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7fdf0f3de1a0) 0 + primary-for std::range_error (0x0x7fdf0f3de138) + std::exception (0x0x7fdf0f3b1780) 0 nearly-empty + primary-for std::runtime_error (0x0x7fdf0f3de1a0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fdf0f3de208) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7fdf0f3de270) 0 + primary-for std::overflow_error (0x0x7fdf0f3de208) + std::exception (0x0x7fdf0f3b17e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fdf0f3de270) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fdf0f3de2d8) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7fdf0f3de340) 0 + primary-for std::underflow_error (0x0x7fdf0f3de2d8) + std::exception (0x0x7fdf0f3b1840) 0 nearly-empty + primary-for std::runtime_error (0x0x7fdf0f3de340) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fdf0f3b19c0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fdf0f3b1d20) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fdf0f0095a0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fdf0f3de750) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7fdf0f3de7b8) 0 + primary-for std::system_error (0x0x7fdf0f3de750) + std::exception (0x0x7fdf0f035180) 0 nearly-empty + primary-for std::runtime_error (0x0x7fdf0f3de7b8) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fdf0f3dea28) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7fdf0f3dea90) 0 + primary-for std::ios_base::failure (0x0x7fdf0f3dea28) + std::runtime_error (0x0x7fdf0f3deaf8) 0 + primary-for std::system_error (0x0x7fdf0f3dea90) + std::exception (0x0x7fdf0f069720) 0 nearly-empty + primary-for std::runtime_error (0x0x7fdf0f3deaf8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fdf0f069780) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fdf0f0697e0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fdf0f069840) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fdf0f0696c0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fdf0f157180) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fdf0ee32360) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fdf0edc4208 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fdf0edc42d8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7fdf0edc44e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fdf0ea11068 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7fdf0e9fecc0) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7fdf0e9fed20) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7fdf0eb66120) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7fdf0ebe5f60) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7fdf0e811420) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fdf0e8da1e0) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7fdf0e95ec00) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7fdf0e95eba0) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7fdf0e738d80) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7fdf0e4da600) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fdf0e2f1900) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fdf0e2f19c0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fdf0e3b8ea0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fdf0e3043a8) 0 + std::iterator (0x0x7fdf0e3d6600) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fdf0e3044e0) 0 + std::_Bit_iterator_base (0x0x7fdf0e304548) 0 + std::iterator (0x0x7fdf0e3d6c60) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fdf0e3045b0) 0 + std::_Bit_iterator_base (0x0x7fdf0e304618) 0 + std::iterator (0x0x7fdf0e009480) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fdf0e1c0ae0) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7fdf0dec18a0) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7fdf0dec1900) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7fdf0de41068) 0 empty + QListData::NotIndirectLayout (0x0x7fdf0dec1960) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7fdf0e0e6ee0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fdf0dec19c0) 0 empty + QListData::NotIndirectLayout (0x0x7fdf0dec1a20) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7fdf0de410d0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fdf0dec1a80) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7fdf0dec1ae0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7fdf0dec1840) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7fdf0dfaacc0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7fdf0dca8360) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7fdf0dca8300) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7fdf0dc92dd0) 0 + QList (0x0x7fdf0dc92e38) 0 + QListSpecialMethods (0x0x7fdf0dca85a0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fdf0dd72120) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fdf0ddf8240) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7fdf0ddf85a0) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7fdf0dbdab40) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fdf0dbdaba0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fdf0dbdad20) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fdf0dbdade0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fdf0dbef1a0) 0 + std::__uses_alloc_base (0x0x7fdf0dbdad80) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fdf0d96b180) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7fdf0d600600) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7fdf0d600960) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7fdf0d600ea0) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7fdf0d625420) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7fdf0d68c600) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7fdf0d68ccc0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7fdf0d6dcb40) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7fdf0d79b240) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fdf0d7f4780) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fdf0d2b75a0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fdf0d3e8060) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7fdf0d3e80c0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fdf0d3e82a0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fdf0d3e8240) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7fdf0d0b30c0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fdf0d0b3240) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fdf0d0b3ae0) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fdf0d0ad3a8) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7fdf0d0b3a80) 0 + primary-for QAbstractAnimation (0x0x7fdf0d0ad3a8) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fdf0d0b3ea0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fdf0d0ad410) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7fdf0d0b3e40) 0 + primary-for QAnimationDriver (0x0x7fdf0d0ad410) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fdf0d0f3120) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fdf0d0ad478) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7fdf0d0f30c0) 0 + primary-for QEventLoop (0x0x7fdf0d0ad478) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fdf0d0f39c0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fdf0d0f3a80) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fdf0d0f3ae0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fdf0d0ad5b0) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7fdf0d0f3a20) 0 + primary-for QAbstractEventDispatcher (0x0x7fdf0d0ad5b0) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fdf0d173f08) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7fdf0d1cb180) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fdf0d173f08) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fdf0d1cb240) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fdf0d1cb2a0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fdf0d1cb5a0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7fdf0cfc1540) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7fdf0cffb1e0) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7fdf0ccc3b40) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7fdf0ccc3ae0) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fdf0ccc3de0) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7fdf0cdf13c0) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7fdf0cdf1480) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7fdf0cdf1420) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7fdf0cdf14e0) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7fdf0cdf1360) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7fdf0cb49780) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7fdf0cb8dde0) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7fdf0cb8dd80) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7fdf0cb8df00) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7fdf0cb8dea0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fdf0c8710c0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fdf0c8c9cc0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fdf0c996ae0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fdf0c999af8) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7fdf0c996a80) 0 + primary-for QAbstractItemModel (0x0x7fdf0c999af8) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fdf0c5feea0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fdf0c60f138) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7fdf0c60f1a0) 0 + primary-for QAbstractTableModel (0x0x7fdf0c60f138) + QObject (0x0x7fdf0c5fee40) 0 + primary-for QAbstractItemModel (0x0x7fdf0c60f1a0) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fdf0c683060) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fdf0c60f208) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7fdf0c60f270) 0 + primary-for QAbstractListModel (0x0x7fdf0c60f208) + QObject (0x0x7fdf0c683000) 0 + primary-for QAbstractItemModel (0x0x7fdf0c60f270) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fdf0c683780) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fdf0c683840) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fdf0c60f340) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7fdf0c60f3a8) 0 + primary-for QAbstractProxyModel (0x0x7fdf0c60f340) + QObject (0x0x7fdf0c6837e0) 0 + primary-for QAbstractItemModel (0x0x7fdf0c60f3a8) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7fdf0c683a80) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7fdf0c60f410) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7fdf0c683a20) 0 + primary-for QAbstractState (0x0x7fdf0c60f410) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7fdf0c683cc0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7fdf0c60f478) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7fdf0c683c60) 0 + primary-for QAbstractTransition (0x0x7fdf0c60f478) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fdf0c711000) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fdf0c60f4e0) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7fdf0c60f548) 0 + primary-for QAnimationGroup (0x0x7fdf0c60f4e0) + QObject (0x0x7fdf0c683f60) 0 + primary-for QAbstractAnimation (0x0x7fdf0c60f548) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fdf0c763360) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7fdf0c7a4720) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7fdf0c7f3ba0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fdf0c447f60) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fdf0c456a90) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7fdf0c447f00) 0 + primary-for QIODevice (0x0x7fdf0c456a90) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fdf0c47d900) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fdf0c456bc8) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7fdf0c456c30) 0 + primary-for QBuffer (0x0x7fdf0c456bc8) + QObject (0x0x7fdf0c47d8a0) 0 + primary-for QIODevice (0x0x7fdf0c456c30) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fdf0c47dba0) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7fdf0c47db40) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7fdf0c47dd20) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7fdf0c47dcc0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fdf0c4d7c00) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fdf0c527ba0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fdf0c594480) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fdf0c5fb120) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fdf0c5fb180) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fdf0c5fb0c0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fdf0c2cf840) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fdf0c3bade0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fdf0c0206c0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7fdf0c0c71e0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fdf0c0eee40) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fdf0c11b000) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7fdf0c1a4c00) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fdf0c1a4ba0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fdf0bf4ac60) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fdf0bf4ad20) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7fdf0bffa060) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fdf0bffa7e0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fdf0bcab6c0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fdf0bd0f480) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fdf0bd64ea0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fdf0baa7e40) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7fdf0bb3f9c0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7fdf0bb3fa80) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7fdf0b9aea80) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7fdf0b64b4e0) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7fdf0b64b540) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7fdf0b64b480) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7fdf0b73bf00) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7fdf0b73bf60) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7fdf0b73bea0) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7fdf0b5516c0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7fdf0b20c660) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7fdf0b2403c0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fdf0b2c44e0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fdf0b2c46c0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fdf0b3b9c60) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7fdf0b0443c0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7fdf0b013dd0) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7fdf0b044780) 0 + primary-for QTimerEvent (0x0x7fdf0b013dd0) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7fdf0b013e38) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7fdf0b044840) 0 + primary-for QChildEvent (0x0x7fdf0b013e38) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7fdf0b0733a8) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7fdf0b044ea0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fdf0b0733a8) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7fdf0b073410) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7fdf0b044f60) 0 + primary-for QDeferredDeleteEvent (0x0x7fdf0b073410) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fdf0b08c0c0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fdf0b073478) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7fdf0b08c060) 0 + primary-for QCoreApplication (0x0x7fdf0b073478) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fdf0b08c300) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7fdf0b08c480) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7fdf0b0734e0) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7fdf0b073548) 0 + primary-for QConcatenateTablesProxyModel (0x0x7fdf0b0734e0) + QObject (0x0x7fdf0b08c420) 0 + primary-for QAbstractItemModel (0x0x7fdf0b073548) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fdf0b08c660) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fdf0b08c780) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fdf0b08c900) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fdf0b144060) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fdf0b144780) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fdf0ae874e0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fdf0ae80750) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7fdf0ae807b8) 0 + primary-for QFileDevice (0x0x7fdf0ae80750) + QObject (0x0x7fdf0ae87480) 0 + primary-for QIODevice (0x0x7fdf0ae807b8) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fdf0ae87de0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fdf0ae808f0) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7fdf0ae80958) 0 + primary-for QFile (0x0x7fdf0ae808f0) + QIODevice (0x0x7fdf0ae809c0) 0 + primary-for QFileDevice (0x0x7fdf0ae80958) + QObject (0x0x7fdf0ae87d80) 0 + primary-for QIODevice (0x0x7fdf0ae809c0) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fdf0aefc480) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fdf0af53840) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fdf0ac00ba0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fdf0ac5d360) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7fdf0ad58480) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7fdf0ad0fc30) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7fdf0ad0fc98) 0 + primary-for QEventTransition (0x0x7fdf0ad0fc30) + QObject (0x0x7fdf0ad58420) 0 + primary-for QAbstractTransition (0x0x7fdf0ad0fc98) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fdf0ad0fd00) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7fdf0ad58660) 0 nearly-empty + primary-for QException (0x0x7fdf0ad0fd00) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7fdf0ad0fd68) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7fdf0ad0fdd0) 0 nearly-empty + primary-for QUnhandledException (0x0x7fdf0ad0fd68) + std::exception (0x0x7fdf0ad586c0) 0 nearly-empty + primary-for QException (0x0x7fdf0ad0fdd0) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7fdf0ad58720) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fdf0ad587e0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fdf0ad58840) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fdf0ad58a80) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fdf0ad0fe38) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7fdf0ad58a20) 0 + primary-for QFileSelector (0x0x7fdf0ad0fe38) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fdf0ad58cc0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fdf0ad0fea0) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7fdf0ad58c60) 0 + primary-for QFileSystemWatcher (0x0x7fdf0ad0fea0) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7fdf0ad58f00) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7fdf0ad0ff08) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7fdf0ad0ff70) 0 + primary-for QFinalState (0x0x7fdf0ad0ff08) + QObject (0x0x7fdf0ad58ea0) 0 + primary-for QAbstractState (0x0x7fdf0ad0ff70) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7fdf0adb8120) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fdf0adb83c0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fdf0adf1068) 0 + QBasicMutex (0x0x7fdf0aa34060) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7fdf0aa342a0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fdf0aa34720) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fdf0aa34d20) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fdf0aa34f00) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fdf0aad5720) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fdf0ab74a20) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fdf0ab11680) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7fdf0ab749c0) 0 + primary-for QFutureWatcherBase (0x0x7fdf0ab11680) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7fdf0aba5d80) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7fdf0ab11ea0) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7fdf0ab11f08) 0 + primary-for QHistoryState (0x0x7fdf0ab11ea0) + QObject (0x0x7fdf0aba5d20) 0 + primary-for QAbstractState (0x0x7fdf0ab11f08) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fdf0abcf0c0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fdf0ab11f70) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7fdf0abd0000) 0 + primary-for QIdentityProxyModel (0x0x7fdf0ab11f70) + QAbstractItemModel (0x0x7fdf0abd0068) 0 + primary-for QAbstractProxyModel (0x0x7fdf0abd0000) + QObject (0x0x7fdf0abcf060) 0 + primary-for QAbstractItemModel (0x0x7fdf0abd0068) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fdf0abcf2a0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fdf0a88dba0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fdf0a8919c0) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7fdf0a88db40) 0 + primary-for QItemSelectionModel (0x0x7fdf0a8919c0) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7fdf0a891b60) 0 + QList (0x0x7fdf0a891bc8) 0 + QListSpecialMethods (0x0x7fdf0a8cd6c0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7fdf0a95b000) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7fdf0a6bb1e0) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7fdf0a6f8180) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7fdf0a6f8420) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7fdf0a73c780) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7fdf0a73c7e0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7fdf0a73c720) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fdf0a46b6c0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fdf0a46b720) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7fdf0a4b8f00) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7fdf0a4b8f60) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7fdf0a4b8ea0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fdf0a5e8300) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7fdf0a5d5c30) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7fdf0a5e82a0) 0 + primary-for QLibrary (0x0x7fdf0a5d5c30) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fdf0a235180) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fdf0a5e8c60) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fdf0a2ca8a0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fdf0a2ca900) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fdf0a33b720) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fdf0a3aa8a0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fdf0a01cc60) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7fdf0a095f00) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fdf0a1580c0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fdf0a158300) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fdf0a1582a0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fdf0a158720) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fdf09e15660) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fdf09c59e40) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7fdf09c59ea0) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7fdf09ce6720) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fdf09d28960) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7fdf09d28a80) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fdf09d86060) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fdf09d79888) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7fdf09d86000) 0 + primary-for QMimeData (0x0x7fdf09d79888) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fdf09d86240) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fdf09de5360) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fdf09de5420) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7fdf09dd3bc8) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7fdf09de53c0) 0 + primary-for QObjectCleanupHandler (0x0x7fdf09dd3bc8) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7fdf09de5540) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fdf09a4ecc0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fdf09a60478) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7fdf09a604e0) 0 + primary-for QParallelAnimationGroup (0x0x7fdf09a60478) + QAbstractAnimation (0x0x7fdf09a60548) 0 + primary-for QAnimationGroup (0x0x7fdf09a604e0) + QObject (0x0x7fdf09a4ec60) 0 + primary-for QAbstractAnimation (0x0x7fdf09a60548) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fdf09a4ef00) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fdf09a605b0) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7fdf09a60618) 0 + primary-for QPauseAnimation (0x0x7fdf09a605b0) + QObject (0x0x7fdf09a4eea0) 0 + primary-for QAbstractAnimation (0x0x7fdf09a60618) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7fdf09a83b40) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fdf09ac6cc0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fdf09ad2958) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7fdf09ac6c60) 0 + primary-for QPluginLoader (0x0x7fdf09ad2958) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fdf09ac6de0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fdf09b42480) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fdf09b3d5b0) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7fdf09b3d618) 0 + primary-for QProcess (0x0x7fdf09b3d5b0) + QObject (0x0x7fdf09b42420) 0 + primary-for QIODevice (0x0x7fdf09b3d618) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fdf09b42b40) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fdf09b3d680) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7fdf09b3d6e8) 0 + primary-for QVariantAnimation (0x0x7fdf09b3d680) + QObject (0x0x7fdf09b42ae0) 0 + primary-for QAbstractAnimation (0x0x7fdf09b3d6e8) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fdf09b42de0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fdf09b3d7b8) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7fdf09b3d820) 0 + primary-for QPropertyAnimation (0x0x7fdf09b3d7b8) + QAbstractAnimation (0x0x7fdf09b3d888) 0 + primary-for QVariantAnimation (0x0x7fdf09b3d820) + QObject (0x0x7fdf09b42d80) 0 + primary-for QAbstractAnimation (0x0x7fdf09b3d888) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fdf09810540) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fdf0990e2a0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fdf0990e240) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fdf096fe000) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7fdf0950bc60) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7fdf0950bc00) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7fdf0959c548) 0 + QRandomGenerator (0x0x7fdf095b5780) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fdf095d2360) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fdf095d2600) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fdf095d2ae0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fdf0925b000) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fdf092a6de0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fdf0931ed80) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fdf093c6de0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fdf0908df00) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fdf090db1e0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fdf09050f08) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7fdf09050f70) 0 + primary-for QSaveFile (0x0x7fdf09050f08) + QIODevice (0x0x7fdf090df000) 0 + primary-for QFileDevice (0x0x7fdf09050f70) + QObject (0x0x7fdf090db180) 0 + primary-for QIODevice (0x0x7fdf090df000) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fdf090db7e0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7fdf090db960) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fdf091f8c00) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fdf08dfed00) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7fdf08dfed68) 0 + primary-for QSequentialAnimationGroup (0x0x7fdf08dfed00) + QAbstractAnimation (0x0x7fdf08dfedd0) 0 + primary-for QAnimationGroup (0x0x7fdf08dfed68) + QObject (0x0x7fdf091f8ba0) 0 + primary-for QAbstractAnimation (0x0x7fdf08dfedd0) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fdf091f8e40) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fdf08dfee38) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7fdf091f8de0) 0 + primary-for QSettings (0x0x7fdf08dfee38) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fdf08e39300) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fdf08dfeea0) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7fdf08e392a0) 0 + primary-for QSharedMemory (0x0x7fdf08dfeea0) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fdf08e39540) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fdf08dfef08) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7fdf08e394e0) 0 + primary-for QSignalMapper (0x0x7fdf08dfef08) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7fdf08e39780) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7fdf08dfef70) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7fdf08e5e000) 0 + primary-for QSignalTransition (0x0x7fdf08dfef70) + QObject (0x0x7fdf08e39720) 0 + primary-for QAbstractTransition (0x0x7fdf08e5e000) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fdf08e39a20) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fdf08e5e068) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7fdf08e399c0) 0 + primary-for QSocketNotifier (0x0x7fdf08e5e068) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fdf08e39c60) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fdf08e5e0d0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7fdf08e5e138) 0 + primary-for QSortFilterProxyModel (0x0x7fdf08e5e0d0) + QAbstractItemModel (0x0x7fdf08e5e1a0) 0 + primary-for QAbstractProxyModel (0x0x7fdf08e5e138) + QObject (0x0x7fdf08e39c00) 0 + primary-for QAbstractItemModel (0x0x7fdf08e5e1a0) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fdf08ea60c0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7fdf08ea69c0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7fdf08e5e340) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7fdf08e5e3a8) 0 + primary-for QState (0x0x7fdf08e5e340) + QObject (0x0x7fdf08ea6960) 0 + primary-for QAbstractState (0x0x7fdf08e5e3a8) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7fdf08ea6e40) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7fdf08e5e548) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7fdf08ea6ea0) 0 + primary-for QStateMachine::SignalEvent (0x0x7fdf08e5e548) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7fdf08e5e5b0) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7fdf08ea6f00) 0 + primary-for QStateMachine::WrappedEvent (0x0x7fdf08e5e5b0) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7fdf08e5e410) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7fdf08e5e478) 0 + primary-for QStateMachine (0x0x7fdf08e5e410) + QAbstractState (0x0x7fdf08e5e4e0) 0 + primary-for QState (0x0x7fdf08e5e478) + QObject (0x0x7fdf08ea6de0) 0 + primary-for QAbstractState (0x0x7fdf08e5e4e0) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fdf08f11300) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fdf08f99300) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fdf08c23660) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7fdf08c146e8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7fdf08c14750) 0 + primary-for QStringListModel (0x0x7fdf08c146e8) + QAbstractItemModel (0x0x7fdf08c147b8) 0 + primary-for QAbstractListModel (0x0x7fdf08c14750) + QObject (0x0x7fdf08c23600) 0 + primary-for QAbstractItemModel (0x0x7fdf08c147b8) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fdf08c23780) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fdf08c23840) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fdf08c23960) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fdf08c14820) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7fdf08c14888) 0 + primary-for QTemporaryFile (0x0x7fdf08c14820) + QFileDevice (0x0x7fdf08c148f0) 0 + primary-for QFile (0x0x7fdf08c14888) + QIODevice (0x0x7fdf08c14958) 0 + primary-for QFileDevice (0x0x7fdf08c148f0) + QObject (0x0x7fdf08c23900) 0 + primary-for QIODevice (0x0x7fdf08c14958) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7fdf08c23cc0) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7fdf08c9f540) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7fdf08c9f4e0) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7fdf08c9ff00) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7fdf08cf5120) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7fdf08cf5300) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7fdf08c14b60) 0 + std::__mutex_base (0x0x7fdf08cf5360) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7fdf08cf5540) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7fdf08cf55a0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7fdf08cf5600) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7fdf08d31060) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7fdf08c14bc8) 0 + std::__recursive_mutex_base (0x0x7fdf08d310c0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7fdf08cfcd20) 0 + std::__mutex_base (0x0x7fdf08d31480) 0 + std::__timed_mutex_impl (0x0x7fdf08d314e0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7fdf08d54070) 0 + std::__recursive_mutex_base (0x0x7fdf08d31840) 0 + std::__timed_mutex_impl (0x0x7fdf08d318a0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7fdf08d79000) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7fdf08c14d00) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7fdf08d79540) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7fdf08c14d00) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7fdf08c14d68) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7fdf08d79660) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7fdf08c14d68) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7fdf08c14dd0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7fdf08d79780) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7fdf08c14dd0) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7fdf08c14ea0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7fdf08d798a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7fdf08c14ea0) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7fdf08da5900) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7fdf08da5c00) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7fdf08da5f00) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7fdf08dc92a0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7fdf08c14f08) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7fdf08a44480) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7fdf08c14f08) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7fdf08ab3420) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7fdf08ab3840) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7fdf08bf86c0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7fdf08825b40) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7fdf08825ba0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7fdf08825ae0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7fdf086bbf60) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7fdf086f4360) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7fdf086f43c0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7fdf0846b6c0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7fdf084667b8) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7fdf08466820) 0 + primary-for std::future_error (0x0x7fdf084667b8) + std::exception (0x0x7fdf0846bde0) 0 nearly-empty + primary-for std::logic_error (0x0x7fdf08466820) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7fdf0849c540) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7fdf0849c4e0) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7fdf08260c60) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7fdf08295068) 0 + std::__at_thread_exit_elt (0x0x7fdf08260d20) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7fdf0849c6c0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7fdf0849c480) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7fdf07df2d68) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7fdf07a1bd20) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7fdf07df2d68) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fdf07a54600) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fdf07a5c0d0) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7fdf07a545a0) 0 + primary-for QThread (0x0x7fdf07a5c0d0) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fdf07a549c0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fdf07a5c138) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7fdf07a54960) 0 + primary-for QThreadPool (0x0x7fdf07a5c138) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fdf07a54ba0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fdf07a9c2a0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fdf07a5c1a0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7fdf07a9c240) 0 + primary-for QTimeLine (0x0x7fdf07a5c1a0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fdf07a9c4e0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7fdf07a5c208) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7fdf07a9c480) 0 + primary-for QTimer (0x0x7fdf07a5c208) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7fdf07ae1e40) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fdf07ae1de0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fdf07b83f00) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fdf07b928f0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7fdf07b83ea0) 0 + primary-for QTranslator (0x0x7fdf07b928f0) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7fdf07bab180) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7fdf07b92958) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7fdf07b929c0) 0 + primary-for QTransposeProxyModel (0x0x7fdf07b92958) + QAbstractItemModel (0x0x7fdf07b92a28) 0 + primary-for QAbstractProxyModel (0x0x7fdf07b929c0) + QObject (0x0x7fdf07bab120) 0 + primary-for QAbstractItemModel (0x0x7fdf07b92a28) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fdf07bab360) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fdf07823d20) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7fdf07823e40) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7fdf078d4240) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7fdf079520d0) 0 + QVector (0x0x7fdf07938960) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fdf07938c60) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7fdf079b4c00) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7fdf07612c00) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fdf0767dcc0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fdf0767dd20) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fdf076bac00) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7fdf0770c240) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7fdf077ac2a0) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7fdf07444720) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7fdf074446c0) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7fdf07531360) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7fdf07200ea0) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7fdf0726ff60) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7fdf07267340) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7fdf072a0840) 0 + primary-for QInputEvent (0x0x7fdf07267340) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7fdf072673a8) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QEvent (0x0x7fdf072a0a20) 0 + primary-for QEnterEvent (0x0x7fdf072673a8) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7fdf07267410) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QInputEvent (0x0x7fdf07267478) 0 + primary-for QMouseEvent (0x0x7fdf07267410) + QEvent (0x0x7fdf072a0de0) 0 + primary-for QInputEvent (0x0x7fdf07267478) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7fdf072674e0) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QInputEvent (0x0x7fdf07267548) 0 + primary-for QHoverEvent (0x0x7fdf072674e0) + QEvent (0x0x7fdf072ee300) 0 + primary-for QInputEvent (0x0x7fdf07267548) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7fdf072675b0) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QInputEvent (0x0x7fdf07267618) 0 + primary-for QWheelEvent (0x0x7fdf072675b0) + QEvent (0x0x7fdf072ee4e0) 0 + primary-for QInputEvent (0x0x7fdf07267618) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7fdf07267680) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QInputEvent (0x0x7fdf072676e8) 0 + primary-for QTabletEvent (0x0x7fdf07267680) + QEvent (0x0x7fdf072eeb40) 0 + primary-for QInputEvent (0x0x7fdf072676e8) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7fdf07267750) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QInputEvent (0x0x7fdf072677b8) 0 + primary-for QNativeGestureEvent (0x0x7fdf07267750) + QEvent (0x0x7fdf0732f480) 0 + primary-for QInputEvent (0x0x7fdf072677b8) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7fdf07267820) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7fdf07267888) 0 + primary-for QKeyEvent (0x0x7fdf07267820) + QEvent (0x0x7fdf0732f780) 0 + primary-for QInputEvent (0x0x7fdf07267888) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7fdf072678f0) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7fdf0732fa80) 0 + primary-for QFocusEvent (0x0x7fdf072678f0) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7fdf07267958) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7fdf0732fba0) 0 + primary-for QPaintEvent (0x0x7fdf07267958) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7fdf072679c0) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7fdf0732fcc0) 0 + primary-for QMoveEvent (0x0x7fdf072679c0) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7fdf07267a28) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7fdf0732fde0) 0 + primary-for QExposeEvent (0x0x7fdf07267a28) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7fdf07267a90) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7fdf0732fea0) 0 + primary-for QPlatformSurfaceEvent (0x0x7fdf07267a90) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7fdf07267af8) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7fdf0732ff60) 0 + primary-for QResizeEvent (0x0x7fdf07267af8) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7fdf07267b60) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7fdf073730c0) 0 + primary-for QCloseEvent (0x0x7fdf07267b60) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7fdf07267bc8) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7fdf07373120) 0 + primary-for QIconDragEvent (0x0x7fdf07267bc8) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7fdf07267c30) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7fdf07373180) 0 + primary-for QShowEvent (0x0x7fdf07267c30) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7fdf07267c98) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7fdf073731e0) 0 + primary-for QHideEvent (0x0x7fdf07267c98) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7fdf07267d00) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7fdf07267d68) 0 + primary-for QContextMenuEvent (0x0x7fdf07267d00) + QEvent (0x0x7fdf07373240) 0 + primary-for QInputEvent (0x0x7fdf07267d68) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7fdf073735a0) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7fdf07267dd0) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7fdf07373540) 0 + primary-for QInputMethodEvent (0x0x7fdf07267dd0) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7fdf073fa900) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7fdf0700b000) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7fdf073fa8a0) 0 + primary-for QInputMethodQueryEvent (0x0x7fdf0700b000) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7fdf0707a0d0) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7fdf0706f660) 0 + primary-for QDropEvent (0x0x7fdf0707a0d0) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7fdf0707a138) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7fdf0707a1a0) 0 + primary-for QDragMoveEvent (0x0x7fdf0707a138) + QEvent (0x0x7fdf0706fa20) 0 + primary-for QDropEvent (0x0x7fdf0707a1a0) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7fdf0707a208) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7fdf0707a270) 0 + primary-for QDragEnterEvent (0x0x7fdf0707a208) + QDropEvent (0x0x7fdf0707a2d8) 0 + primary-for QDragMoveEvent (0x0x7fdf0707a270) + QEvent (0x0x7fdf0706fc60) 0 + primary-for QDropEvent (0x0x7fdf0707a2d8) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7fdf0707a340) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7fdf0706fcc0) 0 + primary-for QDragLeaveEvent (0x0x7fdf0707a340) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7fdf0707a3a8) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7fdf0706fd20) 0 + primary-for QHelpEvent (0x0x7fdf0707a3a8) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7fdf0707a410) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7fdf0709f000) 0 + primary-for QStatusTipEvent (0x0x7fdf0707a410) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7fdf0707a478) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7fdf0709f0c0) 0 + primary-for QWhatsThisClickedEvent (0x0x7fdf0707a478) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7fdf0707a4e0) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7fdf0709f180) 0 + primary-for QActionEvent (0x0x7fdf0707a4e0) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7fdf0707a548) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7fdf0709f2a0) 0 + primary-for QFileOpenEvent (0x0x7fdf0707a548) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7fdf0707a5b0) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7fdf0709f3c0) 0 + primary-for QToolBarChangeEvent (0x0x7fdf0707a5b0) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7fdf0707a618) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7fdf0709f480) 0 + primary-for QShortcutEvent (0x0x7fdf0707a618) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7fdf0707a680) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7fdf0709f600) 0 + primary-for QWindowStateChangeEvent (0x0x7fdf0707a680) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7fdf0709f780) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7fdf070ffb40) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7fdf070fcea0) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QInputEvent (0x0x7fdf070fcf08) 0 + primary-for QTouchEvent (0x0x7fdf070fcea0) + QEvent (0x0x7fdf070ffae0) 0 + primary-for QInputEvent (0x0x7fdf070fcf08) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7fdf06e10bc8) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7fdf06e3e120) 0 + primary-for QScrollPrepareEvent (0x0x7fdf06e10bc8) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7fdf06e10c30) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7fdf06e3e180) 0 + primary-for QScrollEvent (0x0x7fdf06e10c30) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7fdf06e10c98) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7fdf06e3e1e0) 0 + primary-for QScreenOrientationChangeEvent (0x0x7fdf06e10c98) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7fdf06e10d00) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7fdf06e3e240) 0 + primary-for QApplicationStateChangeEvent (0x0x7fdf06e10d00) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7fdf06e3e2a0) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7fdf06edc958) 0 + QVector (0x0x7fdf06ee1720) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7fdf06f6fc98) 0 + QVector (0x0x7fdf06f7e7e0) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7fdf06c17660) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7fdf06c80480) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7fdf06c80420) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7fdf06dbf7e0) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7fdf06dbfea0) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7fdf06a7d960) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7fdf06a7df60) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7fdf06b46af8) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7fdf06b558a0) 0 + primary-for QImage (0x0x7fdf06b46af8) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7fdf06863548) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7fdf06866660) 0 + primary-for QPixmap (0x0x7fdf06863548) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7fdf068d9b40) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7fdf069b50c0) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7fdf069b5300) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7fdf069aa6e8) 0 + QGradient (0x0x7fdf069b5a20) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7fdf069aa750) 0 + QGradient (0x0x7fdf069b5b40) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7fdf069aa7b8) 0 + QGradient (0x0x7fdf069b5c60) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7fdf069b5d20) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7fdf066546c0) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7fdf06654660) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7fdf0668cde0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7fdf06716780) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7fdf06404888) 0 + QTextFormat (0x0x7fdf06431360) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7fdf064a3c98) 0 + QTextFormat (0x0x7fdf064a5d20) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7fdf06517208) 0 + QTextFormat (0x0x7fdf0650ba20) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7fdf06559618) 0 + QTextCharFormat (0x0x7fdf06559680) 0 + QTextFormat (0x0x7fdf065661e0) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7fdf0619bbc8) 0 + QTextFormat (0x0x7fdf061a5840) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7fdf06204138) 0 + QTextFrameFormat (0x0x7fdf062041a0) 0 + QTextFormat (0x0x7fdf06206480) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7fdf062556e8) 0 + QTextCharFormat (0x0x7fdf06255750) 0 + QTextFormat (0x0x7fdf0624cd20) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7fdf062ad180) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7fdf062ad360) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7fdf0631ed20) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7fdf05f94e40) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7fdf06018000) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7fdf06018420) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7fdf060183c0) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7fdf060a7ae0) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7fdf060a7f60) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7fdf060d3240) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7fdf060be270) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7fdf060d31e0) 0 + primary-for QTextDocument (0x0x7fdf060be270) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7fdf060d3d20) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7fdf060d3cc0) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7fdf05e1f120) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7fdf05e1f180) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7fdf05e1f1e0) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7fdf05e04f70) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7fdf05e1f0c0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fdf05e04f70) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7fdf05ecad80) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7fdf05ef6000) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7fdf05ef6060) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7fdf05ecaf60) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7fdf05ef6c00) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7fdf05ef6f60) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7fdf05f55000) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7fdf05f55060) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7fdf05f550c0) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7fdf05f55120) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7fdf05f55180) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7fdf05f552a0) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7fdf05f55300) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7fdf05f125b0) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7fdf05f55cc0) 0 + primary-for QAccessibleStateChangeEvent (0x0x7fdf05f125b0) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7fdf05f12618) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7fdf05bd50c0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fdf05f12618) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7fdf05f12680) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fdf05f126e8) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7fdf05f12680) + QAccessibleEvent (0x0x7fdf05bd54e0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fdf05f126e8) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7fdf05f12750) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fdf05f127b8) 0 + primary-for QAccessibleTextInsertEvent (0x0x7fdf05f12750) + QAccessibleEvent (0x0x7fdf05bd5960) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fdf05f127b8) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7fdf05f12820) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fdf05f12888) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7fdf05f12820) + QAccessibleEvent (0x0x7fdf05bd5d80) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fdf05f12888) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7fdf05f128f0) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fdf05f12958) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7fdf05f128f0) + QAccessibleEvent (0x0x7fdf05c041e0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fdf05f12958) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7fdf05f129c0) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7fdf05c04660) 0 + primary-for QAccessibleValueChangeEvent (0x0x7fdf05f129c0) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7fdf05f12a28) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7fdf05c04a80) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7fdf05f12a28) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7fdf05c33360) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7fdf05c33600) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7fdf05f12a90) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7fdf05c335a0) 0 + primary-for QAccessibleBridgePlugin (0x0x7fdf05f12a90) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7fdf05f12af8) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7fdf05c33720) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fdf05f12af8) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7fdf05f12b60) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7fdf05f12bc8) 0 + primary-for QAccessibleApplication (0x0x7fdf05f12b60) + QAccessibleInterface (0x0x7fdf05c33780) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fdf05f12bc8) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7fdf05c33840) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7fdf05f12c30) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7fdf05c337e0) 0 + primary-for QAccessiblePlugin (0x0x7fdf05f12c30) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7fdf05c33960) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7fdf05c9c4e0) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7fdf05c9c8a0) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7fdf05981420) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7fdf05a4c1e0) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7fdf05a3bc40) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7fdf05a4c120) 0 + primary-for QWindow (0x0x7fdf05a3bc40) + QSurface (0x0x7fdf05a4c180) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7fdf05a4ca80) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7fdf05a2ef08) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7fdf05a2ef70) 0 + primary-for QBitmap (0x0x7fdf05a2ef08) + QPaintDevice (0x0x7fdf05a4cb40) 0 + primary-for QPixmap (0x0x7fdf05a2ef70) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7fdf05af10c0) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7fdf05aea270) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7fdf05af1060) 0 + primary-for QClipboard (0x0x7fdf05aea270) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7fdf05af11e0) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7fdf05af12a0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7fdf05aea2d8) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7fdf05af1240) 0 + primary-for QDrag (0x0x7fdf05aea2d8) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7fdf05af1480) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7fdf05b554e0) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7fdf057a4840) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7fdf058d0900) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7fdf057e8e38) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7fdf058d08a0) 0 + primary-for QGenericPlugin (0x0x7fdf057e8e38) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7fdf058d0a20) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7fdf058d0ae0) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7fdf057e8ea0) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7fdf058d0a80) 0 + primary-for QInputMethod (0x0x7fdf057e8ea0) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7fdf058d0de0) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7fdf057e8f08) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7fdf057e8f70) 0 + primary-for QGuiApplication (0x0x7fdf057e8f08) + QObject (0x0x7fdf058d0d80) 0 + primary-for QCoreApplication (0x0x7fdf057e8f70) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7fdf059615a0) 0 + +Class QIconEngine::ScaledPixmapArgument + size=56 align=8 + base size=56 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7fdf05961720) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7fdf05961540) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7fdf059617e0) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7fdf05962548) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7fdf05961780) 0 + primary-for QIconEnginePlugin (0x0x7fdf05962548) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7fdf05961900) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7fdf05961b40) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7fdf059625b0) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7fdf05961ae0) 0 + primary-for QImageIOPlugin (0x0x7fdf059625b0) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7fdf055ef360) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7fdf055ef480) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7fdf055ef5a0) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7fdf05683720) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7fdf05705960) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7fdf053d02a0) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7fdf0554c120) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7fdf05438d00) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7fdf0554c0c0) 0 + primary-for QMovie (0x0x7fdf05438d00) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7fdf0554c540) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7fdf0544ba80) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7fdf0554c480) 0 + primary-for QOffscreenSurface (0x0x7fdf0544ba80) + QSurface (0x0x7fdf0554c4e0) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7fdf0554c780) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7fdf04dc9000) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7fdf04dfcba0) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7fdf04dfcd80) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7fdf04dfcde0) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7fdf04e28000) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7fdf04e281e0) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7fdf04dfebc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e28180) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7fdf04e284e0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7fdf04dfec30) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e28480) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7fdf04e287e0) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7fdf04dfec98) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e28780) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7fdf04e28ae0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7fdf04dfed00) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e28a80) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7fdf04e28e40) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7fdf04dfed68) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e28de0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7fdf04e63180) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7fdf04dfedd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e63120) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7fdf04e63480) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7fdf04dfee38) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e63420) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7fdf04e63780) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7fdf04dfeea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e63720) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7fdf04e63a80) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7fdf04dfef08) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e63a20) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7fdf04e63d80) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7fdf04dfef70) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04e63d20) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7fdf04eb30c0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7fdf04eb4000) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04eb3060) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7fdf04eb33c0) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7fdf04eb4068) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04eb3360) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7fdf04eb36c0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7fdf04eb40d0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04eb3660) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7fdf04eb39c0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7fdf04eb4138) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04eb3960) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7fdf04eb3cc0) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7fdf04eb41a0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04eb3c60) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7fdf04f0a000) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7fdf04eb4208) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04eb3f60) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7fdf04f0a300) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7fdf04eb4270) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04f0a2a0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7fdf04f0a660) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7fdf04eb42d8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04f0a600) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7fdf04f0a960) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7fdf04eb4340) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04f0a900) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7fdf04f0ac60) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7fdf04eb43a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04f0ac00) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7fdf04f0af60) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7fdf04eb4410) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04f0af00) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7fdf04b9e2a0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7fdf04eb4478) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04b9e240) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7fdf04b9e5a0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7fdf04eb44e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04b9e540) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7fdf04b9e8a0) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7fdf04eb4548) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04b9e840) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7fdf04b9eba0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7fdf04eb45b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04b9eb40) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7fdf04b9eea0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7fdf04eb4618) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04b9ee40) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7fdf04bdf1e0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7fdf04eb4680) 0 + QOpenGLVersionFunctionsBackend (0x0x7fdf04bdf180) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7fdf04bdf480) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7fdf04bdff60) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7fdf04c0c0d0) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7fdf04bdff00) 0 + primary-for QOpenGLContextGroup (0x0x7fdf04c0c0d0) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7fdf04c1a1e0) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7fdf04c0c138) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7fdf04c1a180) 0 + primary-for QOpenGLContext (0x0x7fdf04c0c138) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7fdf04c1a420) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7fdf04cd1ba0) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7fdf04c81b60) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7fdf04cd1b40) 0 + primary-for QOpenGLDebugLogger (0x0x7fdf04c81b60) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7fdf04d2a060) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7fdf04d2a9c0) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7fdf04d2a960) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7fdf04c81f08) 0 + QOpenGLFunctions (0x0x7fdf04a75780) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7fdf04a75ae0) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7fdf04c81f70) 0 + QOpenGLFunctionsPrivate (0x0x7fdf04a75a80) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7fdf048535a0) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7fdf04853840) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7fdf0483dd00) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7fdf048538a0) 0 + primary-for QOpenGLPaintDevice (0x0x7fdf0483dd00) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7fdf04853ae0) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7fdf048e1900) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7fdf048d9e38) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7fdf048e18a0) 0 + primary-for QOpenGLShader (0x0x7fdf048d9e38) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7fdf04923240) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7fdf048d9f70) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7fdf049231e0) 0 + primary-for QOpenGLShaderProgram (0x0x7fdf048d9f70) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7fdf04923420) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7fdf045d9900) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7fdf045d9b40) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7fdf045e20d0) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7fdf045d9ae0) 0 + primary-for QOpenGLTimerQuery (0x0x7fdf045e20d0) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7fdf045d9d80) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7fdf045e2138) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7fdf045d9d20) 0 + primary-for QOpenGLTimeMonitor (0x0x7fdf045e2138) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7fdf0463a000) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7fdf0463a060) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7fdf045e21a0) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7fdf045d9f60) 0 + primary-for QOpenGLVertexArrayObject (0x0x7fdf045e21a0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7fdf0463a720) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7fdf0464b0e0) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7fdf0464b150) 0 + primary-for QPaintDeviceWindow (0x0x7fdf0464b0e0) + QObject (0x0x7fdf0463a600) 0 + primary-for QWindow (0x0x7fdf0464b150) + QSurface (0x0x7fdf0463a660) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336) + QPaintDevice (0x0x7fdf0463a6c0) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7fdf0463aa20) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7fdf045e2270) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7fdf0464b310) 0 + primary-for QOpenGLWindow (0x0x7fdf045e2270) + QWindow (0x0x7fdf0464b380) 0 + primary-for QPaintDeviceWindow (0x0x7fdf0464b310) + QObject (0x0x7fdf0463a900) 0 + primary-for QWindow (0x0x7fdf0464b380) + QSurface (0x0x7fdf0463a960) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384) + QPaintDevice (0x0x7fdf0463a9c0) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7fdf0463ac00) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7fdf046e3660) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7fdf047771e0) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7fdf04760208) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7fdf04777180) 0 + primary-for QPagedPaintDevice (0x0x7fdf04760208) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7fdf047772a0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7fdf04777240) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7fdf04192600) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7fdf041df540) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7fdf041dfd20) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7fdf042994e0) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7fdf042843f0) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7fdf04299420) 0 + primary-for QPdfWriter (0x0x7fdf042843f0) + QPagedPaintDevice (0x0x7fdf041e25b0) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176) + QPaintDevice (0x0x7fdf04299480) 16 + primary-for QPagedPaintDevice (0x0x7fdf041e25b0) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7fdf041e2618) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7fdf042997e0) 0 + primary-for QPicture (0x0x7fdf041e2618) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7fdf04302a80) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7fdf04302b40) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7fdf043067b8) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16) + QObject (0x0x7fdf04302ae0) 0 + primary-for QPictureFormatPlugin (0x0x7fdf043067b8) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7fdf04302cc0) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7fdf04302c60) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7fdf03fdd480) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7fdf03fd9410) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7fdf03fde230) 0 + primary-for QRasterWindow (0x0x7fdf03fd9410) + QWindow (0x0x7fdf03fde2a0) 0 + primary-for QPaintDeviceWindow (0x0x7fdf03fde230) + QObject (0x0x7fdf03fdd360) 0 + primary-for QWindow (0x0x7fdf03fde2a0) + QSurface (0x0x7fdf03fdd3c0) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344) + QPaintDevice (0x0x7fdf03fdd420) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7fdf03fdd6c0) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7fdf03fd94e0) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7fdf03fdd660) 0 + primary-for QScreen (0x0x7fdf03fd94e0) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7fdf03fdd900) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7fdf03fd9548) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7fdf03fdd8a0) 0 + primary-for QSessionManager (0x0x7fdf03fd9548) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7fdf03fddae0) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7fdf040b32a0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7fdf03fd9af8) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7fdf03fd9b60) 0 + primary-for QStandardItemModel (0x0x7fdf03fd9af8) + QObject (0x0x7fdf040b3240) 0 + primary-for QAbstractItemModel (0x0x7fdf03fd9b60) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7fdf040b3660) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7fdf04155a20) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7fdf0414bea0) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7fdf041559c0) 0 + primary-for QStyleHints (0x0x7fdf0414bea0) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7fdf04155c60) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7fdf0414bf08) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7fdf04155c00) 0 + primary-for QTextObject (0x0x7fdf0414bf08) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7fdf04155ea0) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7fdf0414bf70) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7fdf03d8a000) 0 + primary-for QTextBlockGroup (0x0x7fdf0414bf70) + QObject (0x0x7fdf04155e40) 0 + primary-for QTextObject (0x0x7fdf03d8a000) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7fdf03d990c0) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7fdf03d99180) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7fdf03d991e0) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7fdf03d8a068) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7fdf03d8a0d0) 0 + primary-for QTextFrame (0x0x7fdf03d8a068) + QObject (0x0x7fdf03d99120) 0 + primary-for QTextObject (0x0x7fdf03d8a0d0) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7fdf03df1b40) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7fdf03df1c00) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7fdf03df1ba0) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7fdf03e9b900) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7fdf03ef3120) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7fdf03ef0340) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7fdf03ef30c0) 0 + primary-for QSyntaxHighlighter (0x0x7fdf03ef0340) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7fdf03ef3300) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7fdf03ef3360) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7fdf03ef3420) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7fdf03ef03a8) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7fdf03ef0410) 0 + primary-for QTextList (0x0x7fdf03ef03a8) + QTextObject (0x0x7fdf03ef0478) 0 + primary-for QTextBlockGroup (0x0x7fdf03ef0410) + QObject (0x0x7fdf03ef33c0) 0 + primary-for QTextObject (0x0x7fdf03ef0478) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7fdf03ef3a20) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7fdf03f342a0) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7fdf03ef04e0) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7fdf03ef0548) 0 + primary-for QTextTable (0x0x7fdf03ef04e0) + QTextObject (0x0x7fdf03ef05b0) 0 + primary-for QTextFrame (0x0x7fdf03ef0548) + QObject (0x0x7fdf03f34240) 0 + primary-for QTextObject (0x0x7fdf03ef05b0) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7fdf03f34840) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7fdf03ef0618) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7fdf03f347e0) 0 + primary-for QValidator (0x0x7fdf03ef0618) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7fdf03f34a80) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7fdf03ef0680) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7fdf03ef06e8) 0 + primary-for QIntValidator (0x0x7fdf03ef0680) + QObject (0x0x7fdf03f34a20) 0 + primary-for QValidator (0x0x7fdf03ef06e8) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7fdf03f34cc0) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7fdf03ef0750) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7fdf03ef07b8) 0 + primary-for QDoubleValidator (0x0x7fdf03ef0750) + QObject (0x0x7fdf03f34c60) 0 + primary-for QValidator (0x0x7fdf03ef07b8) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7fdf03f7b180) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7fdf03ef0820) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16) + QValidator (0x0x7fdf03ef0888) 0 + primary-for QRegExpValidator (0x0x7fdf03ef0820) + QObject (0x0x7fdf03f7b120) 0 + primary-for QValidator (0x0x7fdf03ef0888) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7fdf03f7b360) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7fdf03ef08f0) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7fdf03ef0958) 0 + primary-for QRegularExpressionValidator (0x0x7fdf03ef08f0) + QObject (0x0x7fdf03f7b300) 0 + primary-for QValidator (0x0x7fdf03ef0958) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03bbf7e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03bbfb40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03bbfd20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03bf00c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03bf02a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03bf0600) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03bf07e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03bf0b40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03bf0d20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03c270c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03c272a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03c27600) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03c277e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03c27b40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03c27d20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03c600c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03c8a5a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03c8a900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03c8aa80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03c8ade0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03c8af60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03cbf300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03cbf480) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03cbf7e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03cbf960) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03cbfcc0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03cbfe40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03cec1e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03cec360) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03cec6c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fdf03cec840) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fdf03cecba0) 0 empty + diff --git a/tests/auto/bic/data/QtNetwork.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtNetwork.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..6019796c38 --- /dev/null +++ b/tests/auto/bic/data/QtNetwork.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,5884 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f7f946e93c0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f7f94734b40) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f7f94734d80) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f7f94760000) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f7f94760240) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f7f947603c0) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f7f94760780) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f7f9479e8a0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f7f947f8f60) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f7f94425060) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f7f94425420) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f7f94425480) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f7f944254e0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f7f94425540) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f7f944255a0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f7f94425660) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f7f94425720) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f7f944257e0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f7f944258a0) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f7f94425c00) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f7f94425f60) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f7f94469000) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f7f944695a0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f7f94469c00) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f7f9448b068) 0 empty + std::__nonesuch (0x0x7f7f944aa120) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f7f944f1a80) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f7f944f1ae0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f7f9454b7e0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f7f9454b840) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f7f9448b548) 0 empty + std::input_iterator_tag (0x0x7f7f9454b8a0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f7f9448b5b0) 0 empty + std::forward_iterator_tag (0x0x7f7f9448b618) 0 empty + std::input_iterator_tag (0x0x7f7f9454b900) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f7f9448b680) 0 empty + std::bidirectional_iterator_tag (0x0x7f7f9448b6e8) 0 empty + std::forward_iterator_tag (0x0x7f7f9448b750) 0 empty + std::input_iterator_tag (0x0x7f7f9454b960) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f7f945fb480) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f7f945fb5a0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f7f945fb8a0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f7f945fbba0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f7f945fbcc0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f7f942c7000) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f7f942c7300) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f7f942c7360) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f7f942c7420) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f7f942c7480) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f7f942c74e0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f7f942c7540) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f7f942c77e0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f7f942c7a80) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f7f942c7ae0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f7f943868a0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f7f9448ba90) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f7f94386a80) 0 nearly-empty + primary-for std::bad_exception (0x0x7f7f9448ba90) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f7f94386c60) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f7f9448baf8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f7f943b9060) 0 nearly-empty + primary-for std::bad_cast (0x0x7f7f9448baf8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f7f9448bb60) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f7f943b9240) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f7f9448bb60) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f7f943b9420) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f7f943b99c0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f7f9448bbc8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f7f943f00c0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f7f9448bbc8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f7f9448bc30) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f7f9448bc98) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f7f9448bc30) + std::exception (0x0x7f7f943f02a0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f7f9448bc98) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f7f943f0480) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f7f943f0660) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f7f94065b40) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f7f93e45600) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f7f93e456c0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f7f93d03060) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f7f93d03180) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f7f93d034e0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f7f93d03a20) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f7f93d7d1e0) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f7f93e11600) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f7f93dafaf8) 0 + std::__atomic_flag_base (0x0x7f7f93e11660) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f7f9384f270) 0 + QAtomicInteger (0x0x7f7f9384f2d8) 0 + QBasicAtomicInteger (0x0x7f7f93944600) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f7f93560900) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f7f93590ea0) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f7f935dc600) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f7f9375ce38) 0 + QGenericArgument (0x0x7f7f935dc8a0) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f7f935dccc0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f7f9322f120) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f7f93293c00) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f7f93293ea0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f7f93364cc0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f7f93389060) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f7f933e9360) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f7f9309bba0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f7f9309bc60) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f7f9315ed80) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f7f9315ee40) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f7f9315eea0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f7f9315ef00) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f7f9315ef60) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f7f931ba0c0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f7f931ba120) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f7f92ed90c0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f7f92ed9120) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f7f92c84180) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f7f92c84300) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f7f92e06480) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f7f92e06840) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f7f92e06ae0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f7f92e06cc0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f7f92a56cc0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f7f92c92f70) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f7f92a56d80) 0 nearly-empty + primary-for std::logic_error (0x0x7f7f92c92f70) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f7f92c92478) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f7f92c924e0) 0 + primary-for std::domain_error (0x0x7f7f92c92478) + std::exception (0x0x7f7f92a56de0) 0 nearly-empty + primary-for std::logic_error (0x0x7f7f92c924e0) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f7f92c92820) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f7f92c92888) 0 + primary-for std::invalid_argument (0x0x7f7f92c92820) + std::exception (0x0x7f7f92a56e40) 0 nearly-empty + primary-for std::logic_error (0x0x7f7f92c92888) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f7f92aa9000) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f7f92aa9068) 0 + primary-for std::length_error (0x0x7f7f92aa9000) + std::exception (0x0x7f7f92a56ea0) 0 nearly-empty + primary-for std::logic_error (0x0x7f7f92aa9068) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f7f92aa90d0) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f7f92aa9138) 0 + primary-for std::out_of_range (0x0x7f7f92aa90d0) + std::exception (0x0x7f7f92a56f00) 0 nearly-empty + primary-for std::logic_error (0x0x7f7f92aa9138) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f7f92aa91a0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f7f92a56f60) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7f92aa91a0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f7f92aa9208) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f7f92aa9270) 0 + primary-for std::range_error (0x0x7f7f92aa9208) + std::exception (0x0x7f7f92ab4000) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7f92aa9270) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f7f92aa92d8) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f7f92aa9340) 0 + primary-for std::overflow_error (0x0x7f7f92aa92d8) + std::exception (0x0x7f7f92ab4060) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7f92aa9340) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f7f92aa93a8) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f7f92aa9410) 0 + primary-for std::underflow_error (0x0x7f7f92aa93a8) + std::exception (0x0x7f7f92ab40c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7f92aa9410) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f7f92ab4240) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f7f92ab45a0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f7f92ab4de0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f7f92aa9820) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f7f92aa9888) 0 + primary-for std::system_error (0x0x7f7f92aa9820) + std::exception (0x0x7f7f92af29c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7f92aa9888) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f7f92aa9af8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f7f92aa9b60) 0 + primary-for std::ios_base::failure (0x0x7f7f92aa9af8) + std::runtime_error (0x0x7f7f92aa9bc8) 0 + primary-for std::system_error (0x0x7f7f92aa9b60) + std::exception (0x0x7f7f92b26f60) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7f92aa9bc8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f7f92b58000) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f7f92b58060) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f7f92b580c0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f7f92b26f00) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f7f92c1a9c0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f7f928c7ba0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f7f924972d8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f7f924973a8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f7f924d8068 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f7f924d8138 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f7f924fd540) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f7f924fd5a0) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f7f9222c960) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f7f922cb7e0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f7f922cbc60) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f7f923a0a20) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f7f9203d480) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f7f9203d420) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f7f91e24600) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f7f91fa4e40) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f7f91dda180) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f7f91dda240) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f7f91a98720) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f7f91dd3478) 0 + std::iterator (0x0x7f7f91a98e40) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f7f91dd35b0) 0 + std::_Bit_iterator_base (0x0x7f7f91dd3618) 0 + std::iterator (0x0x7f7f91ac24e0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f7f91dd3680) 0 + std::_Bit_iterator_base (0x0x7f7f91dd36e8) 0 + std::iterator (0x0x7f7f91ac2cc0) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f7f918d6360) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f7f9199b120) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f7f9199b180) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f7f918fb138) 0 empty + QListData::NotIndirectLayout (0x0x7f7f9199b1e0) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f7f91829d20) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f7f9199b240) 0 empty + QListData::NotIndirectLayout (0x0x7f7f9199b2a0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f7f918fb1a0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f7f9199b300) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f7f9199b360) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f7f9199b0c0) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f7f91690540) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f7f9176aba0) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f7f9176ab40) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f7f91767ea0) 0 + QList (0x0x7f7f91767f08) 0 + QListSpecialMethods (0x0x7f7f9176ade0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f7f9142d960) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f7f914bda80) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f7f914bdde0) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f7f912ba3c0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f7f912ba420) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f7f912ba5a0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f7f912ba660) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f7f91244270) 0 + std::__uses_alloc_base (0x0x7f7f912ba600) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f7f9141c9c0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f7f91048e40) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f7f910641e0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f7f91064720) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f7f91064c60) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f7f910b8e40) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f7f910f1540) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f7f911883c0) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f7f90de1a80) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f7f90e55000) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f7f90c66de0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f7f9099a8a0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f7f9099a900) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f7f9099aae0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f7f9099aa80) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f7f90a77900) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f7f90a77a80) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f7f90a9b360) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f7f90a7a478) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f7f90a9b300) 0 + primary-for QAbstractAnimation (0x0x7f7f90a7a478) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f7f90a9b720) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f7f90a7a4e0) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f7f90a9b6c0) 0 + primary-for QAnimationDriver (0x0x7f7f90a7a4e0) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f7f90a9b960) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f7f90a7a548) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f7f90a9b900) 0 + primary-for QEventLoop (0x0x7f7f90a7a548) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f7f90af4240) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f7f90af4300) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f7f90af4360) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f7f90a7a680) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f7f90af42a0) 0 + primary-for QAbstractEventDispatcher (0x0x7f7f90a7a680) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f7f907a1000) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f7f907829c0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f7f907a1000) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f7f90782a80) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f7f90782ae0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f7f90782de0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f7f90569d80) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f7f905b5a20) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f7f906a73c0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f7f906a7360) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f7f906a7660) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f7f903aec00) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f7f903aecc0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f7f903aec60) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f7f903aed20) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f7f903aeba0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f7f9012a000) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f7f9016c660) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f7f9016c600) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f7f9016c780) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f7f9016c720) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f7f90237900) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f7f902a9540) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f7f8ff79360) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f7f8ff6abc8) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f7f8ff79300) 0 + primary-for QAbstractItemModel (0x0x7f7f8ff6abc8) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f7f90037720) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f7f8ffbb208) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f7f8ffbb270) 0 + primary-for QAbstractTableModel (0x0x7f7f8ffbb208) + QObject (0x0x7f7f900376c0) 0 + primary-for QAbstractItemModel (0x0x7f7f8ffbb270) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f7f900378a0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f7f8ffbb2d8) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f7f8ffbb340) 0 + primary-for QAbstractListModel (0x0x7f7f8ffbb2d8) + QObject (0x0x7f7f90037840) 0 + primary-for QAbstractItemModel (0x0x7f7f8ffbb340) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f7f900a1000) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f7f900a10c0) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f7f8ffbb410) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f7f8ffbb478) 0 + primary-for QAbstractProxyModel (0x0x7f7f8ffbb410) + QObject (0x0x7f7f900a1060) 0 + primary-for QAbstractItemModel (0x0x7f7f8ffbb478) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f7f900a1300) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f7f8ffbb4e0) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7f7f900a12a0) 0 + primary-for QAbstractState (0x0x7f7f8ffbb4e0) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f7f900a1540) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f7f8ffbb548) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7f7f900a14e0) 0 + primary-for QAbstractTransition (0x0x7f7f8ffbb548) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f7f900a1840) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f7f8ffbb5b0) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f7f8ffbb618) 0 + primary-for QAnimationGroup (0x0x7f7f8ffbb5b0) + QObject (0x0x7f7f900a17e0) 0 + primary-for QAbstractAnimation (0x0x7f7f8ffbb618) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f7f8fd21ba0) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f7f8fd5ff60) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f7f8fddf420) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f7f8fe2b7e0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f7f8fe20b60) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f7f8fe2b780) 0 + primary-for QIODevice (0x0x7f7f8fe20b60) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f7f8fe71180) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f7f8fe20c98) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f7f8fe20d00) 0 + primary-for QBuffer (0x0x7f7f8fe20c98) + QObject (0x0x7f7f8fe71120) 0 + primary-for QIODevice (0x0x7f7f8fe20d00) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f7f8fe71420) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f7f8fe713c0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f7f8fe715a0) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f7f8fe71540) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f7f8febe480) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f7f8ff03420) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f7f8fb53cc0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f7f8fbc4960) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f7f8fbc49c0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f7f8fbc4900) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f7f8fcb10c0) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f7f8f9ae660) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f7f8f9aef00) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f7f8fa89a20) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f7f8fad36c0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f7f8fad3840) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f7f8f78d480) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f7f8f78d420) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f7f8f52a4e0) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f7f8f52a5a0) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f7f8f5ac8a0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f7f8f5e0060) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f7f8f665f00) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f7f8f6cbcc0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f7f8f34c720) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f7f8f4976c0) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7f7f8f518240) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f7f8f518300) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f7f8ef97300) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f7f8f005d20) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f7f8f005d80) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f7f8f005cc0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f7f8f118780) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f7f8f1187e0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f7f8f118720) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f7f8ef11f00) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f7f8ebc7ea0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f7f8ec04c00) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f7f8ec87d20) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f7f8ec87f00) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f7f8e99f4e0) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f7f8e9f0c00) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f7f8e9e2ea0) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f7f8ea35000) 0 + primary-for QTimerEvent (0x0x7f7f8e9e2ea0) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f7f8e9e2f08) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f7f8ea350c0) 0 + primary-for QChildEvent (0x0x7f7f8e9e2f08) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f7f8ea42478) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f7f8ea35720) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f7f8ea42478) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f7f8ea424e0) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f7f8ea357e0) 0 + primary-for QDeferredDeleteEvent (0x0x7f7f8ea424e0) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f7f8ea35900) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f7f8ea42548) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f7f8ea358a0) 0 + primary-for QCoreApplication (0x0x7f7f8ea42548) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f7f8ea35b40) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f7f8ea35cc0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f7f8ea425b0) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f7f8ea42618) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f7f8ea425b0) + QObject (0x0x7f7f8ea35c60) 0 + primary-for QAbstractItemModel (0x0x7f7f8ea42618) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f7f8ea35ea0) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f7f8eaa4000) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f7f8eaa4180) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f7f8eaf88a0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f7f8e72a000) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f7f8e84ad20) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f7f8e852820) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f7f8e852888) 0 + primary-for QFileDevice (0x0x7f7f8e852820) + QObject (0x0x7f7f8e84acc0) 0 + primary-for QIODevice (0x0x7f7f8e852888) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f7f8e881660) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f7f8e8529c0) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f7f8e852a28) 0 + primary-for QFile (0x0x7f7f8e8529c0) + QIODevice (0x0x7f7f8e852a90) 0 + primary-for QFileDevice (0x0x7f7f8e852a28) + QObject (0x0x7f7f8e881600) 0 + primary-for QIODevice (0x0x7f7f8e852a90) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f7f8e881cc0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f7f8e4f70c0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f7f8e59e420) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f7f8e59eba0) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f7f8e6d8cc0) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f7f8e69fd00) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7f7f8e69fd68) 0 + primary-for QEventTransition (0x0x7f7f8e69fd00) + QObject (0x0x7f7f8e6d8c60) 0 + primary-for QAbstractTransition (0x0x7f7f8e69fd68) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f7f8e69fdd0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f7f8e6d8ea0) 0 nearly-empty + primary-for QException (0x0x7f7f8e69fdd0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f7f8e69fe38) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f7f8e69fea0) 0 nearly-empty + primary-for QUnhandledException (0x0x7f7f8e69fe38) + std::exception (0x0x7f7f8e6d8f00) 0 nearly-empty + primary-for QException (0x0x7f7f8e69fea0) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f7f8e6d8f60) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f7f8e314060) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f7f8e3140c0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f7f8e314300) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f7f8e69ff08) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f7f8e3142a0) 0 + primary-for QFileSelector (0x0x7f7f8e69ff08) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f7f8e314540) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f7f8e69ff70) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f7f8e3144e0) 0 + primary-for QFileSystemWatcher (0x0x7f7f8e69ff70) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f7f8e314780) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f7f8e341000) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7f7f8e341068) 0 + primary-for QFinalState (0x0x7f7f8e341000) + QObject (0x0x7f7f8e314720) 0 + primary-for QAbstractState (0x0x7f7f8e341068) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f7f8e314960) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f7f8e314c00) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f7f8e341138) 0 + QBasicMutex (0x0x7f7f8e3bb8a0) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f7f8e3bbae0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f7f8e3bbf60) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f7f8e3e35a0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f7f8e3e3780) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f7f8e457f60) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f7f8e1172a0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f7f8e49e750) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f7f8e117240) 0 + primary-for QFutureWatcherBase (0x0x7f7f8e49e750) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f7f8e142600) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f7f8e49ef70) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7f7f8e14f000) 0 + primary-for QHistoryState (0x0x7f7f8e49ef70) + QObject (0x0x7f7f8e1425a0) 0 + primary-for QAbstractState (0x0x7f7f8e14f000) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f7f8e142900) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f7f8e14f068) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f7f8e14f0d0) 0 + primary-for QIdentityProxyModel (0x0x7f7f8e14f068) + QAbstractItemModel (0x0x7f7f8e14f138) 0 + primary-for QAbstractProxyModel (0x0x7f7f8e14f0d0) + QObject (0x0x7f7f8e1428a0) 0 + primary-for QAbstractItemModel (0x0x7f7f8e14f138) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f7f8e142ae0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f7f8e229420) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f7f8e221a90) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f7f8e2293c0) 0 + primary-for QItemSelectionModel (0x0x7f7f8e221a90) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f7f8e221c30) 0 + QList (0x0x7f7f8e221c98) 0 + QListSpecialMethods (0x0x7f7f8e229f00) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f7f8e2d2840) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f7f8e027a20) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f7f8e06f9c0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f7f8e06fc60) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f7f8dce5000) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f7f8dce5060) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f7f8e0bef60) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f7f8ddedf00) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f7f8ddedf60) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f7f8de59780) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f7f8de597e0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f7f8de59720) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f7f8db6ab40) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f7f8db67d00) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f7f8db6aae0) 0 + primary-for QLibrary (0x0x7f7f8db67d00) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f7f8dbb19c0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f7f8dbb14e0) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f7f8dc6d120) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f7f8dc6d180) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f7f8dcbdf60) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f7f8d956120) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f7f8d9be4e0) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f7f8da36780) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f7f8dada900) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f7f8dadab40) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f7f8dadaae0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f7f8dadaf60) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f7f8d790ea0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f7f8d5fc6c0) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f7f8d5fc720) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f7f8d666f60) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f7f8d6c81e0) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f7f8d6c8300) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f7f8d3078a0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f7f8d306958) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f7f8d307840) 0 + primary-for QMimeData (0x0x7f7f8d306958) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f7f8d307a80) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f7f8d362ba0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f7f8d362c60) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f7f8d364c98) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f7f8d362c00) 0 + primary-for QObjectCleanupHandler (0x0x7f7f8d364c98) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f7f8d362d80) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f7f8d3f1540) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f7f8d3f0548) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f7f8d3f05b0) 0 + primary-for QParallelAnimationGroup (0x0x7f7f8d3f0548) + QAbstractAnimation (0x0x7f7f8d3f0618) 0 + primary-for QAnimationGroup (0x0x7f7f8d3f05b0) + QObject (0x0x7f7f8d3f14e0) 0 + primary-for QAbstractAnimation (0x0x7f7f8d3f0618) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f7f8d3f1780) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f7f8d3f0680) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f7f8d3f06e8) 0 + primary-for QPauseAnimation (0x0x7f7f8d3f0680) + QObject (0x0x7f7f8d3f1720) 0 + primary-for QAbstractAnimation (0x0x7f7f8d3f06e8) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f7f8d4273c0) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f7f8d468540) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f7f8d460a28) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f7f8d4684e0) 0 + primary-for QPluginLoader (0x0x7f7f8d460a28) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f7f8d468660) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f7f8d4c4cc0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f7f8d4ce680) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f7f8d4ce6e8) 0 + primary-for QProcess (0x0x7f7f8d4ce680) + QObject (0x0x7f7f8d4c4c60) 0 + primary-for QIODevice (0x0x7f7f8d4ce6e8) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f7f8d1033c0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f7f8d4ce750) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f7f8d4ce7b8) 0 + primary-for QVariantAnimation (0x0x7f7f8d4ce750) + QObject (0x0x7f7f8d103360) 0 + primary-for QAbstractAnimation (0x0x7f7f8d4ce7b8) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f7f8d103660) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f7f8d4ce888) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f7f8d4ce8f0) 0 + primary-for QPropertyAnimation (0x0x7f7f8d4ce888) + QAbstractAnimation (0x0x7f7f8d4ce958) 0 + primary-for QVariantAnimation (0x0x7f7f8d4ce8f0) + QObject (0x0x7f7f8d103600) 0 + primary-for QAbstractAnimation (0x0x7f7f8d4ce958) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f7f8d183d80) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f7f8d285ae0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f7f8d285a80) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f7f8d083840) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f7f8ceb04e0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f7f8ceb0480) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f7f8caac618) 0 + QRandomGenerator (0x0x7f7f8cad4000) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f7f8cad4ba0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f7f8cad4e40) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f7f8cb5a360) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f7f8cb5a840) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f7f8cbc9660) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f7f8cc3f600) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f7f8c8f5660) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f7f8c9b4780) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f7f8c9b4a20) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f7f8c9f1000) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f7f8c9f1068) 0 + primary-for QSaveFile (0x0x7f7f8c9f1000) + QIODevice (0x0x7f7f8c9f10d0) 0 + primary-for QFileDevice (0x0x7f7f8c9f1068) + QObject (0x0x7f7f8c9b49c0) 0 + primary-for QIODevice (0x0x7f7f8c9f10d0) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f7f8ca0b060) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f7f8ca0b1e0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f7f8c715480) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f7f8c70ddd0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f7f8c70de38) 0 + primary-for QSequentialAnimationGroup (0x0x7f7f8c70ddd0) + QAbstractAnimation (0x0x7f7f8c70dea0) 0 + primary-for QAnimationGroup (0x0x7f7f8c70de38) + QObject (0x0x7f7f8c715420) 0 + primary-for QAbstractAnimation (0x0x7f7f8c70dea0) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f7f8c7156c0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f7f8c70df08) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f7f8c715660) 0 + primary-for QSettings (0x0x7f7f8c70df08) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f7f8c715b40) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f7f8c70df70) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f7f8c715ae0) 0 + primary-for QSharedMemory (0x0x7f7f8c70df70) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f7f8c715d80) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f7f8c75b000) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f7f8c715d20) 0 + primary-for QSignalMapper (0x0x7f7f8c75b000) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f7f8c770000) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f7f8c75b068) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7f7f8c75b0d0) 0 + primary-for QSignalTransition (0x0x7f7f8c75b068) + QObject (0x0x7f7f8c715f60) 0 + primary-for QAbstractTransition (0x0x7f7f8c75b0d0) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f7f8c7702a0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f7f8c75b138) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f7f8c770240) 0 + primary-for QSocketNotifier (0x0x7f7f8c75b138) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f7f8c7704e0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f7f8c75b1a0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f7f8c75b208) 0 + primary-for QSortFilterProxyModel (0x0x7f7f8c75b1a0) + QAbstractItemModel (0x0x7f7f8c75b270) 0 + primary-for QAbstractProxyModel (0x0x7f7f8c75b208) + QObject (0x0x7f7f8c770480) 0 + primary-for QAbstractItemModel (0x0x7f7f8c75b270) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f7f8c770900) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f7f8c7e4240) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f7f8c75b410) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7f7f8c75b478) 0 + primary-for QState (0x0x7f7f8c75b410) + QObject (0x0x7f7f8c7e41e0) 0 + primary-for QAbstractState (0x0x7f7f8c75b478) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f7f8c7e46c0) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f7f8c75b618) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7f7f8c7e4720) 0 + primary-for QStateMachine::SignalEvent (0x0x7f7f8c75b618) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f7f8c75b680) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7f7f8c7e4780) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f7f8c75b680) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f7f8c75b4e0) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7f7f8c75b548) 0 + primary-for QStateMachine (0x0x7f7f8c75b4e0) + QAbstractState (0x0x7f7f8c75b5b0) 0 + primary-for QState (0x0x7f7f8c75b548) + QObject (0x0x7f7f8c7e4660) 0 + primary-for QAbstractState (0x0x7f7f8c75b5b0) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f7f8c7e4b40) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f7f8c499b40) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f7f8c51eea0) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f7f8c5227b8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f7f8c522820) 0 + primary-for QStringListModel (0x0x7f7f8c5227b8) + QAbstractItemModel (0x0x7f7f8c522888) 0 + primary-for QAbstractListModel (0x0x7f7f8c522820) + QObject (0x0x7f7f8c51ee40) 0 + primary-for QAbstractItemModel (0x0x7f7f8c522888) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f7f8c55b000) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f7f8c55b0c0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f7f8c55b1e0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f7f8c5228f0) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f7f8c522958) 0 + primary-for QTemporaryFile (0x0x7f7f8c5228f0) + QFileDevice (0x0x7f7f8c5229c0) 0 + primary-for QFile (0x0x7f7f8c522958) + QIODevice (0x0x7f7f8c522a28) 0 + primary-for QFileDevice (0x0x7f7f8c5229c0) + QObject (0x0x7f7f8c55b180) 0 + primary-for QIODevice (0x0x7f7f8c522a28) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f7f8c55b540) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f7f8c55bd80) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f7f8c55bd20) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f7f8c5e1780) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f7f8c5e1960) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f7f8c5e1b40) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f7f8c522c30) 0 + std::__mutex_base (0x0x7f7f8c5e1ba0) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f7f8c5e1d80) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f7f8c5e1de0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f7f8c5e1e40) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f7f8c62b8a0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f7f8c522c98) 0 + std::__recursive_mutex_base (0x0x7f7f8c62b900) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f7f8c612b60) 0 + std::__mutex_base (0x0x7f7f8c62bcc0) 0 + std::__timed_mutex_impl (0x0x7f7f8c62bd20) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f7f8c612ee0) 0 + std::__recursive_mutex_base (0x0x7f7f8c1e40c0) 0 + std::__timed_mutex_impl (0x0x7f7f8c1e4120) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f7f8c1e4840) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f7f8c522dd0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f7f8c1e4d80) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f7f8c522dd0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f7f8c522e38) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f7f8c1e4ea0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f7f8c522e38) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f7f8c522ea0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f7f8c21e000) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f7f8c522ea0) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f7f8c522f70) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f7f8c21e120) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f7f8c522f70) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f7f8c245180) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f7f8c245480) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f7f8c245780) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f7f8c245ae0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f7f8c2df000) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f7f8c2becc0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f7f8c2df000) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f7f8c324c60) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f7f8c3510c0) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f7f8c066f00) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f7f8c0c53c0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f7f8c0c5420) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f7f8c0c5360) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f7f8bf557e0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f7f8bf55ba0) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f7f8bf55c00) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f7f8bce9f00) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f7f8bcf5888) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f7f8bcf58f0) 0 + primary-for std::future_error (0x0x7f7f8bcf5888) + std::exception (0x0x7f7f8bd15660) 0 nearly-empty + primary-for std::logic_error (0x0x7f7f8bcf58f0) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f7f8bd15d80) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f7f8bd15d20) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f7f8bb194e0) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f7f8bb1e138) 0 + std::__at_thread_exit_elt (0x0x7f7f8bb195a0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f7f8bd15f00) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f7f8bd15cc0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f7f8b27be38) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f7f8b2cc5a0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f7f8b27be38) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f7f8b2cce40) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f7f8b2ea1a0) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f7f8b2ccde0) 0 + primary-for QThread (0x0x7f7f8b2ea1a0) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f7f8b308240) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f7f8b2ea208) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f7f8b3081e0) 0 + primary-for QThreadPool (0x0x7f7f8b2ea208) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f7f8b308420) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f7f8b308ae0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f7f8b2ea270) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f7f8b308a80) 0 + primary-for QTimeLine (0x0x7f7f8b2ea270) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f7f8b308d20) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f7f8b2ea2d8) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f7f8b308cc0) 0 + primary-for QTimer (0x0x7f7f8b2ea2d8) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f7f8b3826c0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f7f8b382660) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f7f8b020780) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f7f8b01d9c0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f7f8b020720) 0 + primary-for QTranslator (0x0x7f7f8b01d9c0) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f7f8b0209c0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f7f8b01da28) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f7f8b01da90) 0 + primary-for QTransposeProxyModel (0x0x7f7f8b01da28) + QAbstractItemModel (0x0x7f7f8b01daf8) 0 + primary-for QAbstractProxyModel (0x0x7f7f8b01da90) + QObject (0x0x7f7f8b020960) 0 + primary-for QAbstractItemModel (0x0x7f7f8b01daf8) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f7f8b020ba0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f7f8b0c55a0) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f7f8b0c56c0) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f7f8b154a80) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f7f8b1cd1a0) 0 + QVector (0x0x7f7f8b1cf1e0) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f7f8b1cf4e0) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f7f8ae55480) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f7f8aeb2480) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f7f8af1d540) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f7f8af1d5a0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f7f8af7b480) 0 + +Class QNetworkRequest + size=8 align=8 + base size=8 base align=8 +QNetworkRequest (0x0x7f7f8af7b660) 0 + +Class QNetworkCacheMetaData + size=8 align=8 + base size=8 base align=8 +QNetworkCacheMetaData (0x0x7f7f8ac05000) 0 + +Class QAbstractNetworkCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractNetworkCache::QPrivateSignal (0x0x7f7f8ac595a0) 0 empty + +Vtable for QAbstractNetworkCache +QAbstractNetworkCache::_ZTV21QAbstractNetworkCache: 22 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractNetworkCache) +16 (int (*)(...))QAbstractNetworkCache::metaObject +24 (int (*)(...))QAbstractNetworkCache::qt_metacast +32 (int (*)(...))QAbstractNetworkCache::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNetworkCache + size=16 align=8 + base size=16 base align=8 +QAbstractNetworkCache (0x0x7f7f8ac49a28) 0 + vptr=((& QAbstractNetworkCache::_ZTV21QAbstractNetworkCache) + 16) + QObject (0x0x7f7f8ac59540) 0 + primary-for QAbstractNetworkCache (0x0x7f7f8ac49a28) + +Class QAbstractSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSocket::QPrivateSignal (0x0x7f7f8ac597e0) 0 empty + +Vtable for QAbstractSocket +QAbstractSocket::_ZTV15QAbstractSocket: 41 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSocket) +16 (int (*)(...))QAbstractSocket::metaObject +24 (int (*)(...))QAbstractSocket::qt_metacast +32 (int (*)(...))QAbstractSocket::qt_metacall +40 (int (*)(...))QAbstractSocket::~QAbstractSocket +48 (int (*)(...))QAbstractSocket::~QAbstractSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QAbstractSocket + size=16 align=8 + base size=16 base align=8 +QAbstractSocket (0x0x7f7f8ac49a90) 0 + vptr=((& QAbstractSocket::_ZTV15QAbstractSocket) + 16) + QIODevice (0x0x7f7f8ac49af8) 0 + primary-for QAbstractSocket (0x0x7f7f8ac49a90) + QObject (0x0x7f7f8ac59780) 0 + primary-for QIODevice (0x0x7f7f8ac49af8) + +Class QAuthenticator + size=8 align=8 + base size=8 base align=8 +QAuthenticator (0x0x7f7f8acb8f00) 0 + +Class QDnsDomainNameRecord + size=8 align=8 + base size=8 base align=8 +QDnsDomainNameRecord (0x0x7f7f8ad0c000) 0 + +Class QDnsHostAddressRecord + size=8 align=8 + base size=8 base align=8 +QDnsHostAddressRecord (0x0x7f7f8ad5a180) 0 + +Class QDnsMailExchangeRecord + size=8 align=8 + base size=8 base align=8 +QDnsMailExchangeRecord (0x0x7f7f8ada7300) 0 + +Class QDnsServiceRecord + size=8 align=8 + base size=8 base align=8 +QDnsServiceRecord (0x0x7f7f8a8f63c0) 0 + +Class QDnsTextRecord + size=8 align=8 + base size=8 base align=8 +QDnsTextRecord (0x0x7f7f8a93e660) 0 + +Class QDnsLookup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDnsLookup::QPrivateSignal (0x0x7f7f8a97fba0) 0 empty + +Vtable for QDnsLookup +QDnsLookup::_ZTV10QDnsLookup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDnsLookup) +16 (int (*)(...))QDnsLookup::metaObject +24 (int (*)(...))QDnsLookup::qt_metacast +32 (int (*)(...))QDnsLookup::qt_metacall +40 (int (*)(...))QDnsLookup::~QDnsLookup +48 (int (*)(...))QDnsLookup::~QDnsLookup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDnsLookup + size=16 align=8 + base size=16 base align=8 +QDnsLookup (0x0x7f7f8a9930d0) 0 + vptr=((& QDnsLookup::_ZTV10QDnsLookup) + 16) + QObject (0x0x7f7f8a97fb40) 0 + primary-for QDnsLookup (0x0x7f7f8a9930d0) + +Class QTcpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpSocket::QPrivateSignal (0x0x7f7f8a97ff60) 0 empty + +Vtable for QTcpSocket +QTcpSocket::_ZTV10QTcpSocket: 41 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpSocket) +16 (int (*)(...))QTcpSocket::metaObject +24 (int (*)(...))QTcpSocket::qt_metacast +32 (int (*)(...))QTcpSocket::qt_metacall +40 (int (*)(...))QTcpSocket::~QTcpSocket +48 (int (*)(...))QTcpSocket::~QTcpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QTcpSocket + size=16 align=8 + base size=16 base align=8 +QTcpSocket (0x0x7f7f8a993138) 0 + vptr=((& QTcpSocket::_ZTV10QTcpSocket) + 16) + QAbstractSocket (0x0x7f7f8a9931a0) 0 + primary-for QTcpSocket (0x0x7f7f8a993138) + QIODevice (0x0x7f7f8a993208) 0 + primary-for QAbstractSocket (0x0x7f7f8a9931a0) + QObject (0x0x7f7f8a97ff00) 0 + primary-for QIODevice (0x0x7f7f8a993208) + +Class QSslCertificate + size=8 align=8 + base size=8 base align=8 +QSslCertificate (0x0x7f7f8a9bd840) 0 + +Class QSslError + size=8 align=8 + base size=8 base align=8 +QSslError (0x0x7f7f8aa55000) 0 + +Class QSslSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSslSocket::QPrivateSignal (0x0x7f7f8a7201e0) 0 empty + +Vtable for QSslSocket +QSslSocket::_ZTV10QSslSocket: 41 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSslSocket) +16 (int (*)(...))QSslSocket::metaObject +24 (int (*)(...))QSslSocket::qt_metacast +32 (int (*)(...))QSslSocket::qt_metacall +40 (int (*)(...))QSslSocket::~QSslSocket +48 (int (*)(...))QSslSocket::~QSslSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QSslSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QSslSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QSslSocket::bytesAvailable +184 (int (*)(...))QSslSocket::bytesToWrite +192 (int (*)(...))QSslSocket::canReadLine +200 (int (*)(...))QSslSocket::waitForReadyRead +208 (int (*)(...))QSslSocket::waitForBytesWritten +216 (int (*)(...))QSslSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QSslSocket::writeData +240 (int (*)(...))QSslSocket::resume +248 (int (*)(...))QSslSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QSslSocket::disconnectFromHost +272 (int (*)(...))QSslSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QSslSocket::setSocketDescriptor +296 (int (*)(...))QSslSocket::setSocketOption +304 (int (*)(...))QSslSocket::socketOption +312 (int (*)(...))QSslSocket::waitForConnected +320 (int (*)(...))QSslSocket::waitForDisconnected + +Class QSslSocket + size=16 align=8 + base size=16 base align=8 +QSslSocket (0x0x7f7f8a70b548) 0 + vptr=((& QSslSocket::_ZTV10QSslSocket) + 16) + QTcpSocket (0x0x7f7f8a70b5b0) 0 + primary-for QSslSocket (0x0x7f7f8a70b548) + QAbstractSocket (0x0x7f7f8a70b618) 0 + primary-for QTcpSocket (0x0x7f7f8a70b5b0) + QIODevice (0x0x7f7f8a70b680) 0 + primary-for QAbstractSocket (0x0x7f7f8a70b618) + QObject (0x0x7f7f8a720180) 0 + primary-for QIODevice (0x0x7f7f8a70b680) + +Class QDtlsClientVerifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDtlsClientVerifier::QPrivateSignal (0x0x7f7f8a720420) 0 empty + +Class QDtlsClientVerifier::GeneratorParameters + size=16 align=8 + base size=16 base align=8 +QDtlsClientVerifier::GeneratorParameters (0x0x7f7f8a720480) 0 + +Vtable for QDtlsClientVerifier +QDtlsClientVerifier::_ZTV19QDtlsClientVerifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QDtlsClientVerifier) +16 (int (*)(...))QDtlsClientVerifier::metaObject +24 (int (*)(...))QDtlsClientVerifier::qt_metacast +32 (int (*)(...))QDtlsClientVerifier::qt_metacall +40 (int (*)(...))QDtlsClientVerifier::~QDtlsClientVerifier +48 (int (*)(...))QDtlsClientVerifier::~QDtlsClientVerifier +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDtlsClientVerifier + size=16 align=8 + base size=16 base align=8 +QDtlsClientVerifier (0x0x7f7f8a70b6e8) 0 + vptr=((& QDtlsClientVerifier::_ZTV19QDtlsClientVerifier) + 16) + QObject (0x0x7f7f8a7203c0) 0 + primary-for QDtlsClientVerifier (0x0x7f7f8a70b6e8) + +Class QDtls::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDtls::QPrivateSignal (0x0x7f7f8a7206c0) 0 empty + +Vtable for QDtls +QDtls::_ZTV5QDtls: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDtls) +16 (int (*)(...))QDtls::metaObject +24 (int (*)(...))QDtls::qt_metacast +32 (int (*)(...))QDtls::qt_metacall +40 (int (*)(...))QDtls::~QDtls +48 (int (*)(...))QDtls::~QDtls +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDtls + size=16 align=8 + base size=16 base align=8 +QDtls (0x0x7f7f8a70b750) 0 + vptr=((& QDtls::_ZTV5QDtls) + 16) + QObject (0x0x7f7f8a720660) 0 + primary-for QDtls (0x0x7f7f8a70b750) + +Class QIPv6Address + size=16 align=1 + base size=16 base align=1 +QIPv6Address (0x0x7f7f8a720900) 0 + +Class QHostAddress + size=8 align=8 + base size=8 base align=8 +QHostAddress (0x0x7f7f8a720a20) 0 + +Class QHostInfo + size=8 align=8 + base size=8 base align=8 +QHostInfo (0x0x7f7f8a81c7e0) 0 + +Class QHstsPolicy + size=8 align=8 + base size=8 base align=8 +QHstsPolicy (0x0x7f7f8a4ed600) 0 + +Class QHttpPart + size=8 align=8 + base size=8 base align=8 +QHttpPart (0x0x7f7f8a582240) 0 + +Class QHttpMultiPart::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHttpMultiPart::QPrivateSignal (0x0x7f7f8a5d13c0) 0 empty + +Vtable for QHttpMultiPart +QHttpMultiPart::_ZTV14QHttpMultiPart: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QHttpMultiPart) +16 (int (*)(...))QHttpMultiPart::metaObject +24 (int (*)(...))QHttpMultiPart::qt_metacast +32 (int (*)(...))QHttpMultiPart::qt_metacall +40 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +48 (int (*)(...))QHttpMultiPart::~QHttpMultiPart +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QHttpMultiPart + size=16 align=8 + base size=16 base align=8 +QHttpMultiPart (0x0x7f7f8a5cd548) 0 + vptr=((& QHttpMultiPart::_ZTV14QHttpMultiPart) + 16) + QObject (0x0x7f7f8a5d1360) 0 + primary-for QHttpMultiPart (0x0x7f7f8a5cd548) + +Class QLocalServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalServer::QPrivateSignal (0x0x7f7f8a5d1600) 0 empty + +Vtable for QLocalServer +QLocalServer::_ZTV12QLocalServer: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalServer) +16 (int (*)(...))QLocalServer::metaObject +24 (int (*)(...))QLocalServer::qt_metacast +32 (int (*)(...))QLocalServer::qt_metacall +40 (int (*)(...))QLocalServer::~QLocalServer +48 (int (*)(...))QLocalServer::~QLocalServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalServer::hasPendingConnections +120 (int (*)(...))QLocalServer::nextPendingConnection +128 (int (*)(...))QLocalServer::incomingConnection + +Class QLocalServer + size=16 align=8 + base size=16 base align=8 +QLocalServer (0x0x7f7f8a5cd5b0) 0 + vptr=((& QLocalServer::_ZTV12QLocalServer) + 16) + QObject (0x0x7f7f8a5d15a0) 0 + primary-for QLocalServer (0x0x7f7f8a5cd5b0) + +Class QLocalSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLocalSocket::QPrivateSignal (0x0x7f7f8a61f0c0) 0 empty + +Vtable for QLocalSocket +QLocalSocket::_ZTV12QLocalSocket: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QLocalSocket) +16 (int (*)(...))QLocalSocket::metaObject +24 (int (*)(...))QLocalSocket::qt_metacast +32 (int (*)(...))QLocalSocket::qt_metacall +40 (int (*)(...))QLocalSocket::~QLocalSocket +48 (int (*)(...))QLocalSocket::~QLocalSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLocalSocket::isSequential +120 (int (*)(...))QLocalSocket::open +128 (int (*)(...))QLocalSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QLocalSocket::bytesAvailable +184 (int (*)(...))QLocalSocket::bytesToWrite +192 (int (*)(...))QLocalSocket::canReadLine +200 (int (*)(...))QLocalSocket::waitForReadyRead +208 (int (*)(...))QLocalSocket::waitForBytesWritten +216 (int (*)(...))QLocalSocket::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QLocalSocket::writeData + +Class QLocalSocket + size=16 align=8 + base size=16 base align=8 +QLocalSocket (0x0x7f7f8a5cd750) 0 + vptr=((& QLocalSocket::_ZTV12QLocalSocket) + 16) + QIODevice (0x0x7f7f8a5cd7b8) 0 + primary-for QLocalSocket (0x0x7f7f8a5cd750) + QObject (0x0x7f7f8a61f060) 0 + primary-for QIODevice (0x0x7f7f8a5cd7b8) + +Class QSslConfiguration + size=8 align=8 + base size=8 base align=8 +QSslConfiguration (0x0x7f7f8a61f2a0) 0 + +Class QSslPreSharedKeyAuthenticator + size=8 align=8 + base size=8 base align=8 +QSslPreSharedKeyAuthenticator (0x0x7f7f8a6b2b40) 0 + +Class QNetworkAccessManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkAccessManager::QPrivateSignal (0x0x7f7f8a32e120) 0 empty + +Vtable for QNetworkAccessManager +QNetworkAccessManager::_ZTV21QNetworkAccessManager: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QNetworkAccessManager) +16 (int (*)(...))QNetworkAccessManager::metaObject +24 (int (*)(...))QNetworkAccessManager::qt_metacast +32 (int (*)(...))QNetworkAccessManager::qt_metacall +40 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +48 (int (*)(...))QNetworkAccessManager::~QNetworkAccessManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkAccessManager::createRequest + +Class QNetworkAccessManager + size=16 align=8 + base size=16 base align=8 +QNetworkAccessManager (0x0x7f7f8a3187b8) 0 + vptr=((& QNetworkAccessManager::_ZTV21QNetworkAccessManager) + 16) + QObject (0x0x7f7f8a32e0c0) 0 + primary-for QNetworkAccessManager (0x0x7f7f8a3187b8) + +Class QNetworkConfiguration + size=8 align=8 + base size=8 base align=8 +QNetworkConfiguration (0x0x7f7f8a32e3c0) 0 + +Class QNetworkConfigurationManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkConfigurationManager::QPrivateSignal (0x0x7f7f8a3a07e0) 0 empty + +Vtable for QNetworkConfigurationManager +QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QNetworkConfigurationManager) +16 (int (*)(...))QNetworkConfigurationManager::metaObject +24 (int (*)(...))QNetworkConfigurationManager::qt_metacast +32 (int (*)(...))QNetworkConfigurationManager::qt_metacall +40 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +48 (int (*)(...))QNetworkConfigurationManager::~QNetworkConfigurationManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QNetworkConfigurationManager + size=16 align=8 + base size=16 base align=8 +QNetworkConfigurationManager (0x0x7f7f8a391bc8) 0 + vptr=((& QNetworkConfigurationManager::_ZTV28QNetworkConfigurationManager) + 16) + QObject (0x0x7f7f8a3a0780) 0 + primary-for QNetworkConfigurationManager (0x0x7f7f8a391bc8) + +Class QNetworkCookie + size=8 align=8 + base size=8 base align=8 +QNetworkCookie (0x0x7f7f8a3fa360) 0 + +Class QNetworkCookieJar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkCookieJar::QPrivateSignal (0x0x7f7f8a447e40) 0 empty + +Vtable for QNetworkCookieJar +QNetworkCookieJar::_ZTV17QNetworkCookieJar: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkCookieJar) +16 (int (*)(...))QNetworkCookieJar::metaObject +24 (int (*)(...))QNetworkCookieJar::qt_metacast +32 (int (*)(...))QNetworkCookieJar::qt_metacall +40 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +48 (int (*)(...))QNetworkCookieJar::~QNetworkCookieJar +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkCookieJar::cookiesForUrl +120 (int (*)(...))QNetworkCookieJar::setCookiesFromUrl +128 (int (*)(...))QNetworkCookieJar::insertCookie +136 (int (*)(...))QNetworkCookieJar::updateCookie +144 (int (*)(...))QNetworkCookieJar::deleteCookie +152 (int (*)(...))QNetworkCookieJar::validateCookie + +Class QNetworkCookieJar + size=16 align=8 + base size=16 base align=8 +QNetworkCookieJar (0x0x7f7f8a454618) 0 + vptr=((& QNetworkCookieJar::_ZTV17QNetworkCookieJar) + 16) + QObject (0x0x7f7f8a447de0) 0 + primary-for QNetworkCookieJar (0x0x7f7f8a454618) + +Class QNetworkDatagram + size=8 align=8 + base size=8 base align=8 +QNetworkDatagram (0x0x7f7f8a475060) 0 + +Class QNetworkDiskCache::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkDiskCache::QPrivateSignal (0x0x7f7f8a127ba0) 0 empty + +Vtable for QNetworkDiskCache +QNetworkDiskCache::_ZTV17QNetworkDiskCache: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QNetworkDiskCache) +16 (int (*)(...))QNetworkDiskCache::metaObject +24 (int (*)(...))QNetworkDiskCache::qt_metacast +32 (int (*)(...))QNetworkDiskCache::qt_metacall +40 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +48 (int (*)(...))QNetworkDiskCache::~QNetworkDiskCache +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkDiskCache::metaData +120 (int (*)(...))QNetworkDiskCache::updateMetaData +128 (int (*)(...))QNetworkDiskCache::data +136 (int (*)(...))QNetworkDiskCache::remove +144 (int (*)(...))QNetworkDiskCache::cacheSize +152 (int (*)(...))QNetworkDiskCache::prepare +160 (int (*)(...))QNetworkDiskCache::insert +168 (int (*)(...))QNetworkDiskCache::clear +176 (int (*)(...))QNetworkDiskCache::expire + +Class QNetworkDiskCache + size=16 align=8 + base size=16 base align=8 +QNetworkDiskCache (0x0x7f7f8a12e4e0) 0 + vptr=((& QNetworkDiskCache::_ZTV17QNetworkDiskCache) + 16) + QAbstractNetworkCache (0x0x7f7f8a12e548) 0 + primary-for QNetworkDiskCache (0x0x7f7f8a12e4e0) + QObject (0x0x7f7f8a127b40) 0 + primary-for QAbstractNetworkCache (0x0x7f7f8a12e548) + +Class QNetworkAddressEntry + size=8 align=8 + base size=8 base align=8 +QNetworkAddressEntry (0x0x7f7f8a127d80) 0 + +Class QNetworkInterface + size=8 align=8 + base size=8 base align=8 +QNetworkInterface (0x0x7f7f8a1f9d20) 0 + +Class QNetworkProxyQuery + size=8 align=8 + base size=8 base align=8 +QNetworkProxyQuery (0x0x7f7f8a278c00) 0 + +Class QNetworkProxy + size=8 align=8 + base size=8 base align=8 +QNetworkProxy (0x0x7f7f89f08120) 0 + +Vtable for QNetworkProxyFactory +QNetworkProxyFactory::_ZTV20QNetworkProxyFactory: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QNetworkProxyFactory) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QNetworkProxyFactory + size=8 align=8 + base size=8 base align=8 +QNetworkProxyFactory (0x0x7f7f89f5fe40) 0 nearly-empty + vptr=((& QNetworkProxyFactory::_ZTV20QNetworkProxyFactory) + 16) + +Class QNetworkReply::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkReply::QPrivateSignal (0x0x7f7f89fa1120) 0 empty + +Vtable for QNetworkReply +QNetworkReply::_ZTV13QNetworkReply: 36 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QNetworkReply) +16 (int (*)(...))QNetworkReply::metaObject +24 (int (*)(...))QNetworkReply::qt_metacast +32 (int (*)(...))QNetworkReply::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QNetworkReply::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QNetworkReply::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QNetworkReply::writeData +240 (int (*)(...))QNetworkReply::setReadBufferSize +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))QNetworkReply::ignoreSslErrors +264 (int (*)(...))QNetworkReply::sslConfigurationImplementation +272 (int (*)(...))QNetworkReply::setSslConfigurationImplementation +280 (int (*)(...))QNetworkReply::ignoreSslErrorsImplementation + +Class QNetworkReply + size=16 align=8 + base size=16 base align=8 +QNetworkReply (0x0x7f7f89f6c0d0) 0 + vptr=((& QNetworkReply::_ZTV13QNetworkReply) + 16) + QIODevice (0x0x7f7f89f6c138) 0 + primary-for QNetworkReply (0x0x7f7f89f6c0d0) + QObject (0x0x7f7f89fa10c0) 0 + primary-for QIODevice (0x0x7f7f89f6c138) + +Class QNetworkSession::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QNetworkSession::QPrivateSignal (0x0x7f7f89fa1600) 0 empty + +Vtable for QNetworkSession +QNetworkSession::_ZTV15QNetworkSession: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QNetworkSession) +16 (int (*)(...))QNetworkSession::metaObject +24 (int (*)(...))QNetworkSession::qt_metacast +32 (int (*)(...))QNetworkSession::qt_metacall +40 (int (*)(...))QNetworkSession::~QNetworkSession +48 (int (*)(...))QNetworkSession::~QNetworkSession +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QNetworkSession::connectNotify +104 (int (*)(...))QNetworkSession::disconnectNotify + +Class QNetworkSession + size=24 align=8 + base size=24 base align=8 +QNetworkSession (0x0x7f7f89f6c1a0) 0 + vptr=((& QNetworkSession::_ZTV15QNetworkSession) + 16) + QObject (0x0x7f7f89fa15a0) 0 + primary-for QNetworkSession (0x0x7f7f89f6c1a0) + +Class QOcspResponse + size=8 align=8 + base size=8 base align=8 +QOcspResponse (0x0x7f7f89fa1e40) 0 + +Class QTcpServer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTcpServer::QPrivateSignal (0x0x7f7f8a0516c0) 0 empty + +Vtable for QTcpServer +QTcpServer::_ZTV10QTcpServer: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTcpServer) +16 (int (*)(...))QTcpServer::metaObject +24 (int (*)(...))QTcpServer::qt_metacast +32 (int (*)(...))QTcpServer::qt_metacall +40 (int (*)(...))QTcpServer::~QTcpServer +48 (int (*)(...))QTcpServer::~QTcpServer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTcpServer::hasPendingConnections +120 (int (*)(...))QTcpServer::nextPendingConnection +128 (int (*)(...))QTcpServer::incomingConnection + +Class QTcpServer + size=16 align=8 + base size=16 base align=8 +QTcpServer (0x0x7f7f8a04aa28) 0 + vptr=((& QTcpServer::_ZTV10QTcpServer) + 16) + QObject (0x0x7f7f8a051660) 0 + primary-for QTcpServer (0x0x7f7f8a04aa28) + +Class QSslCertificateExtension + size=8 align=8 + base size=8 base align=8 +QSslCertificateExtension (0x0x7f7f8a0518a0) 0 + +Class QSslCipher + size=8 align=8 + base size=8 base align=8 +QSslCipher (0x0x7f7f8a0bb660) 0 + +Class QSslDiffieHellmanParameters + size=8 align=8 + base size=8 base align=8 +QSslDiffieHellmanParameters (0x0x7f7f89d7a720) 0 + +Class QSslEllipticCurve + size=4 align=4 + base size=4 base align=4 +QSslEllipticCurve (0x0x7f7f89e3e480) 0 + +Class QSslKey + size=8 align=8 + base size=8 base align=8 +QSslKey (0x0x7f7f89e7fde0) 0 + +Class QUdpSocket::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUdpSocket::QPrivateSignal (0x0x7f7f89afb120) 0 empty + +Vtable for QUdpSocket +QUdpSocket::_ZTV10QUdpSocket: 41 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUdpSocket) +16 (int (*)(...))QUdpSocket::metaObject +24 (int (*)(...))QUdpSocket::qt_metacast +32 (int (*)(...))QUdpSocket::qt_metacall +40 (int (*)(...))QUdpSocket::~QUdpSocket +48 (int (*)(...))QUdpSocket::~QUdpSocket +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractSocket::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QAbstractSocket::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QAbstractSocket::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QAbstractSocket::bytesAvailable +184 (int (*)(...))QAbstractSocket::bytesToWrite +192 (int (*)(...))QAbstractSocket::canReadLine +200 (int (*)(...))QAbstractSocket::waitForReadyRead +208 (int (*)(...))QAbstractSocket::waitForBytesWritten +216 (int (*)(...))QAbstractSocket::readData +224 (int (*)(...))QAbstractSocket::readLineData +232 (int (*)(...))QAbstractSocket::writeData +240 (int (*)(...))QAbstractSocket::resume +248 (int (*)(...))QAbstractSocket::connectToHost +256 (int (*)(...))QAbstractSocket::connectToHost +264 (int (*)(...))QAbstractSocket::disconnectFromHost +272 (int (*)(...))QAbstractSocket::setReadBufferSize +280 (int (*)(...))QAbstractSocket::socketDescriptor +288 (int (*)(...))QAbstractSocket::setSocketDescriptor +296 (int (*)(...))QAbstractSocket::setSocketOption +304 (int (*)(...))QAbstractSocket::socketOption +312 (int (*)(...))QAbstractSocket::waitForConnected +320 (int (*)(...))QAbstractSocket::waitForDisconnected + +Class QUdpSocket + size=16 align=8 + base size=16 base align=8 +QUdpSocket (0x0x7f7f89ae4f70) 0 + vptr=((& QUdpSocket::_ZTV10QUdpSocket) + 16) + QAbstractSocket (0x0x7f7f89afd000) 0 + primary-for QUdpSocket (0x0x7f7f89ae4f70) + QIODevice (0x0x7f7f89afd068) 0 + primary-for QAbstractSocket (0x0x7f7f89afd000) + QObject (0x0x7f7f89afb0c0) 0 + primary-for QIODevice (0x0x7f7f89afd068) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89b39600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89b39960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89b39b40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89b39ea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89b6e0c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89b6e420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89b6e600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89b6e960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89b6eb40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89b6eea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89ba40c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89ba4420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89ba4600) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89ba4960) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89ba4b40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89ba4ea0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c033c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c03720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c038a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c03c00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c03d80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c3a120) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c3a2a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c3a600) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c3a780) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c3aae0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c3ac60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c68000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c68180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c684e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7f89c68660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7f89c689c0) 0 empty + diff --git a/tests/auto/bic/data/QtOpenGL.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtOpenGL.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..01179fd7da --- /dev/null +++ b/tests/auto/bic/data/QtOpenGL.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,19811 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fad2fadaae0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fad2fb482a0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fad2fb484e0) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7fad2fb48720) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7fad2fb48960) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7fad2fb48ae0) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7fad2fb48ea0) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7fad2fbb3000) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fad2fc0b6c0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fad2fc0b780) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7fad2fc0bb40) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7fad2fc0bba0) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7fad2fc0bc00) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7fad2fc0bc60) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7fad2fc0bcc0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fad2fc0bd80) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fad2fc0be40) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fad2fc0bf00) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fad2fc3d000) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fad2fc3d360) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7fad2fc3d6c0) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7fad2fc3d720) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7fad2fc3dcc0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fad2fc86360) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7fad2fc506e8) 0 empty + std::__nonesuch (0x0x7fad2fc86840) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fad2fd091e0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fad2fd09240) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fad2f339f00) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fad2f339f60) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fad2fc50bc8) 0 empty + std::input_iterator_tag (0x0x7fad2f363000) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fad2fc50c30) 0 empty + std::forward_iterator_tag (0x0x7fad2fc50c98) 0 empty + std::input_iterator_tag (0x0x7fad2f363060) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fad2fc50d00) 0 empty + std::bidirectional_iterator_tag (0x0x7fad2fc50d68) 0 empty + std::forward_iterator_tag (0x0x7fad2fc50dd0) 0 empty + std::input_iterator_tag (0x0x7fad2f3630c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fad2f3f1ba0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fad2f3f1cc0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fad2f417000) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fad2f417300) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fad2f417420) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fad2f4a5720) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fad2f4a5a20) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fad2f4a5a80) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7fad2f4a5b40) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fad2f4a5ba0) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7fad2f4a5c00) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7fad2f4a5c60) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fad2f4a5f00) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fad2f4e41e0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fad2f4e4240) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fad2f19c000) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fad2f3b1138) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7fad2f19c1e0) 0 nearly-empty + primary-for std::bad_exception (0x0x7fad2f3b1138) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fad2f19c3c0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fad2f3b11a0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7fad2f19c780) 0 nearly-empty + primary-for std::bad_cast (0x0x7fad2f3b11a0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fad2f3b1208) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7fad2f19c960) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fad2f3b1208) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fad2f19cb40) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fad2f1d5120) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fad2f3b1270) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7fad2f1d57e0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fad2f3b1270) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fad2f3b12d8) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7fad2f3b1340) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fad2f3b12d8) + std::exception (0x0x7fad2f1d59c0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fad2f3b1340) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fad2f1d5ba0) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7fad2f1d5d80) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fad2f27a2a0) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7fad2f030d20) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7fad2f030de0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fad2eef3780) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fad2eef38a0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fad2eef3c00) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fad2eb33180) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fad2eb70900) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fad2ec04d20) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fad2ebba1a0) 0 + std::__atomic_flag_base (0x0x7fad2ec04d80) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fad2ebba8f0) 0 + QAtomicInteger (0x0x7fad2ebba958) 0 + QBasicAtomicInteger (0x0x7fad2e73bd20) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fad2e370060) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fad2e3b3600) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fad2e3b3d20) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fad2e3914e0) 0 + QGenericArgument (0x0x7fad2e3f1000) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7fad2e3f1420) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fad2e3f1840) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fad2e4a5360) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fad2e4a5600) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fad2e172420) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7fad2e172780) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fad2e1d4a80) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fad2e2cc300) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fad2e2cc3c0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fad2df7b4e0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fad2df7b5a0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fad2df7b600) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fad2df7b660) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fad2df7b6c0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fad2df7b7e0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fad2df7b840) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7fad2e0bb7e0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fad2e0bb840) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fad2de748a0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fad2de74a20) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fad2dbebba0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fad2dbebf60) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fad2dc39240) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fad2dc39420) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fad2dc82420) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fad2dc55478) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7fad2dc824e0) 0 nearly-empty + primary-for std::logic_error (0x0x7fad2dc55478) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fad2dc554e0) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7fad2dc55548) 0 + primary-for std::domain_error (0x0x7fad2dc554e0) + std::exception (0x0x7fad2dc82540) 0 nearly-empty + primary-for std::logic_error (0x0x7fad2dc55548) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fad2dc555b0) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7fad2dc55618) 0 + primary-for std::invalid_argument (0x0x7fad2dc555b0) + std::exception (0x0x7fad2dc825a0) 0 nearly-empty + primary-for std::logic_error (0x0x7fad2dc55618) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fad2dc55680) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7fad2dc556e8) 0 + primary-for std::length_error (0x0x7fad2dc55680) + std::exception (0x0x7fad2dc82600) 0 nearly-empty + primary-for std::logic_error (0x0x7fad2dc556e8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fad2dc55750) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7fad2dc557b8) 0 + primary-for std::out_of_range (0x0x7fad2dc55750) + std::exception (0x0x7fad2dc82660) 0 nearly-empty + primary-for std::logic_error (0x0x7fad2dc557b8) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fad2dc55820) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7fad2dc826c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fad2dc55820) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fad2dc55888) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7fad2dc558f0) 0 + primary-for std::range_error (0x0x7fad2dc55888) + std::exception (0x0x7fad2dc82720) 0 nearly-empty + primary-for std::runtime_error (0x0x7fad2dc558f0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fad2dc55958) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7fad2dc559c0) 0 + primary-for std::overflow_error (0x0x7fad2dc55958) + std::exception (0x0x7fad2dc82780) 0 nearly-empty + primary-for std::runtime_error (0x0x7fad2dc559c0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fad2dc55a28) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7fad2dc55a90) 0 + primary-for std::underflow_error (0x0x7fad2dc55a28) + std::exception (0x0x7fad2dc827e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fad2dc55a90) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fad2dc82960) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fad2dc82cc0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fad2dcdd540) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fad2dc55ea0) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7fad2dc55f08) 0 + primary-for std::system_error (0x0x7fad2dc55ea0) + std::exception (0x0x7fad2dd08120) 0 nearly-empty + primary-for std::runtime_error (0x0x7fad2dc55f08) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fad2d92d1a0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7fad2d92d208) 0 + primary-for std::ios_base::failure (0x0x7fad2d92d1a0) + std::runtime_error (0x0x7fad2d92d270) 0 + primary-for std::system_error (0x0x7fad2d92d208) + std::exception (0x0x7fad2d93b6c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fad2d92d270) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fad2d93b720) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fad2d93b780) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fad2d93b7e0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fad2d93b660) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fad2da2d120) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fad2db06300) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fad2d68c958 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fad2d68ca28 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7fad2d6c96e8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fad2d6c97b8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7fad2d6d3c60) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7fad2d6d3cc0) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7fad2d43e0c0) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7fad2d4bdf00) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7fad2d4e43c0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fad2d1ab180) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7fad2d234ba0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7fad2d234b40) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7fad2d00ed20) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7fad2cdab5a0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fad2cbc38a0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fad2cbc3960) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fad2cc8ce40) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fad2ce48af8) 0 + std::iterator (0x0x7fad2ccaa5a0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fad2ce48c30) 0 + std::_Bit_iterator_base (0x0x7fad2ce48c98) 0 + std::iterator (0x0x7fad2ccaac00) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fad2ce48d00) 0 + std::_Bit_iterator_base (0x0x7fad2ce48d68) 0 + std::iterator (0x0x7fad2ccdd420) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fad2ca90a80) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7fad2c792840) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7fad2c7928a0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7fad2c95c820) 0 empty + QListData::NotIndirectLayout (0x0x7fad2c792900) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7fad2c791070) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fad2c792960) 0 empty + QListData::NotIndirectLayout (0x0x7fad2c7929c0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7fad2c95c888) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fad2c792a20) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7fad2c792a80) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7fad2c7927e0) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7fad2c87fc60) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7fad2c579300) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7fad2c5792a0) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7fad2c574548) 0 + QList (0x0x7fad2c5745b0) 0 + QListSpecialMethods (0x0x7fad2c579540) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fad2c6410c0) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fad2c6ca1e0) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7fad2c6ca540) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7fad2c4acae0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fad2c4acb40) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fad2c4accc0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fad2c4acd80) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fad2c43e8f0) 0 + std::__uses_alloc_base (0x0x7fad2c4acd20) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fad2c242120) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7fad2c2cf5a0) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7fad2c2cf900) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7fad2c2cfe40) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7fad2c2f93c0) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7fad2bf5e5a0) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7fad2bf5ec60) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7fad2bfb0ae0) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7fad2c06f1e0) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fad2c0c5720) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fad2bb8b540) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fad2bcb6000) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7fad2bcb6060) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fad2bcb6240) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fad2bcb61e0) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7fad2b984060) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fad2b9841e0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fad2b984a80) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fad2b953af8) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7fad2b984a20) 0 + primary-for QAbstractAnimation (0x0x7fad2b953af8) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fad2b984e40) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fad2b953b60) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7fad2b984de0) 0 + primary-for QAnimationDriver (0x0x7fad2b953b60) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fad2b9c20c0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fad2b953bc8) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7fad2b9c2060) 0 + primary-for QEventLoop (0x0x7fad2b953bc8) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fad2b9c2960) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fad2b9c2a20) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fad2b9c2a80) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fad2b953d00) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7fad2b9c29c0) 0 + primary-for QAbstractEventDispatcher (0x0x7fad2b953d00) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fad2ba80680) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7fad2ba9e120) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fad2ba80680) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fad2ba9e1e0) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fad2ba9e240) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fad2ba9e540) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7fad2b8934e0) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7fad2b8cb180) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7fad2b597ae0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7fad2b597a80) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fad2b597d80) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7fad2b6bf360) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7fad2b6bf420) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7fad2b6bf3c0) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7fad2b6bf480) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7fad2b6bf300) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7fad2b419720) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7fad2b45cd80) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7fad2b45cd20) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7fad2b45cea0) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7fad2b45ce40) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fad2b14b060) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fad2b196c60) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fad2b269a80) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fad2b279270) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7fad2b269a20) 0 + primary-for QAbstractItemModel (0x0x7fad2b279270) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fad2b2cfe40) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fad2b279888) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7fad2b2798f0) 0 + primary-for QAbstractTableModel (0x0x7fad2b279888) + QObject (0x0x7fad2b2cfde0) 0 + primary-for QAbstractItemModel (0x0x7fad2b2798f0) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fad2af55000) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fad2b279958) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7fad2b2799c0) 0 + primary-for QAbstractListModel (0x0x7fad2b279958) + QObject (0x0x7fad2b2cff60) 0 + primary-for QAbstractItemModel (0x0x7fad2b2799c0) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fad2af55720) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fad2af557e0) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fad2b279a90) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7fad2b279af8) 0 + primary-for QAbstractProxyModel (0x0x7fad2b279a90) + QObject (0x0x7fad2af55780) 0 + primary-for QAbstractItemModel (0x0x7fad2b279af8) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7fad2af55a20) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7fad2b279b60) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7fad2af559c0) 0 + primary-for QAbstractState (0x0x7fad2b279b60) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7fad2af55c60) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7fad2b279bc8) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7fad2af55c00) 0 + primary-for QAbstractTransition (0x0x7fad2b279bc8) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fad2af55f60) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fad2b279c30) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7fad2b279c98) 0 + primary-for QAnimationGroup (0x0x7fad2b279c30) + QObject (0x0x7fad2af55f00) 0 + primary-for QAbstractAnimation (0x0x7fad2b279c98) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fad2b032300) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7fad2b0706c0) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7fad2b0c2b40) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fad2b11bf00) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fad2ad2f208) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7fad2b11bea0) 0 + primary-for QIODevice (0x0x7fad2ad2f208) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fad2ad4e8a0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fad2ad2f340) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7fad2ad2f3a8) 0 + primary-for QBuffer (0x0x7fad2ad2f340) + QObject (0x0x7fad2ad4e840) 0 + primary-for QIODevice (0x0x7fad2ad2f3a8) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fad2ad4eb40) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7fad2ad4eae0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7fad2ad4ecc0) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7fad2ad4ec60) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fad2adaeba0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fad2adf8b40) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fad2ae64420) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fad2aecf0c0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fad2aecf120) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fad2aecf060) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fad2aba57e0) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fad2ac8dd80) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fad2acf1660) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7fad2a998180) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fad2a9c3de0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fad2a9c3f60) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7fad2aa76ba0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fad2aa76b40) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fad2a81fc00) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fad2a81fcc0) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7fad2a8cc000) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fad2a8cc780) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fad2a57b660) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fad2a5e0420) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fad2a636e40) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fad2a37ade0) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7fad2a40f960) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7fad2a40fa20) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7fad2a280a20) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7fad2a31d480) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7fad2a31d4e0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7fad2a31d420) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7fad2a00dea0) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7fad2a00df00) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7fad2a00de40) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7fad29e23660) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7fad29edf600) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7fad29f13360) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fad29b96480) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fad29b96660) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fad29c8ac00) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7fad29d19360) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7fad29cf4548) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7fad29d19720) 0 + primary-for QTimerEvent (0x0x7fad29cf4548) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7fad29cf45b0) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7fad29d197e0) 0 + primary-for QChildEvent (0x0x7fad29cf45b0) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7fad29cf4af8) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7fad29d19e40) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fad29cf4af8) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7fad29cf4b60) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7fad29d19f00) 0 + primary-for QDeferredDeleteEvent (0x0x7fad29cf4b60) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fad2995a060) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fad29cf4bc8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7fad2995a000) 0 + primary-for QCoreApplication (0x0x7fad29cf4bc8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fad2995a2a0) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7fad2995a420) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7fad29cf4c30) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7fad29cf4c98) 0 + primary-for QConcatenateTablesProxyModel (0x0x7fad29cf4c30) + QObject (0x0x7fad2995a3c0) 0 + primary-for QAbstractItemModel (0x0x7fad29cf4c98) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fad2995a600) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fad2995a720) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fad2995a8a0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fad29a16000) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fad29a16720) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fad29756480) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fad29745ea0) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7fad29745f08) 0 + primary-for QFileDevice (0x0x7fad29745ea0) + QObject (0x0x7fad29756420) 0 + primary-for QIODevice (0x0x7fad29745f08) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fad29756d80) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fad29782068) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7fad297820d0) 0 + primary-for QFile (0x0x7fad29782068) + QIODevice (0x0x7fad29782138) 0 + primary-for QFileDevice (0x0x7fad297820d0) + QObject (0x0x7fad29756d20) 0 + primary-for QIODevice (0x0x7fad29782138) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fad297cd420) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fad298267e0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fad298d2b40) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fad29529300) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7fad2962d420) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7fad295f43a8) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7fad295f4410) 0 + primary-for QEventTransition (0x0x7fad295f43a8) + QObject (0x0x7fad2962d3c0) 0 + primary-for QAbstractTransition (0x0x7fad295f4410) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fad295f4478) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7fad2962d600) 0 nearly-empty + primary-for QException (0x0x7fad295f4478) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7fad295f44e0) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7fad295f4548) 0 nearly-empty + primary-for QUnhandledException (0x0x7fad295f44e0) + std::exception (0x0x7fad2962d660) 0 nearly-empty + primary-for QException (0x0x7fad295f4548) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7fad2962d6c0) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fad2962d780) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fad2962d7e0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fad2962da20) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fad295f45b0) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7fad2962d9c0) 0 + primary-for QFileSelector (0x0x7fad295f45b0) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fad2962dc60) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fad295f4618) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7fad2962dc00) 0 + primary-for QFileSystemWatcher (0x0x7fad295f4618) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7fad2962dea0) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7fad295f4680) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7fad295f46e8) 0 + primary-for QFinalState (0x0x7fad295f4680) + QObject (0x0x7fad2962de40) 0 + primary-for QAbstractState (0x0x7fad295f46e8) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7fad2968c0c0) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fad2968c360) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fad295f47b8) 0 + QBasicMutex (0x0x7fad29708000) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7fad29708240) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fad297086c0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fad29708cc0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fad29708ea0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fad293a76c0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fad294489c0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fad293addd0) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7fad29448960) 0 + primary-for QFutureWatcherBase (0x0x7fad293addd0) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7fad29477d20) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7fad2946f618) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7fad2946f680) 0 + primary-for QHistoryState (0x0x7fad2946f618) + QObject (0x0x7fad29477cc0) 0 + primary-for QAbstractState (0x0x7fad2946f680) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fad294a0060) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fad2946f6e8) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7fad2946f750) 0 + primary-for QIdentityProxyModel (0x0x7fad2946f6e8) + QAbstractItemModel (0x0x7fad2946f7b8) 0 + primary-for QAbstractProxyModel (0x0x7fad2946f750) + QObject (0x0x7fad294a0000) 0 + primary-for QAbstractItemModel (0x0x7fad2946f7b8) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fad294a0240) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fad29161b40) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fad2916b138) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7fad29161ae0) 0 + primary-for QItemSelectionModel (0x0x7fad2916b138) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7fad2916b2d8) 0 + QList (0x0x7fad2916b340) 0 + QListSpecialMethods (0x0x7fad291a1660) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7fad29208f60) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7fad28f90180) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7fad28fcd120) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7fad28fcd3c0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7fad2900e720) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7fad2900e780) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7fad2900e6c0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fad28d3f660) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fad28d3f6c0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7fad28d8bea0) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7fad28d8bf00) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7fad28d8be40) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fad28eba2a0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7fad28eb63a8) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7fad28eba240) 0 + primary-for QLibrary (0x0x7fad28eb63a8) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fad28f07120) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fad28ebac00) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fad28b9a840) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fad28b9a8a0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fad28c0d6c0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fad28c7e840) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fad28cedc00) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7fad28967ea0) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fad28a2b060) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fad28a2b2a0) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fad28a2b240) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fad28a2b6c0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fad28aee600) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fad2852dde0) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7fad2852de40) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7fad285b76c0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fad285fb900) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7fad285fba20) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fad28656000) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fad28653000) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7fad2863bf60) 0 + primary-for QMimeData (0x0x7fad28653000) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fad286561e0) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fad286b8300) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fad286b83c0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7fad286b5340) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7fad286b8360) 0 + primary-for QObjectCleanupHandler (0x0x7fad286b5340) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7fad286b84e0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fad28322c60) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fad28326bc8) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7fad28326c30) 0 + primary-for QParallelAnimationGroup (0x0x7fad28326bc8) + QAbstractAnimation (0x0x7fad28326c98) 0 + primary-for QAnimationGroup (0x0x7fad28326c30) + QObject (0x0x7fad28322c00) 0 + primary-for QAbstractAnimation (0x0x7fad28326c98) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fad28322ea0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fad28326d00) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7fad28326d68) 0 + primary-for QPauseAnimation (0x0x7fad28326d00) + QObject (0x0x7fad28322e40) 0 + primary-for QAbstractAnimation (0x0x7fad28326d68) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7fad28354ae0) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fad28399c60) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fad283ae0d0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7fad28399c00) 0 + primary-for QPluginLoader (0x0x7fad283ae0d0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fad28399d80) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fad28414420) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fad28401d00) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7fad28401d68) 0 + primary-for QProcess (0x0x7fad28401d00) + QObject (0x0x7fad284143c0) 0 + primary-for QIODevice (0x0x7fad28401d68) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fad28414ae0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fad28401dd0) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7fad28401e38) 0 + primary-for QVariantAnimation (0x0x7fad28401dd0) + QObject (0x0x7fad28414a80) 0 + primary-for QAbstractAnimation (0x0x7fad28401e38) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fad28414d80) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fad28401f08) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7fad28401f70) 0 + primary-for QPropertyAnimation (0x0x7fad28401f08) + QAbstractAnimation (0x0x7fad28461000) 0 + primary-for QVariantAnimation (0x0x7fad28401f70) + QObject (0x0x7fad28414d20) 0 + primary-for QAbstractAnimation (0x0x7fad28461000) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fad284e64e0) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fad281e4240) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fad281e41e0) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fad27fa3f60) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7fad27dddc00) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7fad27dddba0) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7fad27e61c98) 0 + QRandomGenerator (0x0x7fad27e8a720) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fad27eaa300) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fad27eaa5a0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fad27eaaa80) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fad27eaaf60) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fad27b78d80) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fad27bf0d20) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fad27c9fd80) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fad2795eea0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fad279b0180) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fad27931680) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7fad279316e8) 0 + primary-for QSaveFile (0x0x7fad27931680) + QIODevice (0x0x7fad27931750) 0 + primary-for QFileDevice (0x0x7fad279316e8) + QObject (0x0x7fad279b0120) 0 + primary-for QIODevice (0x0x7fad27931750) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fad279b0780) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7fad279b0900) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fad27acdba0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fad27ad5478) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7fad27ad54e0) 0 + primary-for QSequentialAnimationGroup (0x0x7fad27ad5478) + QAbstractAnimation (0x0x7fad27ad5548) 0 + primary-for QAnimationGroup (0x0x7fad27ad54e0) + QObject (0x0x7fad27acdb40) 0 + primary-for QAbstractAnimation (0x0x7fad27ad5548) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fad27acdde0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fad27ad55b0) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7fad27acdd80) 0 + primary-for QSettings (0x0x7fad27ad55b0) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fad27b0c2a0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fad27ad5618) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7fad27b0c240) 0 + primary-for QSharedMemory (0x0x7fad27ad5618) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fad27b0c4e0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fad27ad5680) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7fad27b0c480) 0 + primary-for QSignalMapper (0x0x7fad27ad5680) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7fad27b0c720) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7fad27ad56e8) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7fad27ad5750) 0 + primary-for QSignalTransition (0x0x7fad27ad56e8) + QObject (0x0x7fad27b0c6c0) 0 + primary-for QAbstractTransition (0x0x7fad27ad5750) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fad27b0c9c0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fad27ad57b8) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7fad27b0c960) 0 + primary-for QSocketNotifier (0x0x7fad27ad57b8) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fad27b0cc00) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fad27ad5820) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7fad27ad5888) 0 + primary-for QSortFilterProxyModel (0x0x7fad27ad5820) + QAbstractItemModel (0x0x7fad27ad58f0) 0 + primary-for QAbstractProxyModel (0x0x7fad27ad5888) + QObject (0x0x7fad27b0cba0) 0 + primary-for QAbstractItemModel (0x0x7fad27ad58f0) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fad27778060) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7fad27778960) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7fad27ad5a90) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7fad27ad5af8) 0 + primary-for QState (0x0x7fad27ad5a90) + QObject (0x0x7fad27778900) 0 + primary-for QAbstractState (0x0x7fad27ad5af8) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7fad27778de0) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7fad27ad5c98) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7fad27778e40) 0 + primary-for QStateMachine::SignalEvent (0x0x7fad27ad5c98) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7fad27ad5d00) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7fad27778ea0) 0 + primary-for QStateMachine::WrappedEvent (0x0x7fad27ad5d00) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7fad27ad5b60) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7fad27ad5bc8) 0 + primary-for QStateMachine (0x0x7fad27ad5b60) + QAbstractState (0x0x7fad27ad5c30) 0 + primary-for QState (0x0x7fad27ad5bc8) + QObject (0x0x7fad27778d80) 0 + primary-for QAbstractState (0x0x7fad27ad5c30) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fad277e52a0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fad278692a0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fad278f2600) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7fad278c6e38) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7fad278c6ea0) 0 + primary-for QStringListModel (0x0x7fad278c6e38) + QAbstractItemModel (0x0x7fad278c6f08) 0 + primary-for QAbstractListModel (0x0x7fad278c6ea0) + QObject (0x0x7fad278f25a0) 0 + primary-for QAbstractItemModel (0x0x7fad278c6f08) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fad278f2720) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fad278f27e0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fad278f2900) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fad278c6f70) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7fad27537000) 0 + primary-for QTemporaryFile (0x0x7fad278c6f70) + QFileDevice (0x0x7fad27537068) 0 + primary-for QFile (0x0x7fad27537000) + QIODevice (0x0x7fad275370d0) 0 + primary-for QFileDevice (0x0x7fad27537068) + QObject (0x0x7fad278f28a0) 0 + primary-for QIODevice (0x0x7fad275370d0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7fad278f2c60) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7fad2756f4e0) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7fad2756f480) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7fad2756fea0) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7fad275c80c0) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7fad275c82a0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7fad275372d8) 0 + std::__mutex_base (0x0x7fad275c8300) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7fad275c84e0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7fad275c8540) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7fad275c85a0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7fad27605000) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7fad27537340) 0 + std::__recursive_mutex_base (0x0x7fad27605060) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7fad275c6e70) 0 + std::__mutex_base (0x0x7fad27605420) 0 + std::__timed_mutex_impl (0x0x7fad27605480) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7fad276231c0) 0 + std::__recursive_mutex_base (0x0x7fad276057e0) 0 + std::__timed_mutex_impl (0x0x7fad27605840) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7fad27605f60) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7fad27537478) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7fad2764e4e0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7fad27537478) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7fad275374e0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7fad2764e600) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7fad275374e0) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7fad27537548) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7fad2764e720) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7fad27537548) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7fad27537618) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7fad2764e840) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7fad27537618) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7fad276758a0) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7fad27675ba0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7fad27675ea0) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7fad2769b240) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7fad27537680) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7fad27715420) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7fad27537680) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7fad273843c0) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7fad273847e0) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7fad274c7660) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7fad274f6ae0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7fad274f6b40) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7fad274f6a80) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7fad26f8af00) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7fad26fc6300) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7fad26fc6360) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7fad26d3e660) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7fad26d30f08) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7fad26d30f70) 0 + primary-for std::future_error (0x0x7fad26d30f08) + std::exception (0x0x7fad26d3ed80) 0 nearly-empty + primary-for std::logic_error (0x0x7fad26d30f70) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7fad26d6e4e0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7fad26d6e480) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7fad26b30c00) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7fad26b557b8) 0 + std::__at_thread_exit_elt (0x0x7fad26b30cc0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7fad26d6e660) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7fad26d6e420) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7fad266d74e0) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7fad266f2cc0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7fad266d74e0) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fad253285a0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fad266d7820) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7fad25328540) 0 + primary-for QThread (0x0x7fad266d7820) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fad25328960) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fad266d7888) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7fad25328900) 0 + primary-for QThreadPool (0x0x7fad266d7888) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fad25328b40) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fad2536c240) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fad266d78f0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7fad2536c1e0) 0 + primary-for QTimeLine (0x0x7fad266d78f0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fad2536c480) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7fad266d7958) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7fad2536c420) 0 + primary-for QTimer (0x0x7fad266d7958) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7fad253b2de0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fad253b2d80) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fad25451ea0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fad2546b068) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7fad25451e40) 0 + primary-for QTranslator (0x0x7fad2546b068) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7fad2547e120) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7fad2546b0d0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7fad2546b138) 0 + primary-for QTransposeProxyModel (0x0x7fad2546b0d0) + QAbstractItemModel (0x0x7fad2546b1a0) 0 + primary-for QAbstractProxyModel (0x0x7fad2546b138) + QObject (0x0x7fad2547e0c0) 0 + primary-for QAbstractItemModel (0x0x7fad2546b1a0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fad2547e300) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fad254f7cc0) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7fad254f7de0) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7fad251a31e0) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7fad25206820) 0 + QVector (0x0x7fad25205900) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fad25205c00) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7fad25284ba0) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7fad252e3ba0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fad24f4fc60) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fad24f4fcc0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fad24f8bba0) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7fad24fe31e0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7fad2507c240) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7fad251166c0) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7fad25116660) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7fad24e03300) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7fad24ed1e40) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7fad24b41f00) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7fad24b33a90) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7fad24b737e0) 0 + primary-for QInputEvent (0x0x7fad24b33a90) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7fad24b33af8) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QEvent (0x0x7fad24b739c0) 0 + primary-for QEnterEvent (0x0x7fad24b33af8) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7fad24b33b60) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QInputEvent (0x0x7fad24b33bc8) 0 + primary-for QMouseEvent (0x0x7fad24b33b60) + QEvent (0x0x7fad24b73d80) 0 + primary-for QInputEvent (0x0x7fad24b33bc8) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7fad24b33c30) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QInputEvent (0x0x7fad24b33c98) 0 + primary-for QHoverEvent (0x0x7fad24b33c30) + QEvent (0x0x7fad24bc02a0) 0 + primary-for QInputEvent (0x0x7fad24b33c98) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7fad24b33d00) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QInputEvent (0x0x7fad24b33d68) 0 + primary-for QWheelEvent (0x0x7fad24b33d00) + QEvent (0x0x7fad24bc0480) 0 + primary-for QInputEvent (0x0x7fad24b33d68) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7fad24b33dd0) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QInputEvent (0x0x7fad24b33e38) 0 + primary-for QTabletEvent (0x0x7fad24b33dd0) + QEvent (0x0x7fad24bc0ae0) 0 + primary-for QInputEvent (0x0x7fad24b33e38) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7fad24b33ea0) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QInputEvent (0x0x7fad24b33f08) 0 + primary-for QNativeGestureEvent (0x0x7fad24b33ea0) + QEvent (0x0x7fad24c01420) 0 + primary-for QInputEvent (0x0x7fad24b33f08) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7fad24b33f70) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7fad24c13000) 0 + primary-for QKeyEvent (0x0x7fad24b33f70) + QEvent (0x0x7fad24c01720) 0 + primary-for QInputEvent (0x0x7fad24c13000) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7fad24c13068) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7fad24c01a20) 0 + primary-for QFocusEvent (0x0x7fad24c13068) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7fad24c130d0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7fad24c01b40) 0 + primary-for QPaintEvent (0x0x7fad24c130d0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7fad24c13138) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7fad24c01c60) 0 + primary-for QMoveEvent (0x0x7fad24c13138) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7fad24c131a0) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7fad24c01d80) 0 + primary-for QExposeEvent (0x0x7fad24c131a0) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7fad24c13208) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7fad24c01e40) 0 + primary-for QPlatformSurfaceEvent (0x0x7fad24c13208) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7fad24c13270) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7fad24c01f00) 0 + primary-for QResizeEvent (0x0x7fad24c13270) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7fad24c132d8) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7fad24c41060) 0 + primary-for QCloseEvent (0x0x7fad24c132d8) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7fad24c13340) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7fad24c410c0) 0 + primary-for QIconDragEvent (0x0x7fad24c13340) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7fad24c133a8) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7fad24c41120) 0 + primary-for QShowEvent (0x0x7fad24c133a8) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7fad24c13410) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7fad24c41180) 0 + primary-for QHideEvent (0x0x7fad24c13410) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7fad24c13478) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7fad24c134e0) 0 + primary-for QContextMenuEvent (0x0x7fad24c13478) + QEvent (0x0x7fad24c411e0) 0 + primary-for QInputEvent (0x0x7fad24c134e0) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7fad24c41540) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7fad24c13548) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7fad24c414e0) 0 + primary-for QInputMethodEvent (0x0x7fad24c13548) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7fad24ccb8a0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7fad24ccf750) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7fad24ccb840) 0 + primary-for QInputMethodQueryEvent (0x0x7fad24ccf750) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7fad2493f820) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7fad24945600) 0 + primary-for QDropEvent (0x0x7fad2493f820) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7fad2493f888) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7fad2493f8f0) 0 + primary-for QDragMoveEvent (0x0x7fad2493f888) + QEvent (0x0x7fad249459c0) 0 + primary-for QDropEvent (0x0x7fad2493f8f0) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7fad2493f958) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7fad2493f9c0) 0 + primary-for QDragEnterEvent (0x0x7fad2493f958) + QDropEvent (0x0x7fad2493fa28) 0 + primary-for QDragMoveEvent (0x0x7fad2493f9c0) + QEvent (0x0x7fad24945c00) 0 + primary-for QDropEvent (0x0x7fad2493fa28) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7fad2493fa90) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7fad24945c60) 0 + primary-for QDragLeaveEvent (0x0x7fad2493fa90) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7fad2493faf8) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7fad24945cc0) 0 + primary-for QHelpEvent (0x0x7fad2493faf8) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7fad2493fb60) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7fad24945f60) 0 + primary-for QStatusTipEvent (0x0x7fad2493fb60) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7fad2493fbc8) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7fad24974060) 0 + primary-for QWhatsThisClickedEvent (0x0x7fad2493fbc8) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7fad2493fc30) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7fad24974120) 0 + primary-for QActionEvent (0x0x7fad2493fc30) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7fad2493fc98) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7fad24974240) 0 + primary-for QFileOpenEvent (0x0x7fad2493fc98) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7fad2493fd00) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7fad24974360) 0 + primary-for QToolBarChangeEvent (0x0x7fad2493fd00) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7fad2493fd68) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7fad24974420) 0 + primary-for QShortcutEvent (0x0x7fad2493fd68) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7fad2493fdd0) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7fad249745a0) 0 + primary-for QWindowStateChangeEvent (0x0x7fad2493fdd0) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7fad24974720) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7fad249d0ae0) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7fad249d6618) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QInputEvent (0x0x7fad249d6680) 0 + primary-for QTouchEvent (0x0x7fad249d6618) + QEvent (0x0x7fad249d0a80) 0 + primary-for QInputEvent (0x0x7fad249d6680) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7fad24ae9340) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7fad24b150c0) 0 + primary-for QScrollPrepareEvent (0x0x7fad24ae9340) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7fad24ae93a8) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7fad24b15120) 0 + primary-for QScrollEvent (0x0x7fad24ae93a8) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7fad24ae9410) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7fad24b15180) 0 + primary-for QScreenOrientationChangeEvent (0x0x7fad24ae9410) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7fad24ae9478) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7fad24b151e0) 0 + primary-for QApplicationStateChangeEvent (0x0x7fad24ae9478) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7fad24b15240) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7fad247d30d0) 0 + QVector (0x0x7fad247b36c0) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7fad24850410) 0 + QVector (0x0x7fad24853780) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7fad248ed600) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7fad24556420) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7fad245563c0) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7fad24691780) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7fad24691e40) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7fad24352900) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7fad24352f00) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7fad2442c270) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7fad24428840) 0 + primary-for QImage (0x0x7fad2442c270) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7fad24129c98) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7fad2413c600) 0 + primary-for QPixmap (0x0x7fad24129c98) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7fad241abae0) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7fad24285060) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7fad242852a0) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7fad2426fe38) 0 + QGradient (0x0x7fad242859c0) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7fad2426fea0) 0 + QGradient (0x0x7fad24285ae0) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7fad2426ff08) 0 + QGradient (0x0x7fad24285c00) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7fad24285cc0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7fad23f24660) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7fad23f24600) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7fad23f5dd80) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7fad23fe9720) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7fad23d0d000) 0 + QTextFormat (0x0x7fad23d04300) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7fad23d82410) 0 + QTextFormat (0x0x7fad23d76cc0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7fad23dda958) 0 + QTextFormat (0x0x7fad23ddc9c0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7fad23e20d68) 0 + QTextCharFormat (0x0x7fad23e20dd0) 0 + QTextFormat (0x0x7fad23e39180) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7fad23e7a340) 0 + QTextFormat (0x0x7fad23e747e0) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7fad23acd888) 0 + QTextFrameFormat (0x0x7fad23acd8f0) 0 + QTextFormat (0x0x7fad23ada420) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7fad23b1de38) 0 + QTextCharFormat (0x0x7fad23b1dea0) 0 + QTextFormat (0x0x7fad23b20cc0) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7fad23b83120) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7fad23b83300) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7fad23bf1cc0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7fad23c69de0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7fad238cdf60) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7fad238f03c0) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7fad238f0360) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7fad2397ba80) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7fad2397bf00) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7fad239a61e0) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7fad239859c0) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7fad239a6180) 0 + primary-for QTextDocument (0x0x7fad239859c0) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7fad239a6cc0) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7fad239a6c60) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7fad236f10c0) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7fad236f1120) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7fad236f1180) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7fad236e46e8) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7fad236f1060) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fad236e46e8) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7fad2379dd20) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7fad2379df60) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7fad237d6000) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7fad2379df00) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7fad237d6ba0) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7fad237d6f00) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7fad237d6f60) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7fad2382a000) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7fad2382a060) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7fad2382a0c0) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7fad2382a120) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7fad2382a240) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7fad2382a2a0) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7fad237aed00) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7fad2382ac60) 0 + primary-for QAccessibleStateChangeEvent (0x0x7fad237aed00) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7fad237aed68) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7fad234a5060) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fad237aed68) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7fad237aedd0) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fad237aee38) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7fad237aedd0) + QAccessibleEvent (0x0x7fad234a5480) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fad237aee38) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7fad237aeea0) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fad237aef08) 0 + primary-for QAccessibleTextInsertEvent (0x0x7fad237aeea0) + QAccessibleEvent (0x0x7fad234a5900) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fad237aef08) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7fad237aef70) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fad234cb000) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7fad237aef70) + QAccessibleEvent (0x0x7fad234a5d20) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fad234cb000) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7fad234cb068) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7fad234cb0d0) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7fad234cb068) + QAccessibleEvent (0x0x7fad234d6180) 0 + primary-for QAccessibleTextCursorEvent (0x0x7fad234cb0d0) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7fad234cb138) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7fad234d6600) 0 + primary-for QAccessibleValueChangeEvent (0x0x7fad234cb138) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7fad234cb1a0) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7fad234d6a20) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7fad234cb1a0) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7fad23506300) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7fad235065a0) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7fad234cb208) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7fad23506540) 0 + primary-for QAccessibleBridgePlugin (0x0x7fad234cb208) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7fad234cb270) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7fad235066c0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fad234cb270) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7fad234cb2d8) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7fad234cb340) 0 + primary-for QAccessibleApplication (0x0x7fad234cb2d8) + QAccessibleInterface (0x0x7fad23506720) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fad234cb340) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7fad235067e0) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7fad234cb3a8) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7fad23506780) 0 + primary-for QAccessiblePlugin (0x0x7fad234cb3a8) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7fad23506900) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7fad23573480) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7fad23573840) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7fad236523c0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7fad2331e180) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7fad2330cd90) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7fad2331e0c0) 0 + primary-for QWindow (0x0x7fad2330cd90) + QSurface (0x0x7fad2331e120) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7fad2331ea20) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7fad23314680) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7fad233146e8) 0 + primary-for QBitmap (0x0x7fad23314680) + QPaintDevice (0x0x7fad2331eae0) 0 + primary-for QPixmap (0x0x7fad233146e8) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7fad233c3060) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7fad233ae9c0) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7fad233c3000) 0 + primary-for QClipboard (0x0x7fad233ae9c0) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7fad233c3180) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7fad233c3240) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7fad233aea28) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7fad233c31e0) 0 + primary-for QDrag (0x0x7fad233aea28) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7fad233c3420) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7fad23428480) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7fad234767e0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7fad231a48a0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7fad230cb5b0) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7fad231a4840) 0 + primary-for QGenericPlugin (0x0x7fad230cb5b0) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7fad231a49c0) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7fad231a4a80) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7fad230cb618) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7fad231a4a20) 0 + primary-for QInputMethod (0x0x7fad230cb618) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7fad231a4d80) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7fad230cb680) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7fad230cb6e8) 0 + primary-for QGuiApplication (0x0x7fad230cb680) + QObject (0x0x7fad231a4d20) 0 + primary-for QCoreApplication (0x0x7fad230cb6e8) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7fad23234540) 0 + +Class QIconEngine::ScaledPixmapArgument + size=56 align=8 + base size=56 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7fad232346c0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7fad232344e0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7fad23234780) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7fad230cbc98) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7fad23234720) 0 + primary-for QIconEnginePlugin (0x0x7fad230cbc98) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7fad232348a0) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7fad23234ae0) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7fad230cbd00) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7fad23234a80) 0 + primary-for QImageIOPlugin (0x0x7fad230cbd00) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7fad22ec2300) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7fad22ec2420) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7fad22ec2540) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7fad22f586c0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7fad22fd8900) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7fad22ca2240) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7fad22e220c0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7fad22d37478) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7fad22e22060) 0 + primary-for QMovie (0x0x7fad22d37478) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7fad22e224e0) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7fad22d1ebd0) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7fad22e22420) 0 + primary-for QOffscreenSurface (0x0x7fad22d1ebd0) + QSurface (0x0x7fad22e22480) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7fad22e22720) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7fad22e22f60) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7fad226cfb40) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7fad226cfd20) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7fad226cfd80) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7fad226cff60) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7fad22700180) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7fad226e9340) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22700120) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7fad22700480) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7fad226e93a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22700420) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7fad22700780) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7fad226e9410) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22700720) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7fad22700a80) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7fad226e9478) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22700a20) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7fad22700de0) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7fad226e94e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22700d80) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7fad22736120) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7fad226e9548) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227360c0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7fad22736420) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7fad226e95b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227363c0) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7fad22736720) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7fad226e9618) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227366c0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7fad22736a20) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7fad226e9680) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227369c0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7fad22736d20) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7fad226e96e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22736cc0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7fad22786060) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7fad226e9750) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22786000) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7fad22786360) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7fad226e97b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22786300) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7fad22786660) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7fad226e9820) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22786600) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7fad22786960) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7fad226e9888) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22786900) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7fad22786c60) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7fad226e98f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22786c00) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7fad22786f60) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7fad226e9958) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22786f00) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7fad227ea2a0) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7fad226e99c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227ea240) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7fad227ea600) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7fad226e9a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227ea5a0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7fad227ea900) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7fad226e9a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227ea8a0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7fad227eac00) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7fad226e9af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227eaba0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7fad227eaf00) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7fad226e9b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad227eaea0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7fad22875240) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7fad226e9bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad228751e0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7fad22875540) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7fad226e9c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad228754e0) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7fad22875840) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7fad226e9c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad228757e0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7fad22875b40) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7fad226e9d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22875ae0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7fad22875e40) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7fad226e9d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad22875de0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7fad224af180) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7fad226e9dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7fad224af120) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7fad224af420) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7fad224aff00) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7fad224cb820) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7fad224afea0) 0 + primary-for QOpenGLContextGroup (0x0x7fad224cb820) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7fad224ea180) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7fad224cb888) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7fad224ea120) 0 + primary-for QOpenGLContext (0x0x7fad224cb888) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7fad224ea3c0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7fad225a4b40) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7fad2255d2d8) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7fad225a4ae0) 0 + primary-for QOpenGLDebugLogger (0x0x7fad2255d2d8) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7fad225fb000) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7fad225fb960) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7fad225fb900) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7fad2255d680) 0 + QOpenGLFunctions (0x0x7fad22347720) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7fad22347a80) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7fad2255d6e8) 0 + QOpenGLFunctionsPrivate (0x0x7fad22347a20) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7fad22124540) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7fad221247e0) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7fad2212e478) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7fad22124840) 0 + primary-for QOpenGLPaintDevice (0x0x7fad2212e478) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7fad22124a80) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7fad221b38a0) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7fad221bc5b0) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7fad221b3840) 0 + primary-for QOpenGLShader (0x0x7fad221bc5b0) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7fad221f71e0) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7fad221bc6e8) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7fad221f7180) 0 + primary-for QOpenGLShaderProgram (0x0x7fad221bc6e8) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7fad221f73c0) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7fad21eb08a0) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7fad21eb0ae0) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7fad221bc820) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7fad21eb0a80) 0 + primary-for QOpenGLTimerQuery (0x0x7fad221bc820) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7fad21eb0d20) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7fad221bc888) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7fad21eb0cc0) 0 + primary-for QOpenGLTimeMonitor (0x0x7fad221bc888) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7fad21eb0f60) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7fad21f0a000) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7fad221bc8f0) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7fad21eb0f00) 0 + primary-for QOpenGLVertexArrayObject (0x0x7fad221bc8f0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7fad21f0a6c0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7fad21f1a230) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7fad21f1a2a0) 0 + primary-for QPaintDeviceWindow (0x0x7fad21f1a230) + QObject (0x0x7fad21f0a5a0) 0 + primary-for QWindow (0x0x7fad21f1a2a0) + QSurface (0x0x7fad21f0a600) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336) + QPaintDevice (0x0x7fad21f0a660) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7fad21f0a9c0) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7fad221bc9c0) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7fad21f1a460) 0 + primary-for QOpenGLWindow (0x0x7fad221bc9c0) + QWindow (0x0x7fad21f1a4d0) 0 + primary-for QPaintDeviceWindow (0x0x7fad21f1a460) + QObject (0x0x7fad21f0a8a0) 0 + primary-for QWindow (0x0x7fad21f1a4d0) + QSurface (0x0x7fad21f0a900) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384) + QPaintDevice (0x0x7fad21f0a960) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7fad21f0aba0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7fad21fbb600) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7fad2204a180) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7fad22020958) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7fad2204a120) 0 + primary-for QPagedPaintDevice (0x0x7fad22020958) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7fad2204a240) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7fad2204a1e0) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7fad21e6a5a0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7fad21ab14e0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7fad21ab1cc0) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7fad21b69480) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7fad21b53540) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7fad21b693c0) 0 + primary-for QPdfWriter (0x0x7fad21b53540) + QPagedPaintDevice (0x0x7fad21aacd00) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176) + QPaintDevice (0x0x7fad21b69420) 16 + primary-for QPagedPaintDevice (0x0x7fad21aacd00) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7fad21aacd68) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7fad21b69780) 0 + primary-for QPicture (0x0x7fad21aacd68) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7fad21bd4a20) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7fad21bd4ae0) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7fad21bc9f08) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16) + QObject (0x0x7fad21bd4a80) 0 + primary-for QPictureFormatPlugin (0x0x7fad21bc9f08) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7fad21bd4c60) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7fad21bd4c00) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7fad218af420) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7fad218a7b60) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7fad218b0380) 0 + primary-for QRasterWindow (0x0x7fad218a7b60) + QWindow (0x0x7fad218b03f0) 0 + primary-for QPaintDeviceWindow (0x0x7fad218b0380) + QObject (0x0x7fad218af300) 0 + primary-for QWindow (0x0x7fad218b03f0) + QSurface (0x0x7fad218af360) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344) + QPaintDevice (0x0x7fad218af3c0) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7fad218af660) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7fad218a7c30) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7fad218af600) 0 + primary-for QScreen (0x0x7fad218a7c30) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7fad218af8a0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7fad218a7c98) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7fad218af840) 0 + primary-for QSessionManager (0x0x7fad218a7c98) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7fad218afa80) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7fad219a7240) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7fad2192c270) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7fad2192c2d8) 0 + primary-for QStandardItemModel (0x0x7fad2192c270) + QObject (0x0x7fad219a71e0) 0 + primary-for QAbstractItemModel (0x0x7fad2192c2d8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7fad219a7600) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7fad21a2a9c0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7fad21a2c618) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7fad21a2a960) 0 + primary-for QStyleHints (0x0x7fad21a2c618) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7fad21a2ac00) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7fad21a2c680) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7fad21a2aba0) 0 + primary-for QTextObject (0x0x7fad21a2c680) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7fad21a2ae40) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7fad21a2c6e8) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7fad21a2c750) 0 + primary-for QTextBlockGroup (0x0x7fad21a2c6e8) + QObject (0x0x7fad21a2ade0) 0 + primary-for QTextObject (0x0x7fad21a2c750) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7fad21a67060) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7fad21a67120) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7fad21a67180) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7fad21a2c7b8) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7fad21a2c820) 0 + primary-for QTextFrame (0x0x7fad21a2c7b8) + QObject (0x0x7fad21a670c0) 0 + primary-for QTextObject (0x0x7fad21a2c820) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7fad216c2ae0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7fad216c2ba0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7fad216c2b40) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7fad2ee3f360) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7fad2d9cb5a0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7fad2d208ea0) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7fad2d9b4f60) 0 + primary-for QSyntaxHighlighter (0x0x7fad2d208ea0) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7fad2d9ed5a0) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7fad2d9edde0) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7fad2da0b180) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7fad2d208f08) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7fad2d225f70) 0 + primary-for QTextList (0x0x7fad2d208f08) + QTextObject (0x0x7fad2d23e000) 0 + primary-for QTextBlockGroup (0x0x7fad2d225f70) + QObject (0x0x7fad2d9ede40) 0 + primary-for QTextObject (0x0x7fad2d23e000) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7fad2d883660) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7fad2d3d0960) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7fad2cf5b7b8) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7fad2cf5b820) 0 + primary-for QTextTable (0x0x7fad2cf5b7b8) + QTextObject (0x0x7fad2cf5b958) 0 + primary-for QTextFrame (0x0x7fad2cf5b820) + QObject (0x0x7fad2d3ab720) 0 + primary-for QTextObject (0x0x7fad2cf5b958) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7fad2d13fc60) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7fad2cf5baf8) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7fad2d13fba0) 0 + primary-for QValidator (0x0x7fad2cf5baf8) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7fad2d16fd80) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7fad2cf732d8) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7fad2cf73340) 0 + primary-for QIntValidator (0x0x7fad2cf732d8) + QObject (0x0x7fad2d16fd20) 0 + primary-for QValidator (0x0x7fad2cf73340) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7fad2d212060) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7fad2cf73478) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7fad2cf73618) 0 + primary-for QDoubleValidator (0x0x7fad2cf73478) + QObject (0x0x7fad2d212000) 0 + primary-for QValidator (0x0x7fad2cf73618) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7fad2d081360) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7fad2cf73820) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16) + QValidator (0x0x7fad2cf73a90) 0 + primary-for QRegExpValidator (0x0x7fad2cf73820) + QObject (0x0x7fad2d2345a0) 0 + primary-for QValidator (0x0x7fad2cf73a90) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7fad2d09d000) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7fad2cf82f70) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7fad2d031000) 0 + primary-for QRegularExpressionValidator (0x0x7fad2cf82f70) + QObject (0x0x7fad2d081f60) 0 + primary-for QValidator (0x0x7fad2d031000) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7fad2cd5d780) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7fad2cd5d720) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7fad2b779f60) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7fad2b7933c0) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=48 align=8 + base size=48 base align=8 +QWidget (0x0x7fad2ddc61c0) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7fad2b793240) 0 + primary-for QWidget (0x0x7fad2ddc61c0) + QPaintDevice (0x0x7fad2b7932a0) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7fad2b0a2540) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=48 align=8 + base size=48 base align=8 +QAbstractButton (0x0x7fad2b7b2548) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7fad2f0a81c0) 0 + primary-for QAbstractButton (0x0x7fad2b7b2548) + QObject (0x0x7fad2b070480) 0 + primary-for QWidget (0x0x7fad2f0a81c0) + QPaintDevice (0x0x7fad2b0704e0) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7fad2b0f9a80) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI16QAbstractSpinBox) +488 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=48 align=8 + base size=48 base align=8 +QAbstractSpinBox (0x0x7fad2b7b2888) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7fad2f0a8230) 0 + primary-for QAbstractSpinBox (0x0x7fad2b7b2888) + QObject (0x0x7fad2b0f9420) 0 + primary-for QWidget (0x0x7fad2f0a8230) + QPaintDevice (0x0x7fad2b0f9480) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 488) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7fad2aecf840) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=48 align=8 + base size=48 base align=8 +QAbstractSlider (0x0x7fad2b7b2d68) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7fad2fae1310) 0 + primary-for QAbstractSlider (0x0x7fad2b7b2d68) + QObject (0x0x7fad2aeb3e40) 0 + primary-for QWidget (0x0x7fad2fae1310) + QPaintDevice (0x0x7fad2aecf7e0) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7fad2ab33000) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI7QSlider) +456 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=48 align=8 + base size=48 base align=8 +QSlider (0x0x7fad2b8a0888) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7fad2b8a0bc8) 0 + primary-for QSlider (0x0x7fad2b8a0888) + QWidget (0x0x7fad2fae18c0) 0 + primary-for QAbstractSlider (0x0x7fad2b8a0bc8) + QObject (0x0x7fad2af123c0) 0 + primary-for QWidget (0x0x7fad2fae18c0) + QPaintDevice (0x0x7fad2af12f60) 16 + vptr=((& QSlider::_ZTV7QSlider) + 456) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7fad2aba55a0) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7fad2b5c52d8) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7fad2aba5540) 0 + primary-for QStyle (0x0x7fad2b5c52d8) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7fad2a322900) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QTabBar) +488 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=48 align=8 + base size=48 base align=8 +QTabBar (0x0x7fad2b5dd410) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7fad2f0a07e0) 0 + primary-for QTabBar (0x0x7fad2b5dd410) + QObject (0x0x7fad2a322540) 0 + primary-for QWidget (0x0x7fad2f0a07e0) + QPaintDevice (0x0x7fad2a3225a0) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 488) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7fad2a35e480) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QTabWidget) +464 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=48 align=8 + base size=48 base align=8 +QTabWidget (0x0x7fad2b5dda90) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7fad2f0c7700) 0 + primary-for QTabWidget (0x0x7fad2b5dda90) + QObject (0x0x7fad2a35e360) 0 + primary-for QWidget (0x0x7fad2f0c7700) + QPaintDevice (0x0x7fad2a35e3c0) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 464) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7fad2a3f1ae0) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QRubberBand) +448 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=48 align=8 + base size=48 base align=8 +QRubberBand (0x0x7fad2b5ddaf8) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7fad2f0c7af0) 0 + primary-for QRubberBand (0x0x7fad2b5ddaf8) + QObject (0x0x7fad2a3f1120) 0 + primary-for QWidget (0x0x7fad2f0c7af0) + QPaintDevice (0x0x7fad2a3f1a80) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 448) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7fad2a4beb40) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QFrame) +448 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=48 align=8 + base size=48 base align=8 +QFrame (0x0x7fad2b5ddd00) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7fad2f0c7d20) 0 + primary-for QFrame (0x0x7fad2b5ddd00) + QObject (0x0x7fad2a4be5a0) 0 + primary-for QWidget (0x0x7fad2f0c7d20) + QPaintDevice (0x0x7fad2a4beae0) 16 + vptr=((& QFrame::_ZTV6QFrame) + 448) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7fad2a123060) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7fad2b327270) 0 + QStyleOption (0x0x7fad2a123600) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7fad2b3272d8) 0 + QStyleOption (0x0x7fad2a145240) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7fad2b327c98) 0 + QStyleOption (0x0x7fad2a1cbea0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7fad2b327d00) 0 + QStyleOption (0x0x7fad2a20c6c0) 0 + +Class QStyleOptionHeader + size=120 align=8 + base size=116 base align=8 +QStyleOptionHeader (0x0x7fad2b327ea0) 0 + QStyleOption (0x0x7fad29ff3780) 0 + +Class QStyleOptionButton + size=96 align=8 + base size=96 base align=8 +QStyleOptionButton (0x0x7fad2b327f08) 0 + QStyleOption (0x0x7fad2a00d9c0) 0 + +Class QStyleOptionTab + size=136 align=8 + base size=136 base align=8 +QStyleOptionTab (0x0x7fad2b347f08) 0 + QStyleOption (0x0x7fad2a0f7120) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7fad2b360a28) 0 + QStyleOption (0x0x7fad29bcca20) 0 + +Class QStyleOptionProgressBar + size=104 align=8 + base size=102 base align=8 +QStyleOptionProgressBar (0x0x7fad2b360e38) 0 + QStyleOption (0x0x7fad29c6f840) 0 + +Class QStyleOptionMenuItem + size=136 align=8 + base size=136 base align=8 +QStyleOptionMenuItem (0x0x7fad2b377c98) 0 + QStyleOption (0x0x7fad29cc3960) 0 + +Class QStyleOptionDockWidget + size=80 align=8 + base size=76 base align=8 +QStyleOptionDockWidget (0x0x7fad2b377d00) 0 + QStyleOption (0x0x7fad29a5a300) 0 + +Class QStyleOptionViewItem + size=192 align=8 + base size=192 base align=8 +QStyleOptionViewItem (0x0x7fad2b443478) 0 + QStyleOption (0x0x7fad29a5af00) 0 + +Class QStyleOptionToolBox + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBox (0x0x7fad2b45d548) 0 + QStyleOption (0x0x7fad2973f300) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7fad2b121410) 0 + QStyleOption (0x0x7fad2973fa80) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7fad2b121478) 0 + QStyleOption (0x0x7fad29803240) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=121 base align=8 +QStyleOptionSlider (0x0x7fad2b140f08) 0 + QStyleOptionComplex (0x0x7fad2b140f70) 0 + QStyleOption (0x0x7fad2988fea0) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7fad2b1822d8) 0 + QStyleOptionComplex (0x0x7fad2b182340) 0 + QStyleOption (0x0x7fad298d2600) 0 + +Class QStyleOptionToolButton + size=136 align=8 + base size=136 base align=8 +QStyleOptionToolButton (0x0x7fad2b182a28) 0 + QStyleOptionComplex (0x0x7fad2b182a90) 0 + QStyleOption (0x0x7fad29561cc0) 0 + +Class QStyleOptionComboBox + size=120 align=8 + base size=120 base align=8 +QStyleOptionComboBox (0x0x7fad2b1d1340) 0 + QStyleOptionComplex (0x0x7fad2b1d13a8) 0 + QStyleOption (0x0x7fad293675a0) 0 + +Class QStyleOptionTitleBar + size=96 align=8 + base size=96 base align=8 +QStyleOptionTitleBar (0x0x7fad2b1d1548) 0 + QStyleOptionComplex (0x0x7fad2b1d1750) 0 + QStyleOption (0x0x7fad29387f00) 0 + +Class QStyleOptionGroupBox + size=120 align=8 + base size=116 base align=8 +QStyleOptionGroupBox (0x0x7fad2b1d17b8) 0 + QStyleOptionComplex (0x0x7fad2b1ea618) 0 + QStyleOption (0x0x7fad294a0f00) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7fad2b1ea680) 0 + QStyleOptionComplex (0x0x7fad2b2041a0) 0 + QStyleOption (0x0x7fad294e68a0) 0 + +Class QStyleOptionGraphicsItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionGraphicsItem (0x0x7fad2b204208) 0 + QStyleOption (0x0x7fad291612a0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7fad291eee40) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7fad2b248d68) 0 + QStyleHintReturn (0x0x7fad291eef00) 0 + +Class QStyleHintReturnVariant + size=24 align=8 + base size=24 base align=8 +QStyleHintReturnVariant (0x0x7fad2b0483a8) 0 + QStyleHintReturn (0x0x7fad292083c0) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7fad29286f00) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7fad2b100410) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7fad29286ea0) 0 + primary-for QAbstractItemDelegate (0x0x7fad2b100410) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7fad292d0420) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI19QAbstractScrollArea) +480 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=48 align=8 + base size=48 base align=8 +QAbstractScrollArea (0x0x7fad2b100750) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7fad2b1007b8) 0 + primary-for QAbstractScrollArea (0x0x7fad2b100750) + QWidget (0x0x7fad2ee57d90) 0 + primary-for QFrame (0x0x7fad2b1007b8) + QObject (0x0x7fad292d0180) 0 + primary-for QWidget (0x0x7fad2ee57d90) + QPaintDevice (0x0x7fad292d0240) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 480) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7fad293142a0) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QAbstractItemView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI17QAbstractItemView) +784 0 +792 0 +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=48 align=8 + base size=48 base align=8 +QAbstractItemView (0x0x7fad2b11d7b8) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7fad2b11d820) 0 + primary-for QAbstractItemView (0x0x7fad2b11d7b8) + QFrame (0x0x7fad2b11dbc8) 0 + primary-for QAbstractScrollArea (0x0x7fad2b11d820) + QWidget (0x0x7fad2ee71000) 0 + primary-for QFrame (0x0x7fad2b11dbc8) + QObject (0x0x7fad292eaf00) 0 + primary-for QWidget (0x0x7fad2ee71000) + QPaintDevice (0x0x7fad292eaf60) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 784) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7fad2eea65b0) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7fad2ad2fc30) 0 + primary-for QAccessibleWidget (0x0x7fad2eea65b0) + QAccessibleInterface (0x0x7fad290977e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7fad2ad2fc30) + QAccessibleActionInterface (0x0x7fad290979c0) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7fad290fdb40) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7fad2ae61068) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7fad290fdae0) 0 + primary-for QAction (0x0x7fad2ae61068) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7fad28d6f720) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7fad2ae610d0) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7fad28d6f6c0) 0 + primary-for QActionGroup (0x0x7fad2ae610d0) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7fad28d8b900) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7fad2aea3208) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7fad2aea3270) 0 + primary-for QApplication (0x0x7fad2aea3208) + QCoreApplication (0x0x7fad2aeba680) 0 + primary-for QGuiApplication (0x0x7fad2aea3270) + QObject (0x0x7fad28d8b6c0) 0 + primary-for QCoreApplication (0x0x7fad2aeba680) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7fad28df7c60) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7fad2aeba6e8) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7fad28e7e720) 0 + primary-for QSpacerItem (0x0x7fad2aeba6e8) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7fad2af03000) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7fad28e9d9c0) 0 + primary-for QWidgetItem (0x0x7fad2af03000) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7fad2af03068) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7fad2af034e0) 0 + primary-for QWidgetItemV2 (0x0x7fad2af03068) + QLayoutItem (0x0x7fad28b65720) 0 + primary-for QWidgetItem (0x0x7fad2af034e0) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7fad28b65ba0) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QLayout::setGeometry +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))-16 +232 (int (*)(...))(& _ZTI7QLayout) +240 0 +248 0 +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +272 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +280 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +288 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +312 (int (*)(...))QLayoutItem::hasHeightForWidth +320 (int (*)(...))QLayoutItem::heightForWidth +328 (int (*)(...))QLayoutItem::minimumHeightForWidth +336 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +344 (int (*)(...))QLayoutItem::widget +352 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +360 (int (*)(...))QLayoutItem::spacerItem +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7fad2eebdcb0) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7fad28b65900) 0 + primary-for QLayout (0x0x7fad2eebdcb0) + QLayoutItem (0x0x7fad28b659c0) 16 + vptr=((& QLayout::_ZTV7QLayout) + 240) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7fad28b9af60) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QGridLayout::addItem +136 (int (*)(...))QGridLayout::expandingDirections +144 (int (*)(...))QGridLayout::minimumSize +152 (int (*)(...))QGridLayout::maximumSize +160 (int (*)(...))QGridLayout::setGeometry +168 (int (*)(...))QGridLayout::itemAt +176 (int (*)(...))QGridLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QGridLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QGridLayout::sizeHint +232 (int (*)(...))QGridLayout::hasHeightForWidth +240 (int (*)(...))QGridLayout::heightForWidth +248 (int (*)(...))QGridLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QGridLayout) +272 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +280 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +288 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +296 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +304 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +312 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +320 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +352 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +360 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +368 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7fad2af03548) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7fad2eedd7e0) 0 + primary-for QGridLayout (0x0x7fad2af03548) + QObject (0x0x7fad28b80f60) 0 + primary-for QLayout (0x0x7fad2eedd7e0) + QLayoutItem (0x0x7fad28b9af00) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 272) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7fad28bf1720) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI10QBoxLayout) +272 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +280 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7fad2af03a28) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7fad2eeddb60) 0 + primary-for QBoxLayout (0x0x7fad2af03a28) + QObject (0x0x7fad28bf12a0) 0 + primary-for QLayout (0x0x7fad2eeddb60) + QLayoutItem (0x0x7fad28bf16c0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 272) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7fad28c45e40) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QHBoxLayout) +272 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +280 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7fad2af03c30) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7fad2af03c98) 0 + primary-for QHBoxLayout (0x0x7fad2af03c30) + QLayout (0x0x7fad2eef4070) 0 + primary-for QBoxLayout (0x0x7fad2af03c98) + QObject (0x0x7fad28c45840) 0 + primary-for QLayout (0x0x7fad2eef4070) + QLayoutItem (0x0x7fad28c458a0) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 272) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7fad28c62600) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QVBoxLayout) +272 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +280 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7fad2af03d00) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7fad2af1ca28) 0 + primary-for QVBoxLayout (0x0x7fad2af03d00) + QLayout (0x0x7fad2eef41c0) 0 + primary-for QBoxLayout (0x0x7fad2af1ca28) + QObject (0x0x7fad28c62180) 0 + primary-for QLayout (0x0x7fad2eef41c0) + QLayoutItem (0x0x7fad28c625a0) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 272) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7fad28cb1540) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7fad2af1ca90) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7fad28cb14e0) 0 + primary-for QButtonGroup (0x0x7fad2af1ca90) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7fad28ccda80) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=48 align=8 + base size=48 base align=8 +QCalendarWidget (0x0x7fad2af1cdd0) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7fad2eef43f0) 0 + primary-for QCalendarWidget (0x0x7fad2af1cdd0) + QObject (0x0x7fad28ccd420) 0 + primary-for QWidget (0x0x7fad2eef43f0) + QPaintDevice (0x0x7fad28ccd480) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7fad28a2bc00) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI9QCheckBox) +472 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=48 align=8 + base size=48 base align=8 +QCheckBox (0x0x7fad2af1ce38) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7fad2ab369c0) 0 + primary-for QCheckBox (0x0x7fad2af1ce38) + QWidget (0x0x7fad2ef0f690) 0 + primary-for QAbstractButton (0x0x7fad2ab369c0) + QObject (0x0x7fad28949f60) 0 + primary-for QWidget (0x0x7fad2ef0f690) + QPaintDevice (0x0x7fad28a2bba0) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 472) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7fad28ac2480) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=48 align=8 + base size=48 base align=8 +QDialog (0x0x7fad2ab36a28) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7fad2ef0f7e0) 0 + primary-for QDialog (0x0x7fad2ab36a28) + QObject (0x0x7fad28ac2000) 0 + primary-for QWidget (0x0x7fad2ef0f7e0) + QPaintDevice (0x0x7fad28ac2060) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7fad28722780) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=48 align=8 + base size=48 base align=8 +QColorDialog (0x0x7fad2ab36af8) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7fad2ab36b60) 0 + primary-for QColorDialog (0x0x7fad2ab36af8) + QWidget (0x0x7fad2ef0fb60) 0 + primary-for QDialog (0x0x7fad2ab36b60) + QObject (0x0x7fad287221e0) 0 + primary-for QWidget (0x0x7fad2ef0fb60) + QPaintDevice (0x0x7fad28722720) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7fad286201e0) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7fad28620480) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 107 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QColumnView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QColumnView::setModel +472 (int (*)(...))QColumnView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QColumnView::visualRect +496 (int (*)(...))QColumnView::scrollTo +504 (int (*)(...))QColumnView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QColumnView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QColumnView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QColumnView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QColumnView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QColumnView::moveCursor +688 (int (*)(...))QColumnView::horizontalOffset +696 (int (*)(...))QColumnView::verticalOffset +704 (int (*)(...))QColumnView::isIndexHidden +712 (int (*)(...))QColumnView::setSelection +720 (int (*)(...))QColumnView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QColumnView::createColumn +776 (int (*)(...))-16 +784 (int (*)(...))(& _ZTI11QColumnView) +792 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +800 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=48 align=8 + base size=48 base align=8 +QColumnView (0x0x7fad2ab4c5b0) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7fad2ab4c618) 0 + primary-for QColumnView (0x0x7fad2ab4c5b0) + QAbstractScrollArea (0x0x7fad2ab4c888) 0 + primary-for QAbstractItemView (0x0x7fad2ab4c618) + QFrame (0x0x7fad2ab7e0d0) 0 + primary-for QAbstractScrollArea (0x0x7fad2ab4c888) + QWidget (0x0x7fad2eb66af0) 0 + primary-for QFrame (0x0x7fad2ab7e0d0) + QObject (0x0x7fad286202a0) 0 + primary-for QWidget (0x0x7fad2eb66af0) + QPaintDevice (0x0x7fad28620420) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 792) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7fad2863b120) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QComboBox) +464 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +472 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=48 align=8 + base size=48 base align=8 +QComboBox (0x0x7fad2ab7e138) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7fad2eb66b60) 0 + primary-for QComboBox (0x0x7fad2ab7e138) + QObject (0x0x7fad28620900) 0 + primary-for QWidget (0x0x7fad2eb66b60) + QPaintDevice (0x0x7fad2863b0c0) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 464) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7fad283229c0) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QPushButton) +472 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=48 align=8 + base size=48 base align=8 +QPushButton (0x0x7fad2ab7e478) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7fad2ab7e4e0) 0 + primary-for QPushButton (0x0x7fad2ab7e478) + QWidget (0x0x7fad2eb7b5b0) 0 + primary-for QAbstractButton (0x0x7fad2ab7e4e0) + QObject (0x0x7fad286b8060) 0 + primary-for QWidget (0x0x7fad2eb7b5b0) + QPaintDevice (0x0x7fad286b80c0) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 472) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7fad28380540) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI18QCommandLinkButton) +472 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=48 align=8 + base size=48 base align=8 +QCommandLinkButton (0x0x7fad2ab984e0) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7fad2ab98548) 0 + primary-for QCommandLinkButton (0x0x7fad2ab984e0) + QAbstractButton (0x0x7fad2ab988f0) 0 + primary-for QPushButton (0x0x7fad2ab98548) + QWidget (0x0x7fad2eb7b700) 0 + primary-for QAbstractButton (0x0x7fad2ab988f0) + QObject (0x0x7fad28380300) 0 + primary-for QWidget (0x0x7fad2eb7b700) + QPaintDevice (0x0x7fad283804e0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 472) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7fad283994e0) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7fad2ab98958) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7fad2ac546e8) 0 + primary-for QCommonStyle (0x0x7fad2ab98958) + QObject (0x0x7fad28399480) 0 + primary-for QStyle (0x0x7fad2ac546e8) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7fad283f6660) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7fad2ac54750) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7fad283f6600) 0 + primary-for QCompleter (0x0x7fad2ac54750) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7fad28414120) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7fad2ac761a0) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7fad283f6de0) 0 + primary-for QDataWidgetMapper (0x0x7fad2ac761a0) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7fad27b5b240) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QDateTimeEdit) +504 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=48 align=8 + base size=48 base align=8 +QDateTimeEdit (0x0x7fad2ac76208) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7fad2ac76410) 0 + primary-for QDateTimeEdit (0x0x7fad2ac76208) + QWidget (0x0x7fad2eb7bee0) 0 + primary-for QAbstractSpinBox (0x0x7fad2ac76410) + QObject (0x0x7fad27b3a840) 0 + primary-for QWidget (0x0x7fad2eb7bee0) + QPaintDevice (0x0x7fad27b3a8a0) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 504) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7fad27bd3720) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QTimeEdit) +504 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=48 align=8 + base size=48 base align=8 +QTimeEdit (0x0x7fad2ac8aaf8) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7fad2aafd138) 0 + primary-for QTimeEdit (0x0x7fad2ac8aaf8) + QAbstractSpinBox (0x0x7fad2aafd1a0) 0 + primary-for QDateTimeEdit (0x0x7fad2aafd138) + QWidget (0x0x7fad2ebb1700) 0 + primary-for QAbstractSpinBox (0x0x7fad2aafd1a0) + QObject (0x0x7fad27bd3480) 0 + primary-for QWidget (0x0x7fad2ebb1700) + QPaintDevice (0x0x7fad27bd36c0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 504) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7fad27c33780) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QDateEdit) +504 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=48 align=8 + base size=48 base align=8 +QDateEdit (0x0x7fad2aafd6e8) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7fad2aafd750) 0 + primary-for QDateEdit (0x0x7fad2aafd6e8) + QAbstractSpinBox (0x0x7fad2ab1a340) 0 + primary-for QDateTimeEdit (0x0x7fad2aafd750) + QWidget (0x0x7fad2ebb1af0) 0 + primary-for QAbstractSpinBox (0x0x7fad2ab1a340) + QObject (0x0x7fad27c334e0) 0 + primary-for QWidget (0x0x7fad2ebb1af0) + QPaintDevice (0x0x7fad27c33540) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 504) + +Class QDesktopWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesktopWidget::QPrivateSignal (0x0x7fad27937120) 0 empty + +Vtable for QDesktopWidget +QDesktopWidget::_ZTV14QDesktopWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDesktopWidget) +16 (int (*)(...))QDesktopWidget::metaObject +24 (int (*)(...))QDesktopWidget::qt_metacast +32 (int (*)(...))QDesktopWidget::qt_metacall +40 (int (*)(...))QDesktopWidget::~QDesktopWidget +48 (int (*)(...))QDesktopWidget::~QDesktopWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDesktopWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QDesktopWidget) +448 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD1Ev +456 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesktopWidget + size=48 align=8 + base size=48 base align=8 +QDesktopWidget (0x0x7fad2ab1a3a8) 0 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 16) + QWidget (0x0x7fad2ebfa7e0) 0 + primary-for QDesktopWidget (0x0x7fad2ab1a3a8) + QObject (0x0x7fad27d16c60) 0 + primary-for QWidget (0x0x7fad2ebfa7e0) + QPaintDevice (0x0x7fad279370c0) 16 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 448) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7fad27a48ea0) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QDial) +456 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +464 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=48 align=8 + base size=48 base align=8 +QDial (0x0x7fad2ab1a750) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7fad2ab1a7b8) 0 + primary-for QDial (0x0x7fad2ab1a750) + QWidget (0x0x7fad2ebfa850) 0 + primary-for QAbstractSlider (0x0x7fad2ab1a7b8) + QObject (0x0x7fad27a48b40) 0 + primary-for QWidget (0x0x7fad2ebfa850) + QPaintDevice (0x0x7fad27a48e40) 16 + vptr=((& QDial::_ZTV5QDial) + 456) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7fad27a87780) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=48 align=8 + base size=48 base align=8 +QDialogButtonBox (0x0x7fad2a72c340) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7fad2ebfa930) 0 + primary-for QDialogButtonBox (0x0x7fad2a72c340) + QObject (0x0x7fad27a62de0) 0 + primary-for QWidget (0x0x7fad2ebfa930) + QPaintDevice (0x0x7fad27a87720) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QFileIconProvider::type + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7fad277e5960) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + +Class QDirModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDirModel::QPrivateSignal (0x0x7fad2734f6c0) 0 empty + +Vtable for QDirModel +QDirModel::_ZTV9QDirModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDirModel) +16 (int (*)(...))QDirModel::metaObject +24 (int (*)(...))QDirModel::qt_metacast +32 (int (*)(...))QDirModel::qt_metacall +40 (int (*)(...))QDirModel::~QDirModel +48 (int (*)(...))QDirModel::~QDirModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDirModel::index +120 (int (*)(...))QDirModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QDirModel::rowCount +144 (int (*)(...))QDirModel::columnCount +152 (int (*)(...))QDirModel::hasChildren +160 (int (*)(...))QDirModel::data +168 (int (*)(...))QDirModel::setData +176 (int (*)(...))QDirModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QDirModel::mimeTypes +216 (int (*)(...))QDirModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QDirModel::dropMimeData +240 (int (*)(...))QDirModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QDirModel::flags +328 (int (*)(...))QDirModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QDirModel + size=16 align=8 + base size=16 base align=8 +QDirModel (0x0x7fad2a7f18f0) 0 + vptr=((& QDirModel::_ZTV9QDirModel) + 16) + QAbstractItemModel (0x0x7fad2a7f1958) 0 + primary-for QDirModel (0x0x7fad2a7f18f0) + QObject (0x0x7fad2734f660) 0 + primary-for QAbstractItemModel (0x0x7fad2a7f1958) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7fad271339c0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QDockWidget) +448 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=48 align=8 + base size=48 base align=8 +QDockWidget (0x0x7fad2a8163a8) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7fad2e7ba0e0) 0 + primary-for QDockWidget (0x0x7fad2a8163a8) + QObject (0x0x7fad2734fa20) 0 + primary-for QWidget (0x0x7fad2e7ba0e0) + QPaintDevice (0x0x7fad2734fa80) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 448) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7fad26f8a660) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7fad26f11de0) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=48 align=8 + base size=48 base align=8 +QErrorMessage (0x0x7fad2a5591a0) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7fad2a559340) 0 + primary-for QErrorMessage (0x0x7fad2a5591a0) + QWidget (0x0x7fad2e8439a0) 0 + primary-for QDialog (0x0x7fad2a559340) + QObject (0x0x7fad26f11c60) 0 + primary-for QWidget (0x0x7fad2e8439a0) + QPaintDevice (0x0x7fad26f11d20) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7fad26bf78a0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=48 align=8 + base size=48 base align=8 +QFileDialog (0x0x7fad2a559548) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7fad2a5597b8) 0 + primary-for QFileDialog (0x0x7fad2a559548) + QWidget (0x0x7fad2e843d20) 0 + primary-for QDialog (0x0x7fad2a5597b8) + QObject (0x0x7fad26bb8a20) 0 + primary-for QWidget (0x0x7fad2e843d20) + QPaintDevice (0x0x7fad26bf7840) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7fad269fbc00) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QFileSystemModel::mimeTypes +216 (int (*)(...))QFileSystemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QFileSystemModel::dropMimeData +240 (int (*)(...))QFileSystemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QFileSystemModel::fetchMore +312 (int (*)(...))QFileSystemModel::canFetchMore +320 (int (*)(...))QFileSystemModel::flags +328 (int (*)(...))QFileSystemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7fad2a559f70) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7fad2a56c000) 0 + primary-for QFileSystemModel (0x0x7fad2a559f70) + QObject (0x0x7fad269fbba0) 0 + primary-for QAbstractItemModel (0x0x7fad2a56c000) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7fad26a461e0) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QFocusFrame) +448 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=48 align=8 + base size=48 base align=8 +QFocusFrame (0x0x7fad2a56c340) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7fad2e52e230) 0 + primary-for QFocusFrame (0x0x7fad2a56c340) + QObject (0x0x7fad26a21ba0) 0 + primary-for QWidget (0x0x7fad2e52e230) + QPaintDevice (0x0x7fad26a21c60) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 448) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7fad268079c0) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI13QFontComboBox) +464 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +472 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=48 align=8 + base size=48 base align=8 +QFontComboBox (0x0x7fad2a56c3a8) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7fad2a5c3138) 0 + primary-for QFontComboBox (0x0x7fad2a56c3a8) + QWidget (0x0x7fad2e52e310) 0 + primary-for QComboBox (0x0x7fad2a5c3138) + QObject (0x0x7fad26a89cc0) 0 + primary-for QWidget (0x0x7fad2e52e310) + QPaintDevice (0x0x7fad26a89d20) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 464) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7fad254171e0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=48 align=8 + base size=48 base align=8 +QFontDialog (0x0x7fad2a5dc068) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7fad2a5dc0d0) 0 + primary-for QFontDialog (0x0x7fad2a5dc068) + QWidget (0x0x7fad2e5868c0) 0 + primary-for QDialog (0x0x7fad2a5dc0d0) + QObject (0x0x7fad2536ce40) 0 + primary-for QWidget (0x0x7fad2e5868c0) + QPaintDevice (0x0x7fad2536cea0) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7fad25168c60) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7fad25168cc0) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 50 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QFormLayout::addItem +136 (int (*)(...))QFormLayout::expandingDirections +144 (int (*)(...))QFormLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QFormLayout::setGeometry +168 (int (*)(...))QFormLayout::itemAt +176 (int (*)(...))QFormLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QFormLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QFormLayout::sizeHint +232 (int (*)(...))QFormLayout::hasHeightForWidth +240 (int (*)(...))QFormLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI11QFormLayout) +264 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +272 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +280 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +288 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +312 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +344 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7fad2a5dc4e0) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7fad2e5d5d90) 0 + primary-for QFormLayout (0x0x7fad2a5dc4e0) + QObject (0x0x7fad25143ba0) 0 + primary-for QLayout (0x0x7fad2e5d5d90) + QLayoutItem (0x0x7fad25143c00) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 264) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7fad24eb4780) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7fad2a0cd3a8) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7fad24eb45a0) 0 + primary-for QGesture (0x0x7fad2a0cd3a8) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7fad24ed1900) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7fad2a0cd410) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7fad2a0cd8f0) 0 + primary-for QPanGesture (0x0x7fad2a0cd410) + QObject (0x0x7fad24ed1600) 0 + primary-for QGesture (0x0x7fad2a0cd8f0) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7fad24b23120) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7fad2a0cd958) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7fad2a0cdc98) 0 + primary-for QPinchGesture (0x0x7fad2a0cd958) + QObject (0x0x7fad24f01ba0) 0 + primary-for QGesture (0x0x7fad2a0cdc98) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7fad24a9d540) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7fad29d45f70) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7fad29dfef70) 0 + primary-for QSwipeGesture (0x0x7fad29d45f70) + QObject (0x0x7fad24a9d4e0) 0 + primary-for QGesture (0x0x7fad29dfef70) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7fad24777de0) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7fad29e19000) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7fad29e4b068) 0 + primary-for QTapGesture (0x0x7fad29e19000) + QObject (0x0x7fad24777d20) 0 + primary-for QGesture (0x0x7fad29e4b068) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7fad248147e0) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7fad29e4b0d0) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7fad29e650d0) 0 + primary-for QTapAndHoldGesture (0x0x7fad29e4b0d0) + QObject (0x0x7fad24794900) 0 + primary-for QGesture (0x0x7fad29e650d0) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent + +Class QGestureEvent + size=56 align=8 + base size=56 base align=8 +QGestureEvent (0x0x7fad29e65138) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7fad24831480) 0 + primary-for QGestureEvent (0x0x7fad29e65138) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7fad248ed180) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7fad245c1360) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7fad246915a0) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7fad2e1d2a80) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7fad24691240) 0 + primary-for QGraphicsObject (0x0x7fad2e1d2a80) + QGraphicsItem (0x0x7fad24691540) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7fad29bcd750) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7fad246e0ba0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fad29bcd750) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7fad29bcd8f0) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fad29bcd958) 0 + primary-for QGraphicsPathItem (0x0x7fad29bcd8f0) + QGraphicsItem (0x0x7fad24701780) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fad29bcd958) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7fad29bcd9c0) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fad29bec6e8) 0 + primary-for QGraphicsRectItem (0x0x7fad29bcd9c0) + QGraphicsItem (0x0x7fad24701e40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fad29bec6e8) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7fad29bec750) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fad29beca90) 0 + primary-for QGraphicsEllipseItem (0x0x7fad29bec750) + QGraphicsItem (0x0x7fad243e6a20) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fad29beca90) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7fad29becaf8) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fad29c01680) 0 + primary-for QGraphicsPolygonItem (0x0x7fad29becaf8) + QGraphicsItem (0x0x7fad243e6f60) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fad29c01680) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7fad29c016e8) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7fad2440cb40) 0 + primary-for QGraphicsLineItem (0x0x7fad29c016e8) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7fad29c017b8) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7fad24428240) 0 + primary-for QGraphicsPixmapItem (0x0x7fad29c017b8) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7fad244999c0) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7fad29c01820) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7fad2e2cbcb0) 0 + primary-for QGraphicsTextItem (0x0x7fad29c01820) + QObject (0x0x7fad244995a0) 0 + primary-for QGraphicsObject (0x0x7fad2e2cbcb0) + QGraphicsItem (0x0x7fad24499960) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7fad29c19270) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7fad29c192d8) 0 + primary-for QGraphicsSimpleTextItem (0x0x7fad29c19270) + QGraphicsItem (0x0x7fad244da600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7fad29c192d8) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7fad29c19548) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7fad244f99c0) 0 + primary-for QGraphicsItemGroup (0x0x7fad29c19548) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7fad2413cf00) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QGraphicsLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7fad29c26a28) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7fad2422d660) 0 + primary-for QGraphicsLayout (0x0x7fad29c26a28) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7fad2424c900) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7fad29c26a90) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7fad2424c8a0) 0 + primary-for QGraphicsAnchor (0x0x7fad29c26a90) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsAnchorLayout::sizeHint +64 (int (*)(...))QGraphicsAnchorLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsAnchorLayout::count +88 (int (*)(...))QGraphicsAnchorLayout::itemAt +96 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7fad29c26c30) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7fad29c26e38) 0 + primary-for QGraphicsAnchorLayout (0x0x7fad29c26c30) + QGraphicsLayoutItem (0x0x7fad24269d80) 0 + primary-for QGraphicsLayout (0x0x7fad29c26e38) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7fad2430bc00) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7fad29c26ea0) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7fad2430b480) 0 + primary-for QGraphicsEffect (0x0x7fad29c26ea0) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7fad23f09cc0) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7fad29c43f08) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7fad29c43f70) 0 + primary-for QGraphicsColorizeEffect (0x0x7fad29c43f08) + QObject (0x0x7fad23f09960) 0 + primary-for QGraphicsEffect (0x0x7fad29c43f70) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7fad23fa0f00) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7fad29c5a340) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7fad29c5a3a8) 0 + primary-for QGraphicsBlurEffect (0x0x7fad29c5a340) + QObject (0x0x7fad23fa0ae0) 0 + primary-for QGraphicsEffect (0x0x7fad29c5a3a8) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7fad23d5ccc0) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7fad29c5add0) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7fad29c5ae38) 0 + primary-for QGraphicsDropShadowEffect (0x0x7fad29c5add0) + QObject (0x0x7fad23d5cc00) 0 + primary-for QGraphicsEffect (0x0x7fad29c5ae38) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7fad23d9ec00) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7fad29c761a0) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7fad29c76208) 0 + primary-for QGraphicsOpacityEffect (0x0x7fad29c761a0) + QObject (0x0x7fad23d9eb40) 0 + primary-for QGraphicsEffect (0x0x7fad29c76208) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsGridLayout::sizeHint +64 (int (*)(...))QGraphicsGridLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsGridLayout::count +88 (int (*)(...))QGraphicsGridLayout::itemAt +96 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7fad29c8d208) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7fad29c8d270) 0 + primary-for QGraphicsGridLayout (0x0x7fad29c8d208) + QGraphicsLayoutItem (0x0x7fad23dbd900) 0 + primary-for QGraphicsLayout (0x0x7fad29c8d270) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7fad23ddc060) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7fad29c8df70) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7fad23dbdba0) 0 + primary-for QGraphicsItemAnimation (0x0x7fad29c8df70) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLinearLayout::sizeHint +64 (int (*)(...))QGraphicsLinearLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsLinearLayout::count +88 (int (*)(...))QGraphicsLinearLayout::itemAt +96 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7fad29cca000) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7fad29cca1a0) 0 + primary-for QGraphicsLinearLayout (0x0x7fad29cca000) + QGraphicsLayoutItem (0x0x7fad23ddc660) 0 + primary-for QGraphicsLayout (0x0x7fad29cca1a0) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7fad23e04780) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 92 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7fad2dd29690) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7fad2dd29770) 0 + primary-for QGraphicsWidget (0x0x7fad2dd29690) + QObject (0x0x7fad23e043c0) 0 + primary-for QGraphicsObject (0x0x7fad2dd29770) + QGraphicsItem (0x0x7fad23e04420) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7fad23e044e0) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7fad23e1ee40) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 107 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7fad29cca548) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7fad2dd29e00) 0 + primary-for QGraphicsProxyWidget (0x0x7fad29cca548) + QGraphicsObject (0x0x7fad2dd29ee0) 0 + primary-for QGraphicsWidget (0x0x7fad2dd29e00) + QObject (0x0x7fad23e1e9c0) 0 + primary-for QGraphicsObject (0x0x7fad2dd29ee0) + QGraphicsItem (0x0x7fad23e1ed20) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7fad23e1ed80) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7fad23e5b7e0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7fad29ce0000) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7fad23e5b720) 0 + primary-for QGraphicsScene (0x0x7fad29ce0000) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent + +Class QGraphicsSceneEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneEvent (0x0x7fad29ce0680) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7fad23b20360) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29ce0680) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent + +Class QGraphicsSceneMouseEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMouseEvent (0x0x7fad29ce0a90) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29ce0af8) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7fad29ce0a90) + QEvent (0x0x7fad23b66000) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29ce0af8) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent + +Class QGraphicsSceneWheelEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneWheelEvent (0x0x7fad29ce0e38) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29ce0ea0) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7fad29ce0e38) + QEvent (0x0x7fad23b664e0) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29ce0ea0) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent + +Class QGraphicsSceneContextMenuEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7fad29cf4208) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29cf4270) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7fad29cf4208) + QEvent (0x0x7fad23b667e0) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29cf4270) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent + +Class QGraphicsSceneHoverEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHoverEvent (0x0x7fad29a93f08) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29a93f70) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7fad29a93f08) + QEvent (0x0x7fad23b66c00) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29a93f70) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent + +Class QGraphicsSceneHelpEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHelpEvent (0x0x7fad29ad0208) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29ad0270) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7fad29ad0208) + QEvent (0x0x7fad23b83ba0) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29ad0270) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent + +Class QGraphicsSceneDragDropEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneDragDropEvent (0x0x7fad29ad05b0) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29ad0618) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7fad29ad05b0) + QEvent (0x0x7fad23bd3660) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29ad0618) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent + +Class QGraphicsSceneResizeEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneResizeEvent (0x0x7fad29af7958) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29af79c0) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7fad29af7958) + QEvent (0x0x7fad23bf12a0) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29af79c0) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent + +Class QGraphicsSceneMoveEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMoveEvent (0x0x7fad29af7d00) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7fad29af7d68) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7fad29af7d00) + QEvent (0x0x7fad23c483c0) 0 + primary-for QGraphicsSceneEvent (0x0x7fad29af7d68) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7fad23c69000) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7fad29b14d68) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7fad23c48f60) 0 + primary-for QGraphicsTransform (0x0x7fad29b14d68) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7fad238af900) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7fad29b14dd0) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7fad2972b5b0) 0 + primary-for QGraphicsScale (0x0x7fad29b14dd0) + QObject (0x0x7fad238af8a0) 0 + primary-for QGraphicsTransform (0x0x7fad2972b5b0) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7fad238cdd20) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7fad2972b618) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7fad2972ba90) 0 + primary-for QGraphicsRotation (0x0x7fad2972b618) + QObject (0x0x7fad238cdcc0) 0 + primary-for QGraphicsTransform (0x0x7fad2972ba90) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7fad23a31d20) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QScrollArea::scrollContentsBy +456 (int (*)(...))QScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QScrollArea) +480 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=48 align=8 + base size=48 base align=8 +QScrollArea (0x0x7fad2972baf8) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7fad29745548) 0 + primary-for QScrollArea (0x0x7fad2972baf8) + QFrame (0x0x7fad297455b0) 0 + primary-for QAbstractScrollArea (0x0x7fad29745548) + QWidget (0x0x7fad2db5bd20) 0 + primary-for QFrame (0x0x7fad297455b0) + QObject (0x0x7fad23a31c00) 0 + primary-for QWidget (0x0x7fad2db5bd20) + QPaintDevice (0x0x7fad23a31c60) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 480) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7fad236b43c0) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QGraphicsView::setupViewport +440 (int (*)(...))QGraphicsView::viewportEvent +448 (int (*)(...))QGraphicsView::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QGraphicsView::drawBackground +472 (int (*)(...))QGraphicsView::drawForeground +480 (int (*)(...))QGraphicsView::drawItems +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QGraphicsView) +504 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=48 align=8 + base size=48 base align=8 +QGraphicsView (0x0x7fad29745c30) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7fad29745c98) 0 + primary-for QGraphicsView (0x0x7fad29745c30) + QFrame (0x0x7fad297826e8) 0 + primary-for QAbstractScrollArea (0x0x7fad29745c98) + QWidget (0x0x7fad2dc70000) 0 + primary-for QFrame (0x0x7fad297826e8) + QObject (0x0x7fad23a72600) 0 + primary-for QWidget (0x0x7fad2dc70000) + QPaintDevice (0x0x7fad23a72660) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 504) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7fad232c1060) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QGroupBox) +448 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=48 align=8 + base size=48 base align=8 +QGroupBox (0x0x7fad29810b60) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7fad2dccb930) 0 + primary-for QGroupBox (0x0x7fad29810b60) + QObject (0x0x7fad232a9cc0) 0 + primary-for QWidget (0x0x7fad2dccb930) + QPaintDevice (0x0x7fad232a9d20) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 448) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7fad232e3480) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QHeaderView::viewportEvent +448 (int (*)(...))QHeaderView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QHeaderView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QHeaderView::visualRect +496 (int (*)(...))QHeaderView::scrollTo +504 (int (*)(...))QHeaderView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QHeaderView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QHeaderView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QHeaderView::dataChanged +568 (int (*)(...))QHeaderView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QHeaderView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QHeaderView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QHeaderView::moveCursor +688 (int (*)(...))QHeaderView::horizontalOffset +696 (int (*)(...))QHeaderView::verticalOffset +704 (int (*)(...))QHeaderView::isIndexHidden +712 (int (*)(...))QHeaderView::setSelection +720 (int (*)(...))QHeaderView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QHeaderView::paintSection +776 (int (*)(...))QHeaderView::sectionSizeFromContents +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI11QHeaderView) +800 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +808 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=48 align=8 + base size=48 base align=8 +QHeaderView (0x0x7fad29810f08) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7fad29810f70) 0 + primary-for QHeaderView (0x0x7fad29810f08) + QAbstractScrollArea (0x0x7fad298d61a0) 0 + primary-for QAbstractItemView (0x0x7fad29810f70) + QFrame (0x0x7fad298d6208) 0 + primary-for QAbstractScrollArea (0x0x7fad298d61a0) + QWidget (0x0x7fad2dccb9a0) 0 + primary-for QFrame (0x0x7fad298d6208) + QObject (0x0x7fad232e31e0) 0 + primary-for QWidget (0x0x7fad2dccb9a0) + QPaintDevice (0x0x7fad232e3240) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 800) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7fad2340b600) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QLineEdit) +448 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=48 align=8 + base size=48 base align=8 +QLineEdit (0x0x7fad295915b0) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7fad2d945700) 0 + primary-for QLineEdit (0x0x7fad295915b0) + QObject (0x0x7fad2340b060) 0 + primary-for QWidget (0x0x7fad2d945700) + QPaintDevice (0x0x7fad2340b0c0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 448) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7fad23457420) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=48 align=8 + base size=48 base align=8 +QInputDialog (0x0x7fad295bc270) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7fad295bc2d8) 0 + primary-for QInputDialog (0x0x7fad295bc270) + QWidget (0x0x7fad2d945af0) 0 + primary-for QDialog (0x0x7fad295bc2d8) + QObject (0x0x7fad23457180) 0 + primary-for QWidget (0x0x7fad2d945af0) + QPaintDevice (0x0x7fad234573c0) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7fad22f39540) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7fad295bcf70) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7fad295de000) 0 + primary-for QItemDelegate (0x0x7fad295bcf70) + QObject (0x0x7fad22f169c0) 0 + primary-for QAbstractItemDelegate (0x0x7fad295de000) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7fad22f9e420) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7fad230276c0) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeyEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeyEventTransition::QPrivateSignal (0x0x7fad22ce7300) 0 empty + +Vtable for QKeyEventTransition +QKeyEventTransition::_ZTV19QKeyEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QKeyEventTransition) +16 (int (*)(...))QKeyEventTransition::metaObject +24 (int (*)(...))QKeyEventTransition::qt_metacast +32 (int (*)(...))QKeyEventTransition::qt_metacall +40 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +48 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QKeyEventTransition::eventTest +120 (int (*)(...))QKeyEventTransition::onTransition + +Class QKeyEventTransition + size=16 align=8 + base size=16 base align=8 +QKeyEventTransition (0x0x7fad2937e068) 0 + vptr=((& QKeyEventTransition::_ZTV19QKeyEventTransition) + 16) + QEventTransition (0x0x7fad2937e0d0) 0 + primary-for QKeyEventTransition (0x0x7fad2937e068) + QAbstractTransition (0x0x7fad2937e270) 0 + primary-for QEventTransition (0x0x7fad2937e0d0) + QObject (0x0x7fad22ca2cc0) 0 + primary-for QAbstractTransition (0x0x7fad2937e270) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7fad22d085a0) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=48 align=8 + base size=48 base align=8 +QKeySequenceEdit (0x0x7fad2937e9c0) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7fad2da73a10) 0 + primary-for QKeySequenceEdit (0x0x7fad2937e9c0) + QObject (0x0x7fad22ce7f60) 0 + primary-for QWidget (0x0x7fad2da73a10) + QPaintDevice (0x0x7fad22d08540) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7fad225388a0) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QLabel) +448 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=48 align=8 + base size=48 base align=8 +QLabel (0x0x7fad2937ea28) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7fad2937eea0) 0 + primary-for QLabel (0x0x7fad2937ea28) + QWidget (0x0x7fad2da73cb0) 0 + primary-for QFrame (0x0x7fad2937eea0) + QObject (0x0x7fad22538120) 0 + primary-for QWidget (0x0x7fad2da73cb0) + QPaintDevice (0x0x7fad22538180) 16 + vptr=((& QLabel::_ZTV6QLabel) + 448) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7fad225533c0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QLCDNumber) +448 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=48 align=8 + base size=48 base align=8 +QLCDNumber (0x0x7fad2937ef08) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7fad293960d0) 0 + primary-for QLCDNumber (0x0x7fad2937ef08) + QWidget (0x0x7fad2db05bd0) 0 + primary-for QFrame (0x0x7fad293960d0) + QObject (0x0x7fad22553060) 0 + primary-for QWidget (0x0x7fad2db05bd0) + QPaintDevice (0x0x7fad225530c0) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 448) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7fad220f0600) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QListView) +784 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +792 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=48 align=8 + base size=48 base align=8 +QListView (0x0x7fad293962d8) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7fad29396548) 0 + primary-for QListView (0x0x7fad293962d8) + QAbstractScrollArea (0x0x7fad2946f9c0) 0 + primary-for QAbstractItemView (0x0x7fad29396548) + QFrame (0x0x7fad2946fa28) 0 + primary-for QAbstractScrollArea (0x0x7fad2946f9c0) + QWidget (0x0x7fad2db05150) 0 + primary-for QFrame (0x0x7fad2946fa28) + QObject (0x0x7fad220bda20) 0 + primary-for QWidget (0x0x7fad2db05150) + QPaintDevice (0x0x7fad220bdf60) 16 + vptr=((& QListView::_ZTV9QListView) + 784) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::setBackgroundColor +48 (int (*)(...))QListWidgetItem::data +56 (int (*)(...))QListWidgetItem::setData +64 (int (*)(...))QListWidgetItem::operator< +72 (int (*)(...))QListWidgetItem::read +80 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=48 align=8 + base size=44 base align=8 +QListWidgetItem (0x0x7fad22000360) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7fad21c2df00) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QListWidget::setModel +472 (int (*)(...))QListWidget::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))QListWidget::mimeTypes +776 (int (*)(...))QListWidget::mimeData +784 (int (*)(...))QListWidget::dropMimeData +792 (int (*)(...))QListWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI11QListWidget) +816 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +824 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=48 align=8 + base size=48 base align=8 +QListWidget (0x0x7fad29509d00) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7fad29509d68) 0 + primary-for QListWidget (0x0x7fad29509d00) + QAbstractItemView (0x0x7fad29509f08) 0 + primary-for QListView (0x0x7fad29509d68) + QAbstractScrollArea (0x0x7fad291410d0) 0 + primary-for QAbstractItemView (0x0x7fad29509f08) + QFrame (0x0x7fad29141138) 0 + primary-for QAbstractScrollArea (0x0x7fad291410d0) + QWidget (0x0x7fad2d5cb700) 0 + primary-for QFrame (0x0x7fad29141138) + QObject (0x0x7fad21c2d5a0) 0 + primary-for QWidget (0x0x7fad2d5cb700) + QPaintDevice (0x0x7fad21c2dea0) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 816) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7fad21c906c0) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=48 align=8 + base size=48 base align=8 +QMainWindow (0x0x7fad291412d8) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7fad2d5cb9a0) 0 + primary-for QMainWindow (0x0x7fad291412d8) + QObject (0x0x7fad21c90540) 0 + primary-for QWidget (0x0x7fad2d5cb9a0) + QPaintDevice (0x0x7fad21c90600) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7fad2170aa80) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMdiArea::setupViewport +440 (int (*)(...))QMdiArea::viewportEvent +448 (int (*)(...))QMdiArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI8QMdiArea) +480 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=48 align=8 + base size=48 base align=8 +QMdiArea (0x0x7fad29141c98) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7fad29141d00) 0 + primary-for QMdiArea (0x0x7fad29141c98) + QFrame (0x0x7fad29141ea0) 0 + primary-for QAbstractScrollArea (0x0x7fad29141d00) + QWidget (0x0x7fad2d6925b0) 0 + primary-for QFrame (0x0x7fad29141ea0) + QObject (0x0x7fad2170a4e0) 0 + primary-for QWidget (0x0x7fad2d6925b0) + QPaintDevice (0x0x7fad2170aa20) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 480) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7fad236c0240) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=48 align=8 + base size=48 base align=8 +QMdiSubWindow (0x0x7fad29155750) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7fad2d6c50e0) 0 + primary-for QMdiSubWindow (0x0x7fad29155750) + QObject (0x0x7fad236c0180) 0 + primary-for QWidget (0x0x7fad2d6c50e0) + QPaintDevice (0x0x7fad236c01e0) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7fad236c0c00) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI5QMenu) +448 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=48 align=8 + base size=48 base align=8 +QMenu (0x0x7fad29155b60) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7fad2d6c5af0) 0 + primary-for QMenu (0x0x7fad29155b60) + QObject (0x0x7fad236c0b40) 0 + primary-for QWidget (0x0x7fad2d6c5af0) + QPaintDevice (0x0x7fad236c0ba0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 448) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7fad2f0cc060) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QMenuBar) +448 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=48 align=8 + base size=48 base align=8 +QMenuBar (0x0x7fad29155ea0) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7fad2d6c5b60) 0 + primary-for QMenuBar (0x0x7fad29155ea0) + QObject (0x0x7fad236c0f60) 0 + primary-for QWidget (0x0x7fad2d6c5b60) + QPaintDevice (0x0x7fad2f0cc000) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 448) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7fad2f0cc3c0) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=48 align=8 + base size=48 base align=8 +QMessageBox (0x0x7fad29155f08) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7fad2916b618) 0 + primary-for QMessageBox (0x0x7fad29155f08) + QWidget (0x0x7fad2d6c5cb0) 0 + primary-for QDialog (0x0x7fad2916b618) + QObject (0x0x7fad2f0cc300) 0 + primary-for QWidget (0x0x7fad2d6c5cb0) + QPaintDevice (0x0x7fad2f0cc360) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QMouseEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMouseEventTransition::QPrivateSignal (0x0x7fad2bc4e000) 0 empty + +Vtable for QMouseEventTransition +QMouseEventTransition::_ZTV21QMouseEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QMouseEventTransition) +16 (int (*)(...))QMouseEventTransition::metaObject +24 (int (*)(...))QMouseEventTransition::qt_metacast +32 (int (*)(...))QMouseEventTransition::qt_metacall +40 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +48 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMouseEventTransition::eventTest +120 (int (*)(...))QMouseEventTransition::onTransition + +Class QMouseEventTransition + size=16 align=8 + base size=16 base align=8 +QMouseEventTransition (0x0x7fad2916bea0) 0 + vptr=((& QMouseEventTransition::_ZTV21QMouseEventTransition) + 16) + QEventTransition (0x0x7fad291fa340) 0 + primary-for QMouseEventTransition (0x0x7fad2916bea0) + QAbstractTransition (0x0x7fad291fa3a8) 0 + primary-for QEventTransition (0x0x7fad291fa340) + QObject (0x0x7fad2f0ccf60) 0 + primary-for QAbstractTransition (0x0x7fad291fa3a8) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7fad2bc4e2a0) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=48 align=8 + base size=48 base align=8 +QOpenGLWidget (0x0x7fad291fadd0) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7fad2d449d90) 0 + primary-for QOpenGLWidget (0x0x7fad291fadd0) + QObject (0x0x7fad2bc4e1e0) 0 + primary-for QWidget (0x0x7fad2d449d90) + QPaintDevice (0x0x7fad2bc4e240) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7fad2bc4e540) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7fad2bc4e5a0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextEdit::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI9QTextEdit) +520 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=48 align=8 + base size=48 base align=8 +QTextEdit (0x0x7fad292124e0) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7fad29212548) 0 + primary-for QTextEdit (0x0x7fad292124e0) + QFrame (0x0x7fad29264068) 0 + primary-for QAbstractScrollArea (0x0x7fad29212548) + QWidget (0x0x7fad2d4cc070) 0 + primary-for QFrame (0x0x7fad29264068) + QObject (0x0x7fad2bc4e480) 0 + primary-for QWidget (0x0x7fad2d4cc070) + QPaintDevice (0x0x7fad2bc4e4e0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 520) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7fad2a142240) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QPlainTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QPlainTextEdit::loadResource +472 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +480 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +488 (int (*)(...))QPlainTextEdit::insertFromMimeData +496 (int (*)(...))QPlainTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI14QPlainTextEdit) +520 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=48 align=8 + base size=48 base align=8 +QPlainTextEdit (0x0x7fad29264478) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7fad292644e0) 0 + primary-for QPlainTextEdit (0x0x7fad29264478) + QFrame (0x0x7fad2927e3a8) 0 + primary-for QAbstractScrollArea (0x0x7fad292644e0) + QWidget (0x0x7fad2d4ec310) 0 + primary-for QFrame (0x0x7fad2927e3a8) + QObject (0x0x7fad2a142180) 0 + primary-for QWidget (0x0x7fad2d4ec310) + QPaintDevice (0x0x7fad2a1421e0) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 520) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7fad2a1427e0) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7fad2927e410) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7fad2928cea0) 0 + primary-for QPlainTextDocumentLayout (0x0x7fad2927e410) + QObject (0x0x7fad2a142780) 0 + primary-for QAbstractTextDocumentLayout (0x0x7fad2928cea0) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7fad2a142a80) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI12QProgressBar) +456 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=48 align=8 + base size=48 base align=8 +QProgressBar (0x0x7fad2928cf08) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7fad2d4ec7e0) 0 + primary-for QProgressBar (0x0x7fad2928cf08) + QObject (0x0x7fad2a1429c0) 0 + primary-for QWidget (0x0x7fad2d4ec7e0) + QPaintDevice (0x0x7fad2a142a20) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 456) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7fad2a142de0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=48 align=8 + base size=48 base align=8 +QProgressDialog (0x0x7fad292a7340) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7fad292a73a8) 0 + primary-for QProgressDialog (0x0x7fad292a7340) + QWidget (0x0x7fad2d4eca10) 0 + primary-for QDialog (0x0x7fad292a73a8) + QObject (0x0x7fad2a142d20) 0 + primary-for QWidget (0x0x7fad2d4eca10) + QPaintDevice (0x0x7fad2a142d80) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7fad28d29060) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7fad292a7680) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7fad292a76e8) 0 + primary-for QProxyStyle (0x0x7fad292a7680) + QStyle (0x0x7fad292a7888) 0 + primary-for QCommonStyle (0x0x7fad292a76e8) + QObject (0x0x7fad28d29000) 0 + primary-for QStyle (0x0x7fad292a7888) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7fad28d29300) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI12QRadioButton) +472 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=48 align=8 + base size=48 base align=8 +QRadioButton (0x0x7fad292a79c0) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7fad292a7a28) 0 + primary-for QRadioButton (0x0x7fad292a79c0) + QWidget (0x0x7fad2d4ecd20) 0 + primary-for QAbstractButton (0x0x7fad292a7a28) + QObject (0x0x7fad28d29240) 0 + primary-for QWidget (0x0x7fad2d4ecd20) + QPaintDevice (0x0x7fad28d292a0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 472) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7fad28d295a0) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QScrollBar) +456 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=48 align=8 + base size=48 base align=8 +QScrollBar (0x0x7fad292a7bc8) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7fad292a7c30) 0 + primary-for QScrollBar (0x0x7fad292a7bc8) + QWidget (0x0x7fad2d4ece70) 0 + primary-for QAbstractSlider (0x0x7fad292a7c30) + QObject (0x0x7fad28d294e0) 0 + primary-for QWidget (0x0x7fad2d4ece70) + QPaintDevice (0x0x7fad28d29540) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 456) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7fad28d29780) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7fad28d29c60) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7fad292a7c98) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7fad28d29c00) 0 + primary-for QScroller (0x0x7fad292a7c98) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7fad28d29f60) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7fad292be9c0) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7fad28d29f00) 0 + primary-for QShortcut (0x0x7fad292be9c0) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7fad265dc2a0) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=48 align=8 + base size=48 base align=8 +QSizeGrip (0x0x7fad292bea28) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7fad2d1a3f50) 0 + primary-for QSizeGrip (0x0x7fad292bea28) + QObject (0x0x7fad265dc1e0) 0 + primary-for QWidget (0x0x7fad2d1a3f50) + QPaintDevice (0x0x7fad265dc240) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7fad265dc540) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QSpinBox::valueFromText +480 (int (*)(...))QSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI8QSpinBox) +504 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=48 align=8 + base size=48 base align=8 +QSpinBox (0x0x7fad292d78f0) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7fad292d7958) 0 + primary-for QSpinBox (0x0x7fad292d78f0) + QWidget (0x0x7fad2d1dc070) 0 + primary-for QAbstractSpinBox (0x0x7fad292d7958) + QObject (0x0x7fad265dc480) 0 + primary-for QWidget (0x0x7fad2d1dc070) + QPaintDevice (0x0x7fad265dc4e0) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 504) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7fad265dc7e0) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QDoubleSpinBox::valueFromText +480 (int (*)(...))QDoubleSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI14QDoubleSpinBox) +504 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=48 align=8 + base size=48 base align=8 +QDoubleSpinBox (0x0x7fad292d7c98) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7fad292d7d00) 0 + primary-for QDoubleSpinBox (0x0x7fad292d7c98) + QWidget (0x0x7fad2d1dc1c0) 0 + primary-for QAbstractSpinBox (0x0x7fad292d7d00) + QObject (0x0x7fad265dc720) 0 + primary-for QWidget (0x0x7fad2d1dc1c0) + QPaintDevice (0x0x7fad265dc780) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 504) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7fad265dca80) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=48 align=8 + base size=48 base align=8 +QSplashScreen (0x0x7fad29300820) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7fad2d1dc310) 0 + primary-for QSplashScreen (0x0x7fad29300820) + QObject (0x0x7fad265dc9c0) 0 + primary-for QWidget (0x0x7fad2d1dc310) + QPaintDevice (0x0x7fad265dca20) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7fad265dcd20) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplitter::createHandle +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QSplitter) +456 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=48 align=8 + base size=48 base align=8 +QSplitter (0x0x7fad29300888) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7fad28f231a0) 0 + primary-for QSplitter (0x0x7fad29300888) + QWidget (0x0x7fad2d1dc540) 0 + primary-for QFrame (0x0x7fad28f231a0) + QObject (0x0x7fad265dcc60) 0 + primary-for QWidget (0x0x7fad2d1dc540) + QPaintDevice (0x0x7fad265dccc0) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 456) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7fad24513000) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=48 align=8 + base size=48 base align=8 +QSplitterHandle (0x0x7fad28f23208) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7fad2d1dc700) 0 + primary-for QSplitterHandle (0x0x7fad28f23208) + QObject (0x0x7fad265dcf00) 0 + primary-for QWidget (0x0x7fad2d1dc700) + QPaintDevice (0x0x7fad265dcf60) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7fad245132a0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 50 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QStackedLayout::addItem +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QStackedLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QStackedLayout::setGeometry +168 (int (*)(...))QStackedLayout::itemAt +176 (int (*)(...))QStackedLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QStackedLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QStackedLayout::sizeHint +232 (int (*)(...))QStackedLayout::hasHeightForWidth +240 (int (*)(...))QStackedLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI14QStackedLayout) +264 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +272 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +280 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +288 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +312 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +344 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7fad28f233a8) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7fad2d1dc930) 0 + primary-for QStackedLayout (0x0x7fad28f233a8) + QObject (0x0x7fad245131e0) 0 + primary-for QLayout (0x0x7fad2d1dc930) + QLayoutItem (0x0x7fad24513240) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 264) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7fad24513600) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QStackedWidget) +448 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=48 align=8 + base size=48 base align=8 +QStackedWidget (0x0x7fad28f234e0) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7fad28f23548) 0 + primary-for QStackedWidget (0x0x7fad28f234e0) + QWidget (0x0x7fad2d1dcb60) 0 + primary-for QFrame (0x0x7fad28f23548) + QObject (0x0x7fad24513540) 0 + primary-for QWidget (0x0x7fad2d1dcb60) + QPaintDevice (0x0x7fad245135a0) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 448) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7fad245138a0) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=48 align=8 + base size=48 base align=8 +QStatusBar (0x0x7fad28f23ea0) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7fad2d1dccb0) 0 + primary-for QStatusBar (0x0x7fad28f23ea0) + QObject (0x0x7fad245137e0) 0 + primary-for QWidget (0x0x7fad2d1dccb0) + QPaintDevice (0x0x7fad24513840) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7fad24513ae0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7fad28f23f08) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7fad28f3d000) 0 + primary-for QStyledItemDelegate (0x0x7fad28f23f08) + QObject (0x0x7fad24513a80) 0 + primary-for QAbstractItemDelegate (0x0x7fad28f3d000) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7fad24513cc0) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7fad28f3d068) 0 + QPainter (0x0x7fad24513d20) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7fad22f08600) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7fad28f3d3a8) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7fad22f085a0) 0 + primary-for QStylePlugin (0x0x7fad28f3d3a8) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7fad22f08780) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7fad28f3d410) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7fad22f08720) 0 + primary-for QSystemTrayIcon (0x0x7fad28f3d410) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7fad22f08ae0) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableView::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI10QTableView) +784 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +792 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=48 align=8 + base size=48 base align=8 +QTableView (0x0x7fad28f3df70) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7fad28f52000) 0 + primary-for QTableView (0x0x7fad28f3df70) + QAbstractScrollArea (0x0x7fad28f523a8) 0 + primary-for QAbstractItemView (0x0x7fad28f52000) + QFrame (0x0x7fad28f52410) 0 + primary-for QAbstractScrollArea (0x0x7fad28f523a8) + QWidget (0x0x7fad2d2318c0) 0 + primary-for QFrame (0x0x7fad28f52410) + QObject (0x0x7fad22f08a20) 0 + primary-for QWidget (0x0x7fad2d2318c0) + QPaintDevice (0x0x7fad22f08a80) 16 + vptr=((& QTableView::_ZTV10QTableView) + 784) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7fad22f08d20) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=48 align=8 + base size=44 base align=8 +QTableWidgetItem (0x0x7fad2194f000) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7fad2194fd20) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableWidget::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))QTableWidget::mimeTypes +776 (int (*)(...))QTableWidget::mimeData +784 (int (*)(...))QTableWidget::dropMimeData +792 (int (*)(...))QTableWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI12QTableWidget) +816 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +824 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=48 align=8 + base size=48 base align=8 +QTableWidget (0x0x7fad28f52d68) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7fad28f73a28) 0 + primary-for QTableWidget (0x0x7fad28f52d68) + QAbstractItemView (0x0x7fad28f73a90) 0 + primary-for QTableView (0x0x7fad28f73a28) + QAbstractScrollArea (0x0x7fad28f73dd0) 0 + primary-for QAbstractItemView (0x0x7fad28f73a90) + QFrame (0x0x7fad28f73e38) 0 + primary-for QAbstractScrollArea (0x0x7fad28f73dd0) + QWidget (0x0x7fad2d274460) 0 + primary-for QFrame (0x0x7fad28f73e38) + QObject (0x0x7fad2194fc60) 0 + primary-for QWidget (0x0x7fad2d274460) + QPaintDevice (0x0x7fad2194fcc0) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 816) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7fad25015180) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 78 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextBrowser::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))QTextBrowser::setSource +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))-16 +552 (int (*)(...))(& _ZTI12QTextBrowser) +560 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=48 align=8 + base size=48 base align=8 +QTextBrowser (0x0x7fad28fefe38) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7fad28fefea0) 0 + primary-for QTextBrowser (0x0x7fad28fefe38) + QAbstractScrollArea (0x0x7fad2900b270) 0 + primary-for QTextEdit (0x0x7fad28fefea0) + QFrame (0x0x7fad2900b2d8) 0 + primary-for QAbstractScrollArea (0x0x7fad2900b270) + QWidget (0x0x7fad2d274620) 0 + primary-for QFrame (0x0x7fad2900b2d8) + QObject (0x0x7fad250150c0) 0 + primary-for QWidget (0x0x7fad2d274620) + QPaintDevice (0x0x7fad25015120) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 560) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7fad25015420) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QToolBar) +448 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=48 align=8 + base size=48 base align=8 +QToolBar (0x0x7fad2900bc98) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7fad2d274770) 0 + primary-for QToolBar (0x0x7fad2900bc98) + QObject (0x0x7fad25015360) 0 + primary-for QWidget (0x0x7fad2d274770) + QPaintDevice (0x0x7fad250153c0) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 448) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7fad25015d80) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBox::itemInserted +440 (int (*)(...))QToolBox::itemRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI8QToolBox) +464 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=48 align=8 + base size=48 base align=8 +QToolBox (0x0x7fad290c24e0) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7fad290c2548) 0 + primary-for QToolBox (0x0x7fad290c24e0) + QWidget (0x0x7fad2d274e70) 0 + primary-for QFrame (0x0x7fad290c2548) + QObject (0x0x7fad25015cc0) 0 + primary-for QWidget (0x0x7fad2d274e70) + QPaintDevice (0x0x7fad25015d20) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 464) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7fad22ec8180) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QToolButton) +472 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=48 align=8 + base size=48 base align=8 +QToolButton (0x0x7fad290c2888) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7fad290c28f0) 0 + primary-for QToolButton (0x0x7fad290c2888) + QWidget (0x0x7fad2cfe8000) 0 + primary-for QAbstractButton (0x0x7fad290c28f0) + QObject (0x0x7fad22ec80c0) 0 + primary-for QWidget (0x0x7fad2cfe8000) + QPaintDevice (0x0x7fad22ec8120) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 472) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7fad22ec8420) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7fad22ec85a0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeView::setModel +472 (int (*)(...))QTreeView::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QTreeView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QTreeView) +800 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +808 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=48 align=8 + base size=48 base align=8 +QTreeView (0x0x7fad28d2e8f0) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7fad28d2e958) 0 + primary-for QTreeView (0x0x7fad28d2e8f0) + QAbstractScrollArea (0x0x7fad28d2ed00) 0 + primary-for QAbstractItemView (0x0x7fad28d2e958) + QFrame (0x0x7fad28d2ed68) 0 + primary-for QAbstractScrollArea (0x0x7fad28d2ed00) + QWidget (0x0x7fad2cfe8310) 0 + primary-for QFrame (0x0x7fad28d2ed68) + QObject (0x0x7fad22ec84e0) 0 + primary-for QWidget (0x0x7fad2cfe8310) + QPaintDevice (0x0x7fad22ec8540) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 800) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7fad22ec87e0) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=64 align=8 + base size=60 base align=8 +QTreeWidgetItem (0x0x7fad228072a0) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7fad223e22a0) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeWidget::setModel +472 (int (*)(...))QTreeWidget::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QTreeView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))QTreeWidget::mimeTypes +792 (int (*)(...))QTreeWidget::mimeData +800 (int (*)(...))QTreeWidget::dropMimeData +808 (int (*)(...))QTreeWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QTreeWidget) +832 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +840 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=48 align=8 + base size=48 base align=8 +QTreeWidget (0x0x7fad28d7b7b8) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7fad28d90820) 0 + primary-for QTreeWidget (0x0x7fad28d7b7b8) + QAbstractItemView (0x0x7fad28d90888) 0 + primary-for QTreeView (0x0x7fad28d90820) + QAbstractScrollArea (0x0x7fad28d90ea0) 0 + primary-for QAbstractItemView (0x0x7fad28d90888) + QFrame (0x0x7fad28d90f08) 0 + primary-for QAbstractScrollArea (0x0x7fad28d90ea0) + QWidget (0x0x7fad2cd4b230) 0 + primary-for QFrame (0x0x7fad28d90f08) + QObject (0x0x7fad223e21e0) 0 + primary-for QWidget (0x0x7fad2cd4b230) + QPaintDevice (0x0x7fad223e2240) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 832) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7fad223e26c0) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7fad28df35b0) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7fad223e2660) 0 + primary-for QUndoGroup (0x0x7fad28df35b0) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7fad223e28a0) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7fad223e2960) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7fad28df3618) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7fad223e2900) 0 + primary-for QUndoStack (0x0x7fad28df3618) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7fad223e2c00) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QUndoView) +784 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +792 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=48 align=8 + base size=48 base align=8 +QUndoView (0x0x7fad28df37b8) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7fad28df3c98) 0 + primary-for QUndoView (0x0x7fad28df37b8) + QAbstractItemView (0x0x7fad28df3d00) 0 + primary-for QListView (0x0x7fad28df3c98) + QAbstractScrollArea (0x0x7fad28e12b60) 0 + primary-for QAbstractItemView (0x0x7fad28df3d00) + QFrame (0x0x7fad28e12bc8) 0 + primary-for QAbstractScrollArea (0x0x7fad28e12b60) + QWidget (0x0x7fad2cd4b5b0) 0 + primary-for QFrame (0x0x7fad28e12bc8) + QObject (0x0x7fad223e2b40) 0 + primary-for QWidget (0x0x7fad2cd4b5b0) + QPaintDevice (0x0x7fad223e2ba0) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 784) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7fad223e2de0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7fad223e2ea0) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7fad28e50548) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7fad28e505b0) 0 + primary-for QWidgetAction (0x0x7fad28e50548) + QObject (0x0x7fad223e2e40) 0 + primary-for QAction (0x0x7fad28e505b0) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7fad21969180) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=48 align=8 + base size=48 base align=8 +QWizard (0x0x7fad28e508f0) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7fad28e50958) 0 + primary-for QWizard (0x0x7fad28e508f0) + QWidget (0x0x7fad2cd4b850) 0 + primary-for QDialog (0x0x7fad28e50958) + QObject (0x0x7fad219690c0) 0 + primary-for QWidget (0x0x7fad2cd4b850) + QPaintDevice (0x0x7fad21969120) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7fad21969d20) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=48 align=8 + base size=48 base align=8 +QWizardPage (0x0x7fad28ea2a28) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7fad2ce078c0) 0 + primary-for QWizardPage (0x0x7fad28ea2a28) + QObject (0x0x7fad21969c60) 0 + primary-for QWidget (0x0x7fad2ce078c0) + QPaintDevice (0x0x7fad21969cc0) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QGLColormap::QGLColormapData + size=24 align=8 + base size=24 base align=8 +QGLColormap::QGLColormapData (0x0x7fad21969f60) 0 + +Class QGLColormap + size=8 align=8 + base size=8 base align=8 +QGLColormap (0x0x7fad21969f00) 0 + +Class QGLFormat + size=8 align=8 + base size=8 base align=8 +QGLFormat (0x0x7fad2b96c7e0) 0 + +Vtable for QGLContext +QGLContext::_ZTV10QGLContext: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QGLContext) +16 (int (*)(...))QGLContext::~QGLContext +24 (int (*)(...))QGLContext::~QGLContext +32 (int (*)(...))QGLContext::create +40 (int (*)(...))QGLContext::makeCurrent +48 (int (*)(...))QGLContext::doneCurrent +56 (int (*)(...))QGLContext::swapBuffers +64 (int (*)(...))QGLContext::chooseContext + +Class QGLContext + size=16 align=8 + base size=16 base align=8 +QGLContext (0x0x7fad2b96cf00) 0 + vptr=((& QGLContext::_ZTV10QGLContext) + 16) + +Class QGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGLWidget::QPrivateSignal (0x0x7fad29b6c8a0) 0 empty + +Vtable for QGLWidget +QGLWidget::_ZTV9QGLWidget: 74 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGLWidget) +16 (int (*)(...))QGLWidget::metaObject +24 (int (*)(...))QGLWidget::qt_metacast +32 (int (*)(...))QGLWidget::qt_metacall +40 (int (*)(...))QGLWidget::~QGLWidget +48 (int (*)(...))QGLWidget::~QGLWidget +56 (int (*)(...))QGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QGLWidget::updateGL +440 (int (*)(...))QGLWidget::updateOverlayGL +448 (int (*)(...))QGLWidget::initializeGL +456 (int (*)(...))QGLWidget::resizeGL +464 (int (*)(...))QGLWidget::paintGL +472 (int (*)(...))QGLWidget::initializeOverlayGL +480 (int (*)(...))QGLWidget::resizeOverlayGL +488 (int (*)(...))QGLWidget::paintOverlayGL +496 (int (*)(...))QGLWidget::glInit +504 (int (*)(...))QGLWidget::glDraw +512 (int (*)(...))-16 +520 (int (*)(...))(& _ZTI9QGLWidget) +528 (int (*)(...))QGLWidget::_ZThn16_N9QGLWidgetD1Ev +536 (int (*)(...))QGLWidget::_ZThn16_N9QGLWidgetD0Ev +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +552 (int (*)(...))QGLWidget::_ZThn16_NK9QGLWidget11paintEngineEv +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGLWidget + size=48 align=8 + base size=48 base align=8 +QGLWidget (0x0x7fad28b75a28) 0 + vptr=((& QGLWidget::_ZTV9QGLWidget) + 16) + QWidget (0x0x7fad2c7910e0) 0 + primary-for QGLWidget (0x0x7fad28b75a28) + QObject (0x0x7fad29b6c7e0) 0 + primary-for QWidget (0x0x7fad2c7910e0) + QPaintDevice (0x0x7fad29b6c840) 16 + vptr=((& QGLWidget::_ZTV9QGLWidget) + 528) + +Class QGLBuffer + size=8 align=8 + base size=8 base align=8 +QGLBuffer (0x0x7fad29b6ce40) 0 + +Vtable for QGLFramebufferObject +QGLFramebufferObject::_ZTV20QGLFramebufferObject: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGLFramebufferObject) +16 (int (*)(...))QGLFramebufferObject::~QGLFramebufferObject +24 (int (*)(...))QGLFramebufferObject::~QGLFramebufferObject +32 (int (*)(...))QGLFramebufferObject::devType +40 (int (*)(...))QGLFramebufferObject::paintEngine +48 (int (*)(...))QGLFramebufferObject::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QGLFramebufferObject + size=32 align=8 + base size=32 base align=8 +QGLFramebufferObject (0x0x7fad28b8c478) 0 + vptr=((& QGLFramebufferObject::_ZTV20QGLFramebufferObject) + 16) + QPaintDevice (0x0x7fad2780c000) 0 + primary-for QGLFramebufferObject (0x0x7fad28b8c478) + +Class QGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QGLFramebufferObjectFormat (0x0x7fad2780c240) 0 + +Class QGLFunctions + size=8 align=8 + base size=8 base align=8 +QGLFunctions (0x0x7fad2780c2a0) 0 + +Class QGLFunctionsPrivate + size=8 align=8 + base size=8 base align=8 +QGLFunctionsPrivate (0x0x7fad2780cba0) 0 + +Vtable for QGLPixelBuffer +QGLPixelBuffer::_ZTV14QGLPixelBuffer: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGLPixelBuffer) +16 (int (*)(...))QGLPixelBuffer::~QGLPixelBuffer +24 (int (*)(...))QGLPixelBuffer::~QGLPixelBuffer +32 (int (*)(...))QGLPixelBuffer::devType +40 (int (*)(...))QGLPixelBuffer::paintEngine +48 (int (*)(...))QGLPixelBuffer::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QGLPixelBuffer + size=32 align=8 + base size=32 base align=8 +QGLPixelBuffer (0x0x7fad28bcc548) 0 + vptr=((& QGLPixelBuffer::_ZTV14QGLPixelBuffer) + 16) + QPaintDevice (0x0x7fad244549c0) 0 + primary-for QGLPixelBuffer (0x0x7fad28bcc548) + +Class QGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGLShader::QPrivateSignal (0x0x7fad24454c60) 0 empty + +Vtable for QGLShader +QGLShader::_ZTV9QGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGLShader) +16 (int (*)(...))QGLShader::metaObject +24 (int (*)(...))QGLShader::qt_metacast +32 (int (*)(...))QGLShader::qt_metacall +40 (int (*)(...))QGLShader::~QGLShader +48 (int (*)(...))QGLShader::~QGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGLShader + size=16 align=8 + base size=16 base align=8 +QGLShader (0x0x7fad28bccf70) 0 + vptr=((& QGLShader::_ZTV9QGLShader) + 16) + QObject (0x0x7fad24454c00) 0 + primary-for QGLShader (0x0x7fad28bccf70) + +Class QGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGLShaderProgram::QPrivateSignal (0x0x7fad238475a0) 0 empty + +Vtable for QGLShaderProgram +QGLShaderProgram::_ZTV16QGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QGLShaderProgram) +16 (int (*)(...))QGLShaderProgram::metaObject +24 (int (*)(...))QGLShaderProgram::qt_metacast +32 (int (*)(...))QGLShaderProgram::qt_metacall +40 (int (*)(...))QGLShaderProgram::~QGLShaderProgram +48 (int (*)(...))QGLShaderProgram::~QGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGLShaderProgram::link + +Class QGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QGLShaderProgram (0x0x7fad28be5478) 0 + vptr=((& QGLShaderProgram::_ZTV16QGLShaderProgram) + 16) + QObject (0x0x7fad23847540) 0 + primary-for QGLShaderProgram (0x0x7fad28be5478) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad23127a20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad23127d80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad23127f60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad22dcf300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad22dcf4e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad22dcf840) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad22dcfa20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad22dcfd80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad22dcff60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad22158300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad221584e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad22158840) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad22158a20) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad22158d80) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad22158f60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad21930300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad2193e7e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad2193eb40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad2193ecc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad219ae060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad219ae1e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad219ae540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad219ae6c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad219aea20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad219aeba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad219aef00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad214a50c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad214a5420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad214a55a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad214a5900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fad214a5a80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fad214a5de0) 0 empty + diff --git a/tests/auto/bic/data/QtPrintSupport.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtPrintSupport.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..361d90cde8 --- /dev/null +++ b/tests/auto/bic/data/QtPrintSupport.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,20062 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7faf673ae6c0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7faf67410e40) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7faf6743b0c0) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7faf6743b300) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7faf6743b540) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7faf6743b6c0) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7faf6743ba80) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7faf67477ba0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7faf674fa2a0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7faf674fa360) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7faf674fa720) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7faf674fa780) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7faf674fa7e0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7faf674fa840) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7faf674fa8a0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7faf674fa960) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7faf674faa20) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7faf674faae0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7faf674faba0) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7faf674faf00) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7faf675372a0) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7faf67537300) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7faf675378a0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7faf67537f00) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7faf6751e820) 0 empty + std::__nonesuch (0x0x7faf6757d420) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7faf675ccd80) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7faf675ccde0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7faf66c28ae0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7faf66c28b40) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7faf6751ed00) 0 empty + std::input_iterator_tag (0x0x7faf66c28ba0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7faf6751ed68) 0 empty + std::forward_iterator_tag (0x0x7faf6751edd0) 0 empty + std::input_iterator_tag (0x0x7faf66c28c00) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7faf6751ee38) 0 empty + std::bidirectional_iterator_tag (0x0x7faf6751eea0) 0 empty + std::forward_iterator_tag (0x0x7faf6751ef08) 0 empty + std::input_iterator_tag (0x0x7faf66c28c60) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7faf66cd8780) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7faf66cd88a0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7faf66cd8ba0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7faf66cd8ea0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7faf66d04000) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7faf66d94300) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7faf66d94600) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7faf66d94660) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7faf66d94720) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7faf66d94780) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7faf66d947e0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7faf66d94840) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7faf66d94ae0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7faf66d94d80) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7faf66d94de0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7faf66deeba0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7faf66c69270) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7faf66deed80) 0 nearly-empty + primary-for std::bad_exception (0x0x7faf66c69270) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7faf66deef60) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7faf66c692d8) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7faf66a94360) 0 nearly-empty + primary-for std::bad_cast (0x0x7faf66c692d8) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7faf66c69340) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7faf66a94540) 0 nearly-empty + primary-for std::bad_typeid (0x0x7faf66c69340) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7faf66a94720) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7faf66a94cc0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7faf66c693a8) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7faf66ac43c0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7faf66c693a8) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7faf66c69410) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7faf66c69478) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7faf66c69410) + std::exception (0x0x7faf66ac45a0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7faf66c69478) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7faf66ac4780) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7faf66ac4960) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7faf66b3fe40) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7faf6691b900) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7faf6691b9c0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7faf667df360) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7faf667df480) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7faf667df7e0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7faf667dfd20) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7faf664574e0) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7faf664ec900) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7faf6649c2d8) 0 + std::__atomic_flag_base (0x0x7faf664ec960) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7faf6649ca28) 0 + QAtomicInteger (0x0x7faf6649ca90) 0 + QBasicAtomicInteger (0x0x7faf66020900) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7faf65c3dc00) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7faf65ca51e0) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7faf65ca5900) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7faf65c6b618) 0 + QGenericArgument (0x0x7faf65ca5ba0) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7faf65cdc000) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7faf65cdc420) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7faf65d70f00) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7faf65d921e0) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7faf65a5c000) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7faf65a5c360) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7faf65ac7660) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7faf65b73ea0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7faf65b73f60) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7faf658690c0) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7faf65869180) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7faf658691e0) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7faf65869240) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7faf658692a0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7faf658693c0) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7faf65869420) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7faf659a83c0) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7faf659a8420) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7faf6575f480) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7faf6575f600) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7faf654d7780) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7faf654d7b40) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7faf654d7de0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7faf65524000) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7faf6557a000) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7faf6543e5b0) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7faf6557a0c0) 0 nearly-empty + primary-for std::logic_error (0x0x7faf6543e5b0) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7faf6543e618) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7faf6543e680) 0 + primary-for std::domain_error (0x0x7faf6543e618) + std::exception (0x0x7faf6557a120) 0 nearly-empty + primary-for std::logic_error (0x0x7faf6543e680) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7faf6543e6e8) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7faf6543e750) 0 + primary-for std::invalid_argument (0x0x7faf6543e6e8) + std::exception (0x0x7faf6557a180) 0 nearly-empty + primary-for std::logic_error (0x0x7faf6543e750) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7faf6543e7b8) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7faf6543e820) 0 + primary-for std::length_error (0x0x7faf6543e7b8) + std::exception (0x0x7faf6557a1e0) 0 nearly-empty + primary-for std::logic_error (0x0x7faf6543e820) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7faf6543e888) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7faf6543e8f0) 0 + primary-for std::out_of_range (0x0x7faf6543e888) + std::exception (0x0x7faf6557a240) 0 nearly-empty + primary-for std::logic_error (0x0x7faf6543e8f0) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7faf6543e958) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7faf6557a2a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7faf6543e958) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7faf6543e9c0) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7faf6543ea28) 0 + primary-for std::range_error (0x0x7faf6543e9c0) + std::exception (0x0x7faf6557a300) 0 nearly-empty + primary-for std::runtime_error (0x0x7faf6543ea28) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7faf6543ea90) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7faf6543eaf8) 0 + primary-for std::overflow_error (0x0x7faf6543ea90) + std::exception (0x0x7faf6557a360) 0 nearly-empty + primary-for std::runtime_error (0x0x7faf6543eaf8) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7faf6543eb60) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7faf6543ebc8) 0 + primary-for std::underflow_error (0x0x7faf6543eb60) + std::exception (0x0x7faf6557a3c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7faf6543ebc8) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7faf6557a540) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7faf6557a8a0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7faf655ca120) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7faf655ef000) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7faf655ef068) 0 + primary-for std::system_error (0x0x7faf655ef000) + std::exception (0x0x7faf655cacc0) 0 nearly-empty + primary-for std::runtime_error (0x0x7faf655ef068) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7faf655ef2d8) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7faf655ef340) 0 + primary-for std::ios_base::failure (0x0x7faf655ef2d8) + std::runtime_error (0x0x7faf655ef3a8) 0 + primary-for std::system_error (0x0x7faf655ef340) + std::exception (0x0x7faf652252a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7faf655ef3a8) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7faf65225300) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7faf65225360) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7faf652253c0) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7faf65225240) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7faf652f7cc0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7faf6539fea0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7faf64f68a90 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7faf64f68b60 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7faf64fac820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7faf64fac8f0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7faf64fd5840) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7faf64fd58a0) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7faf64d04c60) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7faf64da7ae0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7faf64da7f60) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7faf64a78d20) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7faf64b18780) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7faf64b18720) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7faf648fb900) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7faf64698180) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7faf644b6480) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7faf644b6540) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7faf64572a20) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7faf64729c30) 0 + std::iterator (0x0x7faf64597180) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7faf64729d68) 0 + std::_Bit_iterator_base (0x0x7faf64729dd0) 0 + std::iterator (0x0x7faf645977e0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7faf64729e38) 0 + std::_Bit_iterator_base (0x0x7faf64729ea0) 0 + std::iterator (0x0x7faf645ca000) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7faf643af660) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7faf64076420) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7faf64076480) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7faf645ee9c0) 0 empty + QListData::NotIndirectLayout (0x0x7faf640764e0) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7faf6405c1c0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7faf64076540) 0 empty + QListData::NotIndirectLayout (0x0x7faf640765a0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7faf645eea28) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7faf64076600) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7faf64076660) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7faf640763c0) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7faf6416a840) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7faf63e44ea0) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7faf63e44e40) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7faf63e53680) 0 + QList (0x0x7faf63e536e8) 0 + QListSpecialMethods (0x0x7faf63e69120) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7faf63f02c60) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7faf63f96d80) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7faf63fbc120) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7faf63d926c0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7faf63d92720) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7faf63d928a0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7faf63d92960) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7faf63d1ca28) 0 + std::__uses_alloc_base (0x0x7faf63d92900) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7faf63af5cc0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7faf63bb9180) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7faf63bb94e0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7faf63bb9a20) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7faf63bb9f60) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7faf63847180) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7faf63847840) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7faf638e46c0) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7faf63935d80) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7faf639b0300) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7faf63481120) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7faf63579ba0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7faf63579c00) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7faf63579de0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7faf63579d80) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7faf63255c00) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7faf63255d80) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7faf63277660) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7faf63232c30) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7faf63277600) 0 + primary-for QAbstractAnimation (0x0x7faf63232c30) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7faf63277a20) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7faf63232c98) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7faf632779c0) 0 + primary-for QAnimationDriver (0x0x7faf63232c98) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7faf63277c60) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7faf63232d00) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7faf63277c00) 0 + primary-for QEventLoop (0x0x7faf63232d00) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7faf632c9540) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7faf632c9600) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7faf632c9660) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7faf63232e38) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7faf632c95a0) 0 + primary-for QAbstractEventDispatcher (0x0x7faf63232e38) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7faf6335f7b8) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7faf63359cc0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7faf6335f7b8) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7faf63359d80) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7faf63359de0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7faf6338c120) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7faf6318c0c0) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7faf6318cd20) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7faf62e856c0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7faf62e85660) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7faf62e85960) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7faf62f8cf00) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7faf62fdc000) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7faf62f8cf60) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7faf62fdc060) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7faf62f8cea0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7faf62d07300) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7faf62d49960) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7faf62d49900) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7faf62d49a80) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7faf62d49a20) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7faf62a16c00) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7faf62a87840) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7faf62b56660) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7faf62b5c3a8) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7faf62b56600) 0 + primary-for QAbstractItemModel (0x0x7faf62b5c3a8) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7faf62812a20) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7faf62b5c9c0) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7faf62b5ca28) 0 + primary-for QAbstractTableModel (0x0x7faf62b5c9c0) + QObject (0x0x7faf628129c0) 0 + primary-for QAbstractItemModel (0x0x7faf62b5ca28) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7faf62812ba0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7faf62b5ca90) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7faf62b5caf8) 0 + primary-for QAbstractListModel (0x0x7faf62b5ca90) + QObject (0x0x7faf62812b40) 0 + primary-for QAbstractItemModel (0x0x7faf62b5caf8) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7faf62852300) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7faf628523c0) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7faf62b5cbc8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7faf62b5cc30) 0 + primary-for QAbstractProxyModel (0x0x7faf62b5cbc8) + QObject (0x0x7faf62852360) 0 + primary-for QAbstractItemModel (0x0x7faf62b5cc30) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7faf62852600) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7faf62b5cc98) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7faf628525a0) 0 + primary-for QAbstractState (0x0x7faf62b5cc98) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7faf62852840) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7faf62b5cd00) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7faf628527e0) 0 + primary-for QAbstractTransition (0x0x7faf62b5cd00) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7faf62852b40) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7faf62b5cd68) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7faf62b5cdd0) 0 + primary-for QAnimationGroup (0x0x7faf62b5cd68) + QObject (0x0x7faf62852ae0) 0 + primary-for QAbstractAnimation (0x0x7faf62b5cdd0) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7faf628fcea0) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7faf6295b2a0) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7faf629ae720) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7faf62a05ae0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7faf62613340) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7faf62a05a80) 0 + primary-for QIODevice (0x0x7faf62613340) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7faf6264e480) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7faf62613478) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7faf626134e0) 0 + primary-for QBuffer (0x0x7faf62613478) + QObject (0x0x7faf6264e420) 0 + primary-for QIODevice (0x0x7faf626134e0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7faf6264e720) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7faf6264e6c0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7faf6264e8a0) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7faf6264e840) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7faf6269d780) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7faf626e0720) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7faf6274d000) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7faf6279cc60) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7faf6279ccc0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7faf6279cc00) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7faf6248e3c0) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7faf6258b960) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7faf625f2240) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7faf62263d20) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7faf622ad9c0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7faf622adb40) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7faf62367780) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7faf62367720) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7faf621097e0) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7faf621098a0) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7faf6218aba0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7faf621ba360) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7faf61e6f240) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7faf61ecb000) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7faf61f2ca20) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7faf61c6b9c0) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7faf61cf8540) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7faf61cf8600) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7faf61b6d600) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7faf61c07060) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7faf61c070c0) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7faf61c07000) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7faf618faa80) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7faf618faae0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7faf618faa20) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7faf61710240) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7faf617cd1e0) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7faf617cdf00) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7faf61480060) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7faf61480240) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7faf6157a7e0) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7faf615d1f00) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7faf615d7680) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7faf61215300) 0 + primary-for QTimerEvent (0x0x7faf615d7680) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7faf615d76e8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7faf612153c0) 0 + primary-for QChildEvent (0x0x7faf615d76e8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7faf615d7c30) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7faf61215a20) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7faf615d7c30) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7faf615d7c98) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7faf61215ae0) 0 + primary-for QDeferredDeleteEvent (0x0x7faf615d7c98) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7faf61215c00) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7faf615d7d00) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7faf61215ba0) 0 + primary-for QCoreApplication (0x0x7faf615d7d00) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7faf61215e40) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7faf61266000) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7faf615d7d68) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7faf615d7dd0) 0 + primary-for QConcatenateTablesProxyModel (0x0x7faf615d7d68) + QObject (0x0x7faf61215f60) 0 + primary-for QAbstractItemModel (0x0x7faf615d7dd0) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7faf612661e0) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7faf61266300) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7faf61266480) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7faf612d3ba0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7faf61308300) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7faf61049060) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7faf61048000) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7faf61048068) 0 + primary-for QFileDevice (0x0x7faf61048000) + QObject (0x0x7faf61049000) 0 + primary-for QIODevice (0x0x7faf61048068) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7faf61049960) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7faf610481a0) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7faf61048208) 0 + primary-for QFile (0x0x7faf610481a0) + QIODevice (0x0x7faf61048270) 0 + primary-for QFileDevice (0x0x7faf61048208) + QObject (0x0x7faf61049900) 0 + primary-for QIODevice (0x0x7faf61048270) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7faf610b9000) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7faf611113c0) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7faf611bc720) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7faf611bcea0) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7faf60f21000) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7faf60ed54e0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7faf60ed5548) 0 + primary-for QEventTransition (0x0x7faf60ed54e0) + QObject (0x0x7faf60ef6f60) 0 + primary-for QAbstractTransition (0x0x7faf60ed5548) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7faf60ed55b0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7faf60f211e0) 0 nearly-empty + primary-for QException (0x0x7faf60ed55b0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7faf60ed5618) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7faf60ed5680) 0 nearly-empty + primary-for QUnhandledException (0x0x7faf60ed5618) + std::exception (0x0x7faf60f21240) 0 nearly-empty + primary-for QException (0x0x7faf60ed5680) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7faf60f212a0) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7faf60f21360) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7faf60f213c0) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7faf60f21600) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7faf60ed56e8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7faf60f215a0) 0 + primary-for QFileSelector (0x0x7faf60ed56e8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7faf60f21840) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7faf60ed5750) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7faf60f217e0) 0 + primary-for QFileSystemWatcher (0x0x7faf60ed5750) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7faf60f21a80) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7faf60ed57b8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7faf60ed5820) 0 + primary-for QFinalState (0x0x7faf60ed57b8) + QObject (0x0x7faf60f21a20) 0 + primary-for QAbstractState (0x0x7faf60ed5820) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7faf60f21c60) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7faf60f21f00) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7faf60ed58f0) 0 + QBasicMutex (0x0x7faf60f7aba0) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7faf60f7ade0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7faf60ffd2a0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7faf60ffd8a0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7faf60ffda80) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7faf60c8e2a0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7faf60d345a0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7faf60c8df08) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7faf60d34540) 0 + primary-for QFutureWatcherBase (0x0x7faf60c8df08) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7faf60d60900) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7faf60d4a750) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7faf60d4a7b8) 0 + primary-for QHistoryState (0x0x7faf60d4a750) + QObject (0x0x7faf60d608a0) 0 + primary-for QAbstractState (0x0x7faf60d4a7b8) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7faf60d60c00) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7faf60d4a820) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7faf60d4a888) 0 + primary-for QIdentityProxyModel (0x0x7faf60d4a820) + QAbstractItemModel (0x0x7faf60d4a8f0) 0 + primary-for QAbstractProxyModel (0x0x7faf60d4a888) + QObject (0x0x7faf60d60ba0) 0 + primary-for QAbstractItemModel (0x0x7faf60d4a8f0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7faf60d60de0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7faf60a45720) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7faf60a4e270) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7faf60a456c0) 0 + primary-for QItemSelectionModel (0x0x7faf60a4e270) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7faf60a4e410) 0 + QList (0x0x7faf60a4e478) 0 + QListSpecialMethods (0x0x7faf60a90240) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7faf60af4b40) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7faf60841d20) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7faf6087fcc0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7faf6087ff60) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7faf608f8300) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7faf608f8360) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7faf608f82a0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7faf60626240) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7faf606262a0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7faf60679a80) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7faf60679ae0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7faf60679a20) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7faf60789e40) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7faf607984e0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7faf60789de0) 0 + primary-for QLibrary (0x0x7faf607984e0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7faf607b6cc0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7faf607b67e0) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7faf60485420) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7faf60485480) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7faf604ff2a0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7faf6056c420) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7faf605d97e0) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7faf60253a80) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7faf602fcc00) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7faf602fce40) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7faf602fcde0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7faf603652a0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7faf603e31e0) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7faf5fe189c0) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7faf5fe18a20) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7faf5fea32a0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7faf5fee44e0) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7faf5fee4600) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7faf5ff20ba0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7faf5ff36138) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7faf5ff20b40) 0 + primary-for QMimeData (0x0x7faf5ff36138) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7faf5ff20d80) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7faf5ff83ea0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7faf5ff83f60) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7faf5ff98478) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7faf5ff83f00) 0 + primary-for QObjectCleanupHandler (0x0x7faf5ff98478) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7faf5ffae0c0) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7faf5fc11840) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7faf60006d00) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7faf60006d68) 0 + primary-for QParallelAnimationGroup (0x0x7faf60006d00) + QAbstractAnimation (0x0x7faf60006dd0) 0 + primary-for QAnimationGroup (0x0x7faf60006d68) + QObject (0x0x7faf5fc117e0) 0 + primary-for QAbstractAnimation (0x0x7faf60006dd0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7faf5fc11a80) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7faf60006e38) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7faf60006ea0) 0 + primary-for QPauseAnimation (0x0x7faf60006e38) + QObject (0x0x7faf5fc11a20) 0 + primary-for QAbstractAnimation (0x0x7faf60006ea0) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7faf5fc406c0) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7faf5fc87840) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7faf5fc91208) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7faf5fc877e0) 0 + primary-for QPluginLoader (0x0x7faf5fc91208) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7faf5fc87960) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7faf5fd00000) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7faf5fce3e38) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7faf5fce3ea0) 0 + primary-for QProcess (0x0x7faf5fce3e38) + QObject (0x0x7faf5fce1f60) 0 + primary-for QIODevice (0x0x7faf5fce3ea0) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7faf5fd006c0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7faf5fce3f08) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7faf5fce3f70) 0 + primary-for QVariantAnimation (0x0x7faf5fce3f08) + QObject (0x0x7faf5fd00660) 0 + primary-for QAbstractAnimation (0x0x7faf5fce3f70) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7faf5fd00960) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7faf5fd43068) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7faf5fd430d0) 0 + primary-for QPropertyAnimation (0x0x7faf5fd43068) + QAbstractAnimation (0x0x7faf5fd43138) 0 + primary-for QVariantAnimation (0x0x7faf5fd430d0) + QObject (0x0x7faf5fd00900) 0 + primary-for QAbstractAnimation (0x0x7faf5fd43138) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7faf5fdcc0c0) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7faf5faa5de0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7faf5faa5d80) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7faf5f88eb40) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7faf5f6cd7e0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7faf5f6cd780) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7faf5f740dd0) 0 + QRandomGenerator (0x0x7faf5f771300) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7faf5f771ea0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7faf5f7c0180) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7faf5f7c0660) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7faf5f7c0b40) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7faf5f463960) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7faf5f4d9900) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7faf5f591960) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7faf5f24aa80) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7faf5f24ad20) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7faf5f2147b8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7faf5f214820) 0 + primary-for QSaveFile (0x0x7faf5f2147b8) + QIODevice (0x0x7faf5f214888) 0 + primary-for QFileDevice (0x0x7faf5f214820) + QObject (0x0x7faf5f24acc0) 0 + primary-for QIODevice (0x0x7faf5f214888) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7faf5f2a5360) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7faf5f2a54e0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7faf5f3b0780) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7faf5f3b65b0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7faf5f3b6618) 0 + primary-for QSequentialAnimationGroup (0x0x7faf5f3b65b0) + QAbstractAnimation (0x0x7faf5f3b6680) 0 + primary-for QAnimationGroup (0x0x7faf5f3b6618) + QObject (0x0x7faf5f3b0720) 0 + primary-for QAbstractAnimation (0x0x7faf5f3b6680) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7faf5f3b09c0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7faf5f3b66e8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7faf5f3b0960) 0 + primary-for QSettings (0x0x7faf5f3b66e8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7faf5f3b0e40) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7faf5f3b6750) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7faf5f3b0de0) 0 + primary-for QSharedMemory (0x0x7faf5f3b6750) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7faf5f4020c0) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7faf5f3b67b8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7faf5f402060) 0 + primary-for QSignalMapper (0x0x7faf5f3b67b8) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7faf5f402300) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7faf5f3b6820) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7faf5f3b6888) 0 + primary-for QSignalTransition (0x0x7faf5f3b6820) + QObject (0x0x7faf5f4022a0) 0 + primary-for QAbstractTransition (0x0x7faf5f3b6888) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7faf5f4025a0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7faf5f3b68f0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7faf5f402540) 0 + primary-for QSocketNotifier (0x0x7faf5f3b68f0) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7faf5f4027e0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7faf5f3b6958) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7faf5f3b69c0) 0 + primary-for QSortFilterProxyModel (0x0x7faf5f3b6958) + QAbstractItemModel (0x0x7faf5f3b6a28) 0 + primary-for QAbstractProxyModel (0x0x7faf5f3b69c0) + QObject (0x0x7faf5f402780) 0 + primary-for QAbstractItemModel (0x0x7faf5f3b6a28) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7faf5f402c00) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7faf5f07b540) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7faf5f3b6bc8) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7faf5f3b6c30) 0 + primary-for QState (0x0x7faf5f3b6bc8) + QObject (0x0x7faf5f07b4e0) 0 + primary-for QAbstractState (0x0x7faf5f3b6c30) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7faf5f07b9c0) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7faf5f3b6dd0) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7faf5f07ba20) 0 + primary-for QStateMachine::SignalEvent (0x0x7faf5f3b6dd0) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7faf5f3b6e38) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7faf5f07ba80) 0 + primary-for QStateMachine::WrappedEvent (0x0x7faf5f3b6e38) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7faf5f3b6c98) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7faf5f3b6d00) 0 + primary-for QStateMachine (0x0x7faf5f3b6c98) + QAbstractState (0x0x7faf5f3b6d68) 0 + primary-for QState (0x0x7faf5f3b6d00) + QObject (0x0x7faf5f07b960) 0 + primary-for QAbstractState (0x0x7faf5f3b6d68) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7faf5f07be40) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7faf5f134e40) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7faf5f1e41e0) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7faf5f19af70) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7faf5f1ec000) 0 + primary-for QStringListModel (0x0x7faf5f19af70) + QAbstractItemModel (0x0x7faf5f1ec068) 0 + primary-for QAbstractListModel (0x0x7faf5f1ec000) + QObject (0x0x7faf5f1e4180) 0 + primary-for QAbstractItemModel (0x0x7faf5f1ec068) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7faf5f1e4300) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7faf5f1e43c0) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7faf5f1e44e0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7faf5f1ec0d0) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7faf5f1ec138) 0 + primary-for QTemporaryFile (0x0x7faf5f1ec0d0) + QFileDevice (0x0x7faf5f1ec1a0) 0 + primary-for QFile (0x0x7faf5f1ec138) + QIODevice (0x0x7faf5f1ec208) 0 + primary-for QFileDevice (0x0x7faf5f1ec1a0) + QObject (0x0x7faf5f1e4480) 0 + primary-for QIODevice (0x0x7faf5f1ec208) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7faf5f1e4840) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7faf5ee5e0c0) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7faf5ee5e060) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7faf5ee5ea80) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7faf5ee5ec60) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7faf5ee5ee40) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7faf5f1ec410) 0 + std::__mutex_base (0x0x7faf5ee5eea0) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7faf5eec00c0) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7faf5eec0120) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7faf5eec0180) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7faf5eec0ba0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7faf5f1ec478) 0 + std::__recursive_mutex_base (0x0x7faf5eec0c00) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7faf5ee98930) 0 + std::__mutex_base (0x0x7faf5eefa000) 0 + std::__timed_mutex_impl (0x0x7faf5eefa060) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7faf5ef03310) 0 + std::__recursive_mutex_base (0x0x7faf5eefa3c0) 0 + std::__timed_mutex_impl (0x0x7faf5eefa420) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7faf5eefab40) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7faf5f1ec5b0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7faf5ef3b0c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7faf5f1ec5b0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7faf5f1ec618) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7faf5ef3b1e0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7faf5f1ec618) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7faf5f1ec680) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7faf5ef3b300) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7faf5f1ec680) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7faf5f1ec750) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7faf5ef3b420) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7faf5f1ec750) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7faf5ef60480) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7faf5ef60780) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7faf5ef60a80) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7faf5ef60de0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7faf5f1ec7b8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7faf5f001000) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7faf5f1ec7b8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7faf5ec41f60) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7faf5ec6a3c0) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7faf5edb3240) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7faf5ede26c0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7faf5ede2720) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7faf5ede2660) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7faf5e873ae0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7faf5e873ea0) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7faf5e873f00) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7faf5e62a240) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7faf5e646068) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7faf5e6460d0) 0 + primary-for std::future_error (0x0x7faf5e646068) + std::exception (0x0x7faf5e62a960) 0 nearly-empty + primary-for std::logic_error (0x0x7faf5e6460d0) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7faf5e6600c0) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7faf5e660060) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7faf5e4387e0) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7faf5e4188f0) 0 + std::__at_thread_exit_elt (0x0x7faf5e4388a0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7faf5e660240) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7faf5e660000) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7faf5dfb8618) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7faf5dfe08a0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7faf5dfb8618) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7faf5dc17180) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7faf5dfb8958) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7faf5dc17120) 0 + primary-for QThread (0x0x7faf5dfb8958) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7faf5dc17540) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7faf5dfb89c0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7faf5dc174e0) 0 + primary-for QThreadPool (0x0x7faf5dfb89c0) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7faf5dc17720) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7faf5dc17de0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7faf5dfb8a28) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7faf5dc17d80) 0 + primary-for QTimeLine (0x0x7faf5dfb8a28) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7faf5dc67060) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7faf5dfb8a90) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7faf5dc67000) 0 + primary-for QTimer (0x0x7faf5dfb8a90) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7faf5dc9f9c0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7faf5dc9f960) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7faf5dd3ba80) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7faf5dd4b1a0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7faf5dd3ba20) 0 + primary-for QTranslator (0x0x7faf5dd4b1a0) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7faf5dd3bcc0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7faf5dd4b208) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7faf5dd4b270) 0 + primary-for QTransposeProxyModel (0x0x7faf5dd4b208) + QAbstractItemModel (0x0x7faf5dd4b2d8) 0 + primary-for QAbstractProxyModel (0x0x7faf5dd4b270) + QObject (0x0x7faf5dd3bc60) 0 + primary-for QAbstractItemModel (0x0x7faf5dd4b2d8) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7faf5dd3bea0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7faf5dde48a0) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7faf5dde49c0) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7faf5da73d80) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7faf5dae9958) 0 + QVector (0x0x7faf5daee4e0) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7faf5daee7e0) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7faf5db76780) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7faf5dbd2780) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7faf5d83d840) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7faf5d83d8a0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7faf5d88c780) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7faf5d88cd80) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7faf5d94dde0) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7faf5d9ff2a0) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7faf5d9ff240) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7faf5d6cfea0) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7faf5d7bca20) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7faf5d428ae0) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7faf5d412bc8) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7faf5d46f3c0) 0 + primary-for QInputEvent (0x0x7faf5d412bc8) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7faf5d412c30) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QEvent (0x0x7faf5d46f5a0) 0 + primary-for QEnterEvent (0x0x7faf5d412c30) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7faf5d412c98) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QInputEvent (0x0x7faf5d412d00) 0 + primary-for QMouseEvent (0x0x7faf5d412c98) + QEvent (0x0x7faf5d46f960) 0 + primary-for QInputEvent (0x0x7faf5d412d00) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7faf5d412d68) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QInputEvent (0x0x7faf5d412dd0) 0 + primary-for QHoverEvent (0x0x7faf5d412d68) + QEvent (0x0x7faf5d46fe40) 0 + primary-for QInputEvent (0x0x7faf5d412dd0) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7faf5d412e38) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QInputEvent (0x0x7faf5d412ea0) 0 + primary-for QWheelEvent (0x0x7faf5d412e38) + QEvent (0x0x7faf5d4aa060) 0 + primary-for QInputEvent (0x0x7faf5d412ea0) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7faf5d412f08) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QInputEvent (0x0x7faf5d412f70) 0 + primary-for QTabletEvent (0x0x7faf5d412f08) + QEvent (0x0x7faf5d4aa6c0) 0 + primary-for QInputEvent (0x0x7faf5d412f70) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7faf5d4e8000) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QInputEvent (0x0x7faf5d4e8068) 0 + primary-for QNativeGestureEvent (0x0x7faf5d4e8000) + QEvent (0x0x7faf5d4e9000) 0 + primary-for QInputEvent (0x0x7faf5d4e8068) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7faf5d4e80d0) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7faf5d4e8138) 0 + primary-for QKeyEvent (0x0x7faf5d4e80d0) + QEvent (0x0x7faf5d4e9300) 0 + primary-for QInputEvent (0x0x7faf5d4e8138) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7faf5d4e81a0) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7faf5d4e9600) 0 + primary-for QFocusEvent (0x0x7faf5d4e81a0) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7faf5d4e8208) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7faf5d4e9720) 0 + primary-for QPaintEvent (0x0x7faf5d4e8208) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7faf5d4e8270) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7faf5d4e9840) 0 + primary-for QMoveEvent (0x0x7faf5d4e8270) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7faf5d4e82d8) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7faf5d4e9960) 0 + primary-for QExposeEvent (0x0x7faf5d4e82d8) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7faf5d4e8340) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7faf5d4e9a20) 0 + primary-for QPlatformSurfaceEvent (0x0x7faf5d4e8340) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7faf5d4e83a8) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7faf5d4e9ae0) 0 + primary-for QResizeEvent (0x0x7faf5d4e83a8) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7faf5d4e8410) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7faf5d4e9c00) 0 + primary-for QCloseEvent (0x0x7faf5d4e8410) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7faf5d4e8478) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7faf5d4e9c60) 0 + primary-for QIconDragEvent (0x0x7faf5d4e8478) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7faf5d4e84e0) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7faf5d4e9cc0) 0 + primary-for QShowEvent (0x0x7faf5d4e84e0) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7faf5d4e8548) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7faf5d4e9d20) 0 + primary-for QHideEvent (0x0x7faf5d4e8548) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7faf5d4e85b0) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7faf5d4e8618) 0 + primary-for QContextMenuEvent (0x0x7faf5d4e85b0) + QEvent (0x0x7faf5d4e9d80) 0 + primary-for QInputEvent (0x0x7faf5d4e8618) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7faf5d538120) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7faf5d4e8680) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7faf5d5380c0) 0 + primary-for QInputMethodEvent (0x0x7faf5d4e8680) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7faf5d5b3480) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7faf5d5af888) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7faf5d5b3420) 0 + primary-for QInputMethodQueryEvent (0x0x7faf5d5af888) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7faf5d21d958) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7faf5d22e1e0) 0 + primary-for QDropEvent (0x0x7faf5d21d958) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7faf5d21d9c0) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7faf5d21da28) 0 + primary-for QDragMoveEvent (0x0x7faf5d21d9c0) + QEvent (0x0x7faf5d22e5a0) 0 + primary-for QDropEvent (0x0x7faf5d21da28) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7faf5d21da90) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7faf5d21daf8) 0 + primary-for QDragEnterEvent (0x0x7faf5d21da90) + QDropEvent (0x0x7faf5d21db60) 0 + primary-for QDragMoveEvent (0x0x7faf5d21daf8) + QEvent (0x0x7faf5d22e7e0) 0 + primary-for QDropEvent (0x0x7faf5d21db60) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7faf5d21dbc8) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7faf5d22e840) 0 + primary-for QDragLeaveEvent (0x0x7faf5d21dbc8) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7faf5d21dc30) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7faf5d22e8a0) 0 + primary-for QHelpEvent (0x0x7faf5d21dc30) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7faf5d21dc98) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7faf5d22eb40) 0 + primary-for QStatusTipEvent (0x0x7faf5d21dc98) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7faf5d21dd00) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7faf5d22ec00) 0 + primary-for QWhatsThisClickedEvent (0x0x7faf5d21dd00) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7faf5d21dd68) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7faf5d22ecc0) 0 + primary-for QActionEvent (0x0x7faf5d21dd68) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7faf5d21ddd0) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7faf5d22ede0) 0 + primary-for QFileOpenEvent (0x0x7faf5d21ddd0) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7faf5d21de38) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7faf5d22ef00) 0 + primary-for QToolBarChangeEvent (0x0x7faf5d21de38) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7faf5d21dea0) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7faf5d26b000) 0 + primary-for QShortcutEvent (0x0x7faf5d21dea0) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7faf5d21df08) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7faf5d26b180) 0 + primary-for QWindowStateChangeEvent (0x0x7faf5d21df08) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7faf5d26b300) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7faf5d2bb6c0) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7faf5d2b2750) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QInputEvent (0x0x7faf5d2b27b8) 0 + primary-for QTouchEvent (0x0x7faf5d2b2750) + QEvent (0x0x7faf5d2bb660) 0 + primary-for QInputEvent (0x0x7faf5d2b27b8) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7faf5d3cb478) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7faf5d3c4c60) 0 + primary-for QScrollPrepareEvent (0x0x7faf5d3cb478) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7faf5d3cb4e0) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7faf5d3c4cc0) 0 + primary-for QScrollEvent (0x0x7faf5d3cb4e0) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7faf5d3cb548) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7faf5d3c4d20) 0 + primary-for QScreenOrientationChangeEvent (0x0x7faf5d3cb548) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7faf5d3cb5b0) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7faf5d3c4d80) 0 + primary-for QApplicationStateChangeEvent (0x0x7faf5d3cb5b0) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7faf5d3c4de0) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7faf5d09f208) 0 + QVector (0x0x7faf5d09d2a0) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7faf5d12e548) 0 + QVector (0x0x7faf5d13a360) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7faf5d1d31e0) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7faf5ce4a000) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7faf5ce22f60) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7faf5cf7a360) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7faf5cf7aa20) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7faf5cc4b4e0) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7faf5cc4bae0) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7faf5cd093a8) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7faf5cd14420) 0 + primary-for QImage (0x0x7faf5cd093a8) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7faf5ca0cdd0) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7faf5ca261e0) 0 + primary-for QPixmap (0x0x7faf5ca0cdd0) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7faf5ca926c0) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7faf5cb53c00) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7faf5cb53e40) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7faf5cb4ff70) 0 + QGradient (0x0x7faf5cbb05a0) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7faf5cbc3000) 0 + QGradient (0x0x7faf5cbb06c0) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7faf5cbc3068) 0 + QGradient (0x0x7faf5cbb07e0) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7faf5cbb08a0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7faf5c88d240) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7faf5c88d1e0) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7faf5c8da960) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7faf5c952300) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7faf5c644138) 0 + QTextFormat (0x0x7faf5c63bea0) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7faf5c6e6548) 0 + QTextFormat (0x0x7faf5c6e28a0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7faf5c73ea90) 0 + QTextFormat (0x0x7faf5c7435a0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7faf5c782ea0) 0 + QTextCharFormat (0x0x7faf5c782f08) 0 + QTextFormat (0x0x7faf5c789d20) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7faf5c7dc478) 0 + QTextFormat (0x0x7faf5c7e23c0) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7faf5c4309c0) 0 + QTextFrameFormat (0x0x7faf5c430a28) 0 + QTextFormat (0x0x7faf5c446000) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7faf5c482f70) 0 + QTextCharFormat (0x0x7faf5c49c000) 0 + QTextFormat (0x0x7faf5c48d8a0) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7faf5c4d2cc0) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7faf5c4d2ea0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7faf5c5598a0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7faf5c5d49c0) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7faf5c237b40) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7faf5c237f60) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7faf5c237f00) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7faf5c2e7660) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7faf5c2e7ae0) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7faf5c2e7d80) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7faf5c2e6af8) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7faf5c2e7d20) 0 + primary-for QTextDocument (0x0x7faf5c2e6af8) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7faf5c3458a0) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7faf5c345840) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7faf5c03dc60) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7faf5c03dcc0) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7faf5c03dd20) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7faf5c045820) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7faf5c03dc00) 0 + primary-for QAbstractTextDocumentLayout (0x0x7faf5c045820) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7faf5c107900) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7faf5c107b40) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7faf5c107ba0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7faf5c107ae0) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7faf5c143780) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7faf5c143ae0) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7faf5c143b40) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7faf5c143ba0) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7faf5c143c00) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7faf5c143c60) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7faf5c143cc0) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7faf5c143de0) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7faf5c143e40) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7faf5c10fe38) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7faf5c1af840) 0 + primary-for QAccessibleStateChangeEvent (0x0x7faf5c10fe38) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7faf5c10fea0) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7faf5c1afc00) 0 + primary-for QAccessibleTextCursorEvent (0x0x7faf5c10fea0) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7faf5c10ff08) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7faf5c10ff70) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7faf5c10ff08) + QAccessibleEvent (0x0x7faf5be14060) 0 + primary-for QAccessibleTextCursorEvent (0x0x7faf5c10ff70) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7faf5be23000) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7faf5be23068) 0 + primary-for QAccessibleTextInsertEvent (0x0x7faf5be23000) + QAccessibleEvent (0x0x7faf5be144e0) 0 + primary-for QAccessibleTextCursorEvent (0x0x7faf5be23068) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7faf5be230d0) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7faf5be23138) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7faf5be230d0) + QAccessibleEvent (0x0x7faf5be14900) 0 + primary-for QAccessibleTextCursorEvent (0x0x7faf5be23138) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7faf5be231a0) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7faf5be23208) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7faf5be231a0) + QAccessibleEvent (0x0x7faf5be14d20) 0 + primary-for QAccessibleTextCursorEvent (0x0x7faf5be23208) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7faf5be23270) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7faf5be471e0) 0 + primary-for QAccessibleValueChangeEvent (0x0x7faf5be23270) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7faf5be232d8) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7faf5be47600) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7faf5be232d8) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7faf5be47ea0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7faf5be77180) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7faf5be23340) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7faf5be77120) 0 + primary-for QAccessibleBridgePlugin (0x0x7faf5be23340) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7faf5be233a8) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7faf5be772a0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7faf5be233a8) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7faf5be23410) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7faf5be23478) 0 + primary-for QAccessibleApplication (0x0x7faf5be23410) + QAccessibleInterface (0x0x7faf5be77300) 0 nearly-empty + primary-for QAccessibleObject (0x0x7faf5be23478) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7faf5be773c0) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7faf5be234e0) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7faf5be77360) 0 + primary-for QAccessiblePlugin (0x0x7faf5be234e0) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7faf5be774e0) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7faf5bee1060) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7faf5bee1420) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7faf5bf9ff60) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7faf5bc6cd20) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7faf5bc6eee0) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7faf5bc6cc60) 0 + primary-for QWindow (0x0x7faf5bc6eee0) + QSurface (0x0x7faf5bc6ccc0) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7faf5bcbb600) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7faf5bc737b8) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7faf5bc73820) 0 + primary-for QBitmap (0x0x7faf5bc737b8) + QPaintDevice (0x0x7faf5bcbb6c0) 0 + primary-for QPixmap (0x0x7faf5bc73820) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7faf5bd13c00) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7faf5bd11af8) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7faf5bd13ba0) 0 + primary-for QClipboard (0x0x7faf5bd11af8) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7faf5bd13d20) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7faf5bd13de0) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7faf5bd11b60) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7faf5bd13d80) 0 + primary-for QDrag (0x0x7faf5bd11b60) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7faf5bd4c000) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7faf5bd92060) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7faf5bddd3c0) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7faf5bb35480) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7faf5ba2f6e8) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7faf5bb35420) 0 + primary-for QGenericPlugin (0x0x7faf5ba2f6e8) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7faf5bb355a0) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7faf5bb35660) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7faf5ba2f750) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7faf5bb35600) 0 + primary-for QInputMethod (0x0x7faf5ba2f750) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7faf5bb35960) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7faf5ba2f7b8) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7faf5ba2f820) 0 + primary-for QGuiApplication (0x0x7faf5ba2f7b8) + QObject (0x0x7faf5bb35900) 0 + primary-for QCoreApplication (0x0x7faf5ba2f820) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7faf5bba6120) 0 + +Class QIconEngine::ScaledPixmapArgument + size=56 align=8 + base size=56 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7faf5bba62a0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7faf5bba60c0) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7faf5bba6360) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7faf5ba2fdd0) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7faf5bba6300) 0 + primary-for QIconEnginePlugin (0x0x7faf5ba2fdd0) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7faf5bba6480) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7faf5bba66c0) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7faf5ba2fe38) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7faf5bba6660) 0 + primary-for QImageIOPlugin (0x0x7faf5ba2fe38) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7faf5bba6ea0) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7faf5b840000) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7faf5b840120) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7faf5b8cf2a0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7faf5b94b4e0) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7faf5b9d5de0) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7faf5b6a8c60) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7faf5b6995b0) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7faf5b6a8c00) 0 + primary-for QMovie (0x0x7faf5b6995b0) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7faf5b79f0c0) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7faf5b67ad20) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7faf5b79f000) 0 + primary-for QOffscreenSurface (0x0x7faf5b67ad20) + QSurface (0x0x7faf5b79f060) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7faf5b79f300) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7faf5b79fb40) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7faf5a03d720) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7faf5a03d900) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7faf5a03d960) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7faf5a03db40) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7faf5a03dd20) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7faf5a049478) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a03dcc0) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7faf5a076060) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7faf5a0494e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a076000) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7faf5a076360) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7faf5a049548) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a076300) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7faf5a076660) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7faf5a0495b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a076600) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7faf5a0769c0) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7faf5a049618) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a076960) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7faf5a076cc0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7faf5a049680) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a076c60) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7faf5a0a2000) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7faf5a0496e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a076f60) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7faf5a0a2300) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7faf5a049750) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a0a22a0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7faf5a0a2600) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7faf5a0497b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a0a25a0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7faf5a0a2900) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7faf5a049820) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a0a28a0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7faf5a0a2c00) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7faf5a049888) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a0a2ba0) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7faf5a0a2f00) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7faf5a0498f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a0a2ea0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7faf5a103240) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7faf5a049958) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1031e0) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7faf5a103540) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7faf5a0499c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1034e0) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7faf5a103840) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7faf5a049a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1037e0) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7faf5a103b40) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7faf5a049a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a103ae0) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7faf5a103e40) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7faf5a049af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a103de0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7faf5a1581e0) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7faf5a049b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a158180) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7faf5a1584e0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7faf5a049bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a158480) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7faf5a1587e0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7faf5a049c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a158780) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7faf5a158ae0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7faf5a049c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a158a80) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7faf5a158de0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7faf5a049d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a158d80) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7faf5a1e6120) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7faf5a049d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1e60c0) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7faf5a1e6420) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7faf5a049dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1e63c0) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7faf5a1e6720) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7faf5a049e38) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1e66c0) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7faf5a1e6a20) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7faf5a049ea0) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1e69c0) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7faf5a1e6d20) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7faf5a049f08) 0 + QOpenGLVersionFunctionsBackend (0x0x7faf5a1e6cc0) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7faf59e1e000) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7faf59e1eae0) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7faf59e2d958) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7faf59e1ea80) 0 + primary-for QOpenGLContextGroup (0x0x7faf59e2d958) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7faf59e1ed20) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7faf59e2d9c0) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7faf59e1ecc0) 0 + primary-for QOpenGLContext (0x0x7faf59e2d9c0) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7faf59e1ef60) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7faf59f17720) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7faf59eba410) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7faf59f176c0) 0 + primary-for QOpenGLDebugLogger (0x0x7faf59eba410) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7faf59f17ba0) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7faf59fbc540) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7faf59fbc4e0) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7faf59eba7b8) 0 + QOpenGLFunctions (0x0x7faf59cb4300) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7faf59cb4660) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7faf59eba820) 0 + QOpenGLFunctionsPrivate (0x0x7faf59cb4600) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7faf59a99120) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7faf59a993c0) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7faf59a8b5b0) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7faf59a99420) 0 + primary-for QOpenGLPaintDevice (0x0x7faf59a8b5b0) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7faf59a99660) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7faf59b1f480) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7faf59b1b6e8) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7faf59b1f420) 0 + primary-for QOpenGLShader (0x0x7faf59b1b6e8) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7faf59b1fd80) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7faf59b1b820) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7faf59b1fd20) 0 + primary-for QOpenGLShaderProgram (0x0x7faf59b1b820) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7faf59b1ff60) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7faf59830480) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7faf598306c0) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7faf59b1b958) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7faf59830660) 0 + primary-for QOpenGLTimerQuery (0x0x7faf59b1b958) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7faf59830900) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7faf59b1b9c0) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7faf598308a0) 0 + primary-for QOpenGLTimeMonitor (0x0x7faf59b1b9c0) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7faf59830b40) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7faf59830ba0) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7faf59b1ba28) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7faf59830ae0) 0 + primary-for QOpenGLVertexArrayObject (0x0x7faf59b1ba28) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7faf598832a0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7faf5987e380) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7faf5987e3f0) 0 + primary-for QPaintDeviceWindow (0x0x7faf5987e380) + QObject (0x0x7faf59883180) 0 + primary-for QWindow (0x0x7faf5987e3f0) + QSurface (0x0x7faf598831e0) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336) + QPaintDevice (0x0x7faf59883240) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7faf598835a0) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7faf59b1baf8) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7faf5987e5b0) 0 + primary-for QOpenGLWindow (0x0x7faf59b1baf8) + QWindow (0x0x7faf5987e620) 0 + primary-for QPaintDeviceWindow (0x0x7faf5987e5b0) + QObject (0x0x7faf59883480) 0 + primary-for QWindow (0x0x7faf5987e620) + QSurface (0x0x7faf598834e0) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384) + QPaintDevice (0x0x7faf59883540) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7faf59883780) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7faf599291e0) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7faf5998ad20) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7faf59982a90) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7faf5998acc0) 0 + primary-for QPagedPaintDevice (0x0x7faf59982a90) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7faf5998ade0) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7faf5998ad80) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7faf597db180) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7faf5941c0c0) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7faf5941c8a0) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7faf594d9060) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7faf594a3690) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7faf5949df60) 0 + primary-for QPdfWriter (0x0x7faf594a3690) + QPagedPaintDevice (0x0x7faf59806e38) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176) + QPaintDevice (0x0x7faf594d9000) 16 + primary-for QPagedPaintDevice (0x0x7faf59806e38) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7faf59806ea0) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7faf594d9360) 0 + primary-for QPicture (0x0x7faf59806ea0) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7faf5953e600) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7faf5953e6c0) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7faf59545068) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16) + QObject (0x0x7faf5953e660) 0 + primary-for QPictureFormatPlugin (0x0x7faf59545068) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7faf5953e840) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7faf5953e7e0) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7faf5921b000) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7faf59603c98) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7faf592124d0) 0 + primary-for QRasterWindow (0x0x7faf59603c98) + QWindow (0x0x7faf59212540) 0 + primary-for QPaintDeviceWindow (0x0x7faf592124d0) + QObject (0x0x7faf595fcea0) 0 + primary-for QWindow (0x0x7faf59212540) + QSurface (0x0x7faf595fcf00) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344) + QPaintDevice (0x0x7faf595fcf60) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7faf5921b240) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7faf59603d68) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7faf5921b1e0) 0 + primary-for QScreen (0x0x7faf59603d68) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7faf5921b480) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7faf59603dd0) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7faf5921b420) 0 + primary-for QSessionManager (0x0x7faf59603dd0) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7faf5921b660) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7faf59291de0) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7faf5928e3a8) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7faf5928e410) 0 + primary-for QStandardItemModel (0x0x7faf5928e3a8) + QObject (0x0x7faf59291d80) 0 + primary-for QAbstractItemModel (0x0x7faf5928e410) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7faf593391e0) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7faf593955a0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7faf5938f750) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7faf59395540) 0 + primary-for QStyleHints (0x0x7faf5938f750) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7faf593957e0) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7faf5938f7b8) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7faf59395780) 0 + primary-for QTextObject (0x0x7faf5938f7b8) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7faf59395a20) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7faf5938f820) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7faf5938f888) 0 + primary-for QTextBlockGroup (0x0x7faf5938f820) + QObject (0x0x7faf593959c0) 0 + primary-for QTextObject (0x0x7faf5938f888) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7faf59395c00) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7faf59395cc0) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7faf59395d20) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7faf5938f8f0) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7faf5938f958) 0 + primary-for QTextFrame (0x0x7faf5938f8f0) + QObject (0x0x7faf59395c60) 0 + primary-for QTextObject (0x0x7faf5938f958) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7faf5902a6c0) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7faf5902a780) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7faf5902a720) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7faf6670af00) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7faf652b6180) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7faf64a7b270) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7faf6529db40) 0 + primary-for QSyntaxHighlighter (0x0x7faf64a7b270) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7faf652db180) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7faf652db9c0) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7faf652dbd20) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7faf64a7b2d8) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7faf64ac22d8) 0 + primary-for QTextList (0x0x7faf64a7b2d8) + QTextObject (0x0x7faf64ac2340) 0 + primary-for QTextBlockGroup (0x0x7faf64ac22d8) + QObject (0x0x7faf652dba20) 0 + primary-for QTextObject (0x0x7faf64ac2340) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7faf6516e240) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7faf64cbc540) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7faf64ac2af8) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7faf64ac2b60) 0 + primary-for QTextTable (0x0x7faf64ac2af8) + QTextObject (0x0x7faf64b06000) 0 + primary-for QTextFrame (0x0x7faf64ac2b60) + QObject (0x0x7faf64c9c300) 0 + primary-for QTextObject (0x0x7faf64b06000) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7faf64a2c840) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7faf64b06068) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7faf64a2c780) 0 + primary-for QValidator (0x0x7faf64b06068) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7faf64a5a960) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7faf64b1d0d0) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7faf64b1d138) 0 + primary-for QIntValidator (0x0x7faf64b1d0d0) + QObject (0x0x7faf64a5a900) 0 + primary-for QValidator (0x0x7faf64b1d138) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7faf64ad1c00) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7faf6483c8f0) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7faf6483c958) 0 + primary-for QDoubleValidator (0x0x7faf6483c8f0) + QObject (0x0x7faf64ad1ba0) 0 + primary-for QValidator (0x0x7faf6483c958) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7faf64946f00) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7faf6483ca90) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16) + QValidator (0x0x7faf6483cc30) 0 + primary-for QRegExpValidator (0x0x7faf6483ca90) + QObject (0x0x7faf64b18180) 0 + primary-for QValidator (0x0x7faf6483cc30) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7faf6496dba0) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7faf64854410) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7faf64854478) 0 + primary-for QRegularExpressionValidator (0x0x7faf64854410) + QObject (0x0x7faf6496db40) 0 + primary-for QValidator (0x0x7faf64854478) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7faf6465d360) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7faf6465d300) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7faf63065b40) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7faf63065f60) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=48 align=8 + base size=48 base align=8 +QWidget (0x0x7faf6569b310) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7faf63065de0) 0 + primary-for QWidget (0x0x7faf6569b310) + QPaintDevice (0x0x7faf63065e40) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7faf62990120) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=48 align=8 + base size=48 base align=8 +QAbstractButton (0x0x7faf6307be38) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7faf669894d0) 0 + primary-for QAbstractButton (0x0x7faf6307be38) + QObject (0x0x7faf6295b060) 0 + primary-for QWidget (0x0x7faf669894d0) + QPaintDevice (0x0x7faf6295b0c0) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7faf629e9660) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI16QAbstractSpinBox) +488 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=48 align=8 + base size=48 base align=8 +QAbstractSpinBox (0x0x7faf6307bea0) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7faf6754e000) 0 + primary-for QAbstractSpinBox (0x0x7faf6307bea0) + QObject (0x0x7faf629e9000) 0 + primary-for QWidget (0x0x7faf6754e000) + QPaintDevice (0x0x7faf629e9060) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 488) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7faf627da420) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=48 align=8 + base size=48 base align=8 +QAbstractSlider (0x0x7faf63094548) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7faf673c34d0) 0 + primary-for QAbstractSlider (0x0x7faf63094548) + QObject (0x0x7faf6279ca20) 0 + primary-for QWidget (0x0x7faf673c34d0) + QPaintDevice (0x0x7faf627da3c0) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7faf627feba0) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI7QSlider) +456 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=48 align=8 + base size=48 base align=8 +QSlider (0x0x7faf63094618) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7faf63094680) 0 + primary-for QSlider (0x0x7faf63094618) + QWidget (0x0x7faf673c3a80) 0 + primary-for QAbstractSlider (0x0x7faf63094680) + QObject (0x0x7faf627daf60) 0 + primary-for QWidget (0x0x7faf673c3a80) + QPaintDevice (0x0x7faf627feb40) 16 + vptr=((& QSlider::_ZTV7QSlider) + 456) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7faf6248e180) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7faf63094a28) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7faf6248e120) 0 + primary-for QStyle (0x0x7faf63094a28) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7faf61c0b4e0) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QTabBar) +488 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=48 align=8 + base size=48 base align=8 +QTabBar (0x0x7faf63177d68) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7faf66980f50) 0 + primary-for QTabBar (0x0x7faf63177d68) + QObject (0x0x7faf61c0b120) 0 + primary-for QWidget (0x0x7faf66980f50) + QPaintDevice (0x0x7faf61c0b180) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 488) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7faf61c4a060) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QTabWidget) +464 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=48 align=8 + base size=48 base align=8 +QTabWidget (0x0x7faf62ea6410) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7faf669a69a0) 0 + primary-for QTabWidget (0x0x7faf62ea6410) + QObject (0x0x7faf61c2bf00) 0 + primary-for QWidget (0x0x7faf669a69a0) + QPaintDevice (0x0x7faf61c2bf60) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 464) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7faf61cdc6c0) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QRubberBand) +448 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=48 align=8 + base size=48 base align=8 +QRubberBand (0x0x7faf62ea6478) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7faf669a6d90) 0 + primary-for QRubberBand (0x0x7faf62ea6478) + QObject (0x0x7faf61cb8cc0) 0 + primary-for QWidget (0x0x7faf669a6d90) + QPaintDevice (0x0x7faf61cdc660) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 448) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7faf61daa720) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QFrame) +448 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=48 align=8 + base size=48 base align=8 +QFrame (0x0x7faf62ea6618) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7faf669c0000) 0 + primary-for QFrame (0x0x7faf62ea6618) + QObject (0x0x7faf61daa180) 0 + primary-for QWidget (0x0x7faf669c0000) + QPaintDevice (0x0x7faf61daa6c0) 16 + vptr=((& QFrame::_ZTV6QFrame) + 448) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7faf61de9c00) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7faf62ea6680) 0 + QStyleOption (0x0x7faf61a0f1e0) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7faf62ebe4e0) 0 + QStyleOption (0x0x7faf61a0fde0) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7faf62ebec30) 0 + QStyleOption (0x0x7faf61ab8a80) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7faf62ebee38) 0 + QStyleOption (0x0x7faf61afa2a0) 0 + +Class QStyleOptionHeader + size=120 align=8 + base size=116 base align=8 +QStyleOptionHeader (0x0x7faf62c093a8) 0 + QStyleOption (0x0x7faf618da360) 0 + +Class QStyleOptionButton + size=96 align=8 + base size=96 base align=8 +QStyleOptionButton (0x0x7faf62c09410) 0 + QStyleOption (0x0x7faf618fa5a0) 0 + +Class QStyleOptionTab + size=136 align=8 + base size=136 base align=8 +QStyleOptionTab (0x0x7faf62c09dd0) 0 + QStyleOption (0x0x7faf619bfcc0) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7faf62c45000) 0 + QStyleOption (0x0x7faf614b9600) 0 + +Class QStyleOptionProgressBar + size=104 align=8 + base size=102 base align=8 +QStyleOptionProgressBar (0x0x7faf62c451a0) 0 + QStyleOption (0x0x7faf61559420) 0 + +Class QStyleOptionMenuItem + size=136 align=8 + base size=136 base align=8 +QStyleOptionMenuItem (0x0x7faf62c454e0) 0 + QStyleOption (0x0x7faf615ae540) 0 + +Class QStyleOptionDockWidget + size=80 align=8 + base size=76 base align=8 +QStyleOptionDockWidget (0x0x7faf62c45548) 0 + QStyleOption (0x0x7faf61308ea0) 0 + +Class QStyleOptionViewItem + size=192 align=8 + base size=192 base align=8 +QStyleOptionViewItem (0x0x7faf62c45bc8) 0 + QStyleOption (0x0x7faf61349ae0) 0 + +Class QStyleOptionToolBox + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBox (0x0x7faf62c58dd0) 0 + QStyleOption (0x0x7faf6100dea0) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7faf62c58e38) 0 + QStyleOption (0x0x7faf61026660) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7faf62c6b0d0) 0 + QStyleOption (0x0x7faf610b9de0) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=121 base align=8 +QStyleOptionSlider (0x0x7faf62d235b0) 0 + QStyleOptionComplex (0x0x7faf62d23618) 0 + QStyleOption (0x0x7faf6117da80) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7faf62d3f618) 0 + QStyleOptionComplex (0x0x7faf62d3f680) 0 + QStyleOption (0x0x7faf611bc1e0) 0 + +Class QStyleOptionToolButton + size=136 align=8 + base size=136 base align=8 +QStyleOptionToolButton (0x0x7faf62e03548) 0 + QStyleOptionComplex (0x0x7faf62e035b0) 0 + QStyleOption (0x0x7faf60e4f8a0) 0 + +Class QStyleOptionComboBox + size=120 align=8 + base size=120 base align=8 +QStyleOptionComboBox (0x0x7faf62a61410) 0 + QStyleOptionComplex (0x0x7faf62a61478) 0 + QStyleOption (0x0x7faf60c51180) 0 + +Class QStyleOptionTitleBar + size=96 align=8 + base size=96 base align=8 +QStyleOptionTitleBar (0x0x7faf62a61b60) 0 + QStyleOptionComplex (0x0x7faf62a61bc8) 0 + QStyleOption (0x0x7faf60c75ae0) 0 + +Class QStyleOptionGroupBox + size=120 align=8 + base size=116 base align=8 +QStyleOptionGroupBox (0x0x7faf62a7c548) 0 + QStyleOptionComplex (0x0x7faf62a7c5b0) 0 + QStyleOption (0x0x7faf60daaae0) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7faf62aaa478) 0 + QStyleOptionComplex (0x0x7faf62aaa4e0) 0 + QStyleOption (0x0x7faf60dd4480) 0 + +Class QStyleOptionGraphicsItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionGraphicsItem (0x0x7faf62aaa680) 0 + QStyleOption (0x0x7faf60a2be40) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7faf60ad6a20) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7faf62b26340) 0 + QStyleHintReturn (0x0x7faf60ad6ae0) 0 + +Class QStyleHintReturnVariant + size=24 align=8 + base size=24 base align=8 +QStyleHintReturnVariant (0x0x7faf62b263a8) 0 + QStyleHintReturn (0x0x7faf60ad6f60) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7faf60b77ae0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7faf62945a28) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7faf60b77a80) 0 + primary-for QAbstractItemDelegate (0x0x7faf62945a28) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7faf60bb7000) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI19QAbstractScrollArea) +480 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=48 align=8 + base size=48 base align=8 +QAbstractScrollArea (0x0x7faf6295a6e8) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7faf6295a750) 0 + primary-for QAbstractScrollArea (0x0x7faf6295a6e8) + QWidget (0x0x7faf66753070) 0 + primary-for QFrame (0x0x7faf6295a750) + QObject (0x0x7faf60b9cd20) 0 + primary-for QWidget (0x0x7faf66753070) + QPaintDevice (0x0x7faf60b9cde0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 480) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7faf60bdae40) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QAbstractItemView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI17QAbstractItemView) +784 0 +792 0 +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=48 align=8 + base size=48 base align=8 +QAbstractItemView (0x0x7faf629958f0) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7faf62995958) 0 + primary-for QAbstractItemView (0x0x7faf629958f0) + QFrame (0x0x7faf629a64e0) 0 + primary-for QAbstractScrollArea (0x0x7faf62995958) + QWidget (0x0x7faf667532a0) 0 + primary-for QFrame (0x0x7faf629a64e0) + QObject (0x0x7faf60bdaae0) 0 + primary-for QWidget (0x0x7faf667532a0) + QPaintDevice (0x0x7faf60bdab40) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 784) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7faf66784850) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7faf629a68f0) 0 + primary-for QAccessibleWidget (0x0x7faf66784850) + QAccessibleInterface (0x0x7faf609883c0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7faf629a68f0) + QAccessibleActionInterface (0x0x7faf609885a0) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7faf609ea720) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7faf629ff8f0) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7faf609ea6c0) 0 + primary-for QAction (0x0x7faf629ff8f0) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7faf60658300) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7faf629ff958) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7faf606582a0) 0 + primary-for QActionGroup (0x0x7faf629ff958) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7faf606794e0) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7faf629ffd00) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7faf629ffd68) 0 + primary-for QApplication (0x0x7faf629ffd00) + QCoreApplication (0x0x7faf62613d00) 0 + primary-for QGuiApplication (0x0x7faf629ffd68) + QObject (0x0x7faf606792a0) 0 + primary-for QCoreApplication (0x0x7faf62613d00) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7faf606e2840) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7faf62613d68) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7faf6076a300) 0 + primary-for QSpacerItem (0x0x7faf62613d68) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7faf627421a0) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7faf607895a0) 0 + primary-for QWidgetItem (0x0x7faf627421a0) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7faf62742208) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7faf62784340) 0 + primary-for QWidgetItemV2 (0x0x7faf62742208) + QLayoutItem (0x0x7faf60451300) 0 + primary-for QWidgetItem (0x0x7faf62784340) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7faf60451780) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QLayout::setGeometry +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))-16 +232 (int (*)(...))(& _ZTI7QLayout) +240 0 +248 0 +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +272 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +280 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +288 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +312 (int (*)(...))QLayoutItem::hasHeightForWidth +320 (int (*)(...))QLayoutItem::heightForWidth +328 (int (*)(...))QLayoutItem::minimumHeightForWidth +336 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +344 (int (*)(...))QLayoutItem::widget +352 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +360 (int (*)(...))QLayoutItem::spacerItem +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7faf6679ff50) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7faf604514e0) 0 + primary-for QLayout (0x0x7faf6679ff50) + QLayoutItem (0x0x7faf604515a0) 16 + vptr=((& QLayout::_ZTV7QLayout) + 240) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7faf60485b40) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QGridLayout::addItem +136 (int (*)(...))QGridLayout::expandingDirections +144 (int (*)(...))QGridLayout::minimumSize +152 (int (*)(...))QGridLayout::maximumSize +160 (int (*)(...))QGridLayout::setGeometry +168 (int (*)(...))QGridLayout::itemAt +176 (int (*)(...))QGridLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QGridLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QGridLayout::sizeHint +232 (int (*)(...))QGridLayout::hasHeightForWidth +240 (int (*)(...))QGridLayout::heightForWidth +248 (int (*)(...))QGridLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QGridLayout) +272 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +280 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +288 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +296 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +304 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +312 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +320 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +352 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +360 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +368 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7faf627843a8) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7faf667bba80) 0 + primary-for QGridLayout (0x0x7faf627843a8) + QObject (0x0x7faf6046bb40) 0 + primary-for QLayout (0x0x7faf667bba80) + QLayoutItem (0x0x7faf60485ae0) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 272) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7faf604d9300) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI10QBoxLayout) +272 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +280 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7faf6279b7b8) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7faf667bbe00) 0 + primary-for QBoxLayout (0x0x7faf6279b7b8) + QObject (0x0x7faf604bae40) 0 + primary-for QLayout (0x0x7faf667bbe00) + QLayoutItem (0x0x7faf604d92a0) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 272) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7faf6052ea20) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QHBoxLayout) +272 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +280 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7faf627e6138) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7faf627e61a0) 0 + primary-for QHBoxLayout (0x0x7faf627e6138) + QLayout (0x0x7faf667d3310) 0 + primary-for QBoxLayout (0x0x7faf627e61a0) + QObject (0x0x7faf6052e420) 0 + primary-for QLayout (0x0x7faf667d3310) + QLayoutItem (0x0x7faf6052e480) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 272) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7faf6054c1e0) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QVBoxLayout) +272 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +280 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7faf627e6618) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7faf627e6680) 0 + primary-for QVBoxLayout (0x0x7faf627e6618) + QLayout (0x0x7faf667d3460) 0 + primary-for QBoxLayout (0x0x7faf627e6680) + QObject (0x0x7faf6052ed20) 0 + primary-for QLayout (0x0x7faf667d3460) + QLayoutItem (0x0x7faf6054c180) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 272) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7faf6059d120) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7faf627e6b60) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7faf6059d0c0) 0 + primary-for QButtonGroup (0x0x7faf627e6b60) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7faf605b9660) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=48 align=8 + base size=48 base align=8 +QCalendarWidget (0x0x7faf627e6bc8) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7faf667d3690) 0 + primary-for QCalendarWidget (0x0x7faf627e6bc8) + QObject (0x0x7faf605b9000) 0 + primary-for QWidget (0x0x7faf667d3690) + QPaintDevice (0x0x7faf605b9060) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7faf603657e0) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI9QCheckBox) +472 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=48 align=8 + base size=48 base align=8 +QCheckBox (0x0x7faf627e6d68) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7faf627e6dd0) 0 + primary-for QCheckBox (0x0x7faf627e6d68) + QWidget (0x0x7faf667f0930) 0 + primary-for QAbstractButton (0x0x7faf627e6dd0) + QObject (0x0x7faf60234b40) 0 + primary-for QWidget (0x0x7faf667f0930) + QPaintDevice (0x0x7faf60365780) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 472) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7faf603ab060) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=48 align=8 + base size=48 base align=8 +QDialog (0x0x7faf627e6e38) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7faf667f0a80) 0 + primary-for QDialog (0x0x7faf627e6e38) + QObject (0x0x7faf6038dba0) 0 + primary-for QWidget (0x0x7faf667f0a80) + QPaintDevice (0x0x7faf6038dc00) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7faf6000c360) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=48 align=8 + base size=48 base align=8 +QColorDialog (0x0x7faf627fcb60) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7faf627fcbc8) 0 + primary-for QColorDialog (0x0x7faf627fcb60) + QWidget (0x0x7faf667f0ee0) 0 + primary-for QDialog (0x0x7faf627fcbc8) + QObject (0x0x7faf603e3d80) 0 + primary-for QWidget (0x0x7faf667f0ee0) + QPaintDevice (0x0x7faf6000c300) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7faf5fee4d80) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7faf5ff08060) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 107 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QColumnView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QColumnView::setModel +472 (int (*)(...))QColumnView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QColumnView::visualRect +496 (int (*)(...))QColumnView::scrollTo +504 (int (*)(...))QColumnView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QColumnView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QColumnView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QColumnView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QColumnView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QColumnView::moveCursor +688 (int (*)(...))QColumnView::horizontalOffset +696 (int (*)(...))QColumnView::verticalOffset +704 (int (*)(...))QColumnView::isIndexHidden +712 (int (*)(...))QColumnView::setSelection +720 (int (*)(...))QColumnView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QColumnView::createColumn +776 (int (*)(...))-16 +784 (int (*)(...))(& _ZTI11QColumnView) +792 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +800 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=48 align=8 + base size=48 base align=8 +QColumnView (0x0x7faf62416af8) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7faf62416b60) 0 + primary-for QColumnView (0x0x7faf62416af8) + QAbstractScrollArea (0x0x7faf62416c30) 0 + primary-for QAbstractItemView (0x0x7faf62416b60) + QFrame (0x0x7faf62416c98) 0 + primary-for QAbstractScrollArea (0x0x7faf62416c30) + QWidget (0x0x7faf664931c0) 0 + primary-for QFrame (0x0x7faf62416c98) + QObject (0x0x7faf5fee4e40) 0 + primary-for QWidget (0x0x7faf664931c0) + QPaintDevice (0x0x7faf5ff08000) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 792) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7faf5ff08cc0) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QComboBox) +464 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +472 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=48 align=8 + base size=48 base align=8 +QComboBox (0x0x7faf6242d000) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7faf66493230) 0 + primary-for QComboBox (0x0x7faf6242d000) + QObject (0x0x7faf5ff084e0) 0 + primary-for QWidget (0x0x7faf66493230) + QPaintDevice (0x0x7faf5ff08c60) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 464) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7faf5fc115a0) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QPushButton) +472 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=48 align=8 + base size=48 base align=8 +QPushButton (0x0x7faf6242d068) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7faf6242d6e8) 0 + primary-for QPushButton (0x0x7faf6242d068) + QWidget (0x0x7faf66493850) 0 + primary-for QAbstractButton (0x0x7faf6242d6e8) + QObject (0x0x7faf5ff83c00) 0 + primary-for QWidget (0x0x7faf66493850) + QPaintDevice (0x0x7faf5ff83c60) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 472) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7faf5fc6a120) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI18QCommandLinkButton) +472 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=48 align=8 + base size=48 base align=8 +QCommandLinkButton (0x0x7faf6242d750) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7faf6242d9c0) 0 + primary-for QCommandLinkButton (0x0x7faf6242d750) + QAbstractButton (0x0x7faf62460208) 0 + primary-for QPushButton (0x0x7faf6242d9c0) + QWidget (0x0x7faf66493c40) 0 + primary-for QAbstractButton (0x0x7faf62460208) + QObject (0x0x7faf5fc40ea0) 0 + primary-for QWidget (0x0x7faf66493c40) + QPaintDevice (0x0x7faf5fc6a0c0) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 472) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7faf5fc870c0) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7faf62460270) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7faf624605b0) 0 + primary-for QCommonStyle (0x0x7faf62460270) + QObject (0x0x7faf5fc87060) 0 + primary-for QStyle (0x0x7faf624605b0) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7faf5fce1240) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7faf62460618) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7faf5fce11e0) 0 + primary-for QCompleter (0x0x7faf62460618) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7faf5fce1cc0) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7faf6247c618) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7faf5fce19c0) 0 + primary-for QDataWidgetMapper (0x0x7faf6247c618) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7faf5f429de0) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QDateTimeEdit) +504 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=48 align=8 + base size=48 base align=8 +QDateTimeEdit (0x0x7faf6247c680) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7faf6247ca28) 0 + primary-for QDateTimeEdit (0x0x7faf6247c680) + QWidget (0x0x7faf664bda10) 0 + primary-for QAbstractSpinBox (0x0x7faf6247ca28) + QObject (0x0x7faf5f429420) 0 + primary-for QWidget (0x0x7faf664bda10) + QPaintDevice (0x0x7faf5f429480) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 504) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7faf5f4c0300) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QTimeEdit) +504 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=48 align=8 + base size=48 base align=8 +QTimeEdit (0x0x7faf62494888) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7faf625572d8) 0 + primary-for QTimeEdit (0x0x7faf62494888) + QAbstractSpinBox (0x0x7faf62557340) 0 + primary-for QDateTimeEdit (0x0x7faf625572d8) + QWidget (0x0x7faf663ad150) 0 + primary-for QAbstractSpinBox (0x0x7faf62557340) + QObject (0x0x7faf5f4c0060) 0 + primary-for QWidget (0x0x7faf663ad150) + QPaintDevice (0x0x7faf5f4c02a0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 504) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7faf5f520360) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QDateEdit) +504 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=48 align=8 + base size=48 base align=8 +QDateEdit (0x0x7faf62557548) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7faf625577b8) 0 + primary-for QDateEdit (0x0x7faf62557548) + QAbstractSpinBox (0x0x7faf62569bc8) 0 + primary-for QDateTimeEdit (0x0x7faf625577b8) + QWidget (0x0x7faf663ad310) 0 + primary-for QAbstractSpinBox (0x0x7faf62569bc8) + QObject (0x0x7faf5f5200c0) 0 + primary-for QWidget (0x0x7faf663ad310) + QPaintDevice (0x0x7faf5f520120) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 504) + +Class QDesktopWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesktopWidget::QPrivateSignal (0x0x7faf5f603cc0) 0 empty + +Vtable for QDesktopWidget +QDesktopWidget::_ZTV14QDesktopWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDesktopWidget) +16 (int (*)(...))QDesktopWidget::metaObject +24 (int (*)(...))QDesktopWidget::qt_metacast +32 (int (*)(...))QDesktopWidget::qt_metacall +40 (int (*)(...))QDesktopWidget::~QDesktopWidget +48 (int (*)(...))QDesktopWidget::~QDesktopWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDesktopWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QDesktopWidget) +448 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD1Ev +456 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesktopWidget + size=48 align=8 + base size=48 base align=8 +QDesktopWidget (0x0x7faf62569c30) 0 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 16) + QWidget (0x0x7faf6607a000) 0 + primary-for QDesktopWidget (0x0x7faf62569c30) + QObject (0x0x7faf5f603840) 0 + primary-for QWidget (0x0x7faf6607a000) + QPaintDevice (0x0x7faf5f603c60) 16 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 448) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7faf5f331a80) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QDial) +456 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +464 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=48 align=8 + base size=48 base align=8 +QDial (0x0x7faf623dc270) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7faf623dc2d8) 0 + primary-for QDial (0x0x7faf623dc270) + QWidget (0x0x7faf6607a070) 0 + primary-for QAbstractSlider (0x0x7faf623dc2d8) + QObject (0x0x7faf5f331720) 0 + primary-for QWidget (0x0x7faf6607a070) + QPaintDevice (0x0x7faf5f331a20) 16 + vptr=((& QDial::_ZTV5QDial) + 456) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7faf5f375360) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=48 align=8 + base size=48 base align=8 +QDialogButtonBox (0x0x7faf623dc820) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7faf6607ad90) 0 + primary-for QDialogButtonBox (0x0x7faf623dc820) + QObject (0x0x7faf5f34d9c0) 0 + primary-for QWidget (0x0x7faf6607ad90) + QPaintDevice (0x0x7faf5f375300) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QFileIconProvider::type + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7faf5f0e6540) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + +Class QDirModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDirModel::QPrivateSignal (0x0x7faf5ec412a0) 0 empty + +Vtable for QDirModel +QDirModel::_ZTV9QDirModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDirModel) +16 (int (*)(...))QDirModel::metaObject +24 (int (*)(...))QDirModel::qt_metacast +32 (int (*)(...))QDirModel::qt_metacall +40 (int (*)(...))QDirModel::~QDirModel +48 (int (*)(...))QDirModel::~QDirModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDirModel::index +120 (int (*)(...))QDirModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QDirModel::rowCount +144 (int (*)(...))QDirModel::columnCount +152 (int (*)(...))QDirModel::hasChildren +160 (int (*)(...))QDirModel::data +168 (int (*)(...))QDirModel::setData +176 (int (*)(...))QDirModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QDirModel::mimeTypes +216 (int (*)(...))QDirModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QDirModel::dropMimeData +240 (int (*)(...))QDirModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QDirModel::flags +328 (int (*)(...))QDirModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QDirModel + size=16 align=8 + base size=16 base align=8 +QDirModel (0x0x7faf623fa8f0) 0 + vptr=((& QDirModel::_ZTV9QDirModel) + 16) + QAbstractItemModel (0x0x7faf6200e478) 0 + primary-for QDirModel (0x0x7faf623fa8f0) + QObject (0x0x7faf5ec41240) 0 + primary-for QAbstractItemModel (0x0x7faf6200e478) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7faf5ea1f5a0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QDockWidget) +448 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=48 align=8 + base size=48 base align=8 +QDockWidget (0x0x7faf6200e4e0) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7faf661601c0) 0 + primary-for QDockWidget (0x0x7faf6200e4e0) + QObject (0x0x7faf5ec41600) 0 + primary-for QWidget (0x0x7faf661601c0) + QPaintDevice (0x0x7faf5ec41660) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 448) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7faf5e873240) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7faf5e7fb9c0) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=48 align=8 + base size=48 base align=8 +QErrorMessage (0x0x7faf61e1e7b8) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7faf61e1e9c0) 0 + primary-for QErrorMessage (0x0x7faf61e1e7b8) + QWidget (0x0x7faf65e36850) 0 + primary-for QDialog (0x0x7faf61e1e9c0) + QObject (0x0x7faf5e7fb840) 0 + primary-for QWidget (0x0x7faf65e36850) + QPaintDevice (0x0x7faf5e7fb900) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7faf5e4e1480) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=48 align=8 + base size=48 base align=8 +QFileDialog (0x0x7faf61e1ea28) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7faf61e1eaf8) 0 + primary-for QFileDialog (0x0x7faf61e1ea28) + QWidget (0x0x7faf65e369a0) 0 + primary-for QDialog (0x0x7faf61e1eaf8) + QObject (0x0x7faf5e4aa600) 0 + primary-for QWidget (0x0x7faf65e369a0) + QPaintDevice (0x0x7faf5e4e1420) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7faf5e2e37e0) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QFileSystemModel::mimeTypes +216 (int (*)(...))QFileSystemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QFileSystemModel::dropMimeData +240 (int (*)(...))QFileSystemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QFileSystemModel::fetchMore +312 (int (*)(...))QFileSystemModel::canFetchMore +320 (int (*)(...))QFileSystemModel::flags +328 (int (*)(...))QFileSystemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7faf61e372d8) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7faf61e37478) 0 + primary-for QFileSystemModel (0x0x7faf61e372d8) + QObject (0x0x7faf5e2e3780) 0 + primary-for QAbstractItemModel (0x0x7faf61e37478) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7faf5e30ed80) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QFocusFrame) +448 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=48 align=8 + base size=48 base align=8 +QFocusFrame (0x0x7faf61e37680) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7faf65ee3770) 0 + primary-for QFocusFrame (0x0x7faf61e37680) + QObject (0x0x7faf5e30e780) 0 + primary-for QWidget (0x0x7faf65ee3770) + QPaintDevice (0x0x7faf5e30e840) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 448) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7faf5e0f85a0) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI13QFontComboBox) +464 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +472 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=48 align=8 + base size=48 base align=8 +QFontComboBox (0x0x7faf61e378f0) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7faf61e37d00) 0 + primary-for QFontComboBox (0x0x7faf61e378f0) + QWidget (0x0x7faf65ee3850) 0 + primary-for QComboBox (0x0x7faf61e37d00) + QObject (0x0x7faf5e3848a0) 0 + primary-for QWidget (0x0x7faf65ee3850) + QPaintDevice (0x0x7faf5e384900) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 464) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7faf5dce0d80) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=48 align=8 + base size=48 base align=8 +QFontDialog (0x0x7faf61e4c478) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7faf61e4c4e0) 0 + primary-for QFontDialog (0x0x7faf61e4c478) + QWidget (0x0x7faf65f22cb0) 0 + primary-for QDialog (0x0x7faf61e4c4e0) + QObject (0x0x7faf5dc67a20) 0 + primary-for QWidget (0x0x7faf65f22cb0) + QPaintDevice (0x0x7faf5dc67a80) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7faf5da52840) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7faf5da528a0) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 50 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QFormLayout::addItem +136 (int (*)(...))QFormLayout::expandingDirections +144 (int (*)(...))QFormLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QFormLayout::setGeometry +168 (int (*)(...))QFormLayout::itemAt +176 (int (*)(...))QFormLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QFormLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QFormLayout::sizeHint +232 (int (*)(...))QFormLayout::hasHeightForWidth +240 (int (*)(...))QFormLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI11QFormLayout) +264 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +272 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +280 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +288 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +312 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +344 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7faf61ea4d68) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7faf65f7bbd0) 0 + primary-for QFormLayout (0x0x7faf61ea4d68) + QObject (0x0x7faf5da32780) 0 + primary-for QLayout (0x0x7faf65f7bbd0) + QLayoutItem (0x0x7faf5da327e0) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 264) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7faf5d7a0360) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7faf61987340) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7faf5d7a0180) 0 + primary-for QGesture (0x0x7faf61987340) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7faf5d7bc4e0) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7faf619875b0) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7faf619879c0) 0 + primary-for QPanGesture (0x0x7faf619875b0) + QObject (0x0x7faf5d7bc1e0) 0 + primary-for QGesture (0x0x7faf619879c0) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7faf5d7edcc0) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7faf61987a28) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7faf61987d68) 0 + primary-for QPinchGesture (0x0x7faf61987a28) + QObject (0x0x7faf5d7ed780) 0 + primary-for QGesture (0x0x7faf61987d68) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7faf5d383120) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7faf619ae548) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7faf619aea28) 0 + primary-for QSwipeGesture (0x0x7faf619ae548) + QObject (0x0x7faf5d3830c0) 0 + primary-for QGesture (0x0x7faf619aea28) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7faf5d05e9c0) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7faf619aea90) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7faf619aedd0) 0 + primary-for QTapGesture (0x0x7faf619aea90) + QObject (0x0x7faf5d05e900) 0 + primary-for QGesture (0x0x7faf619aedd0) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7faf5d0fd3c0) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7faf619aee38) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7faf616e0068) 0 + primary-for QTapAndHoldGesture (0x0x7faf619aee38) + QObject (0x0x7faf5d07e4e0) 0 + primary-for QGesture (0x0x7faf616e0068) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent + +Class QGestureEvent + size=56 align=8 + base size=56 base align=8 +QGestureEvent (0x0x7faf616e00d0) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7faf5d11d060) 0 + primary-for QGestureEvent (0x0x7faf616e00d0) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7faf5d1b7d20) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7faf5ce4af00) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7faf5cf7a180) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7faf65c04620) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7faf5cf5dde0) 0 + primary-for QGraphicsObject (0x0x7faf65c04620) + QGraphicsItem (0x0x7faf5cf7a120) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7faf61742270) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7faf5cfca780) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7faf61742270) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7faf617ecdd0) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7faf617ece38) 0 + primary-for QGraphicsPathItem (0x0x7faf617ecdd0) + QGraphicsItem (0x0x7faf5cfeb360) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7faf617ece38) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7faf614b02d8) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7faf614b0340) 0 + primary-for QGraphicsRectItem (0x0x7faf614b02d8) + QGraphicsItem (0x0x7faf5cfeba20) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7faf614b0340) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7faf614b0820) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7faf614b0888) 0 + primary-for QGraphicsEllipseItem (0x0x7faf614b0820) + QGraphicsItem (0x0x7faf5ccd5600) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7faf614b0888) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7faf614b0a28) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7faf614b0a90) 0 + primary-for QGraphicsPolygonItem (0x0x7faf614b0a28) + QGraphicsItem (0x0x7faf5ccd5b40) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7faf614b0a90) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7faf614b0af8) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7faf5ccf3720) 0 + primary-for QGraphicsLineItem (0x0x7faf614b0af8) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7faf614cf820) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7faf5ccf3de0) 0 + primary-for QGraphicsPixmapItem (0x0x7faf614cf820) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7faf5cd865a0) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7faf614cf888) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7faf6587fee0) 0 + primary-for QGraphicsTextItem (0x0x7faf614cf888) + QObject (0x0x7faf5cd86180) 0 + primary-for QGraphicsObject (0x0x7faf6587fee0) + QGraphicsItem (0x0x7faf5cd86540) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7faf614e37b8) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7faf614e3820) 0 + primary-for QGraphicsSimpleTextItem (0x0x7faf614e37b8) + QGraphicsItem (0x0x7faf5cdc31e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7faf614e3820) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7faf614e38f0) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7faf5cde65a0) 0 + primary-for QGraphicsItemGroup (0x0x7faf614e38f0) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7faf5ca26ae0) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QGraphicsLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7faf614e3958) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7faf5cb16240) 0 + primary-for QGraphicsLayout (0x0x7faf614e3958) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7faf5cb344e0) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7faf614e3c98) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7faf5cb34480) 0 + primary-for QGraphicsAnchor (0x0x7faf614e3c98) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsAnchorLayout::sizeHint +64 (int (*)(...))QGraphicsAnchorLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsAnchorLayout::count +88 (int (*)(...))QGraphicsAnchorLayout::itemAt +96 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7faf614e3d00) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7faf614fa3a8) 0 + primary-for QGraphicsAnchorLayout (0x0x7faf614e3d00) + QGraphicsLayoutItem (0x0x7faf5cb53960) 0 + primary-for QGraphicsLayout (0x0x7faf614fa3a8) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7faf5cbf77e0) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7faf614fa410) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7faf5cbf7060) 0 + primary-for QGraphicsEffect (0x0x7faf614fa410) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7faf5c8738a0) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7faf61507bc8) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7faf61507d68) 0 + primary-for QGraphicsColorizeEffect (0x0x7faf61507bc8) + QObject (0x0x7faf5c873540) 0 + primary-for QGraphicsEffect (0x0x7faf61507d68) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7faf5c90dae0) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7faf61507f70) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7faf6151f000) 0 + primary-for QGraphicsBlurEffect (0x0x7faf61507f70) + QObject (0x0x7faf5c90d6c0) 0 + primary-for QGraphicsEffect (0x0x7faf6151f000) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7faf5c6c68a0) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7faf6153a068) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7faf6153a0d0) 0 + primary-for QGraphicsDropShadowEffect (0x0x7faf6153a068) + QObject (0x0x7faf5c6c67e0) 0 + primary-for QGraphicsEffect (0x0x7faf6153a0d0) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7faf5c7097e0) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7faf6153a478) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7faf6153a4e0) 0 + primary-for QGraphicsOpacityEffect (0x0x7faf6153a478) + QObject (0x0x7faf5c709720) 0 + primary-for QGraphicsEffect (0x0x7faf6153a4e0) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsGridLayout::sizeHint +64 (int (*)(...))QGraphicsGridLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsGridLayout::count +88 (int (*)(...))QGraphicsGridLayout::itemAt +96 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7faf6153a820) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7faf6153a888) 0 + primary-for QGraphicsGridLayout (0x0x7faf6153a820) + QGraphicsLayoutItem (0x0x7faf5c7274e0) 0 + primary-for QGraphicsLayout (0x0x7faf6153a888) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7faf5c727c00) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7faf615562d8) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7faf5c727780) 0 + primary-for QGraphicsItemAnimation (0x0x7faf615562d8) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLinearLayout::sizeHint +64 (int (*)(...))QGraphicsLinearLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsLinearLayout::count +88 (int (*)(...))QGraphicsLinearLayout::itemAt +96 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7faf61556340) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7faf6156e340) 0 + primary-for QGraphicsLinearLayout (0x0x7faf61556340) + QGraphicsLayoutItem (0x0x7faf5c743240) 0 + primary-for QGraphicsLayout (0x0x7faf6156e340) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7faf5c76b360) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 92 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7faf65775d90) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7faf65775e00) 0 + primary-for QGraphicsWidget (0x0x7faf65775d90) + QObject (0x0x7faf5c743f60) 0 + primary-for QGraphicsObject (0x0x7faf65775e00) + QGraphicsItem (0x0x7faf5c76b000) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7faf5c76b0c0) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7faf5c789a20) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 107 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7faf6156e7b8) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7faf6542d150) 0 + primary-for QGraphicsProxyWidget (0x0x7faf6156e7b8) + QGraphicsObject (0x0x7faf6542d1c0) 0 + primary-for QGraphicsWidget (0x0x7faf6542d150) + QObject (0x0x7faf5c7895a0) 0 + primary-for QGraphicsObject (0x0x7faf6542d1c0) + QGraphicsItem (0x0x7faf5c789900) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7faf5c789960) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7faf5c7c43c0) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7faf615a94e0) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7faf5c7c4300) 0 + primary-for QGraphicsScene (0x0x7faf615a94e0) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent + +Class QGraphicsSceneEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneEvent (0x0x7faf615a99c0) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7faf5c473f00) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615a99c0) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent + +Class QGraphicsSceneMouseEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMouseEvent (0x0x7faf615a9a28) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7faf615c2138) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7faf615a9a28) + QEvent (0x0x7faf5c4b1ba0) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615c2138) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent + +Class QGraphicsSceneWheelEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneWheelEvent (0x0x7faf615c21a0) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7faf615c2340) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7faf615c21a0) + QEvent (0x0x7faf5c4d20c0) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615c2340) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent + +Class QGraphicsSceneContextMenuEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7faf615c2548) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7faf615c27b8) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7faf615c2548) + QEvent (0x0x7faf5c4d23c0) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615c27b8) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent + +Class QGraphicsSceneHoverEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHoverEvent (0x0x7faf615c2bc8) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7faf615c2c30) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7faf615c2bc8) + QEvent (0x0x7faf5c4d27e0) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615c2c30) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent + +Class QGraphicsSceneHelpEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHelpEvent (0x0x7faf615c2f70) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7faf615d7000) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7faf615c2f70) + QEvent (0x0x7faf5c51b780) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615d7000) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent + +Class QGraphicsSceneDragDropEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneDragDropEvent (0x0x7faf615d7340) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7faf615d73a8) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7faf615d7340) + QEvent (0x0x7faf5c53d240) 0 + primary-for QGraphicsSceneEvent (0x0x7faf615d73a8) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent + +Class QGraphicsSceneResizeEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneResizeEvent (0x0x7faf613a9068) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7faf613a90d0) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7faf613a9068) + QEvent (0x0x7faf5c53de40) 0 + primary-for QGraphicsSceneEvent (0x0x7faf613a90d0) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent + +Class QGraphicsSceneMoveEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMoveEvent (0x0x7faf613a9340) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7faf613a93a8) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7faf613a9340) + QEvent (0x0x7faf5c559f60) 0 + primary-for QGraphicsSceneEvent (0x0x7faf613a93a8) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7faf5c5b5ba0) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7faf613a96e8) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7faf5c5b5b40) 0 + primary-for QGraphicsTransform (0x0x7faf613a96e8) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7faf5c21b4e0) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7faf613a9750) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7faf613d7a90) 0 + primary-for QGraphicsScale (0x0x7faf613a9750) + QObject (0x0x7faf5c21b480) 0 + primary-for QGraphicsTransform (0x0x7faf613d7a90) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7faf5c237900) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7faf613d7af8) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7faf613d7e38) 0 + primary-for QGraphicsRotation (0x0x7faf613d7af8) + QObject (0x0x7faf5c2378a0) 0 + primary-for QGraphicsTransform (0x0x7faf613d7e38) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7faf5c3a1900) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QScrollArea::scrollContentsBy +456 (int (*)(...))QScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QScrollArea) +480 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=48 align=8 + base size=48 base align=8 +QScrollArea (0x0x7faf613d7ea0) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7faf613f1ea0) 0 + primary-for QScrollArea (0x0x7faf613d7ea0) + QFrame (0x0x7faf613f1f08) 0 + primary-for QAbstractScrollArea (0x0x7faf613f1ea0) + QWidget (0x0x7faf65220f50) 0 + primary-for QFrame (0x0x7faf613f1f08) + QObject (0x0x7faf5c3a17e0) 0 + primary-for QWidget (0x0x7faf65220f50) + QPaintDevice (0x0x7faf5c3a1840) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 480) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7faf5c401f60) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QGraphicsView::setupViewport +440 (int (*)(...))QGraphicsView::viewportEvent +448 (int (*)(...))QGraphicsView::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QGraphicsView::drawBackground +472 (int (*)(...))QGraphicsView::drawForeground +480 (int (*)(...))QGraphicsView::drawItems +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QGraphicsView) +504 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=48 align=8 + base size=48 base align=8 +QGraphicsView (0x0x7faf6100c6e8) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7faf6100c750) 0 + primary-for QGraphicsView (0x0x7faf6100c6e8) + QFrame (0x0x7faf6100cbc8) 0 + primary-for QAbstractScrollArea (0x0x7faf6100c750) + QWidget (0x0x7faf652f20e0) 0 + primary-for QFrame (0x0x7faf6100cbc8) + QObject (0x0x7faf5c3e41e0) 0 + primary-for QWidget (0x0x7faf652f20e0) + QPaintDevice (0x0x7faf5c3e4240) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 504) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7faf5bc0fc00) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QGroupBox) +448 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=48 align=8 + base size=48 base align=8 +QGroupBox (0x0x7faf61027dd0) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7faf653c6bd0) 0 + primary-for QGroupBox (0x0x7faf61027dd0) + QObject (0x0x7faf5bc0f8a0) 0 + primary-for QWidget (0x0x7faf653c6bd0) + QPaintDevice (0x0x7faf5bc0f900) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 448) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7faf5bc4c060) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QHeaderView::viewportEvent +448 (int (*)(...))QHeaderView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QHeaderView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QHeaderView::visualRect +496 (int (*)(...))QHeaderView::scrollTo +504 (int (*)(...))QHeaderView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QHeaderView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QHeaderView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QHeaderView::dataChanged +568 (int (*)(...))QHeaderView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QHeaderView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QHeaderView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QHeaderView::moveCursor +688 (int (*)(...))QHeaderView::horizontalOffset +696 (int (*)(...))QHeaderView::verticalOffset +704 (int (*)(...))QHeaderView::isIndexHidden +712 (int (*)(...))QHeaderView::setSelection +720 (int (*)(...))QHeaderView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QHeaderView::paintSection +776 (int (*)(...))QHeaderView::sectionSizeFromContents +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI11QHeaderView) +800 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +808 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=48 align=8 + base size=48 base align=8 +QHeaderView (0x0x7faf61048820) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7faf61048888) 0 + primary-for QHeaderView (0x0x7faf61048820) + QAbstractScrollArea (0x0x7faf61048bc8) 0 + primary-for QAbstractItemView (0x0x7faf61048888) + QFrame (0x0x7faf61048c30) 0 + primary-for QAbstractScrollArea (0x0x7faf61048bc8) + QWidget (0x0x7faf64eab000) 0 + primary-for QFrame (0x0x7faf61048c30) + QObject (0x0x7faf5bc2ad80) 0 + primary-for QWidget (0x0x7faf64eab000) + QPaintDevice (0x0x7faf5bc2ade0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 800) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7faf5bd731e0) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QLineEdit) +448 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=48 align=8 + base size=48 base align=8 +QLineEdit (0x0x7faf60e42750) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7faf64eab8c0) 0 + primary-for QLineEdit (0x0x7faf60e42750) + QObject (0x0x7faf5bd4cc00) 0 + primary-for QWidget (0x0x7faf64eab8c0) + QPaintDevice (0x0x7faf5bd4cc60) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 448) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7faf5bdc1000) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=48 align=8 + base size=48 base align=8 +QInputDialog (0x0x7faf60e429c0) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7faf60e42a28) 0 + primary-for QInputDialog (0x0x7faf60e429c0) + QWidget (0x0x7faf64eabd20) 0 + primary-for QDialog (0x0x7faf60e42a28) + QObject (0x0x7faf5bd92d20) 0 + primary-for QWidget (0x0x7faf64eabd20) + QPaintDevice (0x0x7faf5bd92f60) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7faf5b8a2120) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7faf60e74680) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7faf60e746e8) 0 + primary-for QItemDelegate (0x0x7faf60e74680) + QObject (0x0x7faf5b8835a0) 0 + primary-for QAbstractItemDelegate (0x0x7faf60e746e8) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7faf5b909000) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7faf5b9942a0) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeyEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeyEventTransition::QPrivateSignal (0x0x7faf5b636ea0) 0 empty + +Vtable for QKeyEventTransition +QKeyEventTransition::_ZTV19QKeyEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QKeyEventTransition) +16 (int (*)(...))QKeyEventTransition::metaObject +24 (int (*)(...))QKeyEventTransition::qt_metacast +32 (int (*)(...))QKeyEventTransition::qt_metacall +40 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +48 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QKeyEventTransition::eventTest +120 (int (*)(...))QKeyEventTransition::onTransition + +Class QKeyEventTransition + size=16 align=8 + base size=16 base align=8 +QKeyEventTransition (0x0x7faf60e9b680) 0 + vptr=((& QKeyEventTransition::_ZTV19QKeyEventTransition) + 16) + QEventTransition (0x0x7faf60e9b6e8) 0 + primary-for QKeyEventTransition (0x0x7faf60e9b680) + QAbstractTransition (0x0x7faf60ebe0d0) 0 + primary-for QEventTransition (0x0x7faf60e9b6e8) + QObject (0x0x7faf5b6368a0) 0 + primary-for QAbstractTransition (0x0x7faf60ebe0d0) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7faf5b673180) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=48 align=8 + base size=48 base align=8 +QKeySequenceEdit (0x0x7faf60ebe138) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7faf64fc2150) 0 + primary-for QKeySequenceEdit (0x0x7faf60ebe138) + QObject (0x0x7faf5b653b40) 0 + primary-for QWidget (0x0x7faf64fc2150) + QPaintDevice (0x0x7faf5b673120) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7faf59ea2480) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QLabel) +448 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=48 align=8 + base size=48 base align=8 +QLabel (0x0x7faf60ed51a0) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7faf60ed5208) 0 + primary-for QLabel (0x0x7faf60ed51a0) + QWidget (0x0x7faf64fc22a0) 0 + primary-for QFrame (0x0x7faf60ed5208) + QObject (0x0x7faf59e71cc0) 0 + primary-for QWidget (0x0x7faf64fc22a0) + QPaintDevice (0x0x7faf59e71d20) 16 + vptr=((& QLabel::_ZTV6QLabel) + 448) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7faf59ea2f60) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QLCDNumber) +448 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=48 align=8 + base size=48 base align=8 +QLCDNumber (0x0x7faf60c5f1a0) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7faf60c5f208) 0 + primary-for QLCDNumber (0x0x7faf60c5f1a0) + QWidget (0x0x7faf64fc24d0) 0 + primary-for QFrame (0x0x7faf60c5f208) + QObject (0x0x7faf59ea2c00) 0 + primary-for QWidget (0x0x7faf64fc24d0) + QPaintDevice (0x0x7faf59ea2c60) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 448) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7faf59a661e0) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QListView) +784 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +792 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=48 align=8 + base size=48 base align=8 +QListView (0x0x7faf60c5f3a8) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7faf60c5faf8) 0 + primary-for QListView (0x0x7faf60c5f3a8) + QAbstractScrollArea (0x0x7faf60c5fb60) 0 + primary-for QAbstractItemView (0x0x7faf60c5faf8) + QFrame (0x0x7faf60c79000) 0 + primary-for QAbstractScrollArea (0x0x7faf60c5fb60) + QWidget (0x0x7faf64fc2b60) 0 + primary-for QFrame (0x0x7faf60c79000) + QObject (0x0x7faf59a31600) 0 + primary-for QWidget (0x0x7faf64fc2b60) + QPaintDevice (0x0x7faf59a31b40) 16 + vptr=((& QListView::_ZTV9QListView) + 784) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::setBackgroundColor +48 (int (*)(...))QListWidgetItem::data +56 (int (*)(...))QListWidgetItem::setData +64 (int (*)(...))QListWidgetItem::operator< +72 (int (*)(...))QListWidgetItem::read +80 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=48 align=8 + base size=44 base align=8 +QListWidgetItem (0x0x7faf59929f00) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7faf5959dae0) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QListWidget::setModel +472 (int (*)(...))QListWidget::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))QListWidget::mimeTypes +776 (int (*)(...))QListWidget::mimeData +784 (int (*)(...))QListWidget::dropMimeData +792 (int (*)(...))QListWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI11QListWidget) +816 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +824 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=48 align=8 + base size=48 base align=8 +QListWidget (0x0x7faf60c79410) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7faf60c79680) 0 + primary-for QListWidget (0x0x7faf60c79410) + QAbstractItemView (0x0x7faf60d4aaf8) 0 + primary-for QListView (0x0x7faf60c79680) + QAbstractScrollArea (0x0x7faf60d4ab60) 0 + primary-for QAbstractItemView (0x0x7faf60d4aaf8) + QFrame (0x0x7faf60dd0680) 0 + primary-for QAbstractScrollArea (0x0x7faf60d4ab60) + QWidget (0x0x7faf64d0f540) 0 + primary-for QFrame (0x0x7faf60dd0680) + QObject (0x0x7faf5959d180) 0 + primary-for QWidget (0x0x7faf64d0f540) + QPaintDevice (0x0x7faf5959da80) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 816) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7faf595fc2a0) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=48 align=8 + base size=48 base align=8 +QMainWindow (0x0x7faf60dd06e8) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7faf64d0f7e0) 0 + primary-for QMainWindow (0x0x7faf60dd06e8) + QObject (0x0x7faf595fc120) 0 + primary-for QWidget (0x0x7faf64d0f7e0) + QPaintDevice (0x0x7faf595fc1e0) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7faf59077660) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMdiArea::setupViewport +440 (int (*)(...))QMdiArea::viewportEvent +448 (int (*)(...))QMdiArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI8QMdiArea) +480 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=48 align=8 + base size=48 base align=8 +QMdiArea (0x0x7faf60a1e068) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7faf60a1e208) 0 + primary-for QMdiArea (0x0x7faf60a1e068) + QFrame (0x0x7faf60a1e270) 0 + primary-for QAbstractScrollArea (0x0x7faf60a1e208) + QWidget (0x0x7faf64dab380) 0 + primary-for QFrame (0x0x7faf60a1e270) + QObject (0x0x7faf590770c0) 0 + primary-for QWidget (0x0x7faf64dab380) + QPaintDevice (0x0x7faf59077600) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 480) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7faf59092ea0) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=48 align=8 + base size=48 base align=8 +QMdiSubWindow (0x0x7faf60a1e6e8) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7faf64dca230) 0 + primary-for QMdiSubWindow (0x0x7faf60a1e6e8) + QObject (0x0x7faf59092de0) 0 + primary-for QWidget (0x0x7faf64dca230) + QPaintDevice (0x0x7faf59092e40) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7faf5c4c47e0) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI5QMenu) +448 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=48 align=8 + base size=48 base align=8 +QMenu (0x0x7faf60a37000) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7faf64dcaee0) 0 + primary-for QMenu (0x0x7faf60a37000) + QObject (0x0x7faf5c4c4720) 0 + primary-for QWidget (0x0x7faf64dcaee0) + QPaintDevice (0x0x7faf5c4c4780) 16 + vptr=((& QMenu::_ZTV5QMenu) + 448) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7faf5c4c4c00) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QMenuBar) +448 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=48 align=8 + base size=48 base align=8 +QMenuBar (0x0x7faf60a37208) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7faf64dcaf50) 0 + primary-for QMenuBar (0x0x7faf60a37208) + QObject (0x0x7faf5c4c4b40) 0 + primary-for QWidget (0x0x7faf64dcaf50) + QPaintDevice (0x0x7faf5c4c4ba0) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 448) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7faf5c4c4f60) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=48 align=8 + base size=48 base align=8 +QMessageBox (0x0x7faf60a37478) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7faf60a37888) 0 + primary-for QMessageBox (0x0x7faf60a37478) + QWidget (0x0x7faf64a330e0) 0 + primary-for QDialog (0x0x7faf60a37888) + QObject (0x0x7faf5c4c4ea0) 0 + primary-for QWidget (0x0x7faf64a330e0) + QPaintDevice (0x0x7faf5c4c4f00) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QMouseEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMouseEventTransition::QPrivateSignal (0x0x7faf65d3dba0) 0 empty + +Vtable for QMouseEventTransition +QMouseEventTransition::_ZTV21QMouseEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QMouseEventTransition) +16 (int (*)(...))QMouseEventTransition::metaObject +24 (int (*)(...))QMouseEventTransition::qt_metacast +32 (int (*)(...))QMouseEventTransition::qt_metacall +40 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +48 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMouseEventTransition::eventTest +120 (int (*)(...))QMouseEventTransition::onTransition + +Class QMouseEventTransition + size=16 align=8 + base size=16 base align=8 +QMouseEventTransition (0x0x7faf60a37c98) 0 + vptr=((& QMouseEventTransition::_ZTV21QMouseEventTransition) + 16) + QEventTransition (0x0x7faf60a4e000) 0 + primary-for QMouseEventTransition (0x0x7faf60a37c98) + QAbstractTransition (0x0x7faf60a4e068) 0 + primary-for QEventTransition (0x0x7faf60a4e000) + QObject (0x0x7faf65d3db40) 0 + primary-for QAbstractTransition (0x0x7faf60a4e068) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7faf65d3de40) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=48 align=8 + base size=48 base align=8 +QOpenGLWidget (0x0x7faf60a4e750) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7faf64abb2a0) 0 + primary-for QOpenGLWidget (0x0x7faf60a4e750) + QObject (0x0x7faf65d3dd80) 0 + primary-for QWidget (0x0x7faf64abb2a0) + QPaintDevice (0x0x7faf65d3dde0) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7faf63979120) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7faf63979180) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextEdit::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI9QTextEdit) +520 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=48 align=8 + base size=48 base align=8 +QTextEdit (0x0x7faf60a4ef70) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7faf60adb000) 0 + primary-for QTextEdit (0x0x7faf60a4ef70) + QFrame (0x0x7faf60adb478) 0 + primary-for QAbstractScrollArea (0x0x7faf60adb000) + QWidget (0x0x7faf64abb540) 0 + primary-for QFrame (0x0x7faf60adb478) + QObject (0x0x7faf63979060) 0 + primary-for QWidget (0x0x7faf64abb540) + QPaintDevice (0x0x7faf639790c0) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 520) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7faf63979de0) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QPlainTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QPlainTextEdit::loadResource +472 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +480 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +488 (int (*)(...))QPlainTextEdit::insertFromMimeData +496 (int (*)(...))QPlainTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI14QPlainTextEdit) +520 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=48 align=8 + base size=48 base align=8 +QPlainTextEdit (0x0x7faf60adbf70) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7faf60af2618) 0 + primary-for QPlainTextEdit (0x0x7faf60adbf70) + QFrame (0x0x7faf60af2680) 0 + primary-for QAbstractScrollArea (0x0x7faf60af2618) + QWidget (0x0x7faf64b0c460) 0 + primary-for QFrame (0x0x7faf60af2680) + QObject (0x0x7faf63979d20) 0 + primary-for QWidget (0x0x7faf64b0c460) + QPaintDevice (0x0x7faf63979d80) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 520) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7faf61a483c0) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7faf60b481a0) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7faf60b48208) 0 + primary-for QPlainTextDocumentLayout (0x0x7faf60b481a0) + QObject (0x0x7faf61a48360) 0 + primary-for QAbstractTextDocumentLayout (0x0x7faf60b48208) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7faf61a48660) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI12QProgressBar) +456 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=48 align=8 + base size=48 base align=8 +QProgressBar (0x0x7faf60b483a8) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7faf64b0c770) 0 + primary-for QProgressBar (0x0x7faf60b483a8) + QObject (0x0x7faf61a485a0) 0 + primary-for QWidget (0x0x7faf64b0c770) + QPaintDevice (0x0x7faf61a48600) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 456) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7faf61a489c0) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=48 align=8 + base size=48 base align=8 +QProgressDialog (0x0x7faf60b485b0) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7faf60b48618) 0 + primary-for QProgressDialog (0x0x7faf60b485b0) + QWidget (0x0x7faf64b0c9a0) 0 + primary-for QDialog (0x0x7faf60b48618) + QObject (0x0x7faf61a48900) 0 + primary-for QWidget (0x0x7faf64b0c9a0) + QPaintDevice (0x0x7faf61a48960) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7faf61a48c00) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7faf60b5e4e0) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7faf60b5e548) 0 + primary-for QProxyStyle (0x0x7faf60b5e4e0) + QStyle (0x0x7faf60b88000) 0 + primary-for QCommonStyle (0x0x7faf60b5e548) + QObject (0x0x7faf61a48ba0) 0 + primary-for QStyle (0x0x7faf60b88000) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7faf61a48ea0) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI12QRadioButton) +472 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=48 align=8 + base size=48 base align=8 +QRadioButton (0x0x7faf60b88068) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7faf60b88478) 0 + primary-for QRadioButton (0x0x7faf60b88068) + QWidget (0x0x7faf64b0ccb0) 0 + primary-for QAbstractButton (0x0x7faf60b88478) + QObject (0x0x7faf61a48de0) 0 + primary-for QWidget (0x0x7faf64b0ccb0) + QPaintDevice (0x0x7faf61a48e40) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 472) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7faf608d9180) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QScrollBar) +456 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=48 align=8 + base size=48 base align=8 +QScrollBar (0x0x7faf60b884e0) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7faf60b887b8) 0 + primary-for QScrollBar (0x0x7faf60b884e0) + QWidget (0x0x7faf64b215b0) 0 + primary-for QAbstractSlider (0x0x7faf60b887b8) + QObject (0x0x7faf608d90c0) 0 + primary-for QWidget (0x0x7faf64b215b0) + QPaintDevice (0x0x7faf608d9120) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 456) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7faf608d9360) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7faf608d9840) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7faf60b88820) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7faf608d97e0) 0 + primary-for QScroller (0x0x7faf60b88820) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7faf608d9b40) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7faf60b889c0) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7faf608d9ae0) 0 + primary-for QShortcut (0x0x7faf60b889c0) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7faf608d9e40) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=48 align=8 + base size=48 base align=8 +QSizeGrip (0x0x7faf60b88af8) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7faf649992a0) 0 + primary-for QSizeGrip (0x0x7faf60b88af8) + QObject (0x0x7faf608d9d80) 0 + primary-for QWidget (0x0x7faf649992a0) + QPaintDevice (0x0x7faf608d9de0) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7faf5e9d1120) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QSpinBox::valueFromText +480 (int (*)(...))QSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI8QSpinBox) +504 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=48 align=8 + base size=48 base align=8 +QSpinBox (0x0x7faf60b88b60) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7faf60b88d00) 0 + primary-for QSpinBox (0x0x7faf60b88b60) + QWidget (0x0x7faf64999690) 0 + primary-for QAbstractSpinBox (0x0x7faf60b88d00) + QObject (0x0x7faf5e9d1060) 0 + primary-for QWidget (0x0x7faf64999690) + QPaintDevice (0x0x7faf5e9d10c0) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 504) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7faf5e9d13c0) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QDoubleSpinBox::valueFromText +480 (int (*)(...))QDoubleSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI14QDoubleSpinBox) +504 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=48 align=8 + base size=48 base align=8 +QDoubleSpinBox (0x0x7faf60b88d68) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7faf60b88dd0) 0 + primary-for QDoubleSpinBox (0x0x7faf60b88d68) + QWidget (0x0x7faf649997e0) 0 + primary-for QAbstractSpinBox (0x0x7faf60b88dd0) + QObject (0x0x7faf5e9d1300) 0 + primary-for QWidget (0x0x7faf649997e0) + QPaintDevice (0x0x7faf5e9d1360) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 504) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7faf5e9d1660) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=48 align=8 + base size=48 base align=8 +QSplashScreen (0x0x7faf60ba1af8) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7faf64999930) 0 + primary-for QSplashScreen (0x0x7faf60ba1af8) + QObject (0x0x7faf5e9d15a0) 0 + primary-for QWidget (0x0x7faf64999930) + QPaintDevice (0x0x7faf5e9d1600) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7faf5e9d1900) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplitter::createHandle +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QSplitter) +456 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=48 align=8 + base size=48 base align=8 +QSplitter (0x0x7faf60ba1b60) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7faf60bb8a28) 0 + primary-for QSplitter (0x0x7faf60ba1b60) + QWidget (0x0x7faf64999b60) 0 + primary-for QFrame (0x0x7faf60bb8a28) + QObject (0x0x7faf5e9d1840) 0 + primary-for QWidget (0x0x7faf64999b60) + QPaintDevice (0x0x7faf5e9d18a0) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 456) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7faf5e9d1ba0) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=48 align=8 + base size=48 base align=8 +QSplitterHandle (0x0x7faf60bb8a90) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7faf64999cb0) 0 + primary-for QSplitterHandle (0x0x7faf60bb8a90) + QObject (0x0x7faf5e9d1ae0) 0 + primary-for QWidget (0x0x7faf64999cb0) + QPaintDevice (0x0x7faf5e9d1b40) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7faf5e9d1e40) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 50 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QStackedLayout::addItem +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QStackedLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QStackedLayout::setGeometry +168 (int (*)(...))QStackedLayout::itemAt +176 (int (*)(...))QStackedLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QStackedLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QStackedLayout::sizeHint +232 (int (*)(...))QStackedLayout::hasHeightForWidth +240 (int (*)(...))QStackedLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI14QStackedLayout) +264 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +272 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +280 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +288 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +312 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +344 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7faf60bb8dd0) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7faf64999e00) 0 + primary-for QStackedLayout (0x0x7faf60bb8dd0) + QObject (0x0x7faf5e9d1d80) 0 + primary-for QLayout (0x0x7faf64999e00) + QLayoutItem (0x0x7faf5e9d1de0) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 264) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7faf5cf431e0) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QStackedWidget) +448 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=48 align=8 + base size=48 base align=8 +QStackedWidget (0x0x7faf60bb8e38) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7faf60be3958) 0 + primary-for QStackedWidget (0x0x7faf60bb8e38) + QWidget (0x0x7faf6462d070) 0 + primary-for QFrame (0x0x7faf60be3958) + QObject (0x0x7faf5cf43120) 0 + primary-for QWidget (0x0x7faf6462d070) + QPaintDevice (0x0x7faf5cf43180) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 448) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7faf5cf43480) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=48 align=8 + base size=48 base align=8 +QStatusBar (0x0x7faf60be39c0) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7faf6462d1c0) 0 + primary-for QStatusBar (0x0x7faf60be39c0) + QObject (0x0x7faf5cf433c0) 0 + primary-for QWidget (0x0x7faf6462d1c0) + QPaintDevice (0x0x7faf5cf43420) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7faf5cf436c0) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7faf60c052d8) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7faf60c05340) 0 + primary-for QStyledItemDelegate (0x0x7faf60c052d8) + QObject (0x0x7faf5cf43660) 0 + primary-for QAbstractItemDelegate (0x0x7faf60c05340) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7faf5cf438a0) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7faf60c054e0) 0 + QPainter (0x0x7faf5cf43900) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7faf5c2291e0) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7faf60c05618) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7faf5c229180) 0 + primary-for QStylePlugin (0x0x7faf60c05618) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7faf5c229360) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7faf60c05680) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7faf5c229300) 0 + primary-for QSystemTrayIcon (0x0x7faf60c05680) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7faf5c2296c0) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableView::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI10QTableView) +784 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +792 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=48 align=8 + base size=48 base align=8 +QTableView (0x0x7faf6081f000) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7faf6081f068) 0 + primary-for QTableView (0x0x7faf6081f000) + QAbstractScrollArea (0x0x7faf6081f138) 0 + primary-for QAbstractItemView (0x0x7faf6081f068) + QFrame (0x0x7faf6081f1a0) 0 + primary-for QAbstractScrollArea (0x0x7faf6081f138) + QWidget (0x0x7faf6462dd90) 0 + primary-for QFrame (0x0x7faf6081f1a0) + QObject (0x0x7faf5c229600) 0 + primary-for QWidget (0x0x7faf6462dd90) + QPaintDevice (0x0x7faf5c229660) 16 + vptr=((& QTableView::_ZTV10QTableView) + 784) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7faf5c229900) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=48 align=8 + base size=44 base align=8 +QTableWidgetItem (0x0x7faf5c229ba0) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7faf5c1dc900) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableWidget::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))QTableWidget::mimeTypes +776 (int (*)(...))QTableWidget::mimeData +784 (int (*)(...))QTableWidget::dropMimeData +792 (int (*)(...))QTableWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI12QTableWidget) +816 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +824 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=48 align=8 + base size=48 base align=8 +QTableWidget (0x0x7faf608360d0) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7faf60836138) 0 + primary-for QTableWidget (0x0x7faf608360d0) + QAbstractItemView (0x0x7faf608364e0) 0 + primary-for QTableView (0x0x7faf60836138) + QAbstractScrollArea (0x0x7faf60836548) 0 + primary-for QAbstractItemView (0x0x7faf608364e0) + QFrame (0x0x7faf60836bc8) 0 + primary-for QAbstractScrollArea (0x0x7faf60836548) + QWidget (0x0x7faf64658310) 0 + primary-for QFrame (0x0x7faf60836bc8) + QObject (0x0x7faf5c1dc840) 0 + primary-for QWidget (0x0x7faf64658310) + QPaintDevice (0x0x7faf5c1dc8a0) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 816) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7faf5c1dcd20) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 78 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextBrowser::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))QTextBrowser::setSource +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))-16 +552 (int (*)(...))(& _ZTI12QTextBrowser) +560 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=48 align=8 + base size=48 base align=8 +QTextBrowser (0x0x7faf60836c30) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7faf60836ea0) 0 + primary-for QTextBrowser (0x0x7faf60836c30) + QAbstractScrollArea (0x0x7faf60853b60) 0 + primary-for QTextEdit (0x0x7faf60836ea0) + QFrame (0x0x7faf60853bc8) 0 + primary-for QAbstractScrollArea (0x0x7faf60853b60) + QWidget (0x0x7faf646584d0) 0 + primary-for QFrame (0x0x7faf60853bc8) + QObject (0x0x7faf5c1dcc60) 0 + primary-for QWidget (0x0x7faf646584d0) + QPaintDevice (0x0x7faf5c1dccc0) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 560) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7faf5f0f4000) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QToolBar) +448 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=48 align=8 + base size=48 base align=8 +QToolBar (0x0x7faf60853f08) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7faf64658620) 0 + primary-for QToolBar (0x0x7faf60853f08) + QObject (0x0x7faf5c1dcf00) 0 + primary-for QWidget (0x0x7faf64658620) + QPaintDevice (0x0x7faf5c1dcf60) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 448) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7faf5f0f4960) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBox::itemInserted +440 (int (*)(...))QToolBox::itemRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI8QToolBox) +464 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=48 align=8 + base size=48 base align=8 +QToolBox (0x0x7faf60948a28) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7faf60948a90) 0 + primary-for QToolBox (0x0x7faf60948a28) + QWidget (0x0x7faf64658d20) 0 + primary-for QFrame (0x0x7faf60948a90) + QObject (0x0x7faf5f0f48a0) 0 + primary-for QWidget (0x0x7faf64658d20) + QPaintDevice (0x0x7faf5f0f4900) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 464) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7faf5f0f4d20) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QToolButton) +472 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=48 align=8 + base size=48 base align=8 +QToolButton (0x0x7faf60948d68) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7faf60948dd0) 0 + primary-for QToolButton (0x0x7faf60948d68) + QWidget (0x0x7faf64658e70) 0 + primary-for QAbstractButton (0x0x7faf60948dd0) + QObject (0x0x7faf5f0f4c60) 0 + primary-for QWidget (0x0x7faf64658e70) + QPaintDevice (0x0x7faf5f0f4cc0) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 472) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7faf5c1c5000) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7faf5c1c5180) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeView::setModel +472 (int (*)(...))QTreeView::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QTreeView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QTreeView) +800 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +808 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=48 align=8 + base size=48 base align=8 +QTreeView (0x0x7faf6097c6e8) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7faf6097c750) 0 + primary-for QTreeView (0x0x7faf6097c6e8) + QAbstractScrollArea (0x0x7faf609a3618) 0 + primary-for QAbstractItemView (0x0x7faf6097c750) + QFrame (0x0x7faf609a3680) 0 + primary-for QAbstractScrollArea (0x0x7faf609a3618) + QWidget (0x0x7faf6468f460) 0 + primary-for QFrame (0x0x7faf609a3680) + QObject (0x0x7faf5c1c50c0) 0 + primary-for QWidget (0x0x7faf6468f460) + QPaintDevice (0x0x7faf5c1c5120) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 800) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7faf5c1c53c0) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=64 align=8 + base size=60 base align=8 +QTreeWidgetItem (0x0x7faf5c1c5e40) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7faf5a1cee40) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeWidget::setModel +472 (int (*)(...))QTreeWidget::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QTreeView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))QTreeWidget::mimeTypes +792 (int (*)(...))QTreeWidget::mimeData +800 (int (*)(...))QTreeWidget::dropMimeData +808 (int (*)(...))QTreeWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QTreeWidget) +832 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +840 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=48 align=8 + base size=48 base align=8 +QTreeWidget (0x0x7faf6060aea0) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7faf60620b60) 0 + primary-for QTreeWidget (0x0x7faf6060aea0) + QAbstractItemView (0x0x7faf60620bc8) 0 + primary-for QTreeView (0x0x7faf60620b60) + QAbstractScrollArea (0x0x7faf606593a8) 0 + primary-for QAbstractItemView (0x0x7faf60620bc8) + QFrame (0x0x7faf60659410) 0 + primary-for QAbstractScrollArea (0x0x7faf606593a8) + QWidget (0x0x7faf647250e0) 0 + primary-for QFrame (0x0x7faf60659410) + QObject (0x0x7faf5a1ced80) 0 + primary-for QWidget (0x0x7faf647250e0) + QPaintDevice (0x0x7faf5a1cede0) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 832) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7faf59d462a0) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7faf60659888) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7faf59d46240) 0 + primary-for QUndoGroup (0x0x7faf60659888) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7faf59d46480) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7faf59d46540) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7faf606598f0) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7faf59d464e0) 0 + primary-for QUndoStack (0x0x7faf606598f0) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7faf59d467e0) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QUndoView) +784 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +792 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=48 align=8 + base size=48 base align=8 +QUndoView (0x0x7faf6066f958) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7faf6066f9c0) 0 + primary-for QUndoView (0x0x7faf6066f958) + QAbstractItemView (0x0x7faf606d4000) 0 + primary-for QListView (0x0x7faf6066f9c0) + QAbstractScrollArea (0x0x7faf606d4068) 0 + primary-for QAbstractItemView (0x0x7faf606d4000) + QFrame (0x0x7faf606d46e8) 0 + primary-for QAbstractScrollArea (0x0x7faf606d4068) + QWidget (0x0x7faf64725460) 0 + primary-for QFrame (0x0x7faf606d46e8) + QObject (0x0x7faf59d46720) 0 + primary-for QWidget (0x0x7faf64725460) + QPaintDevice (0x0x7faf59d46780) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 784) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7faf59d469c0) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7faf59d46a80) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7faf606d4750) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7faf606d48f0) 0 + primary-for QWidgetAction (0x0x7faf606d4750) + QObject (0x0x7faf59d46a20) 0 + primary-for QAction (0x0x7faf606d48f0) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7faf59d46d20) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=48 align=8 + base size=48 base align=8 +QWizard (0x0x7faf606d4dd0) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7faf606d4e38) 0 + primary-for QWizard (0x0x7faf606d4dd0) + QWidget (0x0x7faf64725700) 0 + primary-for QDialog (0x0x7faf606d4e38) + QObject (0x0x7faf59d46c60) 0 + primary-for QWidget (0x0x7faf64725700) + QPaintDevice (0x0x7faf59d46cc0) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7faf6a0f2900) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=48 align=8 + base size=48 base align=8 +QWizardPage (0x0x7faf60732680) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7faf644fb8c0) 0 + primary-for QWizardPage (0x0x7faf60732680) + QObject (0x0x7faf6a0f2840) 0 + primary-for QWidget (0x0x7faf644fb8c0) + QPaintDevice (0x0x7faf6a0f28a0) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class QAbstractPrintDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractPrintDialog::QPrivateSignal (0x0x7faf6a0f2ba0) 0 empty + +Vtable for QAbstractPrintDialog +QAbstractPrintDialog::_ZTV20QAbstractPrintDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAbstractPrintDialog) +16 (int (*)(...))QAbstractPrintDialog::metaObject +24 (int (*)(...))QAbstractPrintDialog::qt_metacast +32 (int (*)(...))QAbstractPrintDialog::qt_metacall +40 0 +48 0 +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))__cxa_pure_virtual +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI20QAbstractPrintDialog) +488 0 +496 0 +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractPrintDialog + size=48 align=8 + base size=48 base align=8 +QAbstractPrintDialog (0x0x7faf607326e8) 0 + vptr=((& QAbstractPrintDialog::_ZTV20QAbstractPrintDialog) + 16) + QDialog (0x0x7faf60732a28) 0 + primary-for QAbstractPrintDialog (0x0x7faf607326e8) + QWidget (0x0x7faf644fb930) 0 + primary-for QDialog (0x0x7faf60732a28) + QObject (0x0x7faf6a0f2ae0) 0 + primary-for QWidget (0x0x7faf644fb930) + QPaintDevice (0x0x7faf6a0f2b40) 16 + vptr=((& QAbstractPrintDialog::_ZTV20QAbstractPrintDialog) + 488) + +Class QPageSetupDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPageSetupDialog::QPrivateSignal (0x0x7faf6364f6c0) 0 empty + +Vtable for QPageSetupDialog +QPageSetupDialog::_ZTV16QPageSetupDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QPageSetupDialog) +16 (int (*)(...))QPageSetupDialog::metaObject +24 (int (*)(...))QPageSetupDialog::qt_metacast +32 (int (*)(...))QPageSetupDialog::qt_metacall +40 (int (*)(...))QPageSetupDialog::~QPageSetupDialog +48 (int (*)(...))QPageSetupDialog::~QPageSetupDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QPageSetupDialog::exec +448 (int (*)(...))QPageSetupDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI16QPageSetupDialog) +488 (int (*)(...))QPageSetupDialog::_ZThn16_N16QPageSetupDialogD1Ev +496 (int (*)(...))QPageSetupDialog::_ZThn16_N16QPageSetupDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPageSetupDialog + size=48 align=8 + base size=48 base align=8 +QPageSetupDialog (0x0x7faf60781208) 0 + vptr=((& QPageSetupDialog::_ZTV16QPageSetupDialog) + 16) + QDialog (0x0x7faf60781b60) 0 + primary-for QPageSetupDialog (0x0x7faf60781208) + QWidget (0x0x7faf6405c7e0) 0 + primary-for QDialog (0x0x7faf60781b60) + QObject (0x0x7faf6364f600) 0 + primary-for QWidget (0x0x7faf6405c7e0) + QPaintDevice (0x0x7faf6364f660) 16 + vptr=((& QPageSetupDialog::_ZTV16QPageSetupDialog) + 488) + +Class QPrintDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPrintDialog::QPrivateSignal (0x0x7faf6364f960) 0 empty + +Vtable for QPrintDialog +QPrintDialog::_ZTV12QPrintDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPrintDialog) +16 (int (*)(...))QPrintDialog::metaObject +24 (int (*)(...))QPrintDialog::qt_metacast +32 (int (*)(...))QPrintDialog::qt_metacall +40 (int (*)(...))QPrintDialog::~QPrintDialog +48 (int (*)(...))QPrintDialog::~QPrintDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QPrintDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QPrintDialog::exec +448 (int (*)(...))QPrintDialog::done +456 (int (*)(...))QPrintDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QPrintDialog) +488 (int (*)(...))QPrintDialog::_ZThn16_N12QPrintDialogD1Ev +496 (int (*)(...))QPrintDialog::_ZThn16_N12QPrintDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPrintDialog + size=48 align=8 + base size=48 base align=8 +QPrintDialog (0x0x7faf60781bc8) 0 + vptr=((& QPrintDialog::_ZTV12QPrintDialog) + 16) + QAbstractPrintDialog (0x0x7faf60798dd0) 0 + primary-for QPrintDialog (0x0x7faf60781bc8) + QDialog (0x0x7faf60798e38) 0 + primary-for QAbstractPrintDialog (0x0x7faf60798dd0) + QWidget (0x0x7faf6405c850) 0 + primary-for QDialog (0x0x7faf60798e38) + QObject (0x0x7faf6364f8a0) 0 + primary-for QWidget (0x0x7faf6405c850) + QPaintDevice (0x0x7faf6364f900) 16 + vptr=((& QPrintDialog::_ZTV12QPrintDialog) + 488) + +Vtable for QPrinter +QPrinter::_ZTV8QPrinter: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPrinter) +16 (int (*)(...))QPrinter::~QPrinter +24 (int (*)(...))QPrinter::~QPrinter +32 (int (*)(...))QPrinter::devType +40 (int (*)(...))QPrinter::paintEngine +48 (int (*)(...))QPrinter::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPrinter::newPage +88 (int (*)(...))QPrinter::setPageSize +96 (int (*)(...))QPrinter::setPageSizeMM +104 (int (*)(...))QPrinter::setMargins + +Class QPrinter + size=40 align=8 + base size=40 base align=8 +QPrinter (0x0x7faf60454618) 0 + vptr=((& QPrinter::_ZTV8QPrinter) + 16) + QPagedPaintDevice (0x0x7faf60454680) 0 + primary-for QPrinter (0x0x7faf60454618) + QPaintDevice (0x0x7faf6364fb40) 0 + primary-for QPagedPaintDevice (0x0x7faf60454680) + +Vtable for QPrintEngine +QPrintEngine::_ZTV12QPrintEngine: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPrintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual + +Class QPrintEngine + size=8 align=8 + base size=8 base align=8 +QPrintEngine (0x0x7faf6364ff00) 0 nearly-empty + vptr=((& QPrintEngine::_ZTV12QPrintEngine) + 16) + +Class QPrinterInfo + size=8 align=8 + base size=8 base align=8 +QPrinterInfo (0x0x7faf616ad180) 0 + +Class QPrintPreviewDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPrintPreviewDialog::QPrivateSignal (0x0x7faf616ad3c0) 0 empty + +Vtable for QPrintPreviewDialog +QPrintPreviewDialog::_ZTV19QPrintPreviewDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QPrintPreviewDialog) +16 (int (*)(...))QPrintPreviewDialog::metaObject +24 (int (*)(...))QPrintPreviewDialog::qt_metacast +32 (int (*)(...))QPrintPreviewDialog::qt_metacall +40 (int (*)(...))QPrintPreviewDialog::~QPrintPreviewDialog +48 (int (*)(...))QPrintPreviewDialog::~QPrintPreviewDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QPrintPreviewDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QPrintPreviewDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI19QPrintPreviewDialog) +488 (int (*)(...))QPrintPreviewDialog::_ZThn16_N19QPrintPreviewDialogD1Ev +496 (int (*)(...))QPrintPreviewDialog::_ZThn16_N19QPrintPreviewDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPrintPreviewDialog + size=48 align=8 + base size=48 base align=8 +QPrintPreviewDialog (0x0x7faf60454af8) 0 + vptr=((& QPrintPreviewDialog::_ZTV19QPrintPreviewDialog) + 16) + QDialog (0x0x7faf60454b60) 0 + primary-for QPrintPreviewDialog (0x0x7faf60454af8) + QWidget (0x0x7faf63e50930) 0 + primary-for QDialog (0x0x7faf60454b60) + QObject (0x0x7faf616ad300) 0 + primary-for QWidget (0x0x7faf63e50930) + QPaintDevice (0x0x7faf616ad360) 16 + vptr=((& QPrintPreviewDialog::_ZTV19QPrintPreviewDialog) + 488) + +Class QPrintPreviewWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPrintPreviewWidget::QPrivateSignal (0x0x7faf616ad660) 0 empty + +Vtable for QPrintPreviewWidget +QPrintPreviewWidget::_ZTV19QPrintPreviewWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QPrintPreviewWidget) +16 (int (*)(...))QPrintPreviewWidget::metaObject +24 (int (*)(...))QPrintPreviewWidget::qt_metacast +32 (int (*)(...))QPrintPreviewWidget::qt_metacall +40 (int (*)(...))QPrintPreviewWidget::~QPrintPreviewWidget +48 (int (*)(...))QPrintPreviewWidget::~QPrintPreviewWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QPrintPreviewWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI19QPrintPreviewWidget) +448 (int (*)(...))QPrintPreviewWidget::_ZThn16_N19QPrintPreviewWidgetD1Ev +456 (int (*)(...))QPrintPreviewWidget::_ZThn16_N19QPrintPreviewWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPrintPreviewWidget + size=48 align=8 + base size=48 base align=8 +QPrintPreviewWidget (0x0x7faf6046e5b0) 0 + vptr=((& QPrintPreviewWidget::_ZTV19QPrintPreviewWidget) + 16) + QWidget (0x0x7faf63e50d90) 0 + primary-for QPrintPreviewWidget (0x0x7faf6046e5b0) + QObject (0x0x7faf616ad5a0) 0 + primary-for QWidget (0x0x7faf63e50d90) + QPaintDevice (0x0x7faf616ad600) 16 + vptr=((& QPrintPreviewWidget::_ZTV19QPrintPreviewWidget) + 448) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf60917ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf60917e40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5f10d060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5f10d3c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5f10d5a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5f10d900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5f10dae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5f10de40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5dc06060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5dc063c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5dc065a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5dc06900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5dc06ae0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5dc06e40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5d8ef060) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5d8ef3c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5d9078a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5d907c00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5d907d80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5ce88120) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5ce882a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5ce88600) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5ce88780) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5ce88ae0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5ce88c60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5cc7b000) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5cc7b180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5cc7b4e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5cc7b660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5cc7b9c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7faf5cc7bb40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7faf5cc7bea0) 0 empty + diff --git a/tests/auto/bic/data/QtSql.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtSql.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..2798ef1cac --- /dev/null +++ b/tests/auto/bic/data/QtSql.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,5404 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f7c583aad20) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f7c5708c4e0) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f7c5708c720) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f7c5708c960) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f7c5708cba0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f7c5708cd20) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f7c570c7120) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f7c570f8240) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f7c5714d900) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f7c5714d9c0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f7c5714dd80) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f7c5714dde0) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f7c5714de40) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f7c5714dea0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f7c5714df00) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f7c5717b000) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f7c5717b0c0) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f7c5717b180) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f7c5717b240) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f7c5717b5a0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f7c5717b900) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f7c5717b960) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f7c5717bf00) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f7c56dcc5a0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f7c571ab4e0) 0 empty + std::__nonesuch (0x0x7f7c56dcca80) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f7c56e4a420) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f7c56e4a480) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f7c56ea6180) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f7c56ea61e0) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f7c571ab9c0) 0 empty + std::input_iterator_tag (0x0x7f7c56ea6240) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f7c571aba28) 0 empty + std::forward_iterator_tag (0x0x7f7c571aba90) 0 empty + std::input_iterator_tag (0x0x7f7c56ea62a0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f7c571abaf8) 0 empty + std::bidirectional_iterator_tag (0x0x7f7c571abb60) 0 empty + std::forward_iterator_tag (0x0x7f7c571abbc8) 0 empty + std::input_iterator_tag (0x0x7f7c56ea6300) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f7c56f2cde0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f7c56f2cf00) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f7c56f5b240) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f7c56f5b540) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f7c56f5b660) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f7c56be3960) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f7c56be3c60) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f7c56be3cc0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f7c56be3d80) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f7c56be3de0) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f7c56be3e40) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f7c56be3ea0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f7c56c2c180) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f7c56c2c420) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f7c56c2c480) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f7c56cdd240) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f7c571abf08) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f7c56cdd420) 0 nearly-empty + primary-for std::bad_exception (0x0x7f7c571abf08) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f7c56cdd600) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f7c571abf70) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f7c56cdd9c0) 0 nearly-empty + primary-for std::bad_cast (0x0x7f7c571abf70) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f7c56d06000) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f7c56cddba0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f7c56d06000) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f7c56cddd80) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f7c56d18360) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f7c56d06068) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f7c56d18a20) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f7c56d06068) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f7c56d060d0) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f7c56d06138) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f7c56d060d0) + std::exception (0x0x7f7c56d18c00) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f7c56d06138) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f7c56d18de0) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f7c56d4a000) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f7c569c14e0) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f7c56b75f60) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f7c56ba5060) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f7c566379c0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f7c56637ae0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f7c56637e40) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f7c566773c0) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f7c566b1b40) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f7c5674af60) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f7c566f0f70) 0 + std::__atomic_flag_base (0x0x7f7c56766000) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f7c5644b6e8) 0 + QAtomicInteger (0x0x7f7c5644b750) 0 + QBasicAtomicInteger (0x0x7f7c56285f60) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f7c55eb62a0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f7c55ef4840) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f7c55ef4f60) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f7c55f142d8) 0 + QGenericArgument (0x0x7f7c55f3a240) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f7c55f3a660) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f7c55f3aa80) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f7c55beb5a0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f7c55beb840) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f7c55cb6660) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f7c55cb69c0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f7c55d14cc0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f7c55a0d540) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f7c55a0d600) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f7c55abc720) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f7c55abc7e0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f7c55abc840) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f7c55abc8a0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f7c55abc900) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f7c55abca20) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f7c55abca80) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f7c557fea20) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f7c557fea80) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f7c555b9ae0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f7c555b9c60) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f7c5572cde0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f7c557791e0) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f7c55779480) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f7c55779660) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f7c553c4660) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f7c553ba270) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f7c553c4720) 0 nearly-empty + primary-for std::logic_error (0x0x7f7c553ba270) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f7c553ba2d8) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f7c553ba340) 0 + primary-for std::domain_error (0x0x7f7c553ba2d8) + std::exception (0x0x7f7c553c4780) 0 nearly-empty + primary-for std::logic_error (0x0x7f7c553ba340) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f7c553ba3a8) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f7c553ba410) 0 + primary-for std::invalid_argument (0x0x7f7c553ba3a8) + std::exception (0x0x7f7c553c47e0) 0 nearly-empty + primary-for std::logic_error (0x0x7f7c553ba410) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f7c553ba478) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f7c553ba4e0) 0 + primary-for std::length_error (0x0x7f7c553ba478) + std::exception (0x0x7f7c553c4840) 0 nearly-empty + primary-for std::logic_error (0x0x7f7c553ba4e0) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f7c553ba548) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f7c553ba5b0) 0 + primary-for std::out_of_range (0x0x7f7c553ba548) + std::exception (0x0x7f7c553c48a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f7c553ba5b0) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f7c553ba618) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f7c553c4900) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7c553ba618) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f7c553ba680) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f7c553ba6e8) 0 + primary-for std::range_error (0x0x7f7c553ba680) + std::exception (0x0x7f7c553c4960) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7c553ba6e8) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f7c553ba750) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f7c553ba7b8) 0 + primary-for std::overflow_error (0x0x7f7c553ba750) + std::exception (0x0x7f7c553c49c0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7c553ba7b8) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f7c553ba820) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f7c553ba888) 0 + primary-for std::underflow_error (0x0x7f7c553ba820) + std::exception (0x0x7f7c553c4a20) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7c553ba888) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f7c553c4ba0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f7c553c4f00) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f7c55424780) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f7c553bac98) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f7c553bad00) 0 + primary-for std::system_error (0x0x7f7c553bac98) + std::exception (0x0x7f7c5544b360) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7c553bad00) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f7c553baf70) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f7c55498000) 0 + primary-for std::ios_base::failure (0x0x7f7c553baf70) + std::runtime_error (0x0x7f7c55498068) 0 + primary-for std::system_error (0x0x7f7c55498000) + std::exception (0x0x7f7c5547f900) 0 nearly-empty + primary-for std::runtime_error (0x0x7f7c55498068) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f7c5547f960) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f7c5547f9c0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f7c5547fa20) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f7c5547f8a0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f7c55571360) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f7c5522e540) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f7c54dd6750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f7c54dd6820 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f7c54e154e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f7c54e155b0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f7c54e16ea0) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f7c54e16f00) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f7c54f83300) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f7c54c0c180) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f7c54c0c600) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f7c54ce33c0) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f7c54d61de0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f7c54d61d80) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f7c54b30f60) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f7c548d07e0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f7c546e6ae0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f7c546e6ba0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f7c543bb0c0) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f7c549738f0) 0 + std::iterator (0x0x7f7c543bb7e0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f7c54973a28) 0 + std::_Bit_iterator_base (0x0x7f7c54973a90) 0 + std::iterator (0x0x7f7c543bbe40) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f7c54973af8) 0 + std::_Bit_iterator_base (0x0x7f7c54973b60) 0 + std::iterator (0x0x7f7c543ed660) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f7c541a2cc0) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f7c542a6a80) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f7c542a6ae0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f7c544905b0) 0 empty + QListData::NotIndirectLayout (0x0x7f7c542a6b40) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f7c542961c0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f7c542a6ba0) 0 empty + QListData::NotIndirectLayout (0x0x7f7c542a6c00) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f7c54490618) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f7c542a6c60) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f7c542a6cc0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f7c542a6a20) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f7c53f91ea0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f7c54090540) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f7c540904e0) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f7c54092340) 0 + QList (0x0x7f7c540923a8) 0 + QListSpecialMethods (0x0x7f7c54090780) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f7c54158300) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f7c53ddd420) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f7c53ddd780) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f7c53bc0d20) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f7c53bc0d80) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f7c53bc0f00) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f7c53be3000) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f7c53f586e8) 0 + std::__uses_alloc_base (0x0x7f7c53bc0f60) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f7c53d4b360) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f7c539667e0) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f7c53966b40) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f7c5398e0c0) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f7c5398e600) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f7c539f17e0) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f7c539f1ea0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f7c53a1ad20) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f7c53702420) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f7c5375b960) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f7c5359b780) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f7c532cf240) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f7c532cf2a0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f7c532cf480) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f7c532cf420) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f7c533952a0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f7c53395420) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f7c53395cc0) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f7c5336f8f0) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f7c53395c60) 0 + primary-for QAbstractAnimation (0x0x7f7c5336f8f0) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f7c533d00c0) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f7c5336f958) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f7c533d0060) 0 + primary-for QAnimationDriver (0x0x7f7c5336f958) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f7c533d0300) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f7c5336f9c0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f7c533d02a0) 0 + primary-for QEventLoop (0x0x7f7c5336f9c0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f7c533d0ba0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f7c533d0c60) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f7c533d0cc0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f7c5336faf8) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f7c533d0c00) 0 + primary-for QAbstractEventDispatcher (0x0x7f7c5336faf8) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f7c5309e478) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f7c530b0360) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f7c5309e478) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f7c530b0420) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f7c530b0480) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f7c530b0780) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f7c52ea6720) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f7c52edf3c0) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f7c52facd20) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f7c52faccc0) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f7c52fcf000) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f7c52cd45a0) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f7c52cd4660) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f7c52cd4600) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f7c52cd46c0) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f7c52cd4540) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f7c52e2d960) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f7c52a8f000) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f7c52e74f60) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f7c52a8f120) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f7c52a8f0c0) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f7c52b582a0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f7c52baeea0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f7c52c7ecc0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f7c52893068) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f7c52c7ec60) 0 + primary-for QAbstractItemModel (0x0x7f7c52893068) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f7c5295b0c0) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f7c52893680) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f7c528936e8) 0 + primary-for QAbstractTableModel (0x0x7f7c52893680) + QObject (0x0x7f7c5295b060) 0 + primary-for QAbstractItemModel (0x0x7f7c528936e8) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f7c5295b240) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f7c52893750) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f7c528937b8) 0 + primary-for QAbstractListModel (0x0x7f7c52893750) + QObject (0x0x7f7c5295b1e0) 0 + primary-for QAbstractItemModel (0x0x7f7c528937b8) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f7c5295b960) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f7c5295ba20) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f7c52893888) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f7c528938f0) 0 + primary-for QAbstractProxyModel (0x0x7f7c52893888) + QObject (0x0x7f7c5295b9c0) 0 + primary-for QAbstractItemModel (0x0x7f7c528938f0) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f7c5295bc60) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f7c52893958) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7f7c5295bc00) 0 + primary-for QAbstractState (0x0x7f7c52893958) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f7c5295bea0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f7c528939c0) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7f7c5295be40) 0 + primary-for QAbstractTransition (0x0x7f7c528939c0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f7c529f51e0) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f7c52893a28) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f7c52893a90) 0 + primary-for QAnimationGroup (0x0x7f7c52893a28) + QObject (0x0x7f7c529f5180) 0 + primary-for QAbstractAnimation (0x0x7f7c52893a90) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f7c52a47540) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f7c5268a900) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f7c526d3d80) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f7c52749180) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f7c5274c000) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f7c52749120) 0 + primary-for QIODevice (0x0x7f7c5274c000) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f7c52749ae0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f7c5274c138) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f7c5274c1a0) 0 + primary-for QBuffer (0x0x7f7c5274c138) + QObject (0x0x7f7c52749a80) 0 + primary-for QIODevice (0x0x7f7c5274c1a0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f7c52749d80) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f7c52749d20) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f7c52749f00) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f7c52749ea0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f7c527b1de0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f7c5280cd80) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f7c52877660) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f7c524e3300) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f7c524e3360) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f7c524e32a0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f7c525b3a20) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f7c522da000) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f7c522da8a0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f7c523ac3c0) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f7c52402060) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f7c524021e0) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f7c52086de0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f7c52086d80) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f7c52231e40) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f7c52231f00) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f7c51edb240) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f7c51edb9c0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f7c51f888a0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f7c51ff5660) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f7c520690c0) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f7c51dd0060) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7f7c51e1fba0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f7c51e1fc60) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f7c51891c60) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f7c519296c0) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f7c51929720) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f7c51929660) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f7c51a3f120) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f7c51a3f180) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f7c51a3f0c0) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f7c518388a0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f7c514f1840) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f7c515245a0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f7c515aa6c0) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f7c515aa8a0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f7c512a0e40) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f7c5131e5a0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f7c5130d340) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f7c5131e960) 0 + primary-for QTimerEvent (0x0x7f7c5130d340) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f7c5130d3a8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f7c5131ea20) 0 + primary-for QChildEvent (0x0x7f7c5130d3a8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f7c5130d8f0) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f7c513650c0) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f7c5130d8f0) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f7c5130d958) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f7c51365180) 0 + primary-for QDeferredDeleteEvent (0x0x7f7c5130d958) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f7c513652a0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f7c5130d9c0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f7c51365240) 0 + primary-for QCoreApplication (0x0x7f7c5130d9c0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f7c513654e0) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f7c51365660) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f7c5130da28) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f7c5130da90) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f7c5130da28) + QObject (0x0x7f7c51365600) 0 + primary-for QAbstractItemModel (0x0x7f7c5130da90) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f7c51365840) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f7c51365960) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f7c51365ae0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f7c51424240) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f7c51424960) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f7c5116a6c0) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f7c5115dc98) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f7c5115dd00) 0 + primary-for QFileDevice (0x0x7f7c5115dc98) + QObject (0x0x7f7c5116a660) 0 + primary-for QIODevice (0x0x7f7c5115dd00) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f7c511bf000) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f7c5115de38) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f7c5115dea0) 0 + primary-for QFile (0x0x7f7c5115de38) + QIODevice (0x0x7f7c5115df08) 0 + primary-for QFileDevice (0x0x7f7c5115dea0) + QObject (0x0x7f7c5116af60) 0 + primary-for QIODevice (0x0x7f7c5115df08) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f7c511bf660) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f7c5123aa20) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f7c50ea7d80) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f7c50ef7540) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f7c50fff660) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f7c50fc91a0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7f7c50fc9208) 0 + primary-for QEventTransition (0x0x7f7c50fc91a0) + QObject (0x0x7f7c50fff600) 0 + primary-for QAbstractTransition (0x0x7f7c50fc9208) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f7c50fc9270) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f7c50fff840) 0 nearly-empty + primary-for QException (0x0x7f7c50fc9270) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f7c50fc92d8) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f7c50fc9340) 0 nearly-empty + primary-for QUnhandledException (0x0x7f7c50fc92d8) + std::exception (0x0x7f7c50fff8a0) 0 nearly-empty + primary-for QException (0x0x7f7c50fc9340) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f7c50fff900) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f7c50fff9c0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f7c50fffa20) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f7c50fffc60) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f7c50fc93a8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f7c50fffc00) 0 + primary-for QFileSelector (0x0x7f7c50fc93a8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f7c50fffea0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f7c50fc9410) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f7c50fffe40) 0 + primary-for QFileSystemWatcher (0x0x7f7c50fc9410) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f7c50c55120) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f7c50fc9478) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7f7c50fc94e0) 0 + primary-for QFinalState (0x0x7f7c50fc9478) + QObject (0x0x7f7c50c550c0) 0 + primary-for QAbstractState (0x0x7f7c50fc94e0) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f7c50c55300) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f7c50c555a0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f7c50fc95b0) 0 + QBasicMutex (0x0x7f7c50cd9240) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f7c50cd9480) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f7c50cd9900) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f7c50cd9f00) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f7c50d26120) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f7c50d7d900) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f7c50e1ac00) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f7c50d9ebc8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f7c50e1aba0) 0 + primary-for QFutureWatcherBase (0x0x7f7c50d9ebc8) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f7c50a44f60) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f7c50a5d410) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7f7c50a5d478) 0 + primary-for QHistoryState (0x0x7f7c50a5d410) + QObject (0x0x7f7c50a44f00) 0 + primary-for QAbstractState (0x0x7f7c50a5d478) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f7c50a742a0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f7c50a5d4e0) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f7c50a5d548) 0 + primary-for QIdentityProxyModel (0x0x7f7c50a5d4e0) + QAbstractItemModel (0x0x7f7c50a5d5b0) 0 + primary-for QAbstractProxyModel (0x0x7f7c50a5d548) + QObject (0x0x7f7c50a74240) 0 + primary-for QAbstractItemModel (0x0x7f7c50a5d5b0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f7c50a74480) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f7c50b30d80) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f7c50b2cf08) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f7c50b30d20) 0 + primary-for QItemSelectionModel (0x0x7f7c50b2cf08) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f7c50b600d0) 0 + QList (0x0x7f7c50b60138) 0 + QListSpecialMethods (0x0x7f7c50b5c8a0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f7c50bff1e0) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f7c509513c0) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f7c5099e360) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f7c5099e600) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f7c509e1960) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f7c509e19c0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f7c509e1900) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f7c507118a0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f7c50711900) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f7c5077c120) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f7c5077c180) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f7c5077c0c0) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f7c5048f4e0) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f7c504941a0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f7c5048f480) 0 + primary-for QLibrary (0x0x7f7c504941a0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f7c504db360) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f7c5048fe40) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f7c5056fa80) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f7c5056fae0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f7c505e1900) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f7c50251a80) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f7c502c1e40) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f7c5036a120) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f7c504002a0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f7c504004e0) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f7c50400480) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f7c50400900) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f7c500b4840) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f7c4ff24060) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f7c4ff240c0) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f7c4ff8c900) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f7c4ffcbb40) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f7c4ffcbc60) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f7c5002a240) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f7c50017dd0) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f7c5002a1e0) 0 + primary-for QMimeData (0x0x7f7c50017dd0) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f7c5002a420) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f7c4fc89540) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f7c4fc89600) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f7c4fc90138) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f7c4fc895a0) 0 + primary-for QObjectCleanupHandler (0x0x7f7c4fc90138) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f7c4fc89720) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f7c4fcf5ea0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f7c4fd049c0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f7c4fd04a28) 0 + primary-for QParallelAnimationGroup (0x0x7f7c4fd049c0) + QAbstractAnimation (0x0x7f7c4fd04a90) 0 + primary-for QAnimationGroup (0x0x7f7c4fd04a28) + QObject (0x0x7f7c4fcf5e40) 0 + primary-for QAbstractAnimation (0x0x7f7c4fd04a90) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f7c4fd1e120) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f7c4fd04af8) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f7c4fd04b60) 0 + primary-for QPauseAnimation (0x0x7f7c4fd04af8) + QObject (0x0x7f7c4fd1e0c0) 0 + primary-for QAbstractAnimation (0x0x7f7c4fd04b60) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f7c4fd1ed20) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f7c4fd6dea0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f7c4fd70ea0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f7c4fd6de40) 0 + primary-for QPluginLoader (0x0x7f7c4fd70ea0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f7c4fd94000) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f7c4fde7660) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f7c4fde2af8) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f7c4fde2b60) 0 + primary-for QProcess (0x0x7f7c4fde2af8) + QObject (0x0x7f7c4fde7600) 0 + primary-for QIODevice (0x0x7f7c4fde2b60) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f7c4fde7d20) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f7c4fde2bc8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f7c4fde2c30) 0 + primary-for QVariantAnimation (0x0x7f7c4fde2bc8) + QObject (0x0x7f7c4fde7cc0) 0 + primary-for QAbstractAnimation (0x0x7f7c4fde2c30) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f7c4fe39000) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f7c4fde2d00) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f7c4fde2d68) 0 + primary-for QPropertyAnimation (0x0x7f7c4fde2d00) + QAbstractAnimation (0x0x7f7c4fde2dd0) 0 + primary-for QVariantAnimation (0x0x7f7c4fde2d68) + QObject (0x0x7f7c4fde7f60) 0 + primary-for QAbstractAnimation (0x0x7f7c4fde2dd0) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f7c4faac720) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f7c4fbb7480) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f7c4fbb7420) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f7c4f9a41e0) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f7c4f7abe40) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f7c4f7abde0) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f7c4f83ca90) 0 + QRandomGenerator (0x0x7f7c4f3d8960) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f7c4f3fd540) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f7c4f3fd7e0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f7c4f3fdcc0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f7c4f47e1e0) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f7c4f4f6000) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f7c4f545f60) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f7c4f231000) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f7c4f2f3120) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f7c4f2f33c0) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f7c4f28b478) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f7c4f28b4e0) 0 + primary-for QSaveFile (0x0x7f7c4f28b478) + QIODevice (0x0x7f7c4f28b548) 0 + primary-for QFileDevice (0x0x7f7c4f28b4e0) + QObject (0x0x7f7c4f2f3360) 0 + primary-for QIODevice (0x0x7f7c4f28b548) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f7c4f2f39c0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f7c4f2f3b40) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f7c4f01bde0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f7c4f02e270) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f7c4f02e2d8) 0 + primary-for QSequentialAnimationGroup (0x0x7f7c4f02e270) + QAbstractAnimation (0x0x7f7c4f02e340) 0 + primary-for QAnimationGroup (0x0x7f7c4f02e2d8) + QObject (0x0x7f7c4f01bd80) 0 + primary-for QAbstractAnimation (0x0x7f7c4f02e340) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f7c4f040060) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f7c4f02e3a8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f7c4f040000) 0 + primary-for QSettings (0x0x7f7c4f02e3a8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f7c4f0404e0) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f7c4f02e410) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f7c4f040480) 0 + primary-for QSharedMemory (0x0x7f7c4f02e410) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f7c4f040720) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f7c4f02e478) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f7c4f0406c0) 0 + primary-for QSignalMapper (0x0x7f7c4f02e478) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f7c4f040960) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f7c4f02e4e0) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7f7c4f02e548) 0 + primary-for QSignalTransition (0x0x7f7c4f02e4e0) + QObject (0x0x7f7c4f040900) 0 + primary-for QAbstractTransition (0x0x7f7c4f02e548) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f7c4f040c00) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f7c4f02e5b0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f7c4f040ba0) 0 + primary-for QSocketNotifier (0x0x7f7c4f02e5b0) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f7c4f040e40) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f7c4f02e618) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f7c4f02e680) 0 + primary-for QSortFilterProxyModel (0x0x7f7c4f02e618) + QAbstractItemModel (0x0x7f7c4f02e6e8) 0 + primary-for QAbstractProxyModel (0x0x7f7c4f02e680) + QObject (0x0x7f7c4f040de0) 0 + primary-for QAbstractItemModel (0x0x7f7c4f02e6e8) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f7c4f0c92a0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f7c4f0c9ba0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f7c4f02e888) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7f7c4f02e8f0) 0 + primary-for QState (0x0x7f7c4f02e888) + QObject (0x0x7f7c4f0c9b40) 0 + primary-for QAbstractState (0x0x7f7c4f02e8f0) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f7c4f119060) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f7c4f02ea90) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7f7c4f1190c0) 0 + primary-for QStateMachine::SignalEvent (0x0x7f7c4f02ea90) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f7c4f02eaf8) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7f7c4f119120) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f7c4f02eaf8) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f7c4f02e958) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7f7c4f02e9c0) 0 + primary-for QStateMachine (0x0x7f7c4f02e958) + QAbstractState (0x0x7f7c4f02ea28) 0 + primary-for QState (0x0x7f7c4f02e9c0) + QObject (0x0x7f7c4f119000) 0 + primary-for QAbstractState (0x0x7f7c4f02ea28) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f7c4f1194e0) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f7c4f1bb4e0) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f7c4ee46840) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f7c4ee28c30) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f7c4ee28c98) 0 + primary-for QStringListModel (0x0x7f7c4ee28c30) + QAbstractItemModel (0x0x7f7c4ee28d00) 0 + primary-for QAbstractListModel (0x0x7f7c4ee28c98) + QObject (0x0x7f7c4ee467e0) 0 + primary-for QAbstractItemModel (0x0x7f7c4ee28d00) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f7c4ee46960) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f7c4ee46a20) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f7c4ee46b40) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f7c4ee28d68) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f7c4ee28dd0) 0 + primary-for QTemporaryFile (0x0x7f7c4ee28d68) + QFileDevice (0x0x7f7c4ee28e38) 0 + primary-for QFile (0x0x7f7c4ee28dd0) + QIODevice (0x0x7f7c4ee28ea0) 0 + primary-for QFileDevice (0x0x7f7c4ee28e38) + QObject (0x0x7f7c4ee46ae0) 0 + primary-for QIODevice (0x0x7f7c4ee28ea0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f7c4ee46ea0) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f7c4eea9720) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f7c4eea96c0) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f7c4ef0f120) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f7c4ef0f300) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f7c4ef0f4e0) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f7c4eedc0d0) 0 + std::__mutex_base (0x0x7f7c4ef0f540) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f7c4ef0f720) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f7c4ef0f780) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f7c4ef0f7e0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f7c4ef58240) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f7c4eedc138) 0 + std::__recursive_mutex_base (0x0x7f7c4ef582a0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f7c4ef0a930) 0 + std::__mutex_base (0x0x7f7c4ef58660) 0 + std::__timed_mutex_impl (0x0x7f7c4ef586c0) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f7c4ef77310) 0 + std::__recursive_mutex_base (0x0x7f7c4ef58a20) 0 + std::__timed_mutex_impl (0x0x7f7c4ef58a80) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f7c4ef981e0) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f7c4eedc270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f7c4ef98720) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f7c4eedc270) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f7c4eedc2d8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f7c4ef98840) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f7c4eedc2d8) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f7c4eedc340) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f7c4ef98960) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f7c4eedc340) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f7c4eedc410) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f7c4ef98a80) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f7c4eedc410) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f7c4ebc8ae0) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f7c4ebc8de0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f7c4ebed120) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f7c4ebed480) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f7c4eedc478) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f7c4ec65660) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f7c4eedc478) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f7c4ecd2600) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f7c4ecd2a20) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f7c4ea1c8a0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f7c4ea47d20) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f7c4ea47d80) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f7c4ea47cc0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f7c4e909180) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f7c4e909540) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f7c4e9095a0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f7c4e68f8a0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f7c4e688d00) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f7c4e688d68) 0 + primary-for std::future_error (0x0x7f7c4e688d00) + std::exception (0x0x7f7c4e6bc000) 0 nearly-empty + primary-for std::logic_error (0x0x7f7c4e688d68) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f7c4e6bc720) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f7c4e6bc6c0) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f7c4e481e40) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f7c4e4ae5b0) 0 + std::__at_thread_exit_elt (0x0x7f7c4e481f00) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f7c4e6bc8a0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f7c4e6bc660) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f7c4dc422d8) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f7c4dc37f00) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f7c4dc422d8) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f7c4dc777e0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f7c4dc42618) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f7c4dc77780) 0 + primary-for QThread (0x0x7f7c4dc42618) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f7c4dc77ba0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f7c4dc42680) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f7c4dc77b40) 0 + primary-for QThreadPool (0x0x7f7c4dc42680) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f7c4dc77d80) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f7c4dcbc480) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f7c4dc426e8) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f7c4dcbc420) 0 + primary-for QTimeLine (0x0x7f7c4dc426e8) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f7c4dcbc6c0) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f7c4dc42750) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f7c4dcbc660) 0 + primary-for QTimer (0x0x7f7c4dc42750) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f7c4dd26060) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f7c4dd26000) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f7c4d9c5120) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f7c4ddace38) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f7c4d9c50c0) 0 + primary-for QTranslator (0x0x7f7c4ddace38) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f7c4d9c5360) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f7c4ddacea0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f7c4ddacf08) 0 + primary-for QTransposeProxyModel (0x0x7f7c4ddacea0) + QAbstractItemModel (0x0x7f7c4ddacf70) 0 + primary-for QAbstractProxyModel (0x0x7f7c4ddacf08) + QObject (0x0x7f7c4d9c5300) 0 + primary-for QAbstractItemModel (0x0x7f7c4ddacf70) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f7c4d9c5540) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f7c4da4af00) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f7c4da6f060) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f7c4daf6420) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f7c4db60618) 0 + QVector (0x0x7f7c4db5ab40) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f7c4db5ae40) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f7c4d7d9de0) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f7c4d836de0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f7c4d89fea0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f7c4d89ff00) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f7c4d8dfde0) 0 + +Vtable for QSqlDriverCreatorBase +QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSqlDriverCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverCreatorBase + size=8 align=8 + base size=8 base align=8 +QSqlDriverCreatorBase (0x0x7f7c4d9346c0) 0 nearly-empty + vptr=((& QSqlDriverCreatorBase::_ZTV21QSqlDriverCreatorBase) + 16) + +Class QSqlDatabase + size=8 align=8 + base size=8 base align=8 +QSqlDatabase (0x0x7f7c4d9349c0) 0 + +Class QSqlDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriver::QPrivateSignal (0x0x7f7c4d934a80) 0 empty + +Vtable for QSqlDriver +QSqlDriver::_ZTV10QSqlDriver: 38 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlDriver) +16 (int (*)(...))QSqlDriver::metaObject +24 (int (*)(...))QSqlDriver::qt_metacast +32 (int (*)(...))QSqlDriver::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSqlDriver::isOpen +120 (int (*)(...))QSqlDriver::beginTransaction +128 (int (*)(...))QSqlDriver::commitTransaction +136 (int (*)(...))QSqlDriver::rollbackTransaction +144 (int (*)(...))QSqlDriver::tables +152 (int (*)(...))QSqlDriver::primaryIndex +160 (int (*)(...))QSqlDriver::record +168 (int (*)(...))QSqlDriver::formatValue +176 (int (*)(...))QSqlDriver::escapeIdentifier +184 (int (*)(...))QSqlDriver::sqlStatement +192 (int (*)(...))QSqlDriver::handle +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))QSqlDriver::subscribeToNotification +240 (int (*)(...))QSqlDriver::unsubscribeFromNotification +248 (int (*)(...))QSqlDriver::subscribedToNotifications +256 (int (*)(...))QSqlDriver::isIdentifierEscaped +264 (int (*)(...))QSqlDriver::stripDelimiters +272 (int (*)(...))QSqlDriver::cancelQuery +280 (int (*)(...))QSqlDriver::setOpen +288 (int (*)(...))QSqlDriver::setOpenError +296 (int (*)(...))QSqlDriver::setLastError + +Class QSqlDriver + size=16 align=8 + base size=16 base align=8 +QSqlDriver (0x0x7f7c4d915410) 0 + vptr=((& QSqlDriver::_ZTV10QSqlDriver) + 16) + QObject (0x0x7f7c4d934a20) 0 + primary-for QSqlDriver (0x0x7f7c4d915410) + +Class QSqlDriverPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlDriverPlugin::QPrivateSignal (0x0x7f7c4d934cc0) 0 empty + +Vtable for QSqlDriverPlugin +QSqlDriverPlugin::_ZTV16QSqlDriverPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QSqlDriverPlugin) +16 (int (*)(...))QSqlDriverPlugin::metaObject +24 (int (*)(...))QSqlDriverPlugin::qt_metacast +32 (int (*)(...))QSqlDriverPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSqlDriverPlugin + size=16 align=8 + base size=16 base align=8 +QSqlDriverPlugin (0x0x7f7c4d915478) 0 + vptr=((& QSqlDriverPlugin::_ZTV16QSqlDriverPlugin) + 16) + QObject (0x0x7f7c4d934c60) 0 + primary-for QSqlDriverPlugin (0x0x7f7c4d915478) + +Class QSqlError::Unused + size=8 align=4 + base size=8 base align=4 +QSqlError::Unused (0x0x7f7c4d934e40) 0 + +Class QSqlError + size=24 align=8 + base size=24 base align=8 +QSqlError (0x0x7f7c4d934de0) 0 + +Class QSqlField + size=24 align=8 + base size=24 base align=8 +QSqlField (0x0x7f7c4d651180) 0 + +Class QSqlRecord + size=8 align=8 + base size=8 base align=8 +QSqlRecord (0x0x7f7c4d651300) 0 + +Class QSqlIndex + size=32 align=8 + base size=32 base align=8 +QSqlIndex (0x0x7f7c4d64d340) 0 + QSqlRecord (0x0x7f7c4d6513c0) 0 + +Class QSqlQuery + size=8 align=8 + base size=8 base align=8 +QSqlQuery (0x0x7f7c4d6515a0) 0 + +Class QSqlQueryModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlQueryModel::QPrivateSignal (0x0x7f7c4d651660) 0 empty + +Vtable for QSqlQueryModel +QSqlQueryModel::_ZTV14QSqlQueryModel: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlQueryModel) +16 (int (*)(...))QSqlQueryModel::metaObject +24 (int (*)(...))QSqlQueryModel::qt_metacast +32 (int (*)(...))QSqlQueryModel::qt_metacall +40 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +48 (int (*)(...))QSqlQueryModel::~QSqlQueryModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlQueryModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlQueryModel::data +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QSqlQueryModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QSqlQueryModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QSqlQueryModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSqlQueryModel::fetchMore +312 (int (*)(...))QSqlQueryModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QSqlQueryModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert +384 (int (*)(...))QSqlQueryModel::clear +392 (int (*)(...))QSqlQueryModel::queryChange +400 (int (*)(...))QSqlQueryModel::indexInQuery + +Class QSqlQueryModel + size=16 align=8 + base size=16 base align=8 +QSqlQueryModel (0x0x7f7c4d64d478) 0 + vptr=((& QSqlQueryModel::_ZTV14QSqlQueryModel) + 16) + QAbstractTableModel (0x0x7f7c4d64d4e0) 0 + primary-for QSqlQueryModel (0x0x7f7c4d64d478) + QAbstractItemModel (0x0x7f7c4d64d548) 0 + primary-for QAbstractTableModel (0x0x7f7c4d64d4e0) + QObject (0x0x7f7c4d651600) 0 + primary-for QAbstractItemModel (0x0x7f7c4d64d548) + +Class QSqlTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlTableModel::QPrivateSignal (0x0x7f7c4d6518a0) 0 empty + +Vtable for QSqlTableModel +QSqlTableModel::_ZTV14QSqlTableModel: 63 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QSqlTableModel) +16 (int (*)(...))QSqlTableModel::metaObject +24 (int (*)(...))QSqlTableModel::qt_metacast +32 (int (*)(...))QSqlTableModel::qt_metacall +40 (int (*)(...))QSqlTableModel::~QSqlTableModel +48 (int (*)(...))QSqlTableModel::~QSqlTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlTableModel::data +168 (int (*)(...))QSqlTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QSqlTableModel::insertRows +264 (int (*)(...))QSqlQueryModel::insertColumns +272 (int (*)(...))QSqlTableModel::removeRows +280 (int (*)(...))QSqlTableModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSqlQueryModel::fetchMore +312 (int (*)(...))QSqlQueryModel::canFetchMore +320 (int (*)(...))QSqlTableModel::flags +328 (int (*)(...))QSqlTableModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QSqlQueryModel::roleNames +368 (int (*)(...))QSqlTableModel::submit +376 (int (*)(...))QSqlTableModel::revert +384 (int (*)(...))QSqlTableModel::clear +392 (int (*)(...))QSqlQueryModel::queryChange +400 (int (*)(...))QSqlTableModel::indexInQuery +408 (int (*)(...))QSqlTableModel::setTable +416 (int (*)(...))QSqlTableModel::setEditStrategy +424 (int (*)(...))QSqlTableModel::setSort +432 (int (*)(...))QSqlTableModel::setFilter +440 (int (*)(...))QSqlTableModel::revertRow +448 (int (*)(...))QSqlTableModel::select +456 (int (*)(...))QSqlTableModel::selectRow +464 (int (*)(...))QSqlTableModel::updateRowInTable +472 (int (*)(...))QSqlTableModel::insertRowIntoTable +480 (int (*)(...))QSqlTableModel::deleteRowFromTable +488 (int (*)(...))QSqlTableModel::orderByClause +496 (int (*)(...))QSqlTableModel::selectStatement + +Class QSqlTableModel + size=16 align=8 + base size=16 base align=8 +QSqlTableModel (0x0x7f7c4d64d5b0) 0 + vptr=((& QSqlTableModel::_ZTV14QSqlTableModel) + 16) + QSqlQueryModel (0x0x7f7c4d64d618) 0 + primary-for QSqlTableModel (0x0x7f7c4d64d5b0) + QAbstractTableModel (0x0x7f7c4d64d680) 0 + primary-for QSqlQueryModel (0x0x7f7c4d64d618) + QAbstractItemModel (0x0x7f7c4d64d6e8) 0 + primary-for QAbstractTableModel (0x0x7f7c4d64d680) + QObject (0x0x7f7c4d651840) 0 + primary-for QAbstractItemModel (0x0x7f7c4d64d6e8) + +Class QSqlRelation + size=24 align=8 + base size=24 base align=8 +QSqlRelation (0x0x7f7c4d651a80) 0 + +Class QSqlRelationalTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSqlRelationalTableModel::QPrivateSignal (0x0x7f7c4d7380c0) 0 empty + +Vtable for QSqlRelationalTableModel +QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QSqlRelationalTableModel) +16 (int (*)(...))QSqlRelationalTableModel::metaObject +24 (int (*)(...))QSqlRelationalTableModel::qt_metacast +32 (int (*)(...))QSqlRelationalTableModel::qt_metacall +40 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +48 (int (*)(...))QSqlRelationalTableModel::~QSqlRelationalTableModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))QSqlTableModel::rowCount +144 (int (*)(...))QSqlQueryModel::columnCount +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))QSqlRelationalTableModel::data +168 (int (*)(...))QSqlRelationalTableModel::setData +176 (int (*)(...))QSqlTableModel::headerData +184 (int (*)(...))QSqlQueryModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QSqlTableModel::insertRows +264 (int (*)(...))QSqlQueryModel::insertColumns +272 (int (*)(...))QSqlTableModel::removeRows +280 (int (*)(...))QSqlRelationalTableModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSqlQueryModel::fetchMore +312 (int (*)(...))QSqlQueryModel::canFetchMore +320 (int (*)(...))QSqlTableModel::flags +328 (int (*)(...))QSqlTableModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QSqlQueryModel::roleNames +368 (int (*)(...))QSqlTableModel::submit +376 (int (*)(...))QSqlTableModel::revert +384 (int (*)(...))QSqlRelationalTableModel::clear +392 (int (*)(...))QSqlQueryModel::queryChange +400 (int (*)(...))QSqlTableModel::indexInQuery +408 (int (*)(...))QSqlRelationalTableModel::setTable +416 (int (*)(...))QSqlTableModel::setEditStrategy +424 (int (*)(...))QSqlTableModel::setSort +432 (int (*)(...))QSqlTableModel::setFilter +440 (int (*)(...))QSqlRelationalTableModel::revertRow +448 (int (*)(...))QSqlRelationalTableModel::select +456 (int (*)(...))QSqlTableModel::selectRow +464 (int (*)(...))QSqlRelationalTableModel::updateRowInTable +472 (int (*)(...))QSqlRelationalTableModel::insertRowIntoTable +480 (int (*)(...))QSqlTableModel::deleteRowFromTable +488 (int (*)(...))QSqlRelationalTableModel::orderByClause +496 (int (*)(...))QSqlRelationalTableModel::selectStatement +504 (int (*)(...))QSqlRelationalTableModel::setRelation +512 (int (*)(...))QSqlRelationalTableModel::relationModel + +Class QSqlRelationalTableModel + size=16 align=8 + base size=16 base align=8 +QSqlRelationalTableModel (0x0x7f7c4d726a28) 0 + vptr=((& QSqlRelationalTableModel::_ZTV24QSqlRelationalTableModel) + 16) + QSqlTableModel (0x0x7f7c4d726a90) 0 + primary-for QSqlRelationalTableModel (0x0x7f7c4d726a28) + QSqlQueryModel (0x0x7f7c4d726af8) 0 + primary-for QSqlTableModel (0x0x7f7c4d726a90) + QAbstractTableModel (0x0x7f7c4d726b60) 0 + primary-for QSqlQueryModel (0x0x7f7c4d726af8) + QAbstractItemModel (0x0x7f7c4d726bc8) 0 + primary-for QAbstractTableModel (0x0x7f7c4d726b60) + QObject (0x0x7f7c4d738060) 0 + primary-for QAbstractItemModel (0x0x7f7c4d726bc8) + +Vtable for QSqlResult +QSqlResult::_ZTV10QSqlResult: 33 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSqlResult) +16 0 +24 0 +32 (int (*)(...))QSqlResult::handle +40 (int (*)(...))QSqlResult::setAt +48 (int (*)(...))QSqlResult::setActive +56 (int (*)(...))QSqlResult::setLastError +64 (int (*)(...))QSqlResult::setQuery +72 (int (*)(...))QSqlResult::setSelect +80 (int (*)(...))QSqlResult::setForwardOnly +88 (int (*)(...))QSqlResult::exec +96 (int (*)(...))QSqlResult::prepare +104 (int (*)(...))QSqlResult::savePrepare +112 (int (*)(...))QSqlResult::bindValue +120 (int (*)(...))QSqlResult::bindValue +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QSqlResult::fetchNext +168 (int (*)(...))QSqlResult::fetchPrevious +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QSqlResult::record +216 (int (*)(...))QSqlResult::lastInsertId +224 (int (*)(...))QSqlResult::virtual_hook +232 (int (*)(...))QSqlResult::execBatch +240 (int (*)(...))QSqlResult::detachFromResultSet +248 (int (*)(...))QSqlResult::setNumericalPrecisionPolicy +256 (int (*)(...))QSqlResult::nextResult + +Class QSqlResult + size=16 align=8 + base size=16 base align=8 +QSqlResult (0x0x7f7c4d7382a0) 0 + vptr=((& QSqlResult::_ZTV10QSqlResult) + 16) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d78a660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d78a9c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d78aba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d78af00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d7be120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d7be480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d7be660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d7be9c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d7beba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d7bef00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d2f4120) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d2f4480) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d2f4660) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d2f49c0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d2f4ba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d2f4f00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d358420) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d358780) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d358900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d358c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d358de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d388180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d388300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d388660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d3887e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d388b40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d388cc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d3b8060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d3b81e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d3b8540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f7c4d3b86c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f7c4d3b8a20) 0 empty + diff --git a/tests/auto/bic/data/QtTest.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtTest.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..c1c38fef56 --- /dev/null +++ b/tests/auto/bic/data/QtTest.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,5074 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7fb6f561e2a0) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7fb6f566ba20) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7fb6f566bc60) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7fb6f566bea0) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7fb6f5695120) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7fb6f56952a0) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7fb6f5695660) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7fb6f56d5780) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7fb6f572ce40) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7fb6f572cf00) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7fb6f5759300) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7fb6f5759360) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7fb6f57593c0) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7fb6f5759420) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7fb6f5759480) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7fb6f5759540) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7fb6f5759600) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7fb6f57596c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7fb6f5759780) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7fb6f5759ae0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7fb6f5759e40) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7fb6f5759ea0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7fb6f539f480) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7fb6f539fae0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7fb6f5794478) 0 empty + std::__nonesuch (0x0x7fb6f53dc000) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7fb6f5424960) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7fb6f54249c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7fb6f547c6c0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7fb6f547c720) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7fb6f5794958) 0 empty + std::input_iterator_tag (0x0x7fb6f547c780) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7fb6f57949c0) 0 empty + std::forward_iterator_tag (0x0x7fb6f5794a28) 0 empty + std::input_iterator_tag (0x0x7fb6f547c7e0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7fb6f5794a90) 0 empty + std::bidirectional_iterator_tag (0x0x7fb6f5794af8) 0 empty + std::forward_iterator_tag (0x0x7fb6f5794b60) 0 empty + std::input_iterator_tag (0x0x7fb6f547c840) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7fb6f5531360) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7fb6f5531480) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7fb6f5531780) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7fb6f5531a80) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7fb6f5531ba0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7fb6f51bfea0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7fb6f52091e0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7fb6f5209240) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7fb6f5209300) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7fb6f5209360) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7fb6f52093c0) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7fb6f5209420) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7fb6f52096c0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7fb6f5209960) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7fb6f52099c0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7fb6f52bb780) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7fb6f5794ea0) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7fb6f52bb960) 0 nearly-empty + primary-for std::bad_exception (0x0x7fb6f5794ea0) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7fb6f52bbb40) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7fb6f5794f08) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7fb6f52bbf00) 0 nearly-empty + primary-for std::bad_cast (0x0x7fb6f5794f08) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7fb6f5794f70) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7fb6f52ef120) 0 nearly-empty + primary-for std::bad_typeid (0x0x7fb6f5794f70) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7fb6f52ef300) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7fb6f52ef8a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7fb6f5323000) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7fb6f52eff60) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fb6f5323000) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7fb6f5323068) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7fb6f53230d0) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7fb6f5323068) + std::exception (0x0x7fb6f5328180) 0 nearly-empty + primary-for std::bad_alloc (0x0x7fb6f53230d0) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7fb6f5328360) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7fb6f5328540) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7fb6f4f9ca20) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7fb6f517a4e0) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7fb6f517a5a0) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7fb6f4c19f00) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7fb6f4c4a060) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7fb6f4c4a3c0) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7fb6f4c4a900) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7fb6f4cb00c0) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7fb6f4d444e0) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7fb6f4cdaf08) 0 + std::__atomic_flag_base (0x0x7fb6f4d44540) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7fb6f4a52680) 0 + QAtomicInteger (0x0x7fb6f4a526e8) 0 + QBasicAtomicInteger (0x0x7fb6f48774e0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7fb6f44947e0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7fb6f44c4d80) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7fb6f45114e0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7fb6f4517270) 0 + QGenericArgument (0x0x7fb6f4511780) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7fb6f4511ba0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7fb6f4562000) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7fb6f41caae0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7fb6f41cad80) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7fb6f4296ba0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7fb6f4296f00) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7fb6f431f240) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7fb6f3fcfa80) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7fb6f3fcfb40) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7fb6f4092c60) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7fb6f4092d20) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7fb6f4092d80) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7fb6f4092de0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7fb6f4092e40) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7fb6f4092f60) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7fb6f40ed000) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7fb6f3dd5f60) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7fb6f3e0d000) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7fb6f3bb9060) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7fb6f3bb91e0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7fb6f3d42360) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7fb6f3d42720) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7fb6f3d429c0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7fb6f3d42ba0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7fb6f3d91ba0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7fb6f39b9208) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7fb6f3d91c60) 0 nearly-empty + primary-for std::logic_error (0x0x7fb6f39b9208) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7fb6f39b9270) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7fb6f39b92d8) 0 + primary-for std::domain_error (0x0x7fb6f39b9270) + std::exception (0x0x7fb6f3d91cc0) 0 nearly-empty + primary-for std::logic_error (0x0x7fb6f39b92d8) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7fb6f39b9340) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7fb6f39b93a8) 0 + primary-for std::invalid_argument (0x0x7fb6f39b9340) + std::exception (0x0x7fb6f3d91d20) 0 nearly-empty + primary-for std::logic_error (0x0x7fb6f39b93a8) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7fb6f39b9410) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7fb6f39b9478) 0 + primary-for std::length_error (0x0x7fb6f39b9410) + std::exception (0x0x7fb6f3d91d80) 0 nearly-empty + primary-for std::logic_error (0x0x7fb6f39b9478) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7fb6f39b94e0) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7fb6f39b9548) 0 + primary-for std::out_of_range (0x0x7fb6f39b94e0) + std::exception (0x0x7fb6f3d91de0) 0 nearly-empty + primary-for std::logic_error (0x0x7fb6f39b9548) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7fb6f39b95b0) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7fb6f3d91e40) 0 nearly-empty + primary-for std::runtime_error (0x0x7fb6f39b95b0) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7fb6f39b9618) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7fb6f39b9680) 0 + primary-for std::range_error (0x0x7fb6f39b9618) + std::exception (0x0x7fb6f3d91ea0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fb6f39b9680) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7fb6f39b96e8) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7fb6f39b9750) 0 + primary-for std::overflow_error (0x0x7fb6f39b96e8) + std::exception (0x0x7fb6f3d91f00) 0 nearly-empty + primary-for std::runtime_error (0x0x7fb6f39b9750) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7fb6f39b97b8) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7fb6f39b9820) 0 + primary-for std::underflow_error (0x0x7fb6f39b97b8) + std::exception (0x0x7fb6f3d91f60) 0 nearly-empty + primary-for std::runtime_error (0x0x7fb6f39b9820) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7fb6f39f6120) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7fb6f39f6480) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7fb6f39f6cc0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7fb6f39b9c30) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7fb6f39b9c98) 0 + primary-for std::system_error (0x0x7fb6f39b9c30) + std::exception (0x0x7fb6f3a268a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7fb6f39b9c98) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7fb6f39b9f08) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7fb6f39b9f70) 0 + primary-for std::ios_base::failure (0x0x7fb6f39b9f08) + std::runtime_error (0x0x7fb6f3a80000) 0 + primary-for std::system_error (0x0x7fb6f39b9f70) + std::exception (0x0x7fb6f3a5be40) 0 nearly-empty + primary-for std::runtime_error (0x0x7fb6f3a80000) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7fb6f3a5bea0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7fb6f3a5bf00) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7fb6f3a5bf60) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7fb6f3a5bde0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7fb6f3b538a0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7fb6f3810a80) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7fb6f33c06e8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fb6f33c07b8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7fb6f33ff478 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7fb6f33ff548 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7fb6f3431420) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7fb6f3431480) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7fb6f3560840) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7fb6f31ff6c0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7fb6f31ffb40) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7fb6f32d5900) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7fb6f336d360) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7fb6f336d300) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7fb6f31594e0) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7fb6f2ed6d20) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7fb6f2d12060) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7fb6f2d12120) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7fb6f29cb600) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7fb6f2f7e888) 0 + std::iterator (0x0x7fb6f29cbd20) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7fb6f2f7e9c0) 0 + std::_Bit_iterator_base (0x0x7fb6f2f7ea28) 0 + std::iterator (0x0x7fb6f29f83c0) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7fb6f2f7ea90) 0 + std::_Bit_iterator_base (0x0x7fb6f2f7eaf8) 0 + std::iterator (0x0x7fb6f29f8ba0) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7fb6f280a240) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7fb6f28cf000) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7fb6f28cf060) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7fb6f2ac3548) 0 empty + QListData::NotIndirectLayout (0x0x7fb6f28cf0c0) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7fb6f28b50e0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fb6f28cf120) 0 empty + QListData::NotIndirectLayout (0x0x7fb6f28cf180) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7fb6f2ac35b0) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7fb6f28cf1e0) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7fb6f28cf240) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7fb6f28b6f60) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7fb6f25c4420) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7fb6f26a3a80) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7fb6f26a3a20) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7fb6f26ad2d8) 0 + QList (0x0x7fb6f26ad340) 0 + QListSpecialMethods (0x0x7fb6f26a3cc0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7fb6f2764840) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7fb6f23f1960) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7fb6f23f1cc0) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7fb6f21ec2a0) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7fb6f21ec300) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7fb6f21ec480) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7fb6f21ec540) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7fb6f2575680) 0 + std::__uses_alloc_base (0x0x7fb6f21ec4e0) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7fb6f23538a0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7fb6f1f7cd20) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7fb6f1f960c0) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7fb6f1f96600) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7fb6f1f96b40) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7fb6f1fedd20) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7fb6f2023420) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7fb6f20bc2a0) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7fb6f2112960) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7fb6f1d66ea0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7fb6f1b9ccc0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7fb6f18cf780) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7fb6f18cf7e0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7fb6f18cf9c0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7fb6f18cf960) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7fb6f19ae7e0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7fb6f19ae960) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7fb6f19ce240) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7fb6f1989888) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7fb6f19ce1e0) 0 + primary-for QAbstractAnimation (0x0x7fb6f1989888) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7fb6f19ce600) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7fb6f19898f0) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7fb6f19ce5a0) 0 + primary-for QAnimationDriver (0x0x7fb6f19898f0) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7fb6f19ce840) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7fb6f1989958) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7fb6f19ce7e0) 0 + primary-for QEventLoop (0x0x7fb6f1989958) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7fb6f1a24120) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7fb6f1a241e0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7fb6f1a24240) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7fb6f1989a90) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7fb6f1a24180) 0 + primary-for QAbstractEventDispatcher (0x0x7fb6f1989a90) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7fb6f16be410) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7fb6f16b78a0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7fb6f16be410) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7fb6f16b7960) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7fb6f16b79c0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7fb6f16b7cc0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7fb6f14b3c60) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7fb6f14e8900) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7fb6f15d92a0) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7fb6f15d9240) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7fb6f15d9540) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7fb6f12e6ae0) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7fb6f12e6ba0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7fb6f12e6b40) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7fb6f12e6c00) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7fb6f12e6a80) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7fb6f13daea0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7fb6f10a0540) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7fb6f10a04e0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7fb6f10a0660) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7fb6f10a0600) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7fb6f11687e0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7fb6f11dc420) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7fb6f0eab240) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7fb6f0eb1000) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7fb6f0eab1e0) 0 + primary-for QAbstractItemModel (0x0x7fb6f0eb1000) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7fb6f0f6a600) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7fb6f0eb1618) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7fb6f0eb1680) 0 + primary-for QAbstractTableModel (0x0x7fb6f0eb1618) + QObject (0x0x7fb6f0f6a5a0) 0 + primary-for QAbstractItemModel (0x0x7fb6f0eb1680) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7fb6f0f6a780) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7fb6f0eb16e8) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7fb6f0eb1750) 0 + primary-for QAbstractListModel (0x0x7fb6f0eb16e8) + QObject (0x0x7fb6f0f6a720) 0 + primary-for QAbstractItemModel (0x0x7fb6f0eb1750) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7fb6f0f6aea0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7fb6f0f6af60) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7fb6f0eb1820) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7fb6f0eb1888) 0 + primary-for QAbstractProxyModel (0x0x7fb6f0eb1820) + QObject (0x0x7fb6f0f6af00) 0 + primary-for QAbstractItemModel (0x0x7fb6f0eb1888) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7fb6f0fed1e0) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7fb6f0eb18f0) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7fb6f0fed180) 0 + primary-for QAbstractState (0x0x7fb6f0eb18f0) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7fb6f0fed420) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7fb6f0eb1958) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7fb6f0fed3c0) 0 + primary-for QAbstractTransition (0x0x7fb6f0eb1958) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7fb6f0fed720) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7fb6f0eb19c0) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7fb6f0eb1a28) 0 + primary-for QAnimationGroup (0x0x7fb6f0eb19c0) + QObject (0x0x7fb6f0fed6c0) 0 + primary-for QAbstractAnimation (0x0x7fb6f0eb1a28) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7fb6f105da80) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7fb6f1092e40) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7fb6f0d13300) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7fb6f0d5c6c0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7fb6f0d4ef70) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7fb6f0d5c660) 0 + primary-for QIODevice (0x0x7fb6f0d4ef70) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7fb6f0da8060) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7fb6f0d820d0) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7fb6f0d82138) 0 + primary-for QBuffer (0x0x7fb6f0d820d0) + QObject (0x0x7fb6f0da8000) 0 + primary-for QIODevice (0x0x7fb6f0d82138) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7fb6f0da8300) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7fb6f0da82a0) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7fb6f0da8480) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7fb6f0da8420) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7fb6f0df4360) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7fb6f0e39300) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7fb6f0e87ba0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7fb6f0af6840) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7fb6f0af68a0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7fb6f0af67e0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7fb6f0bc5f60) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7fb6f08e1540) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7fb6f08e1de0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7fb6f09be900) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7fb6f0a0c5a0) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7fb6f0a0c720) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7fb6f06c1360) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7fb6f06c1300) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7fb6f085e3c0) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7fb6f085e480) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7fb6f04e1780) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7fb6f04e1f00) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7fb6f059ade0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7fb6f0600ba0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7fb6f067e600) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7fb6f03c95a0) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7fb6f044e120) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7fb6f044e1e0) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7fb6efeca1e0) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7fb6eff39c00) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7fb6eff39c60) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7fb6eff39ba0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7fb6f0052660) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7fb6f00526c0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7fb6f0052600) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7fb6efe46de0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7fb6efafcd80) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7fb6efb36ae0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7fb6efbb8c00) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7fb6efbb8de0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7fb6ef8d13c0) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7fb6ef925ae0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7fb6ef9282d8) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7fb6ef925ea0) 0 + primary-for QTimerEvent (0x0x7fb6ef9282d8) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7fb6ef928340) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7fb6ef925f60) 0 + primary-for QChildEvent (0x0x7fb6ef928340) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7fb6ef928888) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7fb6ef96e600) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7fb6ef928888) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7fb6ef9288f0) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7fb6ef96e6c0) 0 + primary-for QDeferredDeleteEvent (0x0x7fb6ef9288f0) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7fb6ef96e7e0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7fb6ef928958) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7fb6ef96e780) 0 + primary-for QCoreApplication (0x0x7fb6ef928958) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7fb6ef96ea20) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7fb6ef96eba0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7fb6ef9289c0) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7fb6ef928a28) 0 + primary-for QConcatenateTablesProxyModel (0x0x7fb6ef9289c0) + QObject (0x0x7fb6ef96eb40) 0 + primary-for QAbstractItemModel (0x0x7fb6ef928a28) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7fb6ef96ed80) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7fb6ef96eea0) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7fb6ef9fd060) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7fb6efa2f780) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7fb6efa2fea0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7fb6ef77fc00) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7fb6ef777c30) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7fb6ef777c98) 0 + primary-for QFileDevice (0x0x7fb6ef777c30) + QObject (0x0x7fb6ef77fba0) 0 + primary-for QIODevice (0x0x7fb6ef777c98) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7fb6ef7ca540) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7fb6ef777dd0) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7fb6ef777e38) 0 + primary-for QFile (0x0x7fb6ef777dd0) + QIODevice (0x0x7fb6ef777ea0) 0 + primary-for QFileDevice (0x0x7fb6ef777e38) + QObject (0x0x7fb6ef7ca4e0) 0 + primary-for QIODevice (0x0x7fb6ef777ea0) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7fb6ef7caba0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7fb6ef848f60) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7fb6ef4da300) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7fb6ef4daa80) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7fb6ef60dba0) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7fb6ef5e6138) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7fb6ef5e61a0) 0 + primary-for QEventTransition (0x0x7fb6ef5e6138) + QObject (0x0x7fb6ef60db40) 0 + primary-for QAbstractTransition (0x0x7fb6ef5e61a0) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7fb6ef5e6208) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7fb6ef60dd80) 0 nearly-empty + primary-for QException (0x0x7fb6ef5e6208) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7fb6ef5e6270) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7fb6ef5e62d8) 0 nearly-empty + primary-for QUnhandledException (0x0x7fb6ef5e6270) + std::exception (0x0x7fb6ef60dde0) 0 nearly-empty + primary-for QException (0x0x7fb6ef5e62d8) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7fb6ef60de40) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7fb6ef60df00) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7fb6ef60df60) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7fb6ef6561e0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7fb6ef5e6340) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7fb6ef656180) 0 + primary-for QFileSelector (0x0x7fb6ef5e6340) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7fb6ef656420) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7fb6ef5e63a8) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7fb6ef6563c0) 0 + primary-for QFileSystemWatcher (0x0x7fb6ef5e63a8) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7fb6ef656660) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7fb6ef5e6410) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7fb6ef5e6478) 0 + primary-for QFinalState (0x0x7fb6ef5e6410) + QObject (0x0x7fb6ef656600) 0 + primary-for QAbstractState (0x0x7fb6ef5e6478) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7fb6ef656840) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7fb6ef656ae0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7fb6ef5e6548) 0 + QBasicMutex (0x0x7fb6ef2ec780) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7fb6ef2ec9c0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7fb6ef2ece40) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7fb6ef314480) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7fb6ef314660) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7fb6ef38ae40) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7fb6ef449180) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7fb6ef3bbb60) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7fb6ef449120) 0 + primary-for QFutureWatcherBase (0x0x7fb6ef3bbb60) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7fb6ef0764e0) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7fb6ef0793a8) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7fb6ef079410) 0 + primary-for QHistoryState (0x0x7fb6ef0793a8) + QObject (0x0x7fb6ef076480) 0 + primary-for QAbstractState (0x0x7fb6ef079410) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7fb6ef0767e0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7fb6ef079478) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7fb6ef0794e0) 0 + primary-for QIdentityProxyModel (0x0x7fb6ef079478) + QAbstractItemModel (0x0x7fb6ef079548) 0 + primary-for QAbstractProxyModel (0x0x7fb6ef0794e0) + QObject (0x0x7fb6ef076780) 0 + primary-for QAbstractItemModel (0x0x7fb6ef079548) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7fb6ef0769c0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7fb6ef15c300) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7fb6ef148ea0) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7fb6ef15c2a0) 0 + primary-for QItemSelectionModel (0x0x7fb6ef148ea0) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7fb6ef19f068) 0 + QList (0x0x7fb6ef19f0d0) 0 + QListSpecialMethods (0x0x7fb6ef15cde0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7fb6ef209720) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7fb6eef5b900) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7fb6eefac8a0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7fb6eefacb40) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7fb6eeff0ea0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7fb6eeff0f00) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7fb6eeff0e40) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7fb6eed1ede0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7fb6eed1ee40) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7fb6eed8e660) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7fb6eed8e6c0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7fb6eed8e600) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7fb6eeaa2a20) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7fb6eeaae138) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7fb6eeaa29c0) 0 + primary-for QLibrary (0x0x7fb6eeaae138) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7fb6eeae68a0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7fb6eeae63c0) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7fb6eeba2000) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7fb6eeba2060) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7fb6eebefe40) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7fb6ee88a000) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7fb6ee8f23c0) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7fb6ee96c660) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7fb6eea0f7e0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7fb6eea0fa20) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7fb6eea0f9c0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7fb6eea0fe40) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7fb6ee6c5d80) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7fb6ee52f5a0) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7fb6ee52f600) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7fb6ee59be40) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7fb6ee5fb0c0) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7fb6ee5fb1e0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7fb6ee63b780) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7fb6ee62ed68) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7fb6ee63b720) 0 + primary-for QMimeData (0x0x7fb6ee62ed68) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7fb6ee63b960) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7fb6ee296a80) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7fb6ee296b40) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7fb6ee2ab0d0) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7fb6ee296ae0) 0 + primary-for QObjectCleanupHandler (0x0x7fb6ee2ab0d0) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7fb6ee296c60) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7fb6ee327420) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7fb6ee320958) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7fb6ee3209c0) 0 + primary-for QParallelAnimationGroup (0x0x7fb6ee320958) + QAbstractAnimation (0x0x7fb6ee320a28) 0 + primary-for QAnimationGroup (0x0x7fb6ee3209c0) + QObject (0x0x7fb6ee3273c0) 0 + primary-for QAbstractAnimation (0x0x7fb6ee320a28) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7fb6ee327660) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7fb6ee320a90) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7fb6ee320af8) 0 + primary-for QPauseAnimation (0x0x7fb6ee320a90) + QObject (0x0x7fb6ee327600) 0 + primary-for QAbstractAnimation (0x0x7fb6ee320af8) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7fb6ee35b2a0) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7fb6ee39a420) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7fb6ee38be38) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7fb6ee39a3c0) 0 + primary-for QPluginLoader (0x0x7fb6ee38be38) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7fb6ee39a540) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7fb6ee3fbba0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7fb6ee3fca90) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7fb6ee3fcaf8) 0 + primary-for QProcess (0x0x7fb6ee3fca90) + QObject (0x0x7fb6ee3fbb40) 0 + primary-for QIODevice (0x0x7fb6ee3fcaf8) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7fb6ee4382a0) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7fb6ee3fcb60) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7fb6ee3fcbc8) 0 + primary-for QVariantAnimation (0x0x7fb6ee3fcb60) + QObject (0x0x7fb6ee438240) 0 + primary-for QAbstractAnimation (0x0x7fb6ee3fcbc8) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7fb6ee438540) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7fb6ee3fcc98) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7fb6ee3fcd00) 0 + primary-for QPropertyAnimation (0x0x7fb6ee3fcc98) + QAbstractAnimation (0x0x7fb6ee3fcd68) 0 + primary-for QVariantAnimation (0x0x7fb6ee3fcd00) + QObject (0x0x7fb6ee4384e0) 0 + primary-for QAbstractAnimation (0x0x7fb6ee3fcd68) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7fb6ee0bfc60) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7fb6ee1ba9c0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7fb6ee1ba960) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7fb6edfb8720) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7fb6edde43c0) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7fb6edde4360) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7fb6ede56a28) 0 + QRandomGenerator (0x0x7fb6ed9e8ea0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7fb6eda0da80) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7fb6eda0dd20) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7fb6eda8f240) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7fb6eda8f720) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7fb6edafb540) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7fb6edb734e0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7fb6ed82d540) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7fb6ed8ea660) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7fb6ed8ea900) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7fb6ed8a3410) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7fb6ed8a3478) 0 + primary-for QSaveFile (0x0x7fb6ed8a3410) + QIODevice (0x0x7fb6ed8a34e0) 0 + primary-for QFileDevice (0x0x7fb6ed8a3478) + QObject (0x0x7fb6ed8ea8a0) 0 + primary-for QIODevice (0x0x7fb6ed8a34e0) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7fb6ed8eaf00) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7fb6ed9430c0) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7fb6ed646360) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7fb6ed647208) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7fb6ed647270) 0 + primary-for QSequentialAnimationGroup (0x0x7fb6ed647208) + QAbstractAnimation (0x0x7fb6ed6472d8) 0 + primary-for QAnimationGroup (0x0x7fb6ed647270) + QObject (0x0x7fb6ed646300) 0 + primary-for QAbstractAnimation (0x0x7fb6ed6472d8) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7fb6ed6465a0) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7fb6ed647340) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7fb6ed646540) 0 + primary-for QSettings (0x0x7fb6ed647340) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7fb6ed646a20) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7fb6ed6473a8) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7fb6ed6469c0) 0 + primary-for QSharedMemory (0x0x7fb6ed6473a8) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7fb6ed646c60) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7fb6ed647410) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7fb6ed646c00) 0 + primary-for QSignalMapper (0x0x7fb6ed647410) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7fb6ed646ea0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7fb6ed647478) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7fb6ed6474e0) 0 + primary-for QSignalTransition (0x0x7fb6ed647478) + QObject (0x0x7fb6ed646e40) 0 + primary-for QAbstractTransition (0x0x7fb6ed6474e0) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7fb6ed6ad180) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7fb6ed647548) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7fb6ed6ad120) 0 + primary-for QSocketNotifier (0x0x7fb6ed647548) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7fb6ed6ad3c0) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7fb6ed6475b0) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7fb6ed647618) 0 + primary-for QSortFilterProxyModel (0x0x7fb6ed6475b0) + QAbstractItemModel (0x0x7fb6ed647680) 0 + primary-for QAbstractProxyModel (0x0x7fb6ed647618) + QObject (0x0x7fb6ed6ad360) 0 + primary-for QAbstractItemModel (0x0x7fb6ed647680) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7fb6ed6ad7e0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7fb6ed71b120) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7fb6ed647820) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7fb6ed647888) 0 + primary-for QState (0x0x7fb6ed647820) + QObject (0x0x7fb6ed71b0c0) 0 + primary-for QAbstractState (0x0x7fb6ed647888) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7fb6ed71b5a0) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7fb6ed647a28) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7fb6ed71b600) 0 + primary-for QStateMachine::SignalEvent (0x0x7fb6ed647a28) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7fb6ed647a90) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7fb6ed71b660) 0 + primary-for QStateMachine::WrappedEvent (0x0x7fb6ed647a90) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7fb6ed6478f0) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7fb6ed647958) 0 + primary-for QStateMachine (0x0x7fb6ed6478f0) + QAbstractState (0x0x7fb6ed6479c0) 0 + primary-for QState (0x0x7fb6ed647958) + QObject (0x0x7fb6ed71b540) 0 + primary-for QAbstractState (0x0x7fb6ed6479c0) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7fb6ed71ba20) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7fb6ed7cda20) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7fb6ed455d80) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7fb6ed443bc8) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7fb6ed443c30) 0 + primary-for QStringListModel (0x0x7fb6ed443bc8) + QAbstractItemModel (0x0x7fb6ed443c98) 0 + primary-for QAbstractListModel (0x0x7fb6ed443c30) + QObject (0x0x7fb6ed455d20) 0 + primary-for QAbstractItemModel (0x0x7fb6ed443c98) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7fb6ed455ea0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7fb6ed455f60) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7fb6ed49d0c0) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7fb6ed443d00) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7fb6ed443d68) 0 + primary-for QTemporaryFile (0x0x7fb6ed443d00) + QFileDevice (0x0x7fb6ed443dd0) 0 + primary-for QFile (0x0x7fb6ed443d68) + QIODevice (0x0x7fb6ed443e38) 0 + primary-for QFileDevice (0x0x7fb6ed443dd0) + QObject (0x0x7fb6ed49d060) 0 + primary-for QIODevice (0x0x7fb6ed443e38) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7fb6ed49d420) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7fb6ed49dc60) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7fb6ed49dc00) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7fb6ed513660) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7fb6ed513840) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7fb6ed513a20) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7fb6ed4f9068) 0 + std::__mutex_base (0x0x7fb6ed513a80) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7fb6ed513c60) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7fb6ed513cc0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7fb6ed513d20) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7fb6ed568780) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7fb6ed4f90d0) 0 + std::__recursive_mutex_base (0x0x7fb6ed5687e0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7fb6ed526ee0) 0 + std::__mutex_base (0x0x7fb6ed568ba0) 0 + std::__timed_mutex_impl (0x0x7fb6ed568c00) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7fb6ed593230) 0 + std::__recursive_mutex_base (0x0x7fb6ed568f60) 0 + std::__timed_mutex_impl (0x0x7fb6ed59d000) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7fb6ed59d720) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7fb6ed4f9208) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7fb6ed59dc60) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7fb6ed4f9208) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7fb6ed4f9270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7fb6ed59dd80) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7fb6ed4f9270) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7fb6ed4f92d8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7fb6ed59dea0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7fb6ed4f92d8) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7fb6ed4f93a8) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7fb6ed5d6000) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7fb6ed4f93a8) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7fb6ed1f9060) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7fb6ed1f9360) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7fb6ed1f9660) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7fb6ed1f99c0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7fb6ed4f9410) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7fb6ed274ba0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7fb6ed4f9410) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7fb6ed2d9b40) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7fb6ed2d9f60) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7fb6ed01ade0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7fb6ed07d2a0) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7fb6ed07d300) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7fb6ed07d240) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7fb6ecf0d6c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7fb6ecf0da80) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7fb6ecf0dae0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7fb6ecc9dde0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7fb6ecca3c98) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7fb6ecca3d00) 0 + primary-for std::future_error (0x0x7fb6ecca3c98) + std::exception (0x0x7fb6eccc9540) 0 nearly-empty + primary-for std::logic_error (0x0x7fb6ecca3d00) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7fb6eccc9c60) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7fb6eccc9c00) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7fb6ecace3c0) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7fb6ecaca548) 0 + std::__at_thread_exit_elt (0x0x7fb6ecace480) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7fb6eccc9de0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7fb6eccc9ba0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7fb6ec25d270) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7fb6ec281480) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7fb6ec25d270) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7fb6ec281d20) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7fb6ec25d5b0) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7fb6ec281cc0) 0 + primary-for QThread (0x0x7fb6ec25d5b0) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7fb6ec2c1120) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7fb6ec25d618) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7fb6ec2c10c0) 0 + primary-for QThreadPool (0x0x7fb6ec25d618) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7fb6ec2c1300) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7fb6ec2c19c0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7fb6ec25d680) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7fb6ec2c1960) 0 + primary-for QTimeLine (0x0x7fb6ec25d680) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7fb6ec2c1c00) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7fb6ec25d6e8) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7fb6ec2c1ba0) 0 + primary-for QTimer (0x0x7fb6ec25d6e8) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7fb6ec3355a0) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7fb6ec335540) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7fb6ec3d4660) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7fb6ec3c3dd0) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7fb6ec3d4600) 0 + primary-for QTranslator (0x0x7fb6ec3c3dd0) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7fb6ec3d48a0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7fb6ec3c3e38) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7fb6ec3c3ea0) 0 + primary-for QTransposeProxyModel (0x0x7fb6ec3c3e38) + QAbstractItemModel (0x0x7fb6ec3c3f08) 0 + primary-for QAbstractProxyModel (0x0x7fb6ec3c3ea0) + QObject (0x0x7fb6ec3d4840) 0 + primary-for QAbstractItemModel (0x0x7fb6ec3c3f08) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7fb6ec3d4a80) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7fb6ec07b480) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7fb6ec07b5a0) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7fb6ec10a960) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7fb6ec17c5b0) 0 + QVector (0x0x7fb6ec1840c0) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7fb6ec1843c0) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7fb6ebe0a360) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7fb6ebe69360) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7fb6ebed2420) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7fb6ebed2480) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7fb6ebf2e360) 0 + +Class QAbstractItemModelTester::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModelTester::QPrivateSignal (0x0x7fb6ebf2e5a0) 0 empty + +Vtable for QAbstractItemModelTester +QAbstractItemModelTester::_ZTV24QAbstractItemModelTester: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractItemModelTester) +16 (int (*)(...))QAbstractItemModelTester::metaObject +24 (int (*)(...))QAbstractItemModelTester::qt_metacast +32 (int (*)(...))QAbstractItemModelTester::qt_metacall +40 (int (*)(...))QAbstractItemModelTester::~QAbstractItemModelTester +48 (int (*)(...))QAbstractItemModelTester::~QAbstractItemModelTester +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAbstractItemModelTester + size=16 align=8 + base size=16 base align=8 +QAbstractItemModelTester (0x0x7fb6ebf2d270) 0 + vptr=((& QAbstractItemModelTester::_ZTV24QAbstractItemModelTester) + 16) + QObject (0x0x7fb6ebf2e540) 0 + primary-for QAbstractItemModelTester (0x0x7fb6ebf2d270) + +Class QTest::QBenchmarkIterationController + size=4 align=4 + base size=4 base align=4 +QTest::QBenchmarkIterationController (0x0x7fb6ebf2e7e0) 0 + +Class QTestEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTestEventLoop::QPrivateSignal (0x0x7fb6ebf2e8a0) 0 empty + +Vtable for QTestEventLoop +QTestEventLoop::_ZTV14QTestEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTestEventLoop) +16 (int (*)(...))QTestEventLoop::metaObject +24 (int (*)(...))QTestEventLoop::qt_metacast +32 (int (*)(...))QTestEventLoop::qt_metacall +40 (int (*)(...))QTestEventLoop::~QTestEventLoop +48 (int (*)(...))QTestEventLoop::~QTestEventLoop +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTestEventLoop::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTestEventLoop + size=32 align=8 + base size=32 base align=8 +QTestEventLoop (0x0x7fb6ebf2d2d8) 0 + vptr=((& QTestEventLoop::_ZTV14QTestEventLoop) + 16) + QObject (0x0x7fb6ebf2e840) 0 + primary-for QTestEventLoop (0x0x7fb6ebf2d2d8) + +Vtable for QSignalSpy +QSignalSpy::_ZTV10QSignalSpy: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QSignalSpy) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QSignalSpy::qt_metacall +40 (int (*)(...))QSignalSpy::~QSignalSpy +48 (int (*)(...))QSignalSpy::~QSignalSpy +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalSpy + size=80 align=8 + base size=73 base align=8 +QSignalSpy (0x0x7fb6ebf96e00) 0 + vptr=((& QSignalSpy::_ZTV10QSignalSpy) + 16) + QObject (0x0x7fb6ebf80e40) 0 + primary-for QSignalSpy (0x0x7fb6ebf96e00) + QList > (0x0x7fb6ebfa32d8) 16 + QListSpecialMethods > (0x0x7fb6ebf80ea0) 16 empty + +Class QTestData + size=8 align=8 + base size=8 base align=8 +QTestData (0x0x7fb6ebc7c2a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebd49540) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebd498a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebd49a80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebd49de0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebd82000) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebd82360) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebd82540) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebd828a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebd82a80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebd82de0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebdba000) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebdba360) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebdba540) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebdba8a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6ebdbaa80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6ebdbade0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb914300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb914660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb9147e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb914b40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb914cc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb949060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb9491e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb949540) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb9496c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb949a20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb949ba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb949f00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb97a0c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb97a420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7fb6eb97a5a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7fb6eb97a900) 0 empty + diff --git a/tests/auto/bic/data/QtWidgets.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtWidgets.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..1033bac08c --- /dev/null +++ b/tests/auto/bic/data/QtWidgets.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,19561 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f8bbfb75600) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f8bbfbcbd80) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f8bbfbf3000) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f8bbfbf3240) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f8bbfbf3480) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f8bbfbf3600) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f8bbfbf39c0) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f8bbfc31ae0) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f8bbfcb41e0) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f8bbfcb42a0) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f8bbfcb4660) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f8bbfcb46c0) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f8bbfcb4720) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f8bbfcb4780) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f8bbfcb47e0) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f8bbfcb48a0) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f8bbfcb4960) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f8bbfcb4a20) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f8bbfcb4ae0) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f8bbfcb4e40) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f8bbfcf01e0) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f8bbfcf0240) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f8bbfcf07e0) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f8bbfcf0e40) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f8bbfce76e8) 0 empty + std::__nonesuch (0x0x7f8bbfd39360) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f8bbfd83cc0) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f8bbfd83d20) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f8bbf3e1a20) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f8bbf3e1a80) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f8bbfce7bc8) 0 empty + std::input_iterator_tag (0x0x7f8bbf3e1ae0) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f8bbfce7c30) 0 empty + std::forward_iterator_tag (0x0x7f8bbfce7c98) 0 empty + std::input_iterator_tag (0x0x7f8bbf3e1b40) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f8bbfce7d00) 0 empty + std::bidirectional_iterator_tag (0x0x7f8bbfce7d68) 0 empty + std::forward_iterator_tag (0x0x7f8bbfce7dd0) 0 empty + std::input_iterator_tag (0x0x7f8bbf3e1ba0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f8bbf4926c0) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f8bbf4927e0) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f8bbf492ae0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f8bbf492de0) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f8bbf492f00) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f8bbf54e240) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f8bbf54e540) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f8bbf54e5a0) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f8bbf54e660) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f8bbf54e6c0) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f8bbf54e720) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f8bbf54e780) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f8bbf54ea20) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f8bbf54ecc0) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f8bbf54ed20) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f8bbf5afae0) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f8bbf44b138) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f8bbf5afcc0) 0 nearly-empty + primary-for std::bad_exception (0x0x7f8bbf44b138) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f8bbf5afea0) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f8bbf44b1a0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f8bbf24e2a0) 0 nearly-empty + primary-for std::bad_cast (0x0x7f8bbf44b1a0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f8bbf44b208) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f8bbf24e480) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f8bbf44b208) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f8bbf24e660) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f8bbf24ec00) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f8bbf44b270) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f8bbf27f300) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f8bbf44b270) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f8bbf44b2d8) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f8bbf44b340) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f8bbf44b2d8) + std::exception (0x0x7f8bbf27f4e0) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f8bbf44b340) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f8bbf27f6c0) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f8bbf27f8a0) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f8bbf2f7d80) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f8bbf0d5840) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f8bbf0d5900) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f8bbef972a0) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f8bbef973c0) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f8bbef97720) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f8bbef97c60) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f8bbec0f420) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f8bbeca5840) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f8bbec541a0) 0 + std::__atomic_flag_base (0x0x7f8bbeca58a0) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f8bbec548f0) 0 + QAtomicInteger (0x0x7f8bbec54958) 0 + QBasicAtomicInteger (0x0x7f8bbe7d8840) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f8bbe3f4b40) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f8bbe462120) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f8bbe462840) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f8bbe42b4e0) 0 + QGenericArgument (0x0x7f8bbe462ae0) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f8bbe462f00) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f8bbe4c0360) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f8bbe529e40) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f8bbe54b120) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f8bbe1f8f00) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f8bbe2182a0) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f8bbe27d5a0) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f8bbe32dde0) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f8bbe32dea0) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f8bbe020000) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f8bbe0200c0) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f8bbe020120) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f8bbe020180) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f8bbe0201e0) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f8bbe020300) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f8bbe020360) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f8bbe161300) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f8bbe161360) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f8bbdf193c0) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f8bbdf19540) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f8bbdc946c0) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f8bbdc94a80) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f8bbdc94d20) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f8bbdc94f00) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f8bbdcedf00) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f8bbdcf0478) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f8bbdd38000) 0 nearly-empty + primary-for std::logic_error (0x0x7f8bbdcf0478) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f8bbdcf04e0) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f8bbdcf0548) 0 + primary-for std::domain_error (0x0x7f8bbdcf04e0) + std::exception (0x0x7f8bbdd38060) 0 nearly-empty + primary-for std::logic_error (0x0x7f8bbdcf0548) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f8bbdcf05b0) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f8bbdcf0618) 0 + primary-for std::invalid_argument (0x0x7f8bbdcf05b0) + std::exception (0x0x7f8bbdd380c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f8bbdcf0618) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f8bbdcf0680) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f8bbdcf06e8) 0 + primary-for std::length_error (0x0x7f8bbdcf0680) + std::exception (0x0x7f8bbdd38120) 0 nearly-empty + primary-for std::logic_error (0x0x7f8bbdcf06e8) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f8bbdcf0750) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f8bbdcf07b8) 0 + primary-for std::out_of_range (0x0x7f8bbdcf0750) + std::exception (0x0x7f8bbdd38180) 0 nearly-empty + primary-for std::logic_error (0x0x7f8bbdcf07b8) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f8bbdcf0820) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f8bbdd381e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f8bbdcf0820) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f8bbdcf0888) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f8bbdcf08f0) 0 + primary-for std::range_error (0x0x7f8bbdcf0888) + std::exception (0x0x7f8bbdd38240) 0 nearly-empty + primary-for std::runtime_error (0x0x7f8bbdcf08f0) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f8bbdcf0958) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f8bbdcf09c0) 0 + primary-for std::overflow_error (0x0x7f8bbdcf0958) + std::exception (0x0x7f8bbdd382a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f8bbdcf09c0) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f8bbdcf0a28) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f8bbdcf0a90) 0 + primary-for std::underflow_error (0x0x7f8bbdcf0a28) + std::exception (0x0x7f8bbdd38300) 0 nearly-empty + primary-for std::runtime_error (0x0x7f8bbdcf0a90) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f8bbdd38480) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f8bbdd387e0) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f8bbdd83060) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f8bbdcf0ea0) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f8bbdcf0f08) 0 + primary-for std::system_error (0x0x7f8bbdcf0ea0) + std::exception (0x0x7f8bbdd83c00) 0 nearly-empty + primary-for std::runtime_error (0x0x7f8bbdcf0f08) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f8bbddc81a0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f8bbddc8208) 0 + primary-for std::ios_base::failure (0x0x7f8bbddc81a0) + std::runtime_error (0x0x7f8bbddc8270) 0 + primary-for std::system_error (0x0x7f8bbddc8208) + std::exception (0x0x7f8bbd9de1e0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f8bbddc8270) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f8bbd9de240) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f8bbd9de2a0) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f8bbd9de300) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f8bbd9de180) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f8bbdaafc00) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f8bbdb59de0) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f8bbd722958 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f8bbd722a28 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f8bbd7626e8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f8bbd7627b8 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f8bbd78f780) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f8bbd78f7e0) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f8bbd4baba0) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f8bbd55ea20) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f8bbd55eea0) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f8bbd231c60) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f8bbd2d16c0) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f8bbd2d1660) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f8bbd0b0840) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f8bbce530c0) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f8bbcc6d3c0) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f8bbcc6d480) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f8bbcd2c960) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f8bbcee3af8) 0 + std::iterator (0x0x7f8bbcd4e0c0) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f8bbcee3c30) 0 + std::_Bit_iterator_base (0x0x7f8bbcee3c98) 0 + std::iterator (0x0x7f8bbcd4e720) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f8bbcee3d00) 0 + std::_Bit_iterator_base (0x0x7f8bbcee3d68) 0 + std::iterator (0x0x7f8bbcd4ef00) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f8bbcb675a0) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f8bbc830360) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f8bbc8303c0) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f8bbc9f4820) 0 empty + QListData::NotIndirectLayout (0x0x7f8bbc830420) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f8bbc82a070) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f8bbc830480) 0 empty + QListData::NotIndirectLayout (0x0x7f8bbc8304e0) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f8bbc9f4888) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f8bbc830540) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f8bbc8305a0) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f8bbc830300) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f8bbc922780) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f8bbc5fdde0) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f8bbc5fdd80) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f8bbc60f548) 0 + QList (0x0x7f8bbc60f5b0) 0 + QListSpecialMethods (0x0x7f8bbc62a060) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f8bbc6b8ba0) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f8bbc74dcc0) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f8bbc76f060) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f8bbc54a600) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f8bbc54a660) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f8bbc54a7e0) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f8bbc54a8a0) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f8bbc4d68f0) 0 + std::__uses_alloc_base (0x0x7f8bbc54a840) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f8bbc2adc00) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f8bbc3760c0) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f8bbc376420) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f8bbc376960) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f8bbc376ea0) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f8bbbfff0c0) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f8bbbfff780) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f8bbc09a600) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f8bbc0edcc0) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f8bbc169240) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f8bbbc37060) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f8bbbd32ae0) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f8bbbd32b40) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f8bbbd32d20) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f8bbbd32cc0) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f8bbba0cb40) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f8bbba0ccc0) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f8bbba2e5a0) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f8bbb9edaf8) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f8bbba2e540) 0 + primary-for QAbstractAnimation (0x0x7f8bbb9edaf8) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f8bbba2e960) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f8bbb9edb60) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f8bbba2e900) 0 + primary-for QAnimationDriver (0x0x7f8bbb9edb60) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f8bbba2eba0) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f8bbb9edbc8) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f8bbba2eb40) 0 + primary-for QEventLoop (0x0x7f8bbb9edbc8) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f8bbba84480) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f8bbba84540) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f8bbba845a0) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f8bbb9edd00) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f8bbba844e0) 0 + primary-for QAbstractEventDispatcher (0x0x7f8bbb9edd00) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f8bbbb1c680) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f8bbbb13c00) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f8bbbb1c680) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f8bbbb13cc0) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f8bbbb13d20) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f8bbbb47060) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f8bbb945000) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f8bbb945c60) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f8bbb63a600) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f8bbb63a5a0) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f8bbb63a8a0) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f8bbb746e40) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f8bbb746f00) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f8bbb746ea0) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f8bbb746f60) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f8bbb746de0) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f8bbb4be240) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f8bbb5018a0) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f8bbb501840) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f8bbb5019c0) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f8bbb501960) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f8bbb5cfb40) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f8bbb23f780) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f8bbb30d5a0) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f8bbb313270) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f8bbb30d540) 0 + primary-for QAbstractItemModel (0x0x7f8bbb313270) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f8bbb3c9960) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f8bbb313888) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f8bbb3138f0) 0 + primary-for QAbstractTableModel (0x0x7f8bbb313888) + QObject (0x0x7f8bbb3c9900) 0 + primary-for QAbstractItemModel (0x0x7f8bbb3138f0) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f8bbb3c9ae0) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f8bbb313958) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f8bbb3139c0) 0 + primary-for QAbstractListModel (0x0x7f8bbb313958) + QObject (0x0x7f8bbb3c9a80) 0 + primary-for QAbstractItemModel (0x0x7f8bbb3139c0) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f8bbb00a240) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f8bbb00a300) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f8bbb313a90) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f8bbb313af8) 0 + primary-for QAbstractProxyModel (0x0x7f8bbb313a90) + QObject (0x0x7f8bbb00a2a0) 0 + primary-for QAbstractItemModel (0x0x7f8bbb313af8) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f8bbb00a540) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f8bbb313b60) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7f8bbb00a4e0) 0 + primary-for QAbstractState (0x0x7f8bbb313b60) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f8bbb00a780) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f8bbb313bc8) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7f8bbb00a720) 0 + primary-for QAbstractTransition (0x0x7f8bbb313bc8) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f8bbb00aa80) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f8bbb313c30) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f8bbb313c98) 0 + primary-for QAnimationGroup (0x0x7f8bbb313c30) + QObject (0x0x7f8bbb00aa20) 0 + primary-for QAbstractAnimation (0x0x7f8bbb313c98) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f8bbb0b5de0) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f8bbb1141e0) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f8bbb172660) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f8bbb1bca20) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f8bbb1c9208) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f8bbb1bc9c0) 0 + primary-for QIODevice (0x0x7f8bbb1c9208) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f8bbae093c0) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f8bbb1c9340) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f8bbb1c93a8) 0 + primary-for QBuffer (0x0x7f8bbb1c9340) + QObject (0x0x7f8bbae09360) 0 + primary-for QIODevice (0x0x7f8bbb1c93a8) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f8bbae09660) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f8bbae09600) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f8bbae097e0) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f8bbae09780) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f8bbae566c0) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f8bbae97660) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f8bbaeeaf00) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f8bbaf55ba0) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f8bbaf55c00) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f8bbaf55b40) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f8bbac44300) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f8bbad438a0) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f8bbada8180) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f8bbaa19c60) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f8bbaa62900) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f8bbaa62a80) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f8bbab216c0) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f8bbab21660) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f8bba8c4720) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f8bba8c47e0) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f8bba943ae0) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f8bba9732a0) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f8bba629180) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f8bba662f00) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f8bba6e4960) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f8bba426900) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7f8bba4b2480) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f8bba4b2540) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f8bba327540) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f8bba399f60) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f8bba3cc000) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f8bba399f00) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f8bba0b19c0) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f8bba0b1a20) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f8bba0b1960) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f8bb9ec9180) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f8bb9f86120) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f8bb9f86e40) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f8bb9c1bf60) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f8bb9c3a180) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f8bb9d34720) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f8bb9d8be40) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f8bb9d8d548) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f8bb9dce240) 0 + primary-for QTimerEvent (0x0x7f8bb9d8d548) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f8bb9d8d5b0) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f8bb9dce300) 0 + primary-for QChildEvent (0x0x7f8bb9d8d5b0) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f8bb9d8daf8) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f8bb9dce960) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f8bb9d8daf8) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f8bb9d8db60) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f8bb9dcea20) 0 + primary-for QDeferredDeleteEvent (0x0x7f8bb9d8db60) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f8bb9dceb40) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f8bb9d8dbc8) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f8bb9dceae0) 0 + primary-for QCoreApplication (0x0x7f8bb9d8dbc8) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f8bb9dced80) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f8bb9dcef00) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f8bb9d8dc30) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f8bb9d8dc98) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f8bb9d8dc30) + QObject (0x0x7f8bb9dceea0) 0 + primary-for QAbstractItemModel (0x0x7f8bb9d8dc98) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f8bb9a30120) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f8bb9a30240) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f8bb9a303c0) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f8bb9a8eae0) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f8bb9ac0240) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f8bb97dcf60) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f8bb97deea0) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f8bb97def08) 0 + primary-for QFileDevice (0x0x7f8bb97deea0) + QObject (0x0x7f8bb97dcf00) 0 + primary-for QIODevice (0x0x7f8bb97def08) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f8bb98158a0) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f8bb981c068) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f8bb981c0d0) 0 + primary-for QFile (0x0x7f8bb981c068) + QIODevice (0x0x7f8bb981c138) 0 + primary-for QFileDevice (0x0x7f8bb981c0d0) + QObject (0x0x7f8bb9815840) 0 + primary-for QIODevice (0x0x7f8bb981c138) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f8bb9815f00) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f8bb98c7300) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f8bb9976660) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f8bb9976de0) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f8bb96aef00) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f8bb968b3a8) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7f8bb968b410) 0 + primary-for QEventTransition (0x0x7f8bb968b3a8) + QObject (0x0x7f8bb96aeea0) 0 + primary-for QAbstractTransition (0x0x7f8bb968b410) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f8bb968b478) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f8bb96e4120) 0 nearly-empty + primary-for QException (0x0x7f8bb968b478) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f8bb968b4e0) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f8bb968b548) 0 nearly-empty + primary-for QUnhandledException (0x0x7f8bb968b4e0) + std::exception (0x0x7f8bb96e4180) 0 nearly-empty + primary-for QException (0x0x7f8bb968b548) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f8bb96e41e0) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f8bb96e42a0) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f8bb96e4300) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f8bb96e4540) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f8bb968b5b0) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f8bb96e44e0) 0 + primary-for QFileSelector (0x0x7f8bb968b5b0) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f8bb96e4780) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f8bb968b618) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f8bb96e4720) 0 + primary-for QFileSystemWatcher (0x0x7f8bb968b618) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f8bb96e49c0) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f8bb968b680) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7f8bb968b6e8) 0 + primary-for QFinalState (0x0x7f8bb968b680) + QObject (0x0x7f8bb96e4960) 0 + primary-for QAbstractState (0x0x7f8bb968b6e8) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f8bb96e4ba0) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f8bb96e4e40) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f8bb968b7b8) 0 + QBasicMutex (0x0x7f8bb9760ae0) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f8bb9760d20) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f8bb97b71e0) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f8bb97b77e0) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f8bb97b79c0) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f8bb94481e0) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f8bb94ed4e0) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f8bb9449dd0) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f8bb94ed480) 0 + primary-for QFutureWatcherBase (0x0x7f8bb9449dd0) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f8bb9518840) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f8bb9507618) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7f8bb9507680) 0 + primary-for QHistoryState (0x0x7f8bb9507618) + QObject (0x0x7f8bb95187e0) 0 + primary-for QAbstractState (0x0x7f8bb9507680) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f8bb9518b40) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f8bb95076e8) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f8bb9507750) 0 + primary-for QIdentityProxyModel (0x0x7f8bb95076e8) + QAbstractItemModel (0x0x7f8bb95077b8) 0 + primary-for QAbstractProxyModel (0x0x7f8bb9507750) + QObject (0x0x7f8bb9518ae0) 0 + primary-for QAbstractItemModel (0x0x7f8bb95077b8) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f8bb9518d20) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f8bb91fe660) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f8bb9205138) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f8bb91fe600) 0 + primary-for QItemSelectionModel (0x0x7f8bb9205138) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f8bb92052d8) 0 + QList (0x0x7f8bb9205340) 0 + QListSpecialMethods (0x0x7f8bb9249180) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f8bb92aca80) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f8bb8ffbc60) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f8bb9038c00) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f8bb9038ea0) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f8bb90b0240) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f8bb90b02a0) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f8bb90b01e0) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f8bb8ddf180) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f8bb8ddf1e0) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f8bb8e329c0) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f8bb8e32a20) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f8bb8e32960) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f8bb8f3dd80) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f8bb8f503a8) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f8bb8f3dd20) 0 + primary-for QLibrary (0x0x7f8bb8f503a8) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f8bb8f6fc00) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f8bb8f6f720) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f8bb8c3f360) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f8bb8c3f3c0) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f8bb8cb81e0) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f8bb8d27360) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f8bb8d92720) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f8bb8a0a9c0) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f8bb8ab1b40) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f8bb8ab1d80) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f8bb8ab1d20) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f8bb8b1e1e0) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f8bb8b9e120) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f8bb85d1900) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f8bb85d1960) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f8bb865b1e0) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f8bb869d420) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f8bb869d540) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f8bb86d9ae0) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f8bb86f0000) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f8bb86d9a80) 0 + primary-for QMimeData (0x0x7f8bb86f0000) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f8bb86d9cc0) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f8bb8739de0) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f8bb8739ea0) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f8bb874f340) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f8bb8739e40) 0 + primary-for QObjectCleanupHandler (0x0x7f8bb874f340) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f8bb8768000) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f8bb87c9780) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f8bb87c0bc8) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f8bb87c0c30) 0 + primary-for QParallelAnimationGroup (0x0x7f8bb87c0bc8) + QAbstractAnimation (0x0x7f8bb87c0c98) 0 + primary-for QAnimationGroup (0x0x7f8bb87c0c30) + QObject (0x0x7f8bb87c9720) 0 + primary-for QAbstractAnimation (0x0x7f8bb87c0c98) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f8bb87c99c0) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f8bb87c0d00) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f8bb87c0d68) 0 + primary-for QPauseAnimation (0x0x7f8bb87c0d00) + QObject (0x0x7f8bb87c9960) 0 + primary-for QAbstractAnimation (0x0x7f8bb87c0d68) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f8bb83f9600) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f8bb843e780) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f8bb84490d0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f8bb843e720) 0 + primary-for QPluginLoader (0x0x7f8bb84490d0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f8bb843e8a0) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f8bb849af00) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f8bb849dd00) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f8bb849dd68) 0 + primary-for QProcess (0x0x7f8bb849dd00) + QObject (0x0x7f8bb849aea0) 0 + primary-for QIODevice (0x0x7f8bb849dd68) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f8bb84db600) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f8bb849ddd0) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f8bb849de38) 0 + primary-for QVariantAnimation (0x0x7f8bb849ddd0) + QObject (0x0x7f8bb84db5a0) 0 + primary-for QAbstractAnimation (0x0x7f8bb849de38) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f8bb84db8a0) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f8bb849df08) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f8bb849df70) 0 + primary-for QPropertyAnimation (0x0x7f8bb849df08) + QAbstractAnimation (0x0x7f8bb84fb000) 0 + primary-for QVariantAnimation (0x0x7f8bb849df70) + QObject (0x0x7f8bb84db840) 0 + primary-for QAbstractAnimation (0x0x7f8bb84fb000) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f8bb8589000) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f8bb825ed20) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f8bb825ecc0) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f8bb8048a80) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f8bb7e89720) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f8bb7e896c0) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f8bb7efcc98) 0 + QRandomGenerator (0x0x7f8bb7f2a240) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f8bb7f2ade0) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f8bb7faa0c0) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f8bb7faa5a0) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f8bb7faaa80) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f8bb7c1a8a0) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f8bb7c92840) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f8bb7d4c8a0) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f8bb7a059c0) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f8bb7a05c60) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f8bb7dca680) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f8bb7dca6e8) 0 + primary-for QSaveFile (0x0x7f8bb7dca680) + QIODevice (0x0x7f8bb7dca750) 0 + primary-for QFileDevice (0x0x7f8bb7dca6e8) + QObject (0x0x7f8bb7a05c00) 0 + primary-for QIODevice (0x0x7f8bb7dca750) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f8bb7a5f2a0) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f8bb7a5f420) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f8bb7b6b6c0) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f8bb7b6d478) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f8bb7b6d4e0) 0 + primary-for QSequentialAnimationGroup (0x0x7f8bb7b6d478) + QAbstractAnimation (0x0x7f8bb7b6d548) 0 + primary-for QAnimationGroup (0x0x7f8bb7b6d4e0) + QObject (0x0x7f8bb7b6b660) 0 + primary-for QAbstractAnimation (0x0x7f8bb7b6d548) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f8bb7b6b900) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f8bb7b6d5b0) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f8bb7b6b8a0) 0 + primary-for QSettings (0x0x7f8bb7b6d5b0) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f8bb7b6bd80) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f8bb7b6d618) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f8bb7b6bd20) 0 + primary-for QSharedMemory (0x0x7f8bb7b6d618) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f8bb7bb9000) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f8bb7b6d680) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f8bb7b6bf60) 0 + primary-for QSignalMapper (0x0x7f8bb7b6d680) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f8bb7bb9240) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f8bb7b6d6e8) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7f8bb7b6d750) 0 + primary-for QSignalTransition (0x0x7f8bb7b6d6e8) + QObject (0x0x7f8bb7bb91e0) 0 + primary-for QAbstractTransition (0x0x7f8bb7b6d750) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f8bb7bb94e0) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f8bb7b6d7b8) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f8bb7bb9480) 0 + primary-for QSocketNotifier (0x0x7f8bb7b6d7b8) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f8bb7bb9720) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f8bb7b6d820) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f8bb7b6d888) 0 + primary-for QSortFilterProxyModel (0x0x7f8bb7b6d820) + QAbstractItemModel (0x0x7f8bb7b6d8f0) 0 + primary-for QAbstractProxyModel (0x0x7f8bb7b6d888) + QObject (0x0x7f8bb7bb96c0) 0 + primary-for QAbstractItemModel (0x0x7f8bb7b6d8f0) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f8bb7bb9b40) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f8bb7833480) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f8bb7b6da90) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7f8bb7b6daf8) 0 + primary-for QState (0x0x7f8bb7b6da90) + QObject (0x0x7f8bb7833420) 0 + primary-for QAbstractState (0x0x7f8bb7b6daf8) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f8bb7833900) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f8bb7b6dc98) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7f8bb7833960) 0 + primary-for QStateMachine::SignalEvent (0x0x7f8bb7b6dc98) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f8bb7b6dd00) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7f8bb78339c0) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f8bb7b6dd00) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f8bb7b6db60) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7f8bb7b6dbc8) 0 + primary-for QStateMachine (0x0x7f8bb7b6db60) + QAbstractState (0x0x7f8bb7b6dc30) 0 + primary-for QState (0x0x7f8bb7b6dbc8) + QObject (0x0x7f8bb78338a0) 0 + primary-for QAbstractState (0x0x7f8bb7b6dc30) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f8bb7833d80) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f8bb78eed80) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f8bb799e120) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f8bb795fe38) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f8bb795fea0) 0 + primary-for QStringListModel (0x0x7f8bb795fe38) + QAbstractItemModel (0x0x7f8bb795ff08) 0 + primary-for QAbstractListModel (0x0x7f8bb795fea0) + QObject (0x0x7f8bb799e0c0) 0 + primary-for QAbstractItemModel (0x0x7f8bb795ff08) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f8bb799e240) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f8bb799e300) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f8bb799e420) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f8bb795ff70) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f8bb75d0000) 0 + primary-for QTemporaryFile (0x0x7f8bb795ff70) + QFileDevice (0x0x7f8bb75d0068) 0 + primary-for QFile (0x0x7f8bb75d0000) + QIODevice (0x0x7f8bb75d00d0) 0 + primary-for QFileDevice (0x0x7f8bb75d0068) + QObject (0x0x7f8bb799e3c0) 0 + primary-for QIODevice (0x0x7f8bb75d00d0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f8bb799e780) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f8bb7620000) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f8bb799ef60) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f8bb76209c0) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f8bb7620ba0) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f8bb7620d80) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f8bb75d02d8) 0 + std::__mutex_base (0x0x7f8bb7620de0) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f8bb7679000) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f8bb7679060) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f8bb76790c0) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f8bb7679ae0) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f8bb75d0340) 0 + std::__recursive_mutex_base (0x0x7f8bb7679b40) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f8bb7662e70) 0 + std::__mutex_base (0x0x7f8bb7679f00) 0 + std::__timed_mutex_impl (0x0x7f8bb7679f60) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f8bb76bd1c0) 0 + std::__recursive_mutex_base (0x0x7f8bb76c0300) 0 + std::__timed_mutex_impl (0x0x7f8bb76c0360) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f8bb76c0a80) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f8bb75d0478) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f8bb76f6000) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f8bb75d0478) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f8bb75d04e0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f8bb76f6120) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f8bb75d04e0) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f8bb75d0548) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f8bb76f6240) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f8bb75d0548) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f8bb75d0618) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f8bb76f6360) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f8bb75d0618) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f8bb771b3c0) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f8bb771b6c0) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f8bb771b9c0) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f8bb771bd20) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f8bb75d0680) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f8bb7795f00) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f8bb75d0680) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f8bb73f9ea0) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f8bb7429300) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f8bb756e180) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f8bb759c600) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f8bb759c660) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f8bb759c5a0) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f8bb702da20) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f8bb702dde0) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f8bb702de40) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f8bb6de4180) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f8bb71c8f08) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f8bb71c8f70) 0 + primary-for std::future_error (0x0x7f8bb71c8f08) + std::exception (0x0x7f8bb6de48a0) 0 nearly-empty + primary-for std::logic_error (0x0x7f8bb71c8f70) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f8bb6e18000) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f8bb6de4f60) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f8bb6bf1720) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f8bb6bee7b8) 0 + std::__at_thread_exit_elt (0x0x7f8bb6bf17e0) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f8bb6e18180) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f8bb6de4f00) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f8bb676f4e0) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f8bb679b7e0) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f8bb676f4e0) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f8bb63d10c0) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f8bb676f820) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f8bb63d1060) 0 + primary-for QThread (0x0x7f8bb676f820) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f8bb63d1480) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f8bb676f888) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f8bb63d1420) 0 + primary-for QThreadPool (0x0x7f8bb676f888) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f8bb63d1660) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f8bb63d1d20) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f8bb676f8f0) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f8bb63d1cc0) 0 + primary-for QTimeLine (0x0x7f8bb676f8f0) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f8bb63d1f60) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f8bb676f958) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f8bb63d1f00) 0 + primary-for QTimer (0x0x7f8bb676f958) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f8bb6457900) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f8bb64578a0) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f8bb64f89c0) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f8bb6505068) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f8bb64f8960) 0 + primary-for QTranslator (0x0x7f8bb6505068) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f8bb64f8c00) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f8bb65050d0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f8bb6505138) 0 + primary-for QTransposeProxyModel (0x0x7f8bb65050d0) + QAbstractItemModel (0x0x7f8bb65051a0) 0 + primary-for QAbstractProxyModel (0x0x7f8bb6505138) + QObject (0x0x7f8bb64f8ba0) 0 + primary-for QAbstractItemModel (0x0x7f8bb65051a0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f8bb64f8de0) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f8bb659d7e0) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f8bb659d900) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f8bb622bcc0) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f8bb62a0820) 0 + QVector (0x0x7f8bb62a7420) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f8bb62a7720) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f8bb632e6c0) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f8bb63886c0) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f8bb5ff6780) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f8bb5ff67e0) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f8bb604d6c0) 0 + +Class QRgba64 + size=8 align=8 + base size=8 base align=8 +QRgba64 (0x0x7f8bb604dcc0) 0 + +Class QColor + size=16 align=4 + base size=14 base align=4 +QColor (0x0x7f8bb6107d20) 0 + +Class QRegion::QRegionData + size=16 align=8 + base size=16 base align=8 +QRegion::QRegionData (0x0x7f8bb61b51e0) 0 + +Class QRegion + size=8 align=8 + base size=8 base align=8 +QRegion (0x0x7f8bb61b5180) 0 + +Class QKeySequence + size=8 align=8 + base size=8 base align=8 +QKeySequence (0x0x7f8bb5e88de0) 0 + +Class QVector2D + size=8 align=4 + base size=8 base align=4 +QVector2D (0x0x7f8bb5f75960) 0 + +Class QTouchDevice + size=8 align=8 + base size=8 base align=8 +QTouchDevice (0x0x7f8bb5be0a20) 0 + +Vtable for QInputEvent +QInputEvent::_ZTV11QInputEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QInputEvent) +16 (int (*)(...))QInputEvent::~QInputEvent +24 (int (*)(...))QInputEvent::~QInputEvent + +Class QInputEvent + size=32 align=8 + base size=32 base align=8 +QInputEvent (0x0x7f8bb5fcca90) 0 + vptr=((& QInputEvent::_ZTV11QInputEvent) + 16) + QEvent (0x0x7f8bb5c2b300) 0 + primary-for QInputEvent (0x0x7f8bb5fcca90) + +Vtable for QEnterEvent +QEnterEvent::_ZTV11QEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QEnterEvent) +16 (int (*)(...))QEnterEvent::~QEnterEvent +24 (int (*)(...))QEnterEvent::~QEnterEvent + +Class QEnterEvent + size=72 align=8 + base size=72 base align=8 +QEnterEvent (0x0x7f8bb5fccaf8) 0 + vptr=((& QEnterEvent::_ZTV11QEnterEvent) + 16) + QEvent (0x0x7f8bb5c2b4e0) 0 + primary-for QEnterEvent (0x0x7f8bb5fccaf8) + +Vtable for QMouseEvent +QMouseEvent::_ZTV11QMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMouseEvent) +16 (int (*)(...))QMouseEvent::~QMouseEvent +24 (int (*)(...))QMouseEvent::~QMouseEvent + +Class QMouseEvent + size=104 align=8 + base size=100 base align=8 +QMouseEvent (0x0x7f8bb5fccb60) 0 + vptr=((& QMouseEvent::_ZTV11QMouseEvent) + 16) + QInputEvent (0x0x7f8bb5fccbc8) 0 + primary-for QMouseEvent (0x0x7f8bb5fccb60) + QEvent (0x0x7f8bb5c2b8a0) 0 + primary-for QInputEvent (0x0x7f8bb5fccbc8) + +Vtable for QHoverEvent +QHoverEvent::_ZTV11QHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHoverEvent) +16 (int (*)(...))QHoverEvent::~QHoverEvent +24 (int (*)(...))QHoverEvent::~QHoverEvent + +Class QHoverEvent + size=64 align=8 + base size=64 base align=8 +QHoverEvent (0x0x7f8bb5fccc30) 0 + vptr=((& QHoverEvent::_ZTV11QHoverEvent) + 16) + QInputEvent (0x0x7f8bb5fccc98) 0 + primary-for QHoverEvent (0x0x7f8bb5fccc30) + QEvent (0x0x7f8bb5c2bd80) 0 + primary-for QInputEvent (0x0x7f8bb5fccc98) + +Vtable for QWheelEvent +QWheelEvent::_ZTV11QWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWheelEvent) +16 (int (*)(...))QWheelEvent::~QWheelEvent +24 (int (*)(...))QWheelEvent::~QWheelEvent + +Class QWheelEvent + size=96 align=8 + base size=96 base align=8 +QWheelEvent (0x0x7f8bb5fccd00) 0 + vptr=((& QWheelEvent::_ZTV11QWheelEvent) + 16) + QInputEvent (0x0x7f8bb5fccd68) 0 + primary-for QWheelEvent (0x0x7f8bb5fccd00) + QEvent (0x0x7f8bb5c2bf60) 0 + primary-for QInputEvent (0x0x7f8bb5fccd68) + +Vtable for QTabletEvent +QTabletEvent::_ZTV12QTabletEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTabletEvent) +16 (int (*)(...))QTabletEvent::~QTabletEvent +24 (int (*)(...))QTabletEvent::~QTabletEvent + +Class QTabletEvent + size=128 align=8 + base size=128 base align=8 +QTabletEvent (0x0x7f8bb5fccdd0) 0 + vptr=((& QTabletEvent::_ZTV12QTabletEvent) + 16) + QInputEvent (0x0x7f8bb5fcce38) 0 + primary-for QTabletEvent (0x0x7f8bb5fccdd0) + QEvent (0x0x7f8bb5c77600) 0 + primary-for QInputEvent (0x0x7f8bb5fcce38) + +Vtable for QNativeGestureEvent +QNativeGestureEvent::_ZTV19QNativeGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QNativeGestureEvent) +16 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent +24 (int (*)(...))QNativeGestureEvent::~QNativeGestureEvent + +Class QNativeGestureEvent + size=112 align=8 + base size=112 base align=8 +QNativeGestureEvent (0x0x7f8bb5fccea0) 0 + vptr=((& QNativeGestureEvent::_ZTV19QNativeGestureEvent) + 16) + QInputEvent (0x0x7f8bb5fccf08) 0 + primary-for QNativeGestureEvent (0x0x7f8bb5fccea0) + QEvent (0x0x7f8bb5c77f00) 0 + primary-for QInputEvent (0x0x7f8bb5fccf08) + +Vtable for QKeyEvent +QKeyEvent::_ZTV9QKeyEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QKeyEvent) +16 (int (*)(...))QKeyEvent::~QKeyEvent +24 (int (*)(...))QKeyEvent::~QKeyEvent + +Class QKeyEvent + size=64 align=8 + base size=59 base align=8 +QKeyEvent (0x0x7f8bb5fccf70) 0 + vptr=((& QKeyEvent::_ZTV9QKeyEvent) + 16) + QInputEvent (0x0x7f8bb5cab000) 0 + primary-for QKeyEvent (0x0x7f8bb5fccf70) + QEvent (0x0x7f8bb5ca7240) 0 + primary-for QInputEvent (0x0x7f8bb5cab000) + +Vtable for QFocusEvent +QFocusEvent::_ZTV11QFocusEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusEvent) +16 (int (*)(...))QFocusEvent::~QFocusEvent +24 (int (*)(...))QFocusEvent::~QFocusEvent + +Class QFocusEvent + size=24 align=8 + base size=24 base align=8 +QFocusEvent (0x0x7f8bb5cab068) 0 + vptr=((& QFocusEvent::_ZTV11QFocusEvent) + 16) + QEvent (0x0x7f8bb5ca7540) 0 + primary-for QFocusEvent (0x0x7f8bb5cab068) + +Vtable for QPaintEvent +QPaintEvent::_ZTV11QPaintEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPaintEvent) +16 (int (*)(...))QPaintEvent::~QPaintEvent +24 (int (*)(...))QPaintEvent::~QPaintEvent + +Class QPaintEvent + size=56 align=8 + base size=49 base align=8 +QPaintEvent (0x0x7f8bb5cab0d0) 0 + vptr=((& QPaintEvent::_ZTV11QPaintEvent) + 16) + QEvent (0x0x7f8bb5ca7660) 0 + primary-for QPaintEvent (0x0x7f8bb5cab0d0) + +Vtable for QMoveEvent +QMoveEvent::_ZTV10QMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QMoveEvent) +16 (int (*)(...))QMoveEvent::~QMoveEvent +24 (int (*)(...))QMoveEvent::~QMoveEvent + +Class QMoveEvent + size=40 align=8 + base size=36 base align=8 +QMoveEvent (0x0x7f8bb5cab138) 0 + vptr=((& QMoveEvent::_ZTV10QMoveEvent) + 16) + QEvent (0x0x7f8bb5ca7780) 0 + primary-for QMoveEvent (0x0x7f8bb5cab138) + +Vtable for QExposeEvent +QExposeEvent::_ZTV12QExposeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QExposeEvent) +16 (int (*)(...))QExposeEvent::~QExposeEvent +24 (int (*)(...))QExposeEvent::~QExposeEvent + +Class QExposeEvent + size=32 align=8 + base size=32 base align=8 +QExposeEvent (0x0x7f8bb5cab1a0) 0 + vptr=((& QExposeEvent::_ZTV12QExposeEvent) + 16) + QEvent (0x0x7f8bb5ca78a0) 0 + primary-for QExposeEvent (0x0x7f8bb5cab1a0) + +Vtable for QPlatformSurfaceEvent +QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QPlatformSurfaceEvent) +16 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent +24 (int (*)(...))QPlatformSurfaceEvent::~QPlatformSurfaceEvent + +Class QPlatformSurfaceEvent + size=24 align=8 + base size=24 base align=8 +QPlatformSurfaceEvent (0x0x7f8bb5cab208) 0 + vptr=((& QPlatformSurfaceEvent::_ZTV21QPlatformSurfaceEvent) + 16) + QEvent (0x0x7f8bb5ca7960) 0 + primary-for QPlatformSurfaceEvent (0x0x7f8bb5cab208) + +Vtable for QResizeEvent +QResizeEvent::_ZTV12QResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QResizeEvent) +16 (int (*)(...))QResizeEvent::~QResizeEvent +24 (int (*)(...))QResizeEvent::~QResizeEvent + +Class QResizeEvent + size=40 align=8 + base size=36 base align=8 +QResizeEvent (0x0x7f8bb5cab270) 0 + vptr=((& QResizeEvent::_ZTV12QResizeEvent) + 16) + QEvent (0x0x7f8bb5ca7a20) 0 + primary-for QResizeEvent (0x0x7f8bb5cab270) + +Vtable for QCloseEvent +QCloseEvent::_ZTV11QCloseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QCloseEvent) +16 (int (*)(...))QCloseEvent::~QCloseEvent +24 (int (*)(...))QCloseEvent::~QCloseEvent + +Class QCloseEvent + size=24 align=8 + base size=20 base align=8 +QCloseEvent (0x0x7f8bb5cab2d8) 0 + vptr=((& QCloseEvent::_ZTV11QCloseEvent) + 16) + QEvent (0x0x7f8bb5ca7b40) 0 + primary-for QCloseEvent (0x0x7f8bb5cab2d8) + +Vtable for QIconDragEvent +QIconDragEvent::_ZTV14QIconDragEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QIconDragEvent) +16 (int (*)(...))QIconDragEvent::~QIconDragEvent +24 (int (*)(...))QIconDragEvent::~QIconDragEvent + +Class QIconDragEvent + size=24 align=8 + base size=20 base align=8 +QIconDragEvent (0x0x7f8bb5cab340) 0 + vptr=((& QIconDragEvent::_ZTV14QIconDragEvent) + 16) + QEvent (0x0x7f8bb5ca7ba0) 0 + primary-for QIconDragEvent (0x0x7f8bb5cab340) + +Vtable for QShowEvent +QShowEvent::_ZTV10QShowEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QShowEvent) +16 (int (*)(...))QShowEvent::~QShowEvent +24 (int (*)(...))QShowEvent::~QShowEvent + +Class QShowEvent + size=24 align=8 + base size=20 base align=8 +QShowEvent (0x0x7f8bb5cab3a8) 0 + vptr=((& QShowEvent::_ZTV10QShowEvent) + 16) + QEvent (0x0x7f8bb5ca7c00) 0 + primary-for QShowEvent (0x0x7f8bb5cab3a8) + +Vtable for QHideEvent +QHideEvent::_ZTV10QHideEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHideEvent) +16 (int (*)(...))QHideEvent::~QHideEvent +24 (int (*)(...))QHideEvent::~QHideEvent + +Class QHideEvent + size=24 align=8 + base size=20 base align=8 +QHideEvent (0x0x7f8bb5cab410) 0 + vptr=((& QHideEvent::_ZTV10QHideEvent) + 16) + QEvent (0x0x7f8bb5ca7c60) 0 + primary-for QHideEvent (0x0x7f8bb5cab410) + +Vtable for QContextMenuEvent +QContextMenuEvent::_ZTV17QContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QContextMenuEvent) +16 (int (*)(...))QContextMenuEvent::~QContextMenuEvent +24 (int (*)(...))QContextMenuEvent::~QContextMenuEvent + +Class QContextMenuEvent + size=56 align=8 + base size=49 base align=8 +QContextMenuEvent (0x0x7f8bb5cab478) 0 + vptr=((& QContextMenuEvent::_ZTV17QContextMenuEvent) + 16) + QInputEvent (0x0x7f8bb5cab4e0) 0 + primary-for QContextMenuEvent (0x0x7f8bb5cab478) + QEvent (0x0x7f8bb5ca7cc0) 0 + primary-for QInputEvent (0x0x7f8bb5cab4e0) + +Class QInputMethodEvent::Attribute + size=32 align=8 + base size=32 base align=8 +QInputMethodEvent::Attribute (0x0x7f8bb5cef060) 0 + +Vtable for QInputMethodEvent +QInputMethodEvent::_ZTV17QInputMethodEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QInputMethodEvent) +16 (int (*)(...))QInputMethodEvent::~QInputMethodEvent +24 (int (*)(...))QInputMethodEvent::~QInputMethodEvent + +Class QInputMethodEvent + size=56 align=8 + base size=56 base align=8 +QInputMethodEvent (0x0x7f8bb5cab548) 0 + vptr=((& QInputMethodEvent::_ZTV17QInputMethodEvent) + 16) + QEvent (0x0x7f8bb5cef000) 0 + primary-for QInputMethodEvent (0x0x7f8bb5cab548) + +Class QInputMethodQueryEvent::QueryPair + size=24 align=8 + base size=24 base align=8 +QInputMethodQueryEvent::QueryPair (0x0x7f8bb5d6b3c0) 0 + +Vtable for QInputMethodQueryEvent +QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QInputMethodQueryEvent) +16 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent +24 (int (*)(...))QInputMethodQueryEvent::~QInputMethodQueryEvent + +Class QInputMethodQueryEvent + size=32 align=8 + base size=32 base align=8 +QInputMethodQueryEvent (0x0x7f8bb5d67750) 0 + vptr=((& QInputMethodQueryEvent::_ZTV22QInputMethodQueryEvent) + 16) + QEvent (0x0x7f8bb5d6b360) 0 + primary-for QInputMethodQueryEvent (0x0x7f8bb5d67750) + +Vtable for QDropEvent +QDropEvent::_ZTV10QDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QDropEvent) +16 (int (*)(...))QDropEvent::~QDropEvent +24 (int (*)(...))QDropEvent::~QDropEvent + +Class QDropEvent + size=72 align=8 + base size=72 base align=8 +QDropEvent (0x0x7f8bb59d9820) 0 + vptr=((& QDropEvent::_ZTV10QDropEvent) + 16) + QEvent (0x0x7f8bb59e7120) 0 + primary-for QDropEvent (0x0x7f8bb59d9820) + +Vtable for QDragMoveEvent +QDragMoveEvent::_ZTV14QDragMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDragMoveEvent) +16 (int (*)(...))QDragMoveEvent::~QDragMoveEvent +24 (int (*)(...))QDragMoveEvent::~QDragMoveEvent + +Class QDragMoveEvent + size=88 align=8 + base size=88 base align=8 +QDragMoveEvent (0x0x7f8bb59d9888) 0 + vptr=((& QDragMoveEvent::_ZTV14QDragMoveEvent) + 16) + QDropEvent (0x0x7f8bb59d98f0) 0 + primary-for QDragMoveEvent (0x0x7f8bb59d9888) + QEvent (0x0x7f8bb59e74e0) 0 + primary-for QDropEvent (0x0x7f8bb59d98f0) + +Vtable for QDragEnterEvent +QDragEnterEvent::_ZTV15QDragEnterEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragEnterEvent) +16 (int (*)(...))QDragEnterEvent::~QDragEnterEvent +24 (int (*)(...))QDragEnterEvent::~QDragEnterEvent + +Class QDragEnterEvent + size=88 align=8 + base size=88 base align=8 +QDragEnterEvent (0x0x7f8bb59d9958) 0 + vptr=((& QDragEnterEvent::_ZTV15QDragEnterEvent) + 16) + QDragMoveEvent (0x0x7f8bb59d99c0) 0 + primary-for QDragEnterEvent (0x0x7f8bb59d9958) + QDropEvent (0x0x7f8bb59d9a28) 0 + primary-for QDragMoveEvent (0x0x7f8bb59d99c0) + QEvent (0x0x7f8bb59e7720) 0 + primary-for QDropEvent (0x0x7f8bb59d9a28) + +Vtable for QDragLeaveEvent +QDragLeaveEvent::_ZTV15QDragLeaveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QDragLeaveEvent) +16 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent +24 (int (*)(...))QDragLeaveEvent::~QDragLeaveEvent + +Class QDragLeaveEvent + size=24 align=8 + base size=20 base align=8 +QDragLeaveEvent (0x0x7f8bb59d9a90) 0 + vptr=((& QDragLeaveEvent::_ZTV15QDragLeaveEvent) + 16) + QEvent (0x0x7f8bb59e7780) 0 + primary-for QDragLeaveEvent (0x0x7f8bb59d9a90) + +Vtable for QHelpEvent +QHelpEvent::_ZTV10QHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QHelpEvent) +16 (int (*)(...))QHelpEvent::~QHelpEvent +24 (int (*)(...))QHelpEvent::~QHelpEvent + +Class QHelpEvent + size=40 align=8 + base size=36 base align=8 +QHelpEvent (0x0x7f8bb59d9af8) 0 + vptr=((& QHelpEvent::_ZTV10QHelpEvent) + 16) + QEvent (0x0x7f8bb59e77e0) 0 + primary-for QHelpEvent (0x0x7f8bb59d9af8) + +Vtable for QStatusTipEvent +QStatusTipEvent::_ZTV15QStatusTipEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QStatusTipEvent) +16 (int (*)(...))QStatusTipEvent::~QStatusTipEvent +24 (int (*)(...))QStatusTipEvent::~QStatusTipEvent + +Class QStatusTipEvent + size=32 align=8 + base size=32 base align=8 +QStatusTipEvent (0x0x7f8bb59d9b60) 0 + vptr=((& QStatusTipEvent::_ZTV15QStatusTipEvent) + 16) + QEvent (0x0x7f8bb59e7a80) 0 + primary-for QStatusTipEvent (0x0x7f8bb59d9b60) + +Vtable for QWhatsThisClickedEvent +QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QWhatsThisClickedEvent) +16 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent +24 (int (*)(...))QWhatsThisClickedEvent::~QWhatsThisClickedEvent + +Class QWhatsThisClickedEvent + size=32 align=8 + base size=32 base align=8 +QWhatsThisClickedEvent (0x0x7f8bb59d9bc8) 0 + vptr=((& QWhatsThisClickedEvent::_ZTV22QWhatsThisClickedEvent) + 16) + QEvent (0x0x7f8bb59e7b40) 0 + primary-for QWhatsThisClickedEvent (0x0x7f8bb59d9bc8) + +Vtable for QActionEvent +QActionEvent::_ZTV12QActionEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionEvent) +16 (int (*)(...))QActionEvent::~QActionEvent +24 (int (*)(...))QActionEvent::~QActionEvent + +Class QActionEvent + size=40 align=8 + base size=40 base align=8 +QActionEvent (0x0x7f8bb59d9c30) 0 + vptr=((& QActionEvent::_ZTV12QActionEvent) + 16) + QEvent (0x0x7f8bb59e7c00) 0 + primary-for QActionEvent (0x0x7f8bb59d9c30) + +Vtable for QFileOpenEvent +QFileOpenEvent::_ZTV14QFileOpenEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QFileOpenEvent) +16 (int (*)(...))QFileOpenEvent::~QFileOpenEvent +24 (int (*)(...))QFileOpenEvent::~QFileOpenEvent + +Class QFileOpenEvent + size=40 align=8 + base size=40 base align=8 +QFileOpenEvent (0x0x7f8bb59d9c98) 0 + vptr=((& QFileOpenEvent::_ZTV14QFileOpenEvent) + 16) + QEvent (0x0x7f8bb59e7d20) 0 + primary-for QFileOpenEvent (0x0x7f8bb59d9c98) + +Vtable for QToolBarChangeEvent +QToolBarChangeEvent::_ZTV19QToolBarChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QToolBarChangeEvent) +16 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent +24 (int (*)(...))QToolBarChangeEvent::~QToolBarChangeEvent + +Class QToolBarChangeEvent + size=24 align=8 + base size=21 base align=8 +QToolBarChangeEvent (0x0x7f8bb59d9d00) 0 + vptr=((& QToolBarChangeEvent::_ZTV19QToolBarChangeEvent) + 16) + QEvent (0x0x7f8bb59e7e40) 0 + primary-for QToolBarChangeEvent (0x0x7f8bb59d9d00) + +Vtable for QShortcutEvent +QShortcutEvent::_ZTV14QShortcutEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QShortcutEvent) +16 (int (*)(...))QShortcutEvent::~QShortcutEvent +24 (int (*)(...))QShortcutEvent::~QShortcutEvent + +Class QShortcutEvent + size=40 align=8 + base size=40 base align=8 +QShortcutEvent (0x0x7f8bb59d9d68) 0 + vptr=((& QShortcutEvent::_ZTV14QShortcutEvent) + 16) + QEvent (0x0x7f8bb59e7f00) 0 + primary-for QShortcutEvent (0x0x7f8bb59d9d68) + +Vtable for QWindowStateChangeEvent +QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QWindowStateChangeEvent) +16 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent +24 (int (*)(...))QWindowStateChangeEvent::~QWindowStateChangeEvent + +Class QWindowStateChangeEvent + size=32 align=8 + base size=25 base align=8 +QWindowStateChangeEvent (0x0x7f8bb59d9dd0) 0 + vptr=((& QWindowStateChangeEvent::_ZTV23QWindowStateChangeEvent) + 16) + QEvent (0x0x7f8bb5a280c0) 0 + primary-for QWindowStateChangeEvent (0x0x7f8bb59d9dd0) + +Class QPointingDeviceUniqueId + size=8 align=8 + base size=8 base align=8 +QPointingDeviceUniqueId (0x0x7f8bb5a28240) 0 + +Class QTouchEvent::TouchPoint + size=8 align=8 + base size=8 base align=8 +QTouchEvent::TouchPoint (0x0x7f8bb5a73600) 0 + +Vtable for QTouchEvent +QTouchEvent::_ZTV11QTouchEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTouchEvent) +16 (int (*)(...))QTouchEvent::~QTouchEvent +24 (int (*)(...))QTouchEvent::~QTouchEvent + +Class QTouchEvent + size=72 align=8 + base size=72 base align=8 +QTouchEvent (0x0x7f8bb5a71618) 0 + vptr=((& QTouchEvent::_ZTV11QTouchEvent) + 16) + QInputEvent (0x0x7f8bb5a71680) 0 + primary-for QTouchEvent (0x0x7f8bb5a71618) + QEvent (0x0x7f8bb5a735a0) 0 + primary-for QInputEvent (0x0x7f8bb5a71680) + +Vtable for QScrollPrepareEvent +QScrollPrepareEvent::_ZTV19QScrollPrepareEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollPrepareEvent) +16 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent +24 (int (*)(...))QScrollPrepareEvent::~QScrollPrepareEvent + +Class QScrollPrepareEvent + size=112 align=8 + base size=112 base align=8 +QScrollPrepareEvent (0x0x7f8bb5b83340) 0 + vptr=((& QScrollPrepareEvent::_ZTV19QScrollPrepareEvent) + 16) + QEvent (0x0x7f8bb5b7bba0) 0 + primary-for QScrollPrepareEvent (0x0x7f8bb5b83340) + +Vtable for QScrollEvent +QScrollEvent::_ZTV12QScrollEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QScrollEvent) +16 (int (*)(...))QScrollEvent::~QScrollEvent +24 (int (*)(...))QScrollEvent::~QScrollEvent + +Class QScrollEvent + size=64 align=8 + base size=60 base align=8 +QScrollEvent (0x0x7f8bb5b833a8) 0 + vptr=((& QScrollEvent::_ZTV12QScrollEvent) + 16) + QEvent (0x0x7f8bb5b7bc00) 0 + primary-for QScrollEvent (0x0x7f8bb5b833a8) + +Vtable for QScreenOrientationChangeEvent +QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QScreenOrientationChangeEvent) +16 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent +24 (int (*)(...))QScreenOrientationChangeEvent::~QScreenOrientationChangeEvent + +Class QScreenOrientationChangeEvent + size=40 align=8 + base size=36 base align=8 +QScreenOrientationChangeEvent (0x0x7f8bb5b83410) 0 + vptr=((& QScreenOrientationChangeEvent::_ZTV29QScreenOrientationChangeEvent) + 16) + QEvent (0x0x7f8bb5b7bc60) 0 + primary-for QScreenOrientationChangeEvent (0x0x7f8bb5b83410) + +Vtable for QApplicationStateChangeEvent +QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QApplicationStateChangeEvent) +16 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent +24 (int (*)(...))QApplicationStateChangeEvent::~QApplicationStateChangeEvent + +Class QApplicationStateChangeEvent + size=24 align=8 + base size=24 base align=8 +QApplicationStateChangeEvent (0x0x7f8bb5b83478) 0 + vptr=((& QApplicationStateChangeEvent::_ZTV28QApplicationStateChangeEvent) + 16) + QEvent (0x0x7f8bb5b7bcc0) 0 + primary-for QApplicationStateChangeEvent (0x0x7f8bb5b83478) + +Class QFont + size=16 align=8 + base size=12 base align=8 +QFont (0x0x7f8bb5b7bd20) 0 + +Class QPolygon + size=8 align=8 + base size=8 base align=8 +QPolygon (0x0x7f8bb586b0d0) 0 + QVector (0x0x7f8bb58551e0) 0 + +Class QPolygonF + size=8 align=8 + base size=8 base align=8 +QPolygonF (0x0x7f8bb58e7410) 0 + QVector (0x0x7f8bb58f42a0) 0 + +Class QMatrix + size=48 align=8 + base size=48 base align=8 +QMatrix (0x0x7f8bb598a120) 0 + +Class QPainterPath::Element + size=24 align=8 + base size=24 base align=8 +QPainterPath::Element (0x0x7f8bb55d8f00) 0 + +Class QPainterPath + size=8 align=8 + base size=8 base align=8 +QPainterPath (0x0x7f8bb55d8ea0) 0 + +Class QPainterPathStroker + size=8 align=8 + base size=8 base align=8 +QPainterPathStroker (0x0x7f8bb57352a0) 0 + +Class QTransform + size=88 align=8 + base size=88 base align=8 +QTransform (0x0x7f8bb5735960) 0 + +Vtable for QPaintDevice +QPaintDevice::_ZTV12QPaintDevice: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDevice + size=24 align=8 + base size=24 base align=8 +QPaintDevice (0x0x7f8bb5403420) 0 + vptr=((& QPaintDevice::_ZTV12QPaintDevice) + 16) + +Class QPixelFormat + size=8 align=8 + base size=8 base align=8 +QPixelFormat (0x0x7f8bb5403a20) 0 + +Vtable for QImage +QImage::_ZTV6QImage: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QImage) +16 (int (*)(...))QImage::~QImage +24 (int (*)(...))QImage::~QImage +32 (int (*)(...))QImage::devType +40 (int (*)(...))QImage::paintEngine +48 (int (*)(...))QImage::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QImage + size=32 align=8 + base size=32 base align=8 +QImage (0x0x7f8bb54c0270) 0 + vptr=((& QImage::_ZTV6QImage) + 16) + QPaintDevice (0x0x7f8bb54cd360) 0 + primary-for QImage (0x0x7f8bb54c0270) + +Vtable for QPixmap +QPixmap::_ZTV7QPixmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QPixmap) +16 (int (*)(...))QPixmap::~QPixmap +24 (int (*)(...))QPixmap::~QPixmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QPixmap + size=32 align=8 + base size=32 base align=8 +QPixmap (0x0x7f8bb55c3c98) 0 + vptr=((& QPixmap::_ZTV7QPixmap) + 16) + QPaintDevice (0x0x7f8bb51de120) 0 + primary-for QPixmap (0x0x7f8bb55c3c98) + +Class QBrush + size=8 align=8 + base size=8 base align=8 +QBrush (0x0x7f8bb5249600) 0 + +Class QBrushData + size=112 align=8 + base size=112 base align=8 +QBrushData (0x0x7f8bb530fb40) 0 + +Class QGradient + size=64 align=8 + base size=64 base align=8 +QGradient (0x0x7f8bb530fd80) 0 + +Class QLinearGradient + size=64 align=8 + base size=64 base align=8 +QLinearGradient (0x0x7f8bb5308e38) 0 + QGradient (0x0x7f8bb536b4e0) 0 + +Class QRadialGradient + size=64 align=8 + base size=64 base align=8 +QRadialGradient (0x0x7f8bb5308ea0) 0 + QGradient (0x0x7f8bb536b600) 0 + +Class QConicalGradient + size=64 align=8 + base size=64 base align=8 +QConicalGradient (0x0x7f8bb5308f08) 0 + QGradient (0x0x7f8bb536b720) 0 + +Class QPen + size=8 align=8 + base size=8 base align=8 +QPen (0x0x7f8bb536b7e0) 0 + +Class QTextOption::Tab + size=16 align=8 + base size=14 base align=8 +QTextOption::Tab (0x0x7f8bb5045180) 0 + +Class QTextOption + size=32 align=8 + base size=32 base align=8 +QTextOption (0x0x7f8bb5045120) 0 + +Class QTextLength + size=16 align=8 + base size=16 base align=8 +QTextLength (0x0x7f8bb50978a0) 0 + +Class QTextFormat + size=16 align=8 + base size=12 base align=8 +QTextFormat (0x0x7f8bb510a240) 0 + +Class QTextCharFormat + size=16 align=8 + base size=12 base align=8 +QTextCharFormat (0x0x7f8bb4e25000) 0 + QTextFormat (0x0x7f8bb4df1de0) 0 + +Class QTextBlockFormat + size=16 align=8 + base size=12 base align=8 +QTextBlockFormat (0x0x7f8bb4e9c410) 0 + QTextFormat (0x0x7f8bb4e9a7e0) 0 + +Class QTextListFormat + size=16 align=8 + base size=12 base align=8 +QTextListFormat (0x0x7f8bb4ef3958) 0 + QTextFormat (0x0x7f8bb4efd4e0) 0 + +Class QTextImageFormat + size=16 align=8 + base size=12 base align=8 +QTextImageFormat (0x0x7f8bb4f36d68) 0 + QTextCharFormat (0x0x7f8bb4f36dd0) 0 + QTextFormat (0x0x7f8bb4f42c60) 0 + +Class QTextFrameFormat + size=16 align=8 + base size=12 base align=8 +QTextFrameFormat (0x0x7f8bb4f93340) 0 + QTextFormat (0x0x7f8bb4f97300) 0 + +Class QTextTableFormat + size=16 align=8 + base size=12 base align=8 +QTextTableFormat (0x0x7f8bb4be7888) 0 + QTextFrameFormat (0x0x7f8bb4be78f0) 0 + QTextFormat (0x0x7f8bb4bdaf00) 0 + +Class QTextTableCellFormat + size=16 align=8 + base size=12 base align=8 +QTextTableCellFormat (0x0x7f8bb4c35e38) 0 + QTextCharFormat (0x0x7f8bb4c35ea0) 0 + QTextFormat (0x0x7f8bb4c437e0) 0 + +Class QFontDatabase + size=8 align=8 + base size=8 base align=8 +QFontDatabase (0x0x7f8bb4c88c00) 0 + +Class QRawFont + size=8 align=8 + base size=8 base align=8 +QRawFont (0x0x7f8bb4c88de0) 0 + +Class QGlyphRun + size=8 align=8 + base size=8 base align=8 +QGlyphRun (0x0x7f8bb4d127e0) 0 + +Class QTextCursor + size=8 align=8 + base size=8 base align=8 +QTextCursor (0x0x7f8bb4d8c900) 0 + +Class QTextInlineObject + size=16 align=8 + base size=16 base align=8 +QTextInlineObject (0x0x7f8bb49f1a80) 0 + +Class QTextLayout::FormatRange + size=24 align=8 + base size=24 base align=8 +QTextLayout::FormatRange (0x0x7f8bb49f1ea0) 0 + +Class QTextLayout + size=8 align=8 + base size=8 base align=8 +QTextLayout (0x0x7f8bb49f1e40) 0 + +Class QTextLine + size=16 align=8 + base size=16 base align=8 +QTextLine (0x0x7f8bb4aa05a0) 0 + +Vtable for QAbstractUndoItem +QAbstractUndoItem::_ZTV17QAbstractUndoItem: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractUndoItem) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAbstractUndoItem + size=8 align=8 + base size=8 base align=8 +QAbstractUndoItem (0x0x7f8bb4aa0a20) 0 nearly-empty + vptr=((& QAbstractUndoItem::_ZTV17QAbstractUndoItem) + 16) + +Class QTextDocument::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextDocument::QPrivateSignal (0x0x7f8bb4aa0cc0) 0 empty + +Vtable for QTextDocument +QTextDocument::_ZTV13QTextDocument: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QTextDocument) +16 (int (*)(...))QTextDocument::metaObject +24 (int (*)(...))QTextDocument::qt_metacast +32 (int (*)(...))QTextDocument::qt_metacall +40 (int (*)(...))QTextDocument::~QTextDocument +48 (int (*)(...))QTextDocument::~QTextDocument +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextDocument::clear +120 (int (*)(...))QTextDocument::createObject +128 (int (*)(...))QTextDocument::loadResource + +Class QTextDocument + size=16 align=8 + base size=16 base align=8 +QTextDocument (0x0x7f8bb4a9f9c0) 0 + vptr=((& QTextDocument::_ZTV13QTextDocument) + 16) + QObject (0x0x7f8bb4aa0c60) 0 + primary-for QTextDocument (0x0x7f8bb4a9f9c0) + +Class QPalette::Data + size=4 align=4 + base size=4 base align=4 +QPalette::Data (0x0x7f8bb4afe7e0) 0 + +Class QPalette + size=16 align=8 + base size=12 base align=8 +QPalette (0x0x7f8bb4afe780) 0 + +Class QAbstractTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTextDocumentLayout::QPrivateSignal (0x0x7f8bb47f5ba0) 0 empty + +Class QAbstractTextDocumentLayout::Selection + size=24 align=8 + base size=24 base align=8 +QAbstractTextDocumentLayout::Selection (0x0x7f8bb47f5c00) 0 + +Class QAbstractTextDocumentLayout::PaintContext + size=64 align=8 + base size=64 base align=8 +QAbstractTextDocumentLayout::PaintContext (0x0x7f8bb47f5c60) 0 + +Vtable for QAbstractTextDocumentLayout +QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAbstractTextDocumentLayout) +16 (int (*)(...))QAbstractTextDocumentLayout::metaObject +24 (int (*)(...))QAbstractTextDocumentLayout::qt_metacast +32 (int (*)(...))QAbstractTextDocumentLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QAbstractTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QAbstractTextDocumentLayout (0x0x7f8bb47fc6e8) 0 + vptr=((& QAbstractTextDocumentLayout::_ZTV27QAbstractTextDocumentLayout) + 16) + QObject (0x0x7f8bb47f5b40) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f8bb47fc6e8) + +Vtable for QTextObjectInterface +QTextObjectInterface::_ZTV20QTextObjectInterface: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextObjectInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QTextObjectInterface + size=8 align=8 + base size=8 base align=8 +QTextObjectInterface (0x0x7f8bb48c2840) 0 nearly-empty + vptr=((& QTextObjectInterface::_ZTV20QTextObjectInterface) + 16) + +Class QAccessible::State + size=8 align=8 + base size=5 base align=8 +QAccessible::State (0x0x7f8bb48c2a80) 0 + +Vtable for QAccessible::ActivationObserver +QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN11QAccessible18ActivationObserverE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAccessible::ActivationObserver + size=8 align=8 + base size=8 base align=8 +QAccessible::ActivationObserver (0x0x7f8bb48c2ae0) 0 nearly-empty + vptr=((& QAccessible::ActivationObserver::_ZTVN11QAccessible18ActivationObserverE) + 16) + +Class QAccessible + size=1 align=1 + base size=0 base align=1 +QAccessible (0x0x7f8bb48c2a20) 0 empty + +Vtable for QAccessibleInterface +QAccessibleInterface::_ZTV20QAccessibleInterface: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QAccessibleInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleInterface (0x0x7f8bb48fc6c0) 0 nearly-empty + vptr=((& QAccessibleInterface::_ZTV20QAccessibleInterface) + 16) + +Vtable for QAccessibleTextInterface +QAccessibleTextInterface::_ZTV24QAccessibleTextInterface: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAccessibleTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))QAccessibleTextInterface::textBeforeOffset +104 (int (*)(...))QAccessibleTextInterface::textAfterOffset +112 (int (*)(...))QAccessibleTextInterface::textAtOffset +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTextInterface (0x0x7f8bb48fca20) 0 nearly-empty + vptr=((& QAccessibleTextInterface::_ZTV24QAccessibleTextInterface) + 16) + +Vtable for QAccessibleEditableTextInterface +QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleEditableTextInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleEditableTextInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleEditableTextInterface (0x0x7f8bb48fca80) 0 nearly-empty + vptr=((& QAccessibleEditableTextInterface::_ZTV32QAccessibleEditableTextInterface) + 16) + +Vtable for QAccessibleValueInterface +QAccessibleValueInterface::_ZTV25QAccessibleValueInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleValueInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleValueInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleValueInterface (0x0x7f8bb48fcae0) 0 nearly-empty + vptr=((& QAccessibleValueInterface::_ZTV25QAccessibleValueInterface) + 16) + +Vtable for QAccessibleTableCellInterface +QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTableCellInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableCellInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableCellInterface (0x0x7f8bb48fcb40) 0 nearly-empty + vptr=((& QAccessibleTableCellInterface::_ZTV29QAccessibleTableCellInterface) + 16) + +Vtable for QAccessibleTableInterface +QAccessibleTableInterface::_ZTV25QAccessibleTableInterface: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleTableInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleTableInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleTableInterface (0x0x7f8bb48fcba0) 0 nearly-empty + vptr=((& QAccessibleTableInterface::_ZTV25QAccessibleTableInterface) + 16) + +Vtable for QAccessibleActionInterface +QAccessibleActionInterface::_ZTV26QAccessibleActionInterface: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleActionInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QAccessibleActionInterface::localizedActionName +48 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleActionInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleActionInterface (0x0x7f8bb48fcc00) 0 nearly-empty + vptr=((& QAccessibleActionInterface::_ZTV26QAccessibleActionInterface) + 16) + +Vtable for QAccessibleImageInterface +QAccessibleImageInterface::_ZTV25QAccessibleImageInterface: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QAccessibleImageInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleImageInterface + size=8 align=8 + base size=8 base align=8 +QAccessibleImageInterface (0x0x7f8bb48fcd20) 0 nearly-empty + vptr=((& QAccessibleImageInterface::_ZTV25QAccessibleImageInterface) + 16) + +Vtable for QAccessibleEvent +QAccessibleEvent::_ZTV16QAccessibleEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAccessibleEvent) +16 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +24 (int (*)(...))QAccessibleEvent::~QAccessibleEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleEvent + size=32 align=8 + base size=28 base align=8 +QAccessibleEvent (0x0x7f8bb48fcd80) 0 + vptr=((& QAccessibleEvent::_ZTV16QAccessibleEvent) + 16) + +Vtable for QAccessibleStateChangeEvent +QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleStateChangeEvent) +16 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +24 (int (*)(...))QAccessibleStateChangeEvent::~QAccessibleStateChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleStateChangeEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleStateChangeEvent (0x0x7f8bb48c7d00) 0 + vptr=((& QAccessibleStateChangeEvent::_ZTV27QAccessibleStateChangeEvent) + 16) + QAccessibleEvent (0x0x7f8bb4965780) 0 + primary-for QAccessibleStateChangeEvent (0x0x7f8bb48c7d00) + +Vtable for QAccessibleTextCursorEvent +QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextCursorEvent) +16 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +24 (int (*)(...))QAccessibleTextCursorEvent::~QAccessibleTextCursorEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextCursorEvent + size=32 align=8 + base size=32 base align=8 +QAccessibleTextCursorEvent (0x0x7f8bb48c7d68) 0 + vptr=((& QAccessibleTextCursorEvent::_ZTV26QAccessibleTextCursorEvent) + 16) + QAccessibleEvent (0x0x7f8bb4965b40) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8bb48c7d68) + +Vtable for QAccessibleTextSelectionEvent +QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI29QAccessibleTextSelectionEvent) +16 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +24 (int (*)(...))QAccessibleTextSelectionEvent::~QAccessibleTextSelectionEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextSelectionEvent + size=40 align=8 + base size=40 base align=8 +QAccessibleTextSelectionEvent (0x0x7f8bb48c7dd0) 0 + vptr=((& QAccessibleTextSelectionEvent::_ZTV29QAccessibleTextSelectionEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8bb48c7e38) 0 + primary-for QAccessibleTextSelectionEvent (0x0x7f8bb48c7dd0) + QAccessibleEvent (0x0x7f8bb4965f60) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8bb48c7e38) + +Vtable for QAccessibleTextInsertEvent +QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextInsertEvent) +16 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +24 (int (*)(...))QAccessibleTextInsertEvent::~QAccessibleTextInsertEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextInsertEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextInsertEvent (0x0x7f8bb48c7ea0) 0 + vptr=((& QAccessibleTextInsertEvent::_ZTV26QAccessibleTextInsertEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8bb48c7f08) 0 + primary-for QAccessibleTextInsertEvent (0x0x7f8bb48c7ea0) + QAccessibleEvent (0x0x7f8bb45d1420) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8bb48c7f08) + +Vtable for QAccessibleTextRemoveEvent +QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextRemoveEvent) +16 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +24 (int (*)(...))QAccessibleTextRemoveEvent::~QAccessibleTextRemoveEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextRemoveEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTextRemoveEvent (0x0x7f8bb48c7f70) 0 + vptr=((& QAccessibleTextRemoveEvent::_ZTV26QAccessibleTextRemoveEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8bb45e5000) 0 + primary-for QAccessibleTextRemoveEvent (0x0x7f8bb48c7f70) + QAccessibleEvent (0x0x7f8bb45d1840) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8bb45e5000) + +Vtable for QAccessibleTextUpdateEvent +QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAccessibleTextUpdateEvent) +16 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +24 (int (*)(...))QAccessibleTextUpdateEvent::~QAccessibleTextUpdateEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTextUpdateEvent + size=56 align=8 + base size=56 base align=8 +QAccessibleTextUpdateEvent (0x0x7f8bb45e5068) 0 + vptr=((& QAccessibleTextUpdateEvent::_ZTV26QAccessibleTextUpdateEvent) + 16) + QAccessibleTextCursorEvent (0x0x7f8bb45e50d0) 0 + primary-for QAccessibleTextUpdateEvent (0x0x7f8bb45e5068) + QAccessibleEvent (0x0x7f8bb45d1c60) 0 + primary-for QAccessibleTextCursorEvent (0x0x7f8bb45e50d0) + +Vtable for QAccessibleValueChangeEvent +QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QAccessibleValueChangeEvent) +16 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +24 (int (*)(...))QAccessibleValueChangeEvent::~QAccessibleValueChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleValueChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleValueChangeEvent (0x0x7f8bb45e5138) 0 + vptr=((& QAccessibleValueChangeEvent::_ZTV27QAccessibleValueChangeEvent) + 16) + QAccessibleEvent (0x0x7f8bb4601120) 0 + primary-for QAccessibleValueChangeEvent (0x0x7f8bb45e5138) + +Vtable for QAccessibleTableModelChangeEvent +QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI32QAccessibleTableModelChangeEvent) +16 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +24 (int (*)(...))QAccessibleTableModelChangeEvent::~QAccessibleTableModelChangeEvent +32 (int (*)(...))QAccessibleEvent::accessibleInterface + +Class QAccessibleTableModelChangeEvent + size=48 align=8 + base size=48 base align=8 +QAccessibleTableModelChangeEvent (0x0x7f8bb45e51a0) 0 + vptr=((& QAccessibleTableModelChangeEvent::_ZTV32QAccessibleTableModelChangeEvent) + 16) + QAccessibleEvent (0x0x7f8bb4601540) 0 + primary-for QAccessibleTableModelChangeEvent (0x0x7f8bb45e51a0) + +Vtable for QAccessibleBridge +QAccessibleBridge::_ZTV17QAccessibleBridge: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleBridge) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridge + size=8 align=8 + base size=8 base align=8 +QAccessibleBridge (0x0x7f8bb4601de0) 0 nearly-empty + vptr=((& QAccessibleBridge::_ZTV17QAccessibleBridge) + 16) + +Class QAccessibleBridgePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessibleBridgePlugin::QPrivateSignal (0x0x7f8bb462d0c0) 0 empty + +Vtable for QAccessibleBridgePlugin +QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QAccessibleBridgePlugin) +16 (int (*)(...))QAccessibleBridgePlugin::metaObject +24 (int (*)(...))QAccessibleBridgePlugin::qt_metacast +32 (int (*)(...))QAccessibleBridgePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessibleBridgePlugin + size=16 align=8 + base size=16 base align=8 +QAccessibleBridgePlugin (0x0x7f8bb45e5208) 0 + vptr=((& QAccessibleBridgePlugin::_ZTV23QAccessibleBridgePlugin) + 16) + QObject (0x0x7f8bb462d060) 0 + primary-for QAccessibleBridgePlugin (0x0x7f8bb45e5208) + +Vtable for QAccessibleObject +QAccessibleObject::_ZTV17QAccessibleObject: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleObject) +16 0 +24 0 +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleInterface::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleInterface::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleObject + size=16 align=8 + base size=16 base align=8 +QAccessibleObject (0x0x7f8bb45e5270) 0 + vptr=((& QAccessibleObject::_ZTV17QAccessibleObject) + 16) + QAccessibleInterface (0x0x7f8bb462d1e0) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f8bb45e5270) + +Vtable for QAccessibleApplication +QAccessibleApplication::_ZTV22QAccessibleApplication: 23 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QAccessibleApplication) +16 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +24 (int (*)(...))QAccessibleApplication::~QAccessibleApplication +32 (int (*)(...))QAccessibleObject::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleApplication::window +56 (int (*)(...))QAccessibleInterface::relations +64 (int (*)(...))QAccessibleApplication::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleApplication::parent +88 (int (*)(...))QAccessibleApplication::child +96 (int (*)(...))QAccessibleApplication::childCount +104 (int (*)(...))QAccessibleApplication::indexOfChild +112 (int (*)(...))QAccessibleApplication::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleObject::rect +136 (int (*)(...))QAccessibleApplication::role +144 (int (*)(...))QAccessibleApplication::state +152 (int (*)(...))QAccessibleInterface::foregroundColor +160 (int (*)(...))QAccessibleInterface::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleInterface::interface_cast + +Class QAccessibleApplication + size=16 align=8 + base size=16 base align=8 +QAccessibleApplication (0x0x7f8bb45e52d8) 0 + vptr=((& QAccessibleApplication::_ZTV22QAccessibleApplication) + 16) + QAccessibleObject (0x0x7f8bb45e5340) 0 + primary-for QAccessibleApplication (0x0x7f8bb45e52d8) + QAccessibleInterface (0x0x7f8bb462d240) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f8bb45e5340) + +Class QAccessiblePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAccessiblePlugin::QPrivateSignal (0x0x7f8bb462d300) 0 empty + +Vtable for QAccessiblePlugin +QAccessiblePlugin::_ZTV17QAccessiblePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessiblePlugin) +16 (int (*)(...))QAccessiblePlugin::metaObject +24 (int (*)(...))QAccessiblePlugin::qt_metacast +32 (int (*)(...))QAccessiblePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QAccessiblePlugin + size=16 align=8 + base size=16 base align=8 +QAccessiblePlugin (0x0x7f8bb45e53a8) 0 + vptr=((& QAccessiblePlugin::_ZTV17QAccessiblePlugin) + 16) + QObject (0x0x7f8bb462d2a0) 0 + primary-for QAccessiblePlugin (0x0x7f8bb45e53a8) + +Class QSurfaceFormat + size=8 align=8 + base size=8 base align=8 +QSurfaceFormat (0x0x7f8bb462d420) 0 + +Vtable for QSurface +QSurface::_ZTV8QSurface: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSurface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QSurface + size=24 align=8 + base size=24 base align=8 +QSurface (0x0x7f8bb462df60) 0 + vptr=((& QSurface::_ZTV8QSurface) + 16) + +Class QIcon + size=8 align=8 + base size=8 base align=8 +QIcon (0x0x7f8bb46a1360) 0 + +Class QCursor + size=8 align=8 + base size=8 base align=8 +QCursor (0x0x7f8bb4756ea0) 0 + +Class QWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWindow::QPrivateSignal (0x0x7f8bb4421c60) 0 empty + +Vtable for QWindow +QWindow::_ZTV7QWindow: 45 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWindow) +16 (int (*)(...))QWindow::metaObject +24 (int (*)(...))QWindow::qt_metacast +32 (int (*)(...))QWindow::qt_metacall +40 (int (*)(...))QWindow::~QWindow +48 (int (*)(...))QWindow::~QWindow +56 (int (*)(...))QWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))-16 +304 (int (*)(...))(& _ZTI7QWindow) +312 (int (*)(...))QWindow::_ZThn16_N7QWindowD1Ev +320 (int (*)(...))QWindow::_ZThn16_N7QWindowD0Ev +328 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +336 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +344 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv + +Class QWindow + size=40 align=8 + base size=40 base align=8 +QWindow (0x0x7f8bb4424d90) 0 + vptr=((& QWindow::_ZTV7QWindow) + 16) + QObject (0x0x7f8bb4421ba0) 0 + primary-for QWindow (0x0x7f8bb4424d90) + QSurface (0x0x7f8bb4421c00) 16 + vptr=((& QWindow::_ZTV7QWindow) + 312) + +Class QBackingStore + size=8 align=8 + base size=8 base align=8 +QBackingStore (0x0x7f8bb4474540) 0 + +Vtable for QBitmap +QBitmap::_ZTV7QBitmap: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBitmap) +16 (int (*)(...))QBitmap::~QBitmap +24 (int (*)(...))QBitmap::~QBitmap +32 (int (*)(...))QPixmap::devType +40 (int (*)(...))QPixmap::paintEngine +48 (int (*)(...))QPixmap::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter + +Class QBitmap + size=32 align=8 + base size=32 base align=8 +QBitmap (0x0x7f8bb442a680) 0 + vptr=((& QBitmap::_ZTV7QBitmap) + 16) + QPixmap (0x0x7f8bb442a6e8) 0 + primary-for QBitmap (0x0x7f8bb442a680) + QPaintDevice (0x0x7f8bb4474600) 0 + primary-for QPixmap (0x0x7f8bb442a6e8) + +Class QClipboard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QClipboard::QPrivateSignal (0x0x7f8bb44ceb40) 0 empty + +Vtable for QClipboard +QClipboard::_ZTV10QClipboard: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QClipboard) +16 (int (*)(...))QClipboard::metaObject +24 (int (*)(...))QClipboard::qt_metacast +32 (int (*)(...))QClipboard::qt_metacall +40 (int (*)(...))QClipboard::~QClipboard +48 (int (*)(...))QClipboard::~QClipboard +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QClipboard + size=16 align=8 + base size=16 base align=8 +QClipboard (0x0x7f8bb44c99c0) 0 + vptr=((& QClipboard::_ZTV10QClipboard) + 16) + QObject (0x0x7f8bb44ceae0) 0 + primary-for QClipboard (0x0x7f8bb44c99c0) + +Class QDesktopServices + size=1 align=1 + base size=0 base align=1 +QDesktopServices (0x0x7f8bb44cec60) 0 empty + +Class QDrag::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDrag::QPrivateSignal (0x0x7f8bb44ced20) 0 empty + +Vtable for QDrag +QDrag::_ZTV5QDrag: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDrag) +16 (int (*)(...))QDrag::metaObject +24 (int (*)(...))QDrag::qt_metacast +32 (int (*)(...))QDrag::qt_metacall +40 (int (*)(...))QDrag::~QDrag +48 (int (*)(...))QDrag::~QDrag +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QDrag + size=16 align=8 + base size=16 base align=8 +QDrag (0x0x7f8bb44c9a28) 0 + vptr=((& QDrag::_ZTV5QDrag) + 16) + QObject (0x0x7f8bb44cecc0) 0 + primary-for QDrag (0x0x7f8bb44c9a28) + +Class QFontInfo + size=8 align=8 + base size=8 base align=8 +QFontInfo (0x0x7f8bb44cef00) 0 + +Class QFontMetrics + size=8 align=8 + base size=8 base align=8 +QFontMetrics (0x0x7f8bb452df60) 0 + +Class QFontMetricsF + size=8 align=8 + base size=8 base align=8 +QFontMetricsF (0x0x7f8bb4594300) 0 + +Class QGenericPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGenericPlugin::QPrivateSignal (0x0x7f8bb42fe3c0) 0 empty + +Vtable for QGenericPlugin +QGenericPlugin::_ZTV14QGenericPlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGenericPlugin) +16 (int (*)(...))QGenericPlugin::metaObject +24 (int (*)(...))QGenericPlugin::qt_metacast +32 (int (*)(...))QGenericPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGenericPlugin + size=16 align=8 + base size=16 base align=8 +QGenericPlugin (0x0x7f8bb41e55b0) 0 + vptr=((& QGenericPlugin::_ZTV14QGenericPlugin) + 16) + QObject (0x0x7f8bb42fe360) 0 + primary-for QGenericPlugin (0x0x7f8bb41e55b0) + +Class QGenericPluginFactory + size=1 align=1 + base size=0 base align=1 +QGenericPluginFactory (0x0x7f8bb42fe4e0) 0 empty + +Class QInputMethod::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputMethod::QPrivateSignal (0x0x7f8bb42fe5a0) 0 empty + +Vtable for QInputMethod +QInputMethod::_ZTV12QInputMethod: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputMethod) +16 (int (*)(...))QInputMethod::metaObject +24 (int (*)(...))QInputMethod::qt_metacast +32 (int (*)(...))QInputMethod::qt_metacall +40 (int (*)(...))QInputMethod::~QInputMethod +48 (int (*)(...))QInputMethod::~QInputMethod +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QInputMethod + size=16 align=8 + base size=16 base align=8 +QInputMethod (0x0x7f8bb41e5618) 0 + vptr=((& QInputMethod::_ZTV12QInputMethod) + 16) + QObject (0x0x7f8bb42fe540) 0 + primary-for QInputMethod (0x0x7f8bb41e5618) + +Class QGuiApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGuiApplication::QPrivateSignal (0x0x7f8bb42fe8a0) 0 empty + +Vtable for QGuiApplication +QGuiApplication::_ZTV15QGuiApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGuiApplication) +16 (int (*)(...))QGuiApplication::metaObject +24 (int (*)(...))QGuiApplication::qt_metacast +32 (int (*)(...))QGuiApplication::qt_metacall +40 (int (*)(...))QGuiApplication::~QGuiApplication +48 (int (*)(...))QGuiApplication::~QGuiApplication +56 (int (*)(...))QGuiApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGuiApplication::notify +120 (int (*)(...))QGuiApplication::compressEvent + +Class QGuiApplication + size=16 align=8 + base size=16 base align=8 +QGuiApplication (0x0x7f8bb41e5680) 0 + vptr=((& QGuiApplication::_ZTV15QGuiApplication) + 16) + QCoreApplication (0x0x7f8bb41e56e8) 0 + primary-for QGuiApplication (0x0x7f8bb41e5680) + QObject (0x0x7f8bb42fe840) 0 + primary-for QCoreApplication (0x0x7f8bb41e56e8) + +Class QIconEngine::AvailableSizesArgument + size=16 align=8 + base size=16 base align=8 +QIconEngine::AvailableSizesArgument (0x0x7f8bb435a060) 0 + +Class QIconEngine::ScaledPixmapArgument + size=56 align=8 + base size=56 base align=8 +QIconEngine::ScaledPixmapArgument (0x0x7f8bb435a1e0) 0 + +Vtable for QIconEngine +QIconEngine::_ZTV11QIconEngine: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QIconEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))QIconEngine::actualSize +48 (int (*)(...))QIconEngine::pixmap +56 (int (*)(...))QIconEngine::addPixmap +64 (int (*)(...))QIconEngine::addFile +72 (int (*)(...))QIconEngine::key +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QIconEngine::read +96 (int (*)(...))QIconEngine::write +104 (int (*)(...))QIconEngine::availableSizes +112 (int (*)(...))QIconEngine::iconName +120 (int (*)(...))QIconEngine::virtual_hook + +Class QIconEngine + size=8 align=8 + base size=8 base align=8 +QIconEngine (0x0x7f8bb435a000) 0 nearly-empty + vptr=((& QIconEngine::_ZTV11QIconEngine) + 16) + +Class QIconEnginePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIconEnginePlugin::QPrivateSignal (0x0x7f8bb435a2a0) 0 empty + +Vtable for QIconEnginePlugin +QIconEnginePlugin::_ZTV17QIconEnginePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QIconEnginePlugin) +16 (int (*)(...))QIconEnginePlugin::metaObject +24 (int (*)(...))QIconEnginePlugin::qt_metacast +32 (int (*)(...))QIconEnginePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QIconEnginePlugin + size=16 align=8 + base size=16 base align=8 +QIconEnginePlugin (0x0x7f8bb41e5c98) 0 + vptr=((& QIconEnginePlugin::_ZTV17QIconEnginePlugin) + 16) + QObject (0x0x7f8bb435a240) 0 + primary-for QIconEnginePlugin (0x0x7f8bb41e5c98) + +Vtable for QImageIOHandler +QImageIOHandler::_ZTV15QImageIOHandler: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QImageIOHandler) +16 0 +24 0 +32 (int (*)(...))QImageIOHandler::name +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QImageIOHandler::write +64 (int (*)(...))QImageIOHandler::option +72 (int (*)(...))QImageIOHandler::setOption +80 (int (*)(...))QImageIOHandler::supportsOption +88 (int (*)(...))QImageIOHandler::jumpToNextImage +96 (int (*)(...))QImageIOHandler::jumpToImage +104 (int (*)(...))QImageIOHandler::loopCount +112 (int (*)(...))QImageIOHandler::imageCount +120 (int (*)(...))QImageIOHandler::nextImageDelay +128 (int (*)(...))QImageIOHandler::currentImageNumber +136 (int (*)(...))QImageIOHandler::currentImageRect + +Class QImageIOHandler + size=16 align=8 + base size=16 base align=8 +QImageIOHandler (0x0x7f8bb435a3c0) 0 + vptr=((& QImageIOHandler::_ZTV15QImageIOHandler) + 16) + +Class QImageIOPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QImageIOPlugin::QPrivateSignal (0x0x7f8bb435a600) 0 empty + +Vtable for QImageIOPlugin +QImageIOPlugin::_ZTV14QImageIOPlugin: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QImageIOPlugin) +16 (int (*)(...))QImageIOPlugin::metaObject +24 (int (*)(...))QImageIOPlugin::qt_metacast +32 (int (*)(...))QImageIOPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QImageIOPlugin + size=16 align=8 + base size=16 base align=8 +QImageIOPlugin (0x0x7f8bb41e5d00) 0 + vptr=((& QImageIOPlugin::_ZTV14QImageIOPlugin) + 16) + QObject (0x0x7f8bb435a5a0) 0 + primary-for QImageIOPlugin (0x0x7f8bb41e5d00) + +Class QImageReader + size=8 align=8 + base size=8 base align=8 +QImageReader (0x0x7f8bb435ade0) 0 + +Class QImageWriter + size=8 align=8 + base size=8 base align=8 +QImageWriter (0x0x7f8bb435af00) 0 + +Class QVector3D + size=12 align=4 + base size=12 base align=4 +QVector3D (0x0x7f8bb4004060) 0 + +Class QVector4D + size=16 align=4 + base size=16 base align=4 +QVector4D (0x0x7f8bb40861e0) 0 + +Class QQuaternion + size=16 align=4 + base size=16 base align=4 +QQuaternion (0x0x7f8bb4106420) 0 + +Class QMatrix4x4 + size=68 align=4 + base size=68 base align=4 +QMatrix4x4 (0x0x7f8bb4196d20) 0 + +Class QMovie::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMovie::QPrivateSignal (0x0x7f8bb3e69ba0) 0 empty + +Vtable for QMovie +QMovie::_ZTV6QMovie: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QMovie) +16 (int (*)(...))QMovie::metaObject +24 (int (*)(...))QMovie::qt_metacast +32 (int (*)(...))QMovie::qt_metacall +40 (int (*)(...))QMovie::~QMovie +48 (int (*)(...))QMovie::~QMovie +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QMovie + size=16 align=8 + base size=16 base align=8 +QMovie (0x0x7f8bb3e4d478) 0 + vptr=((& QMovie::_ZTV6QMovie) + 16) + QObject (0x0x7f8bb3e69b40) 0 + primary-for QMovie (0x0x7f8bb3e4d478) + +Class QOffscreenSurface::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOffscreenSurface::QPrivateSignal (0x0x7f8bb3f59000) 0 empty + +Vtable for QOffscreenSurface +QOffscreenSurface::_ZTV17QOffscreenSurface: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOffscreenSurface) +16 (int (*)(...))QOffscreenSurface::metaObject +24 (int (*)(...))QOffscreenSurface::qt_metacast +32 (int (*)(...))QOffscreenSurface::qt_metacall +40 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +48 (int (*)(...))QOffscreenSurface::~QOffscreenSurface +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOffscreenSurface::surfaceType +120 (int (*)(...))QOffscreenSurface::format +128 (int (*)(...))QOffscreenSurface::size +136 (int (*)(...))QOffscreenSurface::surfaceHandle +144 (int (*)(...))-16 +152 (int (*)(...))(& _ZTI17QOffscreenSurface) +160 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD1Ev +168 (int (*)(...))QOffscreenSurface::_ZThn16_N17QOffscreenSurfaceD0Ev +176 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface6formatEv +184 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface13surfaceHandleEv +192 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface11surfaceTypeEv +200 (int (*)(...))QOffscreenSurface::_ZThn16_NK17QOffscreenSurface4sizeEv + +Class QOffscreenSurface + size=40 align=8 + base size=40 base align=8 +QOffscreenSurface (0x0x7f8bb3e37bd0) 0 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 16) + QObject (0x0x7f8bb3e69f00) 0 + primary-for QOffscreenSurface (0x0x7f8bb3e37bd0) + QSurface (0x0x7f8bb3e69f60) 16 + vptr=((& QOffscreenSurface::_ZTV17QOffscreenSurface) + 160) + +Class QOpenGLBuffer + size=8 align=8 + base size=8 base align=8 +QOpenGLBuffer (0x0x7f8bb3f59240) 0 + +Class QOpenGLVersionStatus + size=12 align=4 + base size=12 base align=4 +QOpenGLVersionStatus (0x0x7f8bb3f59a80) 0 + +Class QOpenGLVersionFunctionsBackend + size=16 align=8 + base size=12 base align=8 +QOpenGLVersionFunctionsBackend (0x0x7f8bb37f3660) 0 + +Class QOpenGLVersionFunctionsStorage + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionFunctionsStorage (0x0x7f8bb37f3840) 0 + +Class QAbstractOpenGLFunctionsPrivate + size=16 align=8 + base size=9 base align=8 +QAbstractOpenGLFunctionsPrivate (0x0x7f8bb37f38a0) 0 + +Vtable for QAbstractOpenGLFunctions +QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractOpenGLFunctions) +16 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +24 (int (*)(...))QAbstractOpenGLFunctions::~QAbstractOpenGLFunctions +32 (int (*)(...))QAbstractOpenGLFunctions::initializeOpenGLFunctions + +Class QAbstractOpenGLFunctions + size=16 align=8 + base size=16 base align=8 +QAbstractOpenGLFunctions (0x0x7f8bb37f3a80) 0 + vptr=((& QAbstractOpenGLFunctions::_ZTV24QAbstractOpenGLFunctions) + 16) + +Class QOpenGLFunctions_1_0_CoreBackend::Functions + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_1_0_CoreBackend::Functions (0x0x7f8bb37f3c60) 0 + +Class QOpenGLFunctions_1_0_CoreBackend + size=400 align=8 + base size=400 base align=8 +QOpenGLFunctions_1_0_CoreBackend (0x0x7f8bb3802340) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb37f3c00) 0 + +Class QOpenGLFunctions_1_1_CoreBackend::Functions + size=128 align=8 + base size=128 base align=8 +QOpenGLFunctions_1_1_CoreBackend::Functions (0x0x7f8bb37f3f60) 0 + +Class QOpenGLFunctions_1_1_CoreBackend + size=144 align=8 + base size=144 base align=8 +QOpenGLFunctions_1_1_CoreBackend (0x0x7f8bb38023a8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb37f3f00) 0 + +Class QOpenGLFunctions_1_2_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_1_2_CoreBackend::Functions (0x0x7f8bb38362a0) 0 + +Class QOpenGLFunctions_1_2_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_1_2_CoreBackend (0x0x7f8bb3802410) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb3836240) 0 + +Class QOpenGLFunctions_1_3_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_3_CoreBackend::Functions (0x0x7f8bb38365a0) 0 + +Class QOpenGLFunctions_1_3_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_1_3_CoreBackend (0x0x7f8bb3802478) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb3836540) 0 + +Class QOpenGLFunctions_1_4_CoreBackend::Functions + size=56 align=8 + base size=56 base align=8 +QOpenGLFunctions_1_4_CoreBackend::Functions (0x0x7f8bb3836900) 0 + +Class QOpenGLFunctions_1_4_CoreBackend + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_1_4_CoreBackend (0x0x7f8bb38024e0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38368a0) 0 + +Class QOpenGLFunctions_1_5_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_5_CoreBackend::Functions (0x0x7f8bb3836c00) 0 + +Class QOpenGLFunctions_1_5_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_1_5_CoreBackend (0x0x7f8bb3802548) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb3836ba0) 0 + +Class QOpenGLFunctions_2_0_CoreBackend::Functions + size=744 align=8 + base size=744 base align=8 +QOpenGLFunctions_2_0_CoreBackend::Functions (0x0x7f8bb3836f00) 0 + +Class QOpenGLFunctions_2_0_CoreBackend + size=760 align=8 + base size=760 base align=8 +QOpenGLFunctions_2_0_CoreBackend (0x0x7f8bb38025b0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb3836ea0) 0 + +Class QOpenGLFunctions_2_1_CoreBackend::Functions + size=48 align=8 + base size=48 base align=8 +QOpenGLFunctions_2_1_CoreBackend::Functions (0x0x7f8bb3875240) 0 + +Class QOpenGLFunctions_2_1_CoreBackend + size=64 align=8 + base size=64 base align=8 +QOpenGLFunctions_2_1_CoreBackend (0x0x7f8bb3802618) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38751e0) 0 + +Class QOpenGLFunctions_3_0_CoreBackend::Functions + size=672 align=8 + base size=672 base align=8 +QOpenGLFunctions_3_0_CoreBackend::Functions (0x0x7f8bb3875540) 0 + +Class QOpenGLFunctions_3_0_CoreBackend + size=688 align=8 + base size=688 base align=8 +QOpenGLFunctions_3_0_CoreBackend (0x0x7f8bb3802680) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38754e0) 0 + +Class QOpenGLFunctions_3_1_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_3_1_CoreBackend::Functions (0x0x7f8bb3875840) 0 + +Class QOpenGLFunctions_3_1_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_3_1_CoreBackend (0x0x7f8bb38026e8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38757e0) 0 + +Class QOpenGLFunctions_3_2_CoreBackend::Functions + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_3_2_CoreBackend::Functions (0x0x7f8bb3875b40) 0 + +Class QOpenGLFunctions_3_2_CoreBackend + size=168 align=8 + base size=168 base align=8 +QOpenGLFunctions_3_2_CoreBackend (0x0x7f8bb3802750) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb3875ae0) 0 + +Class QOpenGLFunctions_3_3_CoreBackend::Functions + size=464 align=8 + base size=464 base align=8 +QOpenGLFunctions_3_3_CoreBackend::Functions (0x0x7f8bb3875e40) 0 + +Class QOpenGLFunctions_3_3_CoreBackend + size=480 align=8 + base size=480 base align=8 +QOpenGLFunctions_3_3_CoreBackend (0x0x7f8bb38027b8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb3875de0) 0 + +Class QOpenGLFunctions_4_0_CoreBackend::Functions + size=368 align=8 + base size=368 base align=8 +QOpenGLFunctions_4_0_CoreBackend::Functions (0x0x7f8bb38bd180) 0 + +Class QOpenGLFunctions_4_0_CoreBackend + size=384 align=8 + base size=384 base align=8 +QOpenGLFunctions_4_0_CoreBackend (0x0x7f8bb3802820) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38bd120) 0 + +Class QOpenGLFunctions_4_1_CoreBackend::Functions + size=704 align=8 + base size=704 base align=8 +QOpenGLFunctions_4_1_CoreBackend::Functions (0x0x7f8bb38bd480) 0 + +Class QOpenGLFunctions_4_1_CoreBackend + size=720 align=8 + base size=720 base align=8 +QOpenGLFunctions_4_1_CoreBackend (0x0x7f8bb3802888) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38bd420) 0 + +Class QOpenGLFunctions_4_2_CoreBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_2_CoreBackend::Functions (0x0x7f8bb38bd780) 0 + +Class QOpenGLFunctions_4_2_CoreBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_2_CoreBackend (0x0x7f8bb38028f0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38bd720) 0 + +Class QOpenGLFunctions_4_3_CoreBackend::Functions + size=344 align=8 + base size=344 base align=8 +QOpenGLFunctions_4_3_CoreBackend::Functions (0x0x7f8bb38bda80) 0 + +Class QOpenGLFunctions_4_3_CoreBackend + size=360 align=8 + base size=360 base align=8 +QOpenGLFunctions_4_3_CoreBackend (0x0x7f8bb3802958) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38bda20) 0 + +Class QOpenGLFunctions_4_4_CoreBackend::Functions + size=72 align=8 + base size=72 base align=8 +QOpenGLFunctions_4_4_CoreBackend::Functions (0x0x7f8bb38bdd80) 0 + +Class QOpenGLFunctions_4_4_CoreBackend + size=88 align=8 + base size=88 base align=8 +QOpenGLFunctions_4_4_CoreBackend (0x0x7f8bb38029c0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb38bdd20) 0 + +Class QOpenGLFunctions_4_5_CoreBackend::Functions + size=848 align=8 + base size=848 base align=8 +QOpenGLFunctions_4_5_CoreBackend::Functions (0x0x7f8bb390f120) 0 + +Class QOpenGLFunctions_4_5_CoreBackend + size=864 align=8 + base size=864 base align=8 +QOpenGLFunctions_4_5_CoreBackend (0x0x7f8bb3802a28) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb390f0c0) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend::Functions + size=2064 align=8 + base size=2064 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend::Functions (0x0x7f8bb390f420) 0 + +Class QOpenGLFunctions_1_0_DeprecatedBackend + size=2080 align=8 + base size=2080 base align=8 +QOpenGLFunctions_1_0_DeprecatedBackend (0x0x7f8bb3802a90) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb390f3c0) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend::Functions + size=136 align=8 + base size=136 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend::Functions (0x0x7f8bb390f720) 0 + +Class QOpenGLFunctions_1_1_DeprecatedBackend + size=152 align=8 + base size=152 base align=8 +QOpenGLFunctions_1_1_DeprecatedBackend (0x0x7f8bb3802af8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb390f6c0) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend::Functions + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend::Functions (0x0x7f8bb390fa20) 0 + +Class QOpenGLFunctions_1_2_DeprecatedBackend + size=272 align=8 + base size=272 base align=8 +QOpenGLFunctions_1_2_DeprecatedBackend (0x0x7f8bb3802b60) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb390f9c0) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend::Functions + size=296 align=8 + base size=296 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend::Functions (0x0x7f8bb390fd20) 0 + +Class QOpenGLFunctions_1_3_DeprecatedBackend + size=312 align=8 + base size=312 base align=8 +QOpenGLFunctions_1_3_DeprecatedBackend (0x0x7f8bb3802bc8) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb390fcc0) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend::Functions + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend::Functions (0x0x7f8bb399b060) 0 + +Class QOpenGLFunctions_1_4_DeprecatedBackend + size=320 align=8 + base size=320 base align=8 +QOpenGLFunctions_1_4_DeprecatedBackend (0x0x7f8bb3802c30) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb399b000) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend::Functions + size=288 align=8 + base size=288 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend::Functions (0x0x7f8bb399b360) 0 + +Class QOpenGLFunctions_2_0_DeprecatedBackend + size=304 align=8 + base size=304 base align=8 +QOpenGLFunctions_2_0_DeprecatedBackend (0x0x7f8bb3802c98) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb399b300) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend::Functions + size=160 align=8 + base size=160 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend::Functions (0x0x7f8bb399b660) 0 + +Class QOpenGLFunctions_3_0_DeprecatedBackend + size=176 align=8 + base size=176 base align=8 +QOpenGLFunctions_3_0_DeprecatedBackend (0x0x7f8bb3802d00) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb399b600) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend::Functions + size=240 align=8 + base size=240 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend::Functions (0x0x7f8bb399b960) 0 + +Class QOpenGLFunctions_3_3_DeprecatedBackend + size=256 align=8 + base size=256 base align=8 +QOpenGLFunctions_3_3_DeprecatedBackend (0x0x7f8bb3802d68) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb399b900) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend::Functions + size=96 align=8 + base size=96 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend::Functions (0x0x7f8bb399bc60) 0 + +Class QOpenGLFunctions_4_5_DeprecatedBackend + size=112 align=8 + base size=112 base align=8 +QOpenGLFunctions_4_5_DeprecatedBackend (0x0x7f8bb3802dd0) 0 + QOpenGLVersionFunctionsBackend (0x0x7f8bb399bc00) 0 + +Class QOpenGLVersionProfile + size=8 align=8 + base size=8 base align=8 +QOpenGLVersionProfile (0x0x7f8bb399bf00) 0 + +Class QOpenGLContextGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContextGroup::QPrivateSignal (0x0x7f8bb25e0a20) 0 empty + +Vtable for QOpenGLContextGroup +QOpenGLContextGroup::_ZTV19QOpenGLContextGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QOpenGLContextGroup) +16 (int (*)(...))QOpenGLContextGroup::metaObject +24 (int (*)(...))QOpenGLContextGroup::qt_metacast +32 (int (*)(...))QOpenGLContextGroup::qt_metacall +40 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +48 (int (*)(...))QOpenGLContextGroup::~QOpenGLContextGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContextGroup + size=16 align=8 + base size=16 base align=8 +QOpenGLContextGroup (0x0x7f8bb25e6820) 0 + vptr=((& QOpenGLContextGroup::_ZTV19QOpenGLContextGroup) + 16) + QObject (0x0x7f8bb25e09c0) 0 + primary-for QOpenGLContextGroup (0x0x7f8bb25e6820) + +Class QOpenGLContext::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLContext::QPrivateSignal (0x0x7f8bb25e0c60) 0 empty + +Vtable for QOpenGLContext +QOpenGLContext::_ZTV14QOpenGLContext: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QOpenGLContext) +16 (int (*)(...))QOpenGLContext::metaObject +24 (int (*)(...))QOpenGLContext::qt_metacast +32 (int (*)(...))QOpenGLContext::qt_metacall +40 (int (*)(...))QOpenGLContext::~QOpenGLContext +48 (int (*)(...))QOpenGLContext::~QOpenGLContext +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLContext + size=16 align=8 + base size=16 base align=8 +QOpenGLContext (0x0x7f8bb25e6888) 0 + vptr=((& QOpenGLContext::_ZTV14QOpenGLContext) + 16) + QObject (0x0x7f8bb25e0c00) 0 + primary-for QOpenGLContext (0x0x7f8bb25e6888) + +Class QOpenGLDebugMessage + size=8 align=8 + base size=8 base align=8 +QOpenGLDebugMessage (0x0x7f8bb25e0ea0) 0 + +Class QOpenGLDebugLogger::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLDebugLogger::QPrivateSignal (0x0x7f8bb26d1660) 0 empty + +Vtable for QOpenGLDebugLogger +QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLDebugLogger) +16 (int (*)(...))QOpenGLDebugLogger::metaObject +24 (int (*)(...))QOpenGLDebugLogger::qt_metacast +32 (int (*)(...))QOpenGLDebugLogger::qt_metacall +40 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +48 (int (*)(...))QOpenGLDebugLogger::~QOpenGLDebugLogger +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLDebugLogger + size=16 align=8 + base size=16 base align=8 +QOpenGLDebugLogger (0x0x7f8bb26752d8) 0 + vptr=((& QOpenGLDebugLogger::_ZTV18QOpenGLDebugLogger) + 16) + QObject (0x0x7f8bb26d1600) 0 + primary-for QOpenGLDebugLogger (0x0x7f8bb26752d8) + +Class QOpenGLFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLFunctions (0x0x7f8bb26d1ae0) 0 + +Class QOpenGLFunctionsPrivate::Functions + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate::Functions (0x0x7f8bb2773480) 0 + +Class QOpenGLFunctionsPrivate + size=1152 align=8 + base size=1152 base align=8 +QOpenGLFunctionsPrivate (0x0x7f8bb2773420) 0 + +Class QOpenGLExtraFunctions + size=8 align=8 + base size=8 base align=8 +QOpenGLExtraFunctions (0x0x7f8bb2675680) 0 + QOpenGLFunctions (0x0x7f8bb2469240) 0 + +Class QOpenGLExtraFunctionsPrivate::Functions + size=1728 align=8 + base size=1728 base align=8 +QOpenGLExtraFunctionsPrivate::Functions (0x0x7f8bb24695a0) 0 + +Class QOpenGLExtraFunctionsPrivate + size=2880 align=8 + base size=2880 base align=8 +QOpenGLExtraFunctionsPrivate (0x0x7f8bb26756e8) 0 + QOpenGLFunctionsPrivate (0x0x7f8bb2469540) 0 + +Vtable for QOpenGLFramebufferObject +QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLFramebufferObject) +16 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject +24 (int (*)(...))QOpenGLFramebufferObject::~QOpenGLFramebufferObject + +Class QOpenGLFramebufferObject + size=16 align=8 + base size=16 base align=8 +QOpenGLFramebufferObject (0x0x7f8bb2254060) 0 + vptr=((& QOpenGLFramebufferObject::_ZTV24QOpenGLFramebufferObject) + 16) + +Class QOpenGLFramebufferObjectFormat + size=8 align=8 + base size=8 base align=8 +QOpenGLFramebufferObjectFormat (0x0x7f8bb2254300) 0 + +Vtable for QOpenGLPaintDevice +QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLPaintDevice) +16 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +24 (int (*)(...))QOpenGLPaintDevice::~QOpenGLPaintDevice +32 (int (*)(...))QOpenGLPaintDevice::devType +40 (int (*)(...))QOpenGLPaintDevice::paintEngine +48 (int (*)(...))QOpenGLPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QOpenGLPaintDevice::ensureActiveTarget + +Class QOpenGLPaintDevice + size=32 align=8 + base size=32 base align=8 +QOpenGLPaintDevice (0x0x7f8bb2249478) 0 + vptr=((& QOpenGLPaintDevice::_ZTV18QOpenGLPaintDevice) + 16) + QPaintDevice (0x0x7f8bb2254360) 0 + primary-for QOpenGLPaintDevice (0x0x7f8bb2249478) + +Class QOpenGLPixelTransferOptions + size=8 align=8 + base size=8 base align=8 +QOpenGLPixelTransferOptions (0x0x7f8bb22545a0) 0 + +Class QOpenGLShader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShader::QPrivateSignal (0x0x7f8bb22d73c0) 0 empty + +Vtable for QOpenGLShader +QOpenGLShader::_ZTV13QOpenGLShader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLShader) +16 (int (*)(...))QOpenGLShader::metaObject +24 (int (*)(...))QOpenGLShader::qt_metacast +32 (int (*)(...))QOpenGLShader::qt_metacall +40 (int (*)(...))QOpenGLShader::~QOpenGLShader +48 (int (*)(...))QOpenGLShader::~QOpenGLShader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLShader + size=16 align=8 + base size=16 base align=8 +QOpenGLShader (0x0x7f8bb22d65b0) 0 + vptr=((& QOpenGLShader::_ZTV13QOpenGLShader) + 16) + QObject (0x0x7f8bb22d7360) 0 + primary-for QOpenGLShader (0x0x7f8bb22d65b0) + +Class QOpenGLShaderProgram::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLShaderProgram::QPrivateSignal (0x0x7f8bb22d7cc0) 0 empty + +Vtable for QOpenGLShaderProgram +QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QOpenGLShaderProgram) +16 (int (*)(...))QOpenGLShaderProgram::metaObject +24 (int (*)(...))QOpenGLShaderProgram::qt_metacast +32 (int (*)(...))QOpenGLShaderProgram::qt_metacall +40 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +48 (int (*)(...))QOpenGLShaderProgram::~QOpenGLShaderProgram +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QOpenGLShaderProgram::link + +Class QOpenGLShaderProgram + size=16 align=8 + base size=16 base align=8 +QOpenGLShaderProgram (0x0x7f8bb22d66e8) 0 + vptr=((& QOpenGLShaderProgram::_ZTV20QOpenGLShaderProgram) + 16) + QObject (0x0x7f8bb22d7c60) 0 + primary-for QOpenGLShaderProgram (0x0x7f8bb22d66e8) + +Class QOpenGLTexture + size=8 align=8 + base size=8 base align=8 +QOpenGLTexture (0x0x7f8bb22d7ea0) 0 + +Class QOpenGLTextureBlitter + size=8 align=8 + base size=8 base align=8 +QOpenGLTextureBlitter (0x0x7f8bb1fea3c0) 0 + +Class QOpenGLTimerQuery::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimerQuery::QPrivateSignal (0x0x7f8bb1fea600) 0 empty + +Vtable for QOpenGLTimerQuery +QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QOpenGLTimerQuery) +16 (int (*)(...))QOpenGLTimerQuery::metaObject +24 (int (*)(...))QOpenGLTimerQuery::qt_metacast +32 (int (*)(...))QOpenGLTimerQuery::qt_metacall +40 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +48 (int (*)(...))QOpenGLTimerQuery::~QOpenGLTimerQuery +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimerQuery + size=16 align=8 + base size=16 base align=8 +QOpenGLTimerQuery (0x0x7f8bb22d6820) 0 + vptr=((& QOpenGLTimerQuery::_ZTV17QOpenGLTimerQuery) + 16) + QObject (0x0x7f8bb1fea5a0) 0 + primary-for QOpenGLTimerQuery (0x0x7f8bb22d6820) + +Class QOpenGLTimeMonitor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLTimeMonitor::QPrivateSignal (0x0x7f8bb1fea840) 0 empty + +Vtable for QOpenGLTimeMonitor +QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QOpenGLTimeMonitor) +16 (int (*)(...))QOpenGLTimeMonitor::metaObject +24 (int (*)(...))QOpenGLTimeMonitor::qt_metacast +32 (int (*)(...))QOpenGLTimeMonitor::qt_metacall +40 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +48 (int (*)(...))QOpenGLTimeMonitor::~QOpenGLTimeMonitor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLTimeMonitor + size=16 align=8 + base size=16 base align=8 +QOpenGLTimeMonitor (0x0x7f8bb22d6888) 0 + vptr=((& QOpenGLTimeMonitor::_ZTV18QOpenGLTimeMonitor) + 16) + QObject (0x0x7f8bb1fea7e0) 0 + primary-for QOpenGLTimeMonitor (0x0x7f8bb22d6888) + +Class QOpenGLVertexArrayObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLVertexArrayObject::QPrivateSignal (0x0x7f8bb1feaa80) 0 empty + +Class QOpenGLVertexArrayObject::Binder + size=8 align=8 + base size=8 base align=8 +QOpenGLVertexArrayObject::Binder (0x0x7f8bb1feaae0) 0 + +Vtable for QOpenGLVertexArrayObject +QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QOpenGLVertexArrayObject) +16 (int (*)(...))QOpenGLVertexArrayObject::metaObject +24 (int (*)(...))QOpenGLVertexArrayObject::qt_metacast +32 (int (*)(...))QOpenGLVertexArrayObject::qt_metacall +40 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +48 (int (*)(...))QOpenGLVertexArrayObject::~QOpenGLVertexArrayObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QOpenGLVertexArrayObject + size=16 align=8 + base size=16 base align=8 +QOpenGLVertexArrayObject (0x0x7f8bb22d68f0) 0 + vptr=((& QOpenGLVertexArrayObject::_ZTV24QOpenGLVertexArrayObject) + 16) + QObject (0x0x7f8bb1feaa20) 0 + primary-for QOpenGLVertexArrayObject (0x0x7f8bb22d68f0) + +Class QPaintDeviceWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPaintDeviceWindow::QPrivateSignal (0x0x7f8bb20391e0) 0 empty + +Vtable for QPaintDeviceWindow +QPaintDeviceWindow::_ZTV18QPaintDeviceWindow: 58 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +16 (int (*)(...))QPaintDeviceWindow::metaObject +24 (int (*)(...))QPaintDeviceWindow::qt_metacast +32 (int (*)(...))QPaintDeviceWindow::qt_metacall +40 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +48 (int (*)(...))QPaintDeviceWindow::~QPaintDeviceWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QPaintDeviceWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +336 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD1Ev +344 (int (*)(...))QPaintDeviceWindow::_ZThn16_N18QPaintDeviceWindowD0Ev +352 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +384 (int (*)(...))-40 +392 (int (*)(...))(& _ZTI18QPaintDeviceWindow) +400 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD1Ev +408 (int (*)(...))QPaintDeviceWindow::_ZThn40_N18QPaintDeviceWindowD0Ev +416 (int (*)(...))QPaintDevice::devType +424 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow6metricEN12QPaintDevice17PaintDeviceMetricE +440 (int (*)(...))QPaintDevice::initPainter +448 (int (*)(...))QPaintDevice::redirected +456 (int (*)(...))QPaintDevice::sharedPainter + +Class QPaintDeviceWindow + size=64 align=8 + base size=64 base align=8 +QPaintDeviceWindow (0x0x7f8bb2033230) 0 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 16) + QWindow (0x0x7f8bb20332a0) 0 + primary-for QPaintDeviceWindow (0x0x7f8bb2033230) + QObject (0x0x7f8bb20390c0) 0 + primary-for QWindow (0x0x7f8bb20332a0) + QSurface (0x0x7f8bb2039120) 16 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 336) + QPaintDevice (0x0x7f8bb2039180) 40 + vptr=((& QPaintDeviceWindow::_ZTV18QPaintDeviceWindow) + 400) + +Class QOpenGLWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWindow::QPrivateSignal (0x0x7f8bb20394e0) 0 empty + +Vtable for QOpenGLWindow +QOpenGLWindow::_ZTV13QOpenGLWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWindow) +16 (int (*)(...))QOpenGLWindow::metaObject +24 (int (*)(...))QOpenGLWindow::qt_metacast +32 (int (*)(...))QOpenGLWindow::qt_metacall +40 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +48 (int (*)(...))QOpenGLWindow::~QOpenGLWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QOpenGLWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QOpenGLWindow::paintEvent +304 (int (*)(...))QOpenGLWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QOpenGLWindow::initializeGL +328 (int (*)(...))QOpenGLWindow::resizeGL +336 (int (*)(...))QOpenGLWindow::paintGL +344 (int (*)(...))QOpenGLWindow::paintUnderGL +352 (int (*)(...))QOpenGLWindow::paintOverGL +360 (int (*)(...))QOpenGLWindow::redirected +368 (int (*)(...))-16 +376 (int (*)(...))(& _ZTI13QOpenGLWindow) +384 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD1Ev +392 (int (*)(...))QOpenGLWindow::_ZThn16_N13QOpenGLWindowD0Ev +400 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +408 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +416 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +424 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +432 (int (*)(...))-40 +440 (int (*)(...))(& _ZTI13QOpenGLWindow) +448 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD1Ev +456 (int (*)(...))QOpenGLWindow::_ZThn40_N13QOpenGLWindowD0Ev +464 (int (*)(...))QPaintDevice::devType +472 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +480 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QPaintDevice::initPainter +496 (int (*)(...))QOpenGLWindow::_ZThn40_NK13QOpenGLWindow10redirectedEP6QPoint +504 (int (*)(...))QPaintDevice::sharedPainter + +Class QOpenGLWindow + size=64 align=8 + base size=64 base align=8 +QOpenGLWindow (0x0x7f8bb22d69c0) 0 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 16) + QPaintDeviceWindow (0x0x7f8bb2033460) 0 + primary-for QOpenGLWindow (0x0x7f8bb22d69c0) + QWindow (0x0x7f8bb20334d0) 0 + primary-for QPaintDeviceWindow (0x0x7f8bb2033460) + QObject (0x0x7f8bb20393c0) 0 + primary-for QWindow (0x0x7f8bb20334d0) + QSurface (0x0x7f8bb2039420) 16 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 384) + QPaintDevice (0x0x7f8bb2039480) 40 + vptr=((& QOpenGLWindow::_ZTV13QOpenGLWindow) + 448) + +Class QPageSize + size=8 align=8 + base size=8 base align=8 +QPageSize (0x0x7f8bb20396c0) 0 + +Class QPageLayout + size=8 align=8 + base size=8 base align=8 +QPageLayout (0x0x7f8bb20e7120) 0 + +Class QPagedPaintDevice::Margins + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice::Margins (0x0x7f8bb2140c60) 0 + +Vtable for QPagedPaintDevice +QPagedPaintDevice::_ZTV17QPagedPaintDevice: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QPagedPaintDevice) +16 0 +24 0 +32 (int (*)(...))QPaintDevice::devType +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QPaintDevice::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QPagedPaintDevice::setPageSize +96 (int (*)(...))QPagedPaintDevice::setPageSizeMM +104 (int (*)(...))QPagedPaintDevice::setMargins + +Class QPagedPaintDevice + size=32 align=8 + base size=32 base align=8 +QPagedPaintDevice (0x0x7f8bb2139958) 0 + vptr=((& QPagedPaintDevice::_ZTV17QPagedPaintDevice) + 16) + QPaintDevice (0x0x7f8bb2140c00) 0 + primary-for QPagedPaintDevice (0x0x7f8bb2139958) + +Class QPainter::PixmapFragment + size=80 align=8 + base size=80 base align=8 +QPainter::PixmapFragment (0x0x7f8bb2140d20) 0 + +Class QPainter + size=8 align=8 + base size=8 base align=8 +QPainter (0x0x7f8bb2140cc0) 0 + +Class QTextItem + size=1 align=1 + base size=0 base align=1 +QTextItem (0x0x7f8bb1f920c0) 0 empty + +Vtable for QPaintEngine +QPaintEngine::_ZTV12QPaintEngine: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QPaintEngine) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))QPaintEngine::drawRects +64 (int (*)(...))QPaintEngine::drawRects +72 (int (*)(...))QPaintEngine::drawLines +80 (int (*)(...))QPaintEngine::drawLines +88 (int (*)(...))QPaintEngine::drawEllipse +96 (int (*)(...))QPaintEngine::drawEllipse +104 (int (*)(...))QPaintEngine::drawPath +112 (int (*)(...))QPaintEngine::drawPoints +120 (int (*)(...))QPaintEngine::drawPoints +128 (int (*)(...))QPaintEngine::drawPolygon +136 (int (*)(...))QPaintEngine::drawPolygon +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QPaintEngine::drawTextItem +160 (int (*)(...))QPaintEngine::drawTiledPixmap +168 (int (*)(...))QPaintEngine::drawImage +176 (int (*)(...))QPaintEngine::coordinateOffset +184 (int (*)(...))__cxa_pure_virtual + +Class QPaintEngine + size=32 align=8 + base size=32 base align=8 +QPaintEngine (0x0x7f8bb1bd4000) 0 + vptr=((& QPaintEngine::_ZTV12QPaintEngine) + 16) + +Class QPaintEngineState + size=4 align=4 + base size=4 base align=4 +QPaintEngineState (0x0x7f8bb1bd47e0) 0 + +Class QPdfWriter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPdfWriter::QPrivateSignal (0x0x7f8bb1c54f60) 0 empty + +Vtable for QPdfWriter +QPdfWriter::_ZTV10QPdfWriter: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QPdfWriter) +16 (int (*)(...))QPdfWriter::metaObject +24 (int (*)(...))QPdfWriter::qt_metacast +32 (int (*)(...))QPdfWriter::qt_metacall +40 (int (*)(...))QPdfWriter::~QPdfWriter +48 (int (*)(...))QPdfWriter::~QPdfWriter +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPdfWriter::newPage +120 (int (*)(...))QPdfWriter::setPageSize +128 (int (*)(...))QPdfWriter::setPageSizeMM +136 (int (*)(...))QPdfWriter::setMargins +144 (int (*)(...))QPdfWriter::paintEngine +152 (int (*)(...))QPdfWriter::metric +160 (int (*)(...))-16 +168 (int (*)(...))(& _ZTI10QPdfWriter) +176 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD1Ev +184 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriterD0Ev +192 (int (*)(...))QPaintDevice::devType +200 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter11paintEngineEv +208 (int (*)(...))QPdfWriter::_ZThn16_NK10QPdfWriter6metricEN12QPaintDevice17PaintDeviceMetricE +216 (int (*)(...))QPaintDevice::initPainter +224 (int (*)(...))QPaintDevice::redirected +232 (int (*)(...))QPaintDevice::sharedPainter +240 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter7newPageEv +248 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter11setPageSizeEN17QPagedPaintDevice8PageSizeE +256 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter13setPageSizeMMERK6QSizeF +264 (int (*)(...))QPdfWriter::_ZThn16_N10QPdfWriter10setMarginsERKN17QPagedPaintDevice7MarginsE + +Class QPdfWriter + size=48 align=8 + base size=48 base align=8 +QPdfWriter (0x0x7f8bb1c6f540) 0 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 16) + QObject (0x0x7f8bb1c54ea0) 0 + primary-for QPdfWriter (0x0x7f8bb1c6f540) + QPagedPaintDevice (0x0x7f8bb1fc5d00) 16 + vptr=((& QPdfWriter::_ZTV10QPdfWriter) + 176) + QPaintDevice (0x0x7f8bb1c54f00) 16 + primary-for QPagedPaintDevice (0x0x7f8bb1fc5d00) + +Vtable for QPicture +QPicture::_ZTV8QPicture: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QPicture) +16 (int (*)(...))QPicture::~QPicture +24 (int (*)(...))QPicture::~QPicture +32 (int (*)(...))QPicture::devType +40 (int (*)(...))QPicture::paintEngine +48 (int (*)(...))QPicture::metric +56 (int (*)(...))QPaintDevice::initPainter +64 (int (*)(...))QPaintDevice::redirected +72 (int (*)(...))QPaintDevice::sharedPainter +80 (int (*)(...))QPicture::setData + +Class QPicture + size=32 align=8 + base size=32 base align=8 +QPicture (0x0x7f8bb1fc5d68) 0 + vptr=((& QPicture::_ZTV8QPicture) + 16) + QPaintDevice (0x0x7f8bb1c9f2a0) 0 + primary-for QPicture (0x0x7f8bb1fc5d68) + +Class QPictureIO + size=8 align=8 + base size=8 base align=8 +QPictureIO (0x0x7f8bb1cf5540) 0 + +Class QPictureFormatPlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPictureFormatPlugin::QPrivateSignal (0x0x7f8bb1cf5600) 0 empty + +Vtable for QPictureFormatPlugin +QPictureFormatPlugin::_ZTV20QPictureFormatPlugin: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QPictureFormatPlugin) +16 (int (*)(...))QPictureFormatPlugin::metaObject +24 (int (*)(...))QPictureFormatPlugin::qt_metacast +32 (int (*)(...))QPictureFormatPlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPictureFormatPlugin::loadPicture +120 (int (*)(...))QPictureFormatPlugin::savePicture +128 (int (*)(...))__cxa_pure_virtual + +Class QPictureFormatPlugin + size=16 align=8 + base size=16 base align=8 +QPictureFormatPlugin (0x0x7f8bb1ce3f08) 0 + vptr=((& QPictureFormatPlugin::_ZTV20QPictureFormatPlugin) + 16) + QObject (0x0x7f8bb1cf55a0) 0 + primary-for QPictureFormatPlugin (0x0x7f8bb1ce3f08) + +Class QPixmapCache::Key + size=8 align=8 + base size=8 base align=8 +QPixmapCache::Key (0x0x7f8bb1cf5780) 0 + +Class QPixmapCache + size=1 align=1 + base size=0 base align=1 +QPixmapCache (0x0x7f8bb1cf5720) 0 empty + +Class QRasterWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRasterWindow::QPrivateSignal (0x0x7f8bb1db6f00) 0 empty + +Vtable for QRasterWindow +QRasterWindow::_ZTV13QRasterWindow: 59 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QRasterWindow) +16 (int (*)(...))QRasterWindow::metaObject +24 (int (*)(...))QRasterWindow::qt_metacast +32 (int (*)(...))QRasterWindow::qt_metacall +40 (int (*)(...))QRasterWindow::~QRasterWindow +48 (int (*)(...))QRasterWindow::~QRasterWindow +56 (int (*)(...))QPaintDeviceWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWindow::surfaceType +120 (int (*)(...))QWindow::format +128 (int (*)(...))QWindow::size +136 (int (*)(...))QWindow::accessibleRoot +144 (int (*)(...))QWindow::focusObject +152 (int (*)(...))QPaintDeviceWindow::exposeEvent +160 (int (*)(...))QWindow::resizeEvent +168 (int (*)(...))QWindow::moveEvent +176 (int (*)(...))QWindow::focusInEvent +184 (int (*)(...))QWindow::focusOutEvent +192 (int (*)(...))QWindow::showEvent +200 (int (*)(...))QWindow::hideEvent +208 (int (*)(...))QWindow::keyPressEvent +216 (int (*)(...))QWindow::keyReleaseEvent +224 (int (*)(...))QWindow::mousePressEvent +232 (int (*)(...))QWindow::mouseReleaseEvent +240 (int (*)(...))QWindow::mouseDoubleClickEvent +248 (int (*)(...))QWindow::mouseMoveEvent +256 (int (*)(...))QWindow::wheelEvent +264 (int (*)(...))QWindow::touchEvent +272 (int (*)(...))QWindow::tabletEvent +280 (int (*)(...))QWindow::nativeEvent +288 (int (*)(...))QWindow::surfaceHandle +296 (int (*)(...))QPaintDeviceWindow::paintEvent +304 (int (*)(...))QRasterWindow::metric +312 (int (*)(...))QPaintDeviceWindow::paintEngine +320 (int (*)(...))QRasterWindow::redirected +328 (int (*)(...))-16 +336 (int (*)(...))(& _ZTI13QRasterWindow) +344 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD1Ev +352 (int (*)(...))QRasterWindow::_ZThn16_N13QRasterWindowD0Ev +360 (int (*)(...))QWindow::_ZThn16_NK7QWindow6formatEv +368 (int (*)(...))QWindow::_ZThn16_NK7QWindow13surfaceHandleEv +376 (int (*)(...))QWindow::_ZThn16_NK7QWindow11surfaceTypeEv +384 (int (*)(...))QWindow::_ZThn16_NK7QWindow4sizeEv +392 (int (*)(...))-40 +400 (int (*)(...))(& _ZTI13QRasterWindow) +408 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD1Ev +416 (int (*)(...))QRasterWindow::_ZThn40_N13QRasterWindowD0Ev +424 (int (*)(...))QPaintDevice::devType +432 (int (*)(...))QPaintDeviceWindow::_ZThn40_NK18QPaintDeviceWindow11paintEngineEv +440 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow6metricEN12QPaintDevice17PaintDeviceMetricE +448 (int (*)(...))QPaintDevice::initPainter +456 (int (*)(...))QRasterWindow::_ZThn40_NK13QRasterWindow10redirectedEP6QPoint +464 (int (*)(...))QPaintDevice::sharedPainter + +Class QRasterWindow + size=64 align=8 + base size=64 base align=8 +QRasterWindow (0x0x7f8bb1dc1b60) 0 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 16) + QPaintDeviceWindow (0x0x7f8bb1dcb380) 0 + primary-for QRasterWindow (0x0x7f8bb1dc1b60) + QWindow (0x0x7f8bb1dcb3f0) 0 + primary-for QPaintDeviceWindow (0x0x7f8bb1dcb380) + QObject (0x0x7f8bb1db6de0) 0 + primary-for QWindow (0x0x7f8bb1dcb3f0) + QSurface (0x0x7f8bb1db6e40) 16 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 344) + QPaintDevice (0x0x7f8bb1db6ea0) 40 + vptr=((& QRasterWindow::_ZTV13QRasterWindow) + 408) + +Class QScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScreen::QPrivateSignal (0x0x7f8bb19e0180) 0 empty + +Vtable for QScreen +QScreen::_ZTV7QScreen: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QScreen) +16 (int (*)(...))QScreen::metaObject +24 (int (*)(...))QScreen::qt_metacast +32 (int (*)(...))QScreen::qt_metacall +40 (int (*)(...))QScreen::~QScreen +48 (int (*)(...))QScreen::~QScreen +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScreen + size=16 align=8 + base size=16 base align=8 +QScreen (0x0x7f8bb1dc1c30) 0 + vptr=((& QScreen::_ZTV7QScreen) + 16) + QObject (0x0x7f8bb19e0120) 0 + primary-for QScreen (0x0x7f8bb1dc1c30) + +Class QSessionManager::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSessionManager::QPrivateSignal (0x0x7f8bb19e03c0) 0 empty + +Vtable for QSessionManager +QSessionManager::_ZTV15QSessionManager: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSessionManager) +16 (int (*)(...))QSessionManager::metaObject +24 (int (*)(...))QSessionManager::qt_metacast +32 (int (*)(...))QSessionManager::qt_metacall +40 (int (*)(...))QSessionManager::~QSessionManager +48 (int (*)(...))QSessionManager::~QSessionManager +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSessionManager + size=16 align=8 + base size=16 base align=8 +QSessionManager (0x0x7f8bb1dc1c98) 0 + vptr=((& QSessionManager::_ZTV15QSessionManager) + 16) + QObject (0x0x7f8bb19e0360) 0 + primary-for QSessionManager (0x0x7f8bb1dc1c98) + +Vtable for QStandardItem +QStandardItem::_ZTV13QStandardItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStandardItem) +16 (int (*)(...))QStandardItem::~QStandardItem +24 (int (*)(...))QStandardItem::~QStandardItem +32 (int (*)(...))QStandardItem::data +40 (int (*)(...))QStandardItem::setData +48 (int (*)(...))QStandardItem::clone +56 (int (*)(...))QStandardItem::type +64 (int (*)(...))QStandardItem::read +72 (int (*)(...))QStandardItem::write +80 (int (*)(...))QStandardItem::operator< + +Class QStandardItem + size=16 align=8 + base size=16 base align=8 +QStandardItem (0x0x7f8bb19e05a0) 0 + vptr=((& QStandardItem::_ZTV13QStandardItem) + 16) + +Class QStandardItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStandardItemModel::QPrivateSignal (0x0x7f8bb1a4ed20) 0 empty + +Vtable for QStandardItemModel +QStandardItemModel::_ZTV18QStandardItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QStandardItemModel) +16 (int (*)(...))QStandardItemModel::metaObject +24 (int (*)(...))QStandardItemModel::qt_metacast +32 (int (*)(...))QStandardItemModel::qt_metacall +40 (int (*)(...))QStandardItemModel::~QStandardItemModel +48 (int (*)(...))QStandardItemModel::~QStandardItemModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStandardItemModel::index +120 (int (*)(...))QStandardItemModel::parent +128 (int (*)(...))QStandardItemModel::sibling +136 (int (*)(...))QStandardItemModel::rowCount +144 (int (*)(...))QStandardItemModel::columnCount +152 (int (*)(...))QStandardItemModel::hasChildren +160 (int (*)(...))QStandardItemModel::data +168 (int (*)(...))QStandardItemModel::setData +176 (int (*)(...))QStandardItemModel::headerData +184 (int (*)(...))QStandardItemModel::setHeaderData +192 (int (*)(...))QStandardItemModel::itemData +200 (int (*)(...))QStandardItemModel::setItemData +208 (int (*)(...))QStandardItemModel::mimeTypes +216 (int (*)(...))QStandardItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QStandardItemModel::dropMimeData +240 (int (*)(...))QStandardItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStandardItemModel::insertRows +264 (int (*)(...))QStandardItemModel::insertColumns +272 (int (*)(...))QStandardItemModel::removeRows +280 (int (*)(...))QStandardItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStandardItemModel::flags +328 (int (*)(...))QStandardItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStandardItemModel + size=16 align=8 + base size=16 base align=8 +QStandardItemModel (0x0x7f8bb1a45270) 0 + vptr=((& QStandardItemModel::_ZTV18QStandardItemModel) + 16) + QAbstractItemModel (0x0x7f8bb1a452d8) 0 + primary-for QStandardItemModel (0x0x7f8bb1a45270) + QObject (0x0x7f8bb1a4ecc0) 0 + primary-for QAbstractItemModel (0x0x7f8bb1a452d8) + +Class QStaticText + size=8 align=8 + base size=8 base align=8 +QStaticText (0x0x7f8bb1af9120) 0 + +Class QStyleHints::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyleHints::QPrivateSignal (0x0x7f8bb1b4d4e0) 0 empty + +Vtable for QStyleHints +QStyleHints::_ZTV11QStyleHints: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QStyleHints) +16 (int (*)(...))QStyleHints::metaObject +24 (int (*)(...))QStyleHints::qt_metacast +32 (int (*)(...))QStyleHints::qt_metacall +40 (int (*)(...))QStyleHints::~QStyleHints +48 (int (*)(...))QStyleHints::~QStyleHints +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QStyleHints + size=16 align=8 + base size=16 base align=8 +QStyleHints (0x0x7f8bb1b44618) 0 + vptr=((& QStyleHints::_ZTV11QStyleHints) + 16) + QObject (0x0x7f8bb1b4d480) 0 + primary-for QStyleHints (0x0x7f8bb1b44618) + +Class QTextObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextObject::QPrivateSignal (0x0x7f8bb1b4d720) 0 empty + +Vtable for QTextObject +QTextObject::_ZTV11QTextObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextObject) +16 (int (*)(...))QTextObject::metaObject +24 (int (*)(...))QTextObject::qt_metacast +32 (int (*)(...))QTextObject::qt_metacall +40 (int (*)(...))QTextObject::~QTextObject +48 (int (*)(...))QTextObject::~QTextObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextObject + size=16 align=8 + base size=16 base align=8 +QTextObject (0x0x7f8bb1b44680) 0 + vptr=((& QTextObject::_ZTV11QTextObject) + 16) + QObject (0x0x7f8bb1b4d6c0) 0 + primary-for QTextObject (0x0x7f8bb1b44680) + +Class QTextBlockGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBlockGroup::QPrivateSignal (0x0x7f8bb1b4d960) 0 empty + +Vtable for QTextBlockGroup +QTextBlockGroup::_ZTV15QTextBlockGroup: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTextBlockGroup) +16 (int (*)(...))QTextBlockGroup::metaObject +24 (int (*)(...))QTextBlockGroup::qt_metacast +32 (int (*)(...))QTextBlockGroup::qt_metacall +40 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +48 (int (*)(...))QTextBlockGroup::~QTextBlockGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextBlockGroup + size=16 align=8 + base size=16 base align=8 +QTextBlockGroup (0x0x7f8bb1b446e8) 0 + vptr=((& QTextBlockGroup::_ZTV15QTextBlockGroup) + 16) + QTextObject (0x0x7f8bb1b44750) 0 + primary-for QTextBlockGroup (0x0x7f8bb1b446e8) + QObject (0x0x7f8bb1b4d900) 0 + primary-for QTextObject (0x0x7f8bb1b44750) + +Vtable for QTextFrameLayoutData +QTextFrameLayoutData::_ZTV20QTextFrameLayoutData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTextFrameLayoutData) +16 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData +24 (int (*)(...))QTextFrameLayoutData::~QTextFrameLayoutData + +Class QTextFrameLayoutData + size=8 align=8 + base size=8 base align=8 +QTextFrameLayoutData (0x0x7f8bb1b4db40) 0 nearly-empty + vptr=((& QTextFrameLayoutData::_ZTV20QTextFrameLayoutData) + 16) + +Class QTextFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextFrame::QPrivateSignal (0x0x7f8bb1b4dc00) 0 empty + +Class QTextFrame::iterator + size=32 align=8 + base size=28 base align=8 +QTextFrame::iterator (0x0x7f8bb1b4dc60) 0 + +Vtable for QTextFrame +QTextFrame::_ZTV10QTextFrame: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextFrame) +16 (int (*)(...))QTextFrame::metaObject +24 (int (*)(...))QTextFrame::qt_metacast +32 (int (*)(...))QTextFrame::qt_metacall +40 (int (*)(...))QTextFrame::~QTextFrame +48 (int (*)(...))QTextFrame::~QTextFrame +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextFrame + size=16 align=8 + base size=16 base align=8 +QTextFrame (0x0x7f8bb1b447b8) 0 + vptr=((& QTextFrame::_ZTV10QTextFrame) + 16) + QTextObject (0x0x7f8bb1b44820) 0 + primary-for QTextFrame (0x0x7f8bb1b447b8) + QObject (0x0x7f8bb1b4dba0) 0 + primary-for QTextObject (0x0x7f8bb1b44820) + +Vtable for QTextBlockUserData +QTextBlockUserData::_ZTV18QTextBlockUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTextBlockUserData) +16 (int (*)(...))QTextBlockUserData::~QTextBlockUserData +24 (int (*)(...))QTextBlockUserData::~QTextBlockUserData + +Class QTextBlockUserData + size=8 align=8 + base size=8 base align=8 +QTextBlockUserData (0x0x7f8bb17e3600) 0 nearly-empty + vptr=((& QTextBlockUserData::_ZTV18QTextBlockUserData) + 16) + +Class QTextBlock::iterator + size=24 align=8 + base size=20 base align=8 +QTextBlock::iterator (0x0x7f8bb17e36c0) 0 + +Class QTextBlock + size=16 align=8 + base size=12 base align=8 +QTextBlock (0x0x7f8bb17e3660) 0 + +Class QTextFragment + size=16 align=8 + base size=16 base align=8 +QTextFragment (0x0x7f8bc2cfab40) 0 + +Class QSyntaxHighlighter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSyntaxHighlighter::QPrivateSignal (0x0x7f8bbef365a0) 0 empty + +Vtable for QSyntaxHighlighter +QSyntaxHighlighter::_ZTV18QSyntaxHighlighter: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QSyntaxHighlighter) +16 (int (*)(...))QSyntaxHighlighter::metaObject +24 (int (*)(...))QSyntaxHighlighter::qt_metacast +32 (int (*)(...))QSyntaxHighlighter::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QSyntaxHighlighter + size=16 align=8 + base size=16 base align=8 +QSyntaxHighlighter (0x0x7f8bbec54b60) 0 + vptr=((& QSyntaxHighlighter::_ZTV18QSyntaxHighlighter) + 16) + QObject (0x0x7f8bbef36420) 0 + primary-for QSyntaxHighlighter (0x0x7f8bbec54b60) + +Class QTextDocumentFragment + size=8 align=8 + base size=8 base align=8 +QTextDocumentFragment (0x0x7f8bbef57540) 0 + +Class QTextDocumentWriter + size=8 align=8 + base size=8 base align=8 +QTextDocumentWriter (0x0x7f8bbef576c0) 0 + +Class QTextList::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextList::QPrivateSignal (0x0x7f8bbef57f00) 0 empty + +Vtable for QTextList +QTextList::_ZTV9QTextList: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextList) +16 (int (*)(...))QTextList::metaObject +24 (int (*)(...))QTextList::qt_metacast +32 (int (*)(...))QTextList::qt_metacall +40 (int (*)(...))QTextList::~QTextList +48 (int (*)(...))QTextList::~QTextList +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTextBlockGroup::blockInserted +120 (int (*)(...))QTextBlockGroup::blockRemoved +128 (int (*)(...))QTextBlockGroup::blockFormatChanged + +Class QTextList + size=16 align=8 + base size=16 base align=8 +QTextList (0x0x7f8bbe42bf70) 0 + vptr=((& QTextList::_ZTV9QTextList) + 16) + QTextBlockGroup (0x0x7f8bbe4e8000) 0 + primary-for QTextList (0x0x7f8bbe42bf70) + QTextObject (0x0x7f8bbe4e8680) 0 + primary-for QTextBlockGroup (0x0x7f8bbe4e8000) + QObject (0x0x7f8bbef57720) 0 + primary-for QTextObject (0x0x7f8bbe4e8680) + +Class QTextTableCell + size=16 align=8 + base size=12 base align=8 +QTextTableCell (0x0x7f8bbebf4b40) 0 + +Class QTextTable::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextTable::QPrivateSignal (0x0x7f8bbe4e9420) 0 empty + +Vtable for QTextTable +QTextTable::_ZTV10QTextTable: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextTable) +16 (int (*)(...))QTextTable::metaObject +24 (int (*)(...))QTextTable::qt_metacast +32 (int (*)(...))QTextTable::qt_metacall +40 (int (*)(...))QTextTable::~QTextTable +48 (int (*)(...))QTextTable::~QTextTable +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTextTable + size=16 align=8 + base size=16 base align=8 +QTextTable (0x0x7f8bbe4e86e8) 0 + vptr=((& QTextTable::_ZTV10QTextTable) + 16) + QTextFrame (0x0x7f8bbe507680) 0 + primary-for QTextTable (0x0x7f8bbe4e86e8) + QTextObject (0x0x7f8bbe5076e8) 0 + primary-for QTextFrame (0x0x7f8bbe507680) + QObject (0x0x7f8bbe4c0c00) 0 + primary-for QTextObject (0x0x7f8bbe5076e8) + +Class QValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QValidator::QPrivateSignal (0x0x7f8bbe50dd20) 0 empty + +Vtable for QValidator +QValidator::_ZTV10QValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QValidator) +16 (int (*)(...))QValidator::metaObject +24 (int (*)(...))QValidator::qt_metacast +32 (int (*)(...))QValidator::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))QValidator::fixup + +Class QValidator + size=16 align=8 + base size=16 base align=8 +QValidator (0x0x7f8bbe51d5b0) 0 + vptr=((& QValidator::_ZTV10QValidator) + 16) + QObject (0x0x7f8bbe50dcc0) 0 + primary-for QValidator (0x0x7f8bbe51d5b0) + +Class QIntValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIntValidator::QPrivateSignal (0x0x7f8bbe5b5de0) 0 empty + +Vtable for QIntValidator +QIntValidator::_ZTV13QIntValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QIntValidator) +16 (int (*)(...))QIntValidator::metaObject +24 (int (*)(...))QIntValidator::qt_metacast +32 (int (*)(...))QIntValidator::qt_metacall +40 (int (*)(...))QIntValidator::~QIntValidator +48 (int (*)(...))QIntValidator::~QIntValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIntValidator::validate +120 (int (*)(...))QIntValidator::fixup +128 (int (*)(...))QIntValidator::setRange + +Class QIntValidator + size=24 align=8 + base size=24 base align=8 +QIntValidator (0x0x7f8bbe51d618) 0 + vptr=((& QIntValidator::_ZTV13QIntValidator) + 16) + QValidator (0x0x7f8bbe539068) 0 + primary-for QIntValidator (0x0x7f8bbe51d618) + QObject (0x0x7f8bbe5b5d80) 0 + primary-for QValidator (0x0x7f8bbe539068) + +Class QDoubleValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleValidator::QPrivateSignal (0x0x7f8bbe1dbc00) 0 empty + +Vtable for QDoubleValidator +QDoubleValidator::_ZTV16QDoubleValidator: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDoubleValidator) +16 (int (*)(...))QDoubleValidator::metaObject +24 (int (*)(...))QDoubleValidator::qt_metacast +32 (int (*)(...))QDoubleValidator::qt_metacall +40 (int (*)(...))QDoubleValidator::~QDoubleValidator +48 (int (*)(...))QDoubleValidator::~QDoubleValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDoubleValidator::validate +120 (int (*)(...))QValidator::fixup +128 (int (*)(...))QDoubleValidator::setRange + +Class QDoubleValidator + size=40 align=8 + base size=36 base align=8 +QDoubleValidator (0x0x7f8bbe5390d0) 0 + vptr=((& QDoubleValidator::_ZTV16QDoubleValidator) + 16) + QValidator (0x0x7f8bbe539270) 0 + primary-for QDoubleValidator (0x0x7f8bbe5390d0) + QObject (0x0x7f8bbe1dbb40) 0 + primary-for QValidator (0x0x7f8bbe539270) + +Class QRegExpValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegExpValidator::QPrivateSignal (0x0x7f8bbda6f4e0) 0 empty + +Vtable for QRegExpValidator +QRegExpValidator::_ZTV16QRegExpValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QRegExpValidator) +16 (int (*)(...))QRegExpValidator::metaObject +24 (int (*)(...))QRegExpValidator::qt_metacast +32 (int (*)(...))QRegExpValidator::qt_metacall +40 (int (*)(...))QRegExpValidator::~QRegExpValidator +48 (int (*)(...))QRegExpValidator::~QRegExpValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegExpValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegExpValidator + size=24 align=8 + base size=24 base align=8 +QRegExpValidator (0x0x7f8bbe539478) 0 + vptr=((& QRegExpValidator::_ZTV16QRegExpValidator) + 16) + QValidator (0x0x7f8bbe5396e8) 0 + primary-for QRegExpValidator (0x0x7f8bbe539478) + QObject (0x0x7f8bbda6f120) 0 + primary-for QValidator (0x0x7f8bbe5396e8) + +Class QRegularExpressionValidator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRegularExpressionValidator::QPrivateSignal (0x0x7f8bbda94960) 0 empty + +Vtable for QRegularExpressionValidator +QRegularExpressionValidator::_ZTV27QRegularExpressionValidator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QRegularExpressionValidator) +16 (int (*)(...))QRegularExpressionValidator::metaObject +24 (int (*)(...))QRegularExpressionValidator::qt_metacast +32 (int (*)(...))QRegularExpressionValidator::qt_metacall +40 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +48 (int (*)(...))QRegularExpressionValidator::~QRegularExpressionValidator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QRegularExpressionValidator::validate +120 (int (*)(...))QValidator::fixup + +Class QRegularExpressionValidator + size=16 align=8 + base size=16 base align=8 +QRegularExpressionValidator (0x0x7f8bbe539888) 0 + vptr=((& QRegularExpressionValidator::_ZTV27QRegularExpressionValidator) + 16) + QValidator (0x0x7f8bbe5398f0) 0 + primary-for QRegularExpressionValidator (0x0x7f8bbe539888) + QObject (0x0x7f8bbda94900) 0 + primary-for QValidator (0x0x7f8bbe5398f0) + +Class QSizePolicy::Bits + size=4 align=4 + base size=4 base align=4 +QSizePolicy::Bits (0x0x7f8bbd87f420) 0 + +Class QSizePolicy + size=4 align=4 + base size=4 base align=4 +QSizePolicy (0x0x7f8bbdaaf540) 0 + +Class QWidgetData + size=88 align=8 + base size=88 base align=8 +QWidgetData (0x0x7f8bbbc94b40) 0 + +Class QWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidget::QPrivateSignal (0x0x7f8bbbc94d20) 0 empty + +Vtable for QWidget +QWidget::_ZTV7QWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWidget) +16 (int (*)(...))QWidget::metaObject +24 (int (*)(...))QWidget::qt_metacast +32 (int (*)(...))QWidget::qt_metacall +40 (int (*)(...))QWidget::~QWidget +48 (int (*)(...))QWidget::~QWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI7QWidget) +448 (int (*)(...))QWidget::_ZThn16_N7QWidgetD1Ev +456 (int (*)(...))QWidget::_ZThn16_N7QWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWidget + size=48 align=8 + base size=48 base align=8 +QWidget (0x0x7f8bba978c40) 0 + vptr=((& QWidget::_ZTV7QWidget) + 16) + QObject (0x0x7f8bbbc94ba0) 0 + primary-for QWidget (0x0x7f8bba978c40) + QPaintDevice (0x0x7f8bbbc94cc0) 16 + vptr=((& QWidget::_ZTV7QWidget) + 448) + +Class QAbstractButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractButton::QPrivateSignal (0x0x7f8bbb65bf60) 0 empty + +Vtable for QAbstractButton +QAbstractButton::_ZTV15QAbstractButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractButton) +16 (int (*)(...))QAbstractButton::metaObject +24 (int (*)(...))QAbstractButton::qt_metacast +32 (int (*)(...))QAbstractButton::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI15QAbstractButton) +472 0 +480 0 +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractButton + size=48 align=8 + base size=48 base align=8 +QAbstractButton (0x0x7f8bbc9ca138) 0 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 16) + QWidget (0x0x7f8bbc2a5930) 0 + primary-for QAbstractButton (0x0x7f8bbc9ca138) + QObject (0x0x7f8bbb65bde0) 0 + primary-for QWidget (0x0x7f8bbc2a5930) + QPaintDevice (0x0x7f8bbb65bea0) 16 + vptr=((& QAbstractButton::_ZTV15QAbstractButton) + 472) + +Class QAbstractSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSpinBox::QPrivateSignal (0x0x7f8bbb79ef60) 0 empty + +Vtable for QAbstractSpinBox +QAbstractSpinBox::_ZTV16QAbstractSpinBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAbstractSpinBox) +16 (int (*)(...))QAbstractSpinBox::metaObject +24 (int (*)(...))QAbstractSpinBox::qt_metacast +32 (int (*)(...))QAbstractSpinBox::qt_metacall +40 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +48 (int (*)(...))QAbstractSpinBox::~QAbstractSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSpinBox::validate +440 (int (*)(...))QAbstractSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI16QAbstractSpinBox) +488 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD1Ev +496 (int (*)(...))QAbstractSpinBox::_ZThn16_N16QAbstractSpinBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSpinBox + size=48 align=8 + base size=48 base align=8 +QAbstractSpinBox (0x0x7f8bbc9ca3a8) 0 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 16) + QWidget (0x0x7f8bbc2a59a0) 0 + primary-for QAbstractSpinBox (0x0x7f8bbc9ca3a8) + QObject (0x0x7f8bbb79e960) 0 + primary-for QWidget (0x0x7f8bbc2a59a0) + QPaintDevice (0x0x7f8bbb79e9c0) 16 + vptr=((& QAbstractSpinBox::_ZTV16QAbstractSpinBox) + 488) + +Class QAbstractSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractSlider::QPrivateSignal (0x0x7f8bbb21e180) 0 empty + +Vtable for QAbstractSlider +QAbstractSlider::_ZTV15QAbstractSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAbstractSlider) +16 (int (*)(...))QAbstractSlider::metaObject +24 (int (*)(...))QAbstractSlider::qt_metacast +32 (int (*)(...))QAbstractSlider::qt_metacall +40 (int (*)(...))QAbstractSlider::~QAbstractSlider +48 (int (*)(...))QAbstractSlider::~QAbstractSlider +56 (int (*)(...))QAbstractSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QAbstractSlider) +456 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD1Ev +464 (int (*)(...))QAbstractSlider::_ZThn16_N15QAbstractSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractSlider + size=48 align=8 + base size=48 base align=8 +QAbstractSlider (0x0x7f8bbc5f8478) 0 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 16) + QWidget (0x0x7f8bbc2e58c0) 0 + primary-for QAbstractSlider (0x0x7f8bbc5f8478) + QObject (0x0x7f8bbb1fbcc0) 0 + primary-for QWidget (0x0x7f8bbc2e58c0) + QPaintDevice (0x0x7f8bbb21e120) 16 + vptr=((& QAbstractSlider::_ZTV15QAbstractSlider) + 456) + +Class QSlider::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSlider::QPrivateSignal (0x0x7f8bbb293600) 0 empty + +Vtable for QSlider +QSlider::_ZTV7QSlider: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QSlider) +16 (int (*)(...))QSlider::metaObject +24 (int (*)(...))QSlider::qt_metacast +32 (int (*)(...))QSlider::qt_metacall +40 (int (*)(...))QSlider::~QSlider +48 (int (*)(...))QSlider::~QSlider +56 (int (*)(...))QSlider::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSlider::sizeHint +136 (int (*)(...))QSlider::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSlider::mousePressEvent +176 (int (*)(...))QSlider::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSlider::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSlider::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractSlider::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI7QSlider) +456 (int (*)(...))QSlider::_ZThn16_N7QSliderD1Ev +464 (int (*)(...))QSlider::_ZThn16_N7QSliderD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSlider + size=48 align=8 + base size=48 base align=8 +QSlider (0x0x7f8bbc5f84e0) 0 + vptr=((& QSlider::_ZTV7QSlider) + 16) + QAbstractSlider (0x0x7f8bbc5f86e8) 0 + primary-for QSlider (0x0x7f8bbc5f84e0) + QWidget (0x0x7f8bbde5d540) 0 + primary-for QAbstractSlider (0x0x7f8bbc5f86e8) + QObject (0x0x7f8bbb23f540) 0 + primary-for QWidget (0x0x7f8bbde5d540) + QPaintDevice (0x0x7f8bbb23f5a0) 16 + vptr=((& QSlider::_ZTV7QSlider) + 456) + +Class QStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyle::QPrivateSignal (0x0x7f8bbb293a80) 0 empty + +Vtable for QStyle +QStyle::_ZTV6QStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QStyle) +16 (int (*)(...))QStyle::metaObject +24 (int (*)(...))QStyle::qt_metacast +32 (int (*)(...))QStyle::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyle::polish +120 (int (*)(...))QStyle::unpolish +128 (int (*)(...))QStyle::polish +136 (int (*)(...))QStyle::unpolish +144 (int (*)(...))QStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))__cxa_pure_virtual +232 (int (*)(...))__cxa_pure_virtual +240 (int (*)(...))__cxa_pure_virtual +248 (int (*)(...))__cxa_pure_virtual +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))__cxa_pure_virtual +272 (int (*)(...))__cxa_pure_virtual +280 (int (*)(...))__cxa_pure_virtual +288 (int (*)(...))__cxa_pure_virtual + +Class QStyle + size=16 align=8 + base size=16 base align=8 +QStyle (0x0x7f8bbc60faf8) 0 + vptr=((& QStyle::_ZTV6QStyle) + 16) + QObject (0x0x7f8bbb293a20) 0 + primary-for QStyle (0x0x7f8bbc60faf8) + +Class QTabBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabBar::QPrivateSignal (0x0x7f8bbaf55900) 0 empty + +Vtable for QTabBar +QTabBar::_ZTV7QTabBar: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QTabBar) +16 (int (*)(...))QTabBar::metaObject +24 (int (*)(...))QTabBar::qt_metacast +32 (int (*)(...))QTabBar::qt_metacall +40 (int (*)(...))QTabBar::~QTabBar +48 (int (*)(...))QTabBar::~QTabBar +56 (int (*)(...))QTabBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTabBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabBar::sizeHint +136 (int (*)(...))QTabBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTabBar::mousePressEvent +176 (int (*)(...))QTabBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QTabBar::mouseMoveEvent +200 (int (*)(...))QTabBar::wheelEvent +208 (int (*)(...))QTabBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabBar::showEvent +352 (int (*)(...))QTabBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabBar::tabSizeHint +440 (int (*)(...))QTabBar::minimumTabSizeHint +448 (int (*)(...))QTabBar::tabInserted +456 (int (*)(...))QTabBar::tabRemoved +464 (int (*)(...))QTabBar::tabLayoutChange +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QTabBar) +488 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD1Ev +496 (int (*)(...))QTabBar::_ZThn16_N7QTabBarD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabBar + size=48 align=8 + base size=48 base align=8 +QTabBar (0x0x7f8bbc690680) 0 + vptr=((& QTabBar::_ZTV7QTabBar) + 16) + QWidget (0x0x7f8bbf279700) 0 + primary-for QTabBar (0x0x7f8bbc690680) + QObject (0x0x7f8bbaf552a0) 0 + primary-for QWidget (0x0x7f8bbf279700) + QPaintDevice (0x0x7f8bbaf55300) 16 + vptr=((& QTabBar::_ZTV7QTabBar) + 488) + +Class QTabWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTabWidget::QPrivateSignal (0x0x7f8bbafb7a80) 0 empty + +Vtable for QTabWidget +QTabWidget::_ZTV10QTabWidget: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTabWidget) +16 (int (*)(...))QTabWidget::metaObject +24 (int (*)(...))QTabWidget::qt_metacast +32 (int (*)(...))QTabWidget::qt_metacall +40 (int (*)(...))QTabWidget::~QTabWidget +48 (int (*)(...))QTabWidget::~QTabWidget +56 (int (*)(...))QTabWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QTabWidget::sizeHint +136 (int (*)(...))QTabWidget::minimumSizeHint +144 (int (*)(...))QTabWidget::heightForWidth +152 (int (*)(...))QTabWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QTabWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTabWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTabWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QTabWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTabWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QTabWidget::tabInserted +440 (int (*)(...))QTabWidget::tabRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI10QTabWidget) +464 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD1Ev +472 (int (*)(...))QTabWidget::_ZThn16_N10QTabWidgetD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTabWidget + size=48 align=8 + base size=48 base align=8 +QTabWidget (0x0x7f8bbc6ad000) 0 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 16) + QWidget (0x0x7f8bbf279d20) 0 + primary-for QTabWidget (0x0x7f8bbc6ad000) + QObject (0x0x7f8bbaf96e40) 0 + primary-for QWidget (0x0x7f8bbf279d20) + QPaintDevice (0x0x7f8bbaf96ea0) 16 + vptr=((& QTabWidget::_ZTV10QTabWidget) + 464) + +Class QRubberBand::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRubberBand::QPrivateSignal (0x0x7f8bbacf7300) 0 empty + +Vtable for QRubberBand +QRubberBand::_ZTV11QRubberBand: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QRubberBand) +16 (int (*)(...))QRubberBand::metaObject +24 (int (*)(...))QRubberBand::qt_metacast +32 (int (*)(...))QRubberBand::qt_metacall +40 (int (*)(...))QRubberBand::~QRubberBand +48 (int (*)(...))QRubberBand::~QRubberBand +56 (int (*)(...))QRubberBand::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRubberBand::paintEvent +264 (int (*)(...))QRubberBand::moveEvent +272 (int (*)(...))QRubberBand::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QRubberBand::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QRubberBand::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QRubberBand) +448 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD1Ev +456 (int (*)(...))QRubberBand::_ZThn16_N11QRubberBandD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRubberBand + size=48 align=8 + base size=48 base align=8 +QRubberBand (0x0x7f8bbc6ad068) 0 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 16) + QWidget (0x0x7f8bbf2fc230) 0 + primary-for QRubberBand (0x0x7f8bbc6ad068) + QObject (0x0x7f8bbac440c0) 0 + primary-for QWidget (0x0x7f8bbf2fc230) + QPaintDevice (0x0x7f8bbacf72a0) 16 + vptr=((& QRubberBand::_ZTV11QRubberBand) + 448) + +Class QFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFrame::QPrivateSignal (0x0x7f8bbab7ba80) 0 empty + +Vtable for QFrame +QFrame::_ZTV6QFrame: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QFrame) +16 (int (*)(...))QFrame::metaObject +24 (int (*)(...))QFrame::qt_metacast +32 (int (*)(...))QFrame::qt_metacall +40 (int (*)(...))QFrame::~QFrame +48 (int (*)(...))QFrame::~QFrame +56 (int (*)(...))QFrame::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QFrame) +448 (int (*)(...))QFrame::_ZThn16_N6QFrameD1Ev +456 (int (*)(...))QFrame::_ZThn16_N6QFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFrame + size=48 align=8 + base size=48 base align=8 +QFrame (0x0x7f8bbc49f000) 0 + vptr=((& QFrame::_ZTV6QFrame) + 16) + QWidget (0x0x7f8bbf2fc540) 0 + primary-for QFrame (0x0x7f8bbc49f000) + QObject (0x0x7f8bbad12b40) 0 + primary-for QWidget (0x0x7f8bbf2fc540) + QPaintDevice (0x0x7f8bbab7ba20) 16 + vptr=((& QFrame::_ZTV6QFrame) + 448) + +Class QStyleOption + size=64 align=8 + base size=64 base align=8 +QStyleOption (0x0x7f8bbab9b540) 0 + +Class QStyleOptionFocusRect + size=80 align=8 + base size=80 base align=8 +QStyleOptionFocusRect (0x0x7f8bbc49f068) 0 + QStyleOption (0x0x7f8bbabbd180) 0 + +Class QStyleOptionFrame + size=80 align=8 + base size=80 base align=8 +QStyleOptionFrame (0x0x7f8bbc49f208) 0 + QStyleOption (0x0x7f8bba881cc0) 0 + +Class QStyleOptionTabWidgetFrame + size=136 align=8 + base size=132 base align=8 +QStyleOptionTabWidgetFrame (0x0x7f8bbc49f820) 0 + QStyleOption (0x0x7f8bba7aa0c0) 0 + +Class QStyleOptionTabBarBase + size=104 align=8 + base size=101 base align=8 +QStyleOptionTabBarBase (0x0x7f8bbc49f888) 0 + QStyleOption (0x0x7f8bba7aacc0) 0 + +Class QStyleOptionHeader + size=120 align=8 + base size=116 base align=8 +QStyleOptionHeader (0x0x7f8bbc49fa28) 0 + QStyleOption (0x0x7f8bba3e5300) 0 + +Class QStyleOptionButton + size=96 align=8 + base size=96 base align=8 +QStyleOptionButton (0x0x7f8bbc49fc30) 0 + QStyleOption (0x0x7f8bba3e5f60) 0 + +Class QStyleOptionTab + size=136 align=8 + base size=136 base align=8 +QStyleOptionTab (0x0x7f8bbc4bbd68) 0 + QStyleOption (0x0x7f8bba562c60) 0 + +Class QStyleOptionToolBar + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBar (0x0x7f8bbbbe2e38) 0 + QStyleOption (0x0x7f8bba22b0c0) 0 + +Class QStyleOptionProgressBar + size=104 align=8 + base size=102 base align=8 +QStyleOptionProgressBar (0x0x7f8bbbca78f0) 0 + QStyleOption (0x0x7f8bba093240) 0 + +Class QStyleOptionMenuItem + size=136 align=8 + base size=136 base align=8 +QStyleOptionMenuItem (0x0x7f8bbbca7958) 0 + QStyleOption (0x0x7f8bba0b1480) 0 + +Class QStyleOptionDockWidget + size=80 align=8 + base size=76 base align=8 +QStyleOptionDockWidget (0x0x7f8bbbd314e0) 0 + QStyleOption (0x0x7f8bba139360) 0 + +Class QStyleOptionViewItem + size=192 align=8 + base size=192 base align=8 +QStyleOptionViewItem (0x0x7f8bbbd31618) 0 + QStyleOption (0x0x7f8bba139b40) 0 + +Class QStyleOptionToolBox + size=88 align=8 + base size=88 base align=8 +QStyleOptionToolBox (0x0x7f8bbb9eda90) 0 + QStyleOption (0x0x7f8bb9ea9c60) 0 + +Class QStyleOptionRubberBand + size=72 align=8 + base size=69 base align=8 +QStyleOptionRubberBand (0x0x7f8bbbba14e0) 0 + QStyleOption (0x0x7f8bb9eed420) 0 + +Class QStyleOptionComplex + size=72 align=8 + base size=72 base align=8 +QStyleOptionComplex (0x0x7f8bbbba1548) 0 + QStyleOption (0x0x7f8bb9c3a9c0) 0 + +Class QStyleOptionSlider + size=128 align=8 + base size=121 base align=8 +QStyleOptionSlider (0x0x7f8bbbba1a90) 0 + QStyleOptionComplex (0x0x7f8bbbba1af8) 0 + QStyleOption (0x0x7f8bb9c735a0) 0 + +Class QStyleOptionSpinBox + size=88 align=8 + base size=81 base align=8 +QStyleOptionSpinBox (0x0x7f8bbbba1f70) 0 + QStyleOptionComplex (0x0x7f8bbbbc0000) 0 + QStyleOption (0x0x7f8bb9cd5840) 0 + +Class QStyleOptionToolButton + size=136 align=8 + base size=136 base align=8 +QStyleOptionToolButton (0x0x7f8bbbbc0a28) 0 + QStyleOptionComplex (0x0x7f8bbbbc0a90) 0 + QStyleOption (0x0x7f8bb9cf5000) 0 + +Class QStyleOptionComboBox + size=120 align=8 + base size=120 base align=8 +QStyleOptionComboBox (0x0x7f8bbb7eb5b0) 0 + QStyleOptionComplex (0x0x7f8bbb7eb618) 0 + QStyleOption (0x0x7f8bb9b012a0) 0 + +Class QStyleOptionTitleBar + size=96 align=8 + base size=96 base align=8 +QStyleOptionTitleBar (0x0x7f8bbb7eb888) 0 + QStyleOptionComplex (0x0x7f8bbb7eb8f0) 0 + QStyleOption (0x0x7f8bb9b1c1e0) 0 + +Class QStyleOptionGroupBox + size=120 align=8 + base size=116 base align=8 +QStyleOptionGroupBox (0x0x7f8bbb7eb958) 0 + QStyleOptionComplex (0x0x7f8bbb7eba90) 0 + QStyleOption (0x0x7f8bb9ba8240) 0 + +Class QStyleOptionSizeGrip + size=80 align=8 + base size=76 base align=8 +QStyleOptionSizeGrip (0x0x7f8bbb7ebaf8) 0 + QStyleOptionComplex (0x0x7f8bbb7ebd00) 0 + QStyleOption (0x0x7f8bb9bc61e0) 0 + +Class QStyleOptionGraphicsItem + size=152 align=8 + base size=152 base align=8 +QStyleOptionGraphicsItem (0x0x7f8bbb7ebd68) 0 + QStyleOption (0x0x7f8bb9bc6de0) 0 + +Class QStyleHintReturn + size=8 align=4 + base size=8 base align=4 +QStyleHintReturn (0x0x7f8bb9934b40) 0 + +Class QStyleHintReturnMask + size=16 align=8 + base size=16 base align=8 +QStyleHintReturnMask (0x0x7f8bbb81c208) 0 + QStyleHintReturn (0x0x7f8bb99594e0) 0 + +Class QStyleHintReturnVariant + size=24 align=8 + base size=24 base align=8 +QStyleHintReturnVariant (0x0x7f8bbb81c9c0) 0 + QStyleHintReturn (0x0x7f8bb9959540) 0 + +Class QAbstractItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemDelegate::QPrivateSignal (0x0x7f8bb9604ea0) 0 empty + +Vtable for QAbstractItemDelegate +QAbstractItemDelegate::_ZTV21QAbstractItemDelegate: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QAbstractItemDelegate) +16 (int (*)(...))QAbstractItemDelegate::metaObject +24 (int (*)(...))QAbstractItemDelegate::qt_metacast +32 (int (*)(...))QAbstractItemDelegate::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QAbstractItemDelegate::setEditorData +152 (int (*)(...))QAbstractItemDelegate::setModelData +160 (int (*)(...))QAbstractItemDelegate::updateEditorGeometry +168 (int (*)(...))QAbstractItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles + +Class QAbstractItemDelegate + size=16 align=8 + base size=16 base align=8 +QAbstractItemDelegate (0x0x7f8bbb835ea0) 0 + vptr=((& QAbstractItemDelegate::_ZTV21QAbstractItemDelegate) + 16) + QObject (0x0x7f8bb9604de0) 0 + primary-for QAbstractItemDelegate (0x0x7f8bbb835ea0) + +Class QAbstractScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractScrollArea::QPrivateSignal (0x0x7f8bb9642d20) 0 empty + +Vtable for QAbstractScrollArea +QAbstractScrollArea::_ZTV19QAbstractScrollArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractScrollArea) +16 (int (*)(...))QAbstractScrollArea::metaObject +24 (int (*)(...))QAbstractScrollArea::qt_metacast +32 (int (*)(...))QAbstractScrollArea::qt_metacall +40 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +48 (int (*)(...))QAbstractScrollArea::~QAbstractScrollArea +56 (int (*)(...))QAbstractScrollArea::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI19QAbstractScrollArea) +480 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD1Ev +488 (int (*)(...))QAbstractScrollArea::_ZThn16_N19QAbstractScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractScrollArea + size=48 align=8 + base size=48 base align=8 +QAbstractScrollArea (0x0x7f8bbb84d3a8) 0 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 16) + QFrame (0x0x7f8bbb84d410) 0 + primary-for QAbstractScrollArea (0x0x7f8bbb84d3a8) + QWidget (0x0x7f8bbeeaeaf0) 0 + primary-for QFrame (0x0x7f8bbb84d410) + QObject (0x0x7f8bb9624c60) 0 + primary-for QWidget (0x0x7f8bbeeaeaf0) + QPaintDevice (0x0x7f8bb9624cc0) 16 + vptr=((& QAbstractScrollArea::_ZTV19QAbstractScrollArea) + 480) + +Class QAbstractItemView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemView::QPrivateSignal (0x0x7f8bb96851e0) 0 empty + +Vtable for QAbstractItemView +QAbstractItemView::_ZTV17QAbstractItemView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAbstractItemView) +16 (int (*)(...))QAbstractItemView::metaObject +24 (int (*)(...))QAbstractItemView::qt_metacast +32 (int (*)(...))QAbstractItemView::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QAbstractScrollArea::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))__cxa_pure_virtual +496 (int (*)(...))__cxa_pure_virtual +504 (int (*)(...))__cxa_pure_virtual +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QAbstractItemView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))__cxa_pure_virtual +688 (int (*)(...))__cxa_pure_virtual +696 (int (*)(...))__cxa_pure_virtual +704 (int (*)(...))__cxa_pure_virtual +712 (int (*)(...))__cxa_pure_virtual +720 (int (*)(...))__cxa_pure_virtual +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI17QAbstractItemView) +784 0 +792 0 +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QAbstractItemView + size=48 align=8 + base size=48 base align=8 +QAbstractItemView (0x0x7f8bbb84d4e0) 0 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 16) + QAbstractScrollArea (0x0x7f8bbb84d548) 0 + primary-for QAbstractItemView (0x0x7f8bbb84d4e0) + QFrame (0x0x7f8bbb84d888) 0 + primary-for QAbstractScrollArea (0x0x7f8bbb84d548) + QWidget (0x0x7f8bbeeaed20) 0 + primary-for QFrame (0x0x7f8bbb84d888) + QObject (0x0x7f8bb9667e40) 0 + primary-for QWidget (0x0x7f8bbeeaed20) + QPaintDevice (0x0x7f8bb9667ea0) 16 + vptr=((& QAbstractItemView::_ZTV17QAbstractItemView) + 784) + +Vtable for QAccessibleWidget +QAccessibleWidget::_ZTV17QAccessibleWidget: 35 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QAccessibleWidget) +16 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +24 (int (*)(...))QAccessibleWidget::~QAccessibleWidget +32 (int (*)(...))QAccessibleWidget::isValid +40 (int (*)(...))QAccessibleObject::object +48 (int (*)(...))QAccessibleWidget::window +56 (int (*)(...))QAccessibleWidget::relations +64 (int (*)(...))QAccessibleWidget::focusChild +72 (int (*)(...))QAccessibleObject::childAt +80 (int (*)(...))QAccessibleWidget::parent +88 (int (*)(...))QAccessibleWidget::child +96 (int (*)(...))QAccessibleWidget::childCount +104 (int (*)(...))QAccessibleWidget::indexOfChild +112 (int (*)(...))QAccessibleWidget::text +120 (int (*)(...))QAccessibleObject::setText +128 (int (*)(...))QAccessibleWidget::rect +136 (int (*)(...))QAccessibleWidget::role +144 (int (*)(...))QAccessibleWidget::state +152 (int (*)(...))QAccessibleWidget::foregroundColor +160 (int (*)(...))QAccessibleWidget::backgroundColor +168 (int (*)(...))QAccessibleInterface::virtual_hook +176 (int (*)(...))QAccessibleWidget::interface_cast +184 (int (*)(...))QAccessibleWidget::actionNames +192 (int (*)(...))QAccessibleWidget::doAction +200 (int (*)(...))QAccessibleWidget::keyBindingsForAction +208 (int (*)(...))-16 +216 (int (*)(...))(& _ZTI17QAccessibleWidget) +224 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD1Ev +232 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidgetD0Ev +240 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget11actionNamesEv +248 (int (*)(...))QAccessibleActionInterface::localizedActionName +256 (int (*)(...))QAccessibleActionInterface::localizedActionDescription +264 (int (*)(...))QAccessibleWidget::_ZThn16_N17QAccessibleWidget8doActionERK7QString +272 (int (*)(...))QAccessibleWidget::_ZThn16_NK17QAccessibleWidget20keyBindingsForActionERK7QString + +Class QAccessibleWidget + size=32 align=8 + base size=32 base align=8 +QAccessibleWidget (0x0x7f8bbeed5ee0) 0 + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 16) + QAccessibleObject (0x0x7f8bbb84dd68) 0 + primary-for QAccessibleWidget (0x0x7f8bbeed5ee0) + QAccessibleInterface (0x0x7f8bb9249840) 0 nearly-empty + primary-for QAccessibleObject (0x0x7f8bbb84dd68) + QAccessibleActionInterface (0x0x7f8bb92498a0) 16 nearly-empty + vptr=((& QAccessibleWidget::_ZTV17QAccessibleWidget) + 224) + +Class QAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAction::QPrivateSignal (0x0x7f8bb9249b40) 0 empty + +Vtable for QAction +QAction::_ZTV7QAction: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QAction) +16 (int (*)(...))QAction::metaObject +24 (int (*)(...))QAction::qt_metacast +32 (int (*)(...))QAction::qt_metacall +40 (int (*)(...))QAction::~QAction +48 (int (*)(...))QAction::~QAction +56 (int (*)(...))QAction::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QAction + size=16 align=8 + base size=16 base align=8 +QAction (0x0x7f8bbb938888) 0 + vptr=((& QAction::_ZTV7QAction) + 16) + QObject (0x0x7f8bb9249ae0) 0 + primary-for QAction (0x0x7f8bbb938888) + +Class QActionGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QActionGroup::QPrivateSignal (0x0x7f8bb92ac180) 0 empty + +Vtable for QActionGroup +QActionGroup::_ZTV12QActionGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QActionGroup) +16 (int (*)(...))QActionGroup::metaObject +24 (int (*)(...))QActionGroup::qt_metacast +32 (int (*)(...))QActionGroup::qt_metacall +40 (int (*)(...))QActionGroup::~QActionGroup +48 (int (*)(...))QActionGroup::~QActionGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QActionGroup + size=16 align=8 + base size=16 base align=8 +QActionGroup (0x0x7f8bbb938bc8) 0 + vptr=((& QActionGroup::_ZTV12QActionGroup) + 16) + QObject (0x0x7f8bb928df00) 0 + primary-for QActionGroup (0x0x7f8bbb938bc8) + +Class QApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QApplication::QPrivateSignal (0x0x7f8bb92e9de0) 0 empty + +Vtable for QApplication +QApplication::_ZTV12QApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QApplication) +16 (int (*)(...))QApplication::metaObject +24 (int (*)(...))QApplication::qt_metacast +32 (int (*)(...))QApplication::qt_metacall +40 (int (*)(...))QApplication::~QApplication +48 (int (*)(...))QApplication::~QApplication +56 (int (*)(...))QApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QApplication::notify +120 (int (*)(...))QApplication::compressEvent + +Class QApplication + size=16 align=8 + base size=16 base align=8 +QApplication (0x0x7f8bbb938c30) 0 + vptr=((& QApplication::_ZTV12QApplication) + 16) + QGuiApplication (0x0x7f8bbb65d2d8) 0 + primary-for QApplication (0x0x7f8bbb938c30) + QCoreApplication (0x0x7f8bbb65d340) 0 + primary-for QGuiApplication (0x0x7f8bbb65d2d8) + QObject (0x0x7f8bb92e94e0) 0 + primary-for QCoreApplication (0x0x7f8bbb65d340) + +Vtable for QLayoutItem +QLayoutItem::_ZTV11QLayoutItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QLayoutItem) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QLayoutItem + size=16 align=8 + base size=12 base align=8 +QLayoutItem (0x0x7f8bb932ba20) 0 + vptr=((& QLayoutItem::_ZTV11QLayoutItem) + 16) + +Vtable for QSpacerItem +QSpacerItem::_ZTV11QSpacerItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QSpacerItem) +16 (int (*)(...))QSpacerItem::~QSpacerItem +24 (int (*)(...))QSpacerItem::~QSpacerItem +32 (int (*)(...))QSpacerItem::sizeHint +40 (int (*)(...))QSpacerItem::minimumSize +48 (int (*)(...))QSpacerItem::maximumSize +56 (int (*)(...))QSpacerItem::expandingDirections +64 (int (*)(...))QSpacerItem::setGeometry +72 (int (*)(...))QSpacerItem::geometry +80 (int (*)(...))QSpacerItem::isEmpty +88 (int (*)(...))QLayoutItem::hasHeightForWidth +96 (int (*)(...))QLayoutItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QLayoutItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QSpacerItem::spacerItem +144 (int (*)(...))QLayoutItem::controlTypes + +Class QSpacerItem + size=40 align=8 + base size=40 base align=8 +QSpacerItem (0x0x7f8bbb65d4e0) 0 + vptr=((& QSpacerItem::_ZTV11QSpacerItem) + 16) + QLayoutItem (0x0x7f8bb936e840) 0 + primary-for QSpacerItem (0x0x7f8bbb65d4e0) + +Vtable for QWidgetItem +QWidgetItem::_ZTV11QWidgetItem: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWidgetItem) +16 (int (*)(...))QWidgetItem::~QWidgetItem +24 (int (*)(...))QWidgetItem::~QWidgetItem +32 (int (*)(...))QWidgetItem::sizeHint +40 (int (*)(...))QWidgetItem::minimumSize +48 (int (*)(...))QWidgetItem::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItem::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItem + size=24 align=8 + base size=24 base align=8 +QWidgetItem (0x0x7f8bbb65d548) 0 + vptr=((& QWidgetItem::_ZTV11QWidgetItem) + 16) + QLayoutItem (0x0x7f8bb9390d80) 0 + primary-for QWidgetItem (0x0x7f8bbb65d548) + +Vtable for QWidgetItemV2 +QWidgetItemV2::_ZTV13QWidgetItemV2: 19 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetItemV2) +16 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +24 (int (*)(...))QWidgetItemV2::~QWidgetItemV2 +32 (int (*)(...))QWidgetItemV2::sizeHint +40 (int (*)(...))QWidgetItemV2::minimumSize +48 (int (*)(...))QWidgetItemV2::maximumSize +56 (int (*)(...))QWidgetItem::expandingDirections +64 (int (*)(...))QWidgetItem::setGeometry +72 (int (*)(...))QWidgetItem::geometry +80 (int (*)(...))QWidgetItem::isEmpty +88 (int (*)(...))QWidgetItem::hasHeightForWidth +96 (int (*)(...))QWidgetItemV2::heightForWidth +104 (int (*)(...))QLayoutItem::minimumHeightForWidth +112 (int (*)(...))QLayoutItem::invalidate +120 (int (*)(...))QWidgetItem::widget +128 (int (*)(...))QLayoutItem::layout +136 (int (*)(...))QLayoutItem::spacerItem +144 (int (*)(...))QWidgetItem::controlTypes + +Class QWidgetItemV2 + size=88 align=8 + base size=88 base align=8 +QWidgetItemV2 (0x0x7f8bbb6763a8) 0 + vptr=((& QWidgetItemV2::_ZTV13QWidgetItemV2) + 16) + QWidgetItem (0x0x7f8bbb676410) 0 + primary-for QWidgetItemV2 (0x0x7f8bbb6763a8) + QLayoutItem (0x0x7f8bb93ba420) 0 + primary-for QWidgetItem (0x0x7f8bbb676410) + +Class QLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLayout::QPrivateSignal (0x0x7f8bb8fda960) 0 empty + +Vtable for QLayout +QLayout::_ZTV7QLayout: 47 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QLayout) +16 (int (*)(...))QLayout::metaObject +24 (int (*)(...))QLayout::qt_metacast +32 (int (*)(...))QLayout::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QLayout::setGeometry +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))-16 +232 (int (*)(...))(& _ZTI7QLayout) +240 0 +248 0 +256 (int (*)(...))__cxa_pure_virtual +264 (int (*)(...))QLayout::_ZThn16_NK7QLayout11minimumSizeEv +272 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +280 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +288 (int (*)(...))QLayout::_ZThn16_N7QLayout11setGeometryERK5QRect +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +312 (int (*)(...))QLayoutItem::hasHeightForWidth +320 (int (*)(...))QLayoutItem::heightForWidth +328 (int (*)(...))QLayoutItem::minimumHeightForWidth +336 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +344 (int (*)(...))QLayoutItem::widget +352 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +360 (int (*)(...))QLayoutItem::spacerItem +368 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QLayout + size=32 align=8 + base size=28 base align=8 +QLayout (0x0x7f8bbef0ba10) 0 + vptr=((& QLayout::_ZTV7QLayout) + 16) + QObject (0x0x7f8bb93ba720) 0 + primary-for QLayout (0x0x7f8bbef0ba10) + QLayoutItem (0x0x7f8bb93ba780) 16 + vptr=((& QLayout::_ZTV7QLayout) + 240) + +Class QGridLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGridLayout::QPrivateSignal (0x0x7f8bb90ff2a0) 0 empty + +Vtable for QGridLayout +QGridLayout::_ZTV11QGridLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QGridLayout) +16 (int (*)(...))QGridLayout::metaObject +24 (int (*)(...))QGridLayout::qt_metacast +32 (int (*)(...))QGridLayout::qt_metacall +40 (int (*)(...))QGridLayout::~QGridLayout +48 (int (*)(...))QGridLayout::~QGridLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGridLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QGridLayout::addItem +136 (int (*)(...))QGridLayout::expandingDirections +144 (int (*)(...))QGridLayout::minimumSize +152 (int (*)(...))QGridLayout::maximumSize +160 (int (*)(...))QGridLayout::setGeometry +168 (int (*)(...))QGridLayout::itemAt +176 (int (*)(...))QGridLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QGridLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QGridLayout::sizeHint +232 (int (*)(...))QGridLayout::hasHeightForWidth +240 (int (*)(...))QGridLayout::heightForWidth +248 (int (*)(...))QGridLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QGridLayout) +272 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD1Ev +280 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayoutD0Ev +288 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout8sizeHintEv +296 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11minimumSizeEv +304 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout11maximumSizeEv +312 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout19expandingDirectionsEv +320 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout17hasHeightForWidthEv +352 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout14heightForWidthEi +360 (int (*)(...))QGridLayout::_ZThn16_NK11QGridLayout21minimumHeightForWidthEi +368 (int (*)(...))QGridLayout::_ZThn16_N11QGridLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QGridLayout + size=32 align=8 + base size=28 base align=8 +QGridLayout (0x0x7f8bbb676a90) 0 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 16) + QLayout (0x0x7f8bbef26150) 0 + primary-for QGridLayout (0x0x7f8bbb676a90) + QObject (0x0x7f8bb90ff180) 0 + primary-for QLayout (0x0x7f8bbef26150) + QLayoutItem (0x0x7f8bb90ff1e0) 16 + vptr=((& QGridLayout::_ZTV11QGridLayout) + 272) + +Class QBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBoxLayout::QPrivateSignal (0x0x7f8bb9120900) 0 empty + +Vtable for QBoxLayout +QBoxLayout::_ZTV10QBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QBoxLayout) +16 (int (*)(...))QBoxLayout::metaObject +24 (int (*)(...))QBoxLayout::qt_metacast +32 (int (*)(...))QBoxLayout::qt_metacall +40 (int (*)(...))QBoxLayout::~QBoxLayout +48 (int (*)(...))QBoxLayout::~QBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI10QBoxLayout) +272 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD1Ev +280 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QBoxLayout + size=32 align=8 + base size=28 base align=8 +QBoxLayout (0x0x7f8bbb676af8) 0 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 16) + QLayout (0x0x7f8bbef264d0) 0 + primary-for QBoxLayout (0x0x7f8bbb676af8) + QObject (0x0x7f8bb9120660) 0 + primary-for QLayout (0x0x7f8bbef264d0) + QLayoutItem (0x0x7f8bb9120720) 16 + vptr=((& QBoxLayout::_ZTV10QBoxLayout) + 272) + +Class QHBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHBoxLayout::QPrivateSignal (0x0x7f8bb91a3600) 0 empty + +Vtable for QHBoxLayout +QHBoxLayout::_ZTV11QHBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHBoxLayout) +16 (int (*)(...))QHBoxLayout::metaObject +24 (int (*)(...))QHBoxLayout::qt_metacast +32 (int (*)(...))QHBoxLayout::qt_metacall +40 (int (*)(...))QHBoxLayout::~QHBoxLayout +48 (int (*)(...))QHBoxLayout::~QHBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QHBoxLayout) +272 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD1Ev +280 (int (*)(...))QHBoxLayout::_ZThn16_N11QHBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QHBoxLayout + size=32 align=8 + base size=28 base align=8 +QHBoxLayout (0x0x7f8bbb7c2270) 0 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 16) + QBoxLayout (0x0x7f8bbb7c22d8) 0 + primary-for QHBoxLayout (0x0x7f8bbb7c2270) + QLayout (0x0x7f8bbef26cb0) 0 + primary-for QBoxLayout (0x0x7f8bbb7c22d8) + QObject (0x0x7f8bb91434e0) 0 + primary-for QLayout (0x0x7f8bbef26cb0) + QLayoutItem (0x0x7f8bb9143540) 16 + vptr=((& QHBoxLayout::_ZTV11QHBoxLayout) + 272) + +Class QVBoxLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVBoxLayout::QPrivateSignal (0x0x7f8bb91c12a0) 0 empty + +Vtable for QVBoxLayout +QVBoxLayout::_ZTV11QVBoxLayout: 51 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QVBoxLayout) +16 (int (*)(...))QVBoxLayout::metaObject +24 (int (*)(...))QVBoxLayout::qt_metacast +32 (int (*)(...))QVBoxLayout::qt_metacall +40 (int (*)(...))QVBoxLayout::~QVBoxLayout +48 (int (*)(...))QVBoxLayout::~QVBoxLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QBoxLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QBoxLayout::addItem +136 (int (*)(...))QBoxLayout::expandingDirections +144 (int (*)(...))QBoxLayout::minimumSize +152 (int (*)(...))QBoxLayout::maximumSize +160 (int (*)(...))QBoxLayout::setGeometry +168 (int (*)(...))QBoxLayout::itemAt +176 (int (*)(...))QBoxLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QBoxLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QBoxLayout::sizeHint +232 (int (*)(...))QBoxLayout::hasHeightForWidth +240 (int (*)(...))QBoxLayout::heightForWidth +248 (int (*)(...))QBoxLayout::minimumHeightForWidth +256 (int (*)(...))-16 +264 (int (*)(...))(& _ZTI11QVBoxLayout) +272 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD1Ev +280 (int (*)(...))QVBoxLayout::_ZThn16_N11QVBoxLayoutD0Ev +288 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout8sizeHintEv +296 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11minimumSizeEv +304 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout11maximumSizeEv +312 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout19expandingDirectionsEv +320 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout11setGeometryERK5QRect +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +336 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +344 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout17hasHeightForWidthEv +352 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout14heightForWidthEi +360 (int (*)(...))QBoxLayout::_ZThn16_NK10QBoxLayout21minimumHeightForWidthEi +368 (int (*)(...))QBoxLayout::_ZThn16_N10QBoxLayout10invalidateEv +376 (int (*)(...))QLayoutItem::widget +384 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +392 (int (*)(...))QLayoutItem::spacerItem +400 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QVBoxLayout + size=32 align=8 + base size=28 base align=8 +QVBoxLayout (0x0x7f8bbb7c2750) 0 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 16) + QBoxLayout (0x0x7f8bbb7c27b8) 0 + primary-for QVBoxLayout (0x0x7f8bbb7c2750) + QLayout (0x0x7f8bbef26ee0) 0 + primary-for QBoxLayout (0x0x7f8bbb7c27b8) + QObject (0x0x7f8bb91a3cc0) 0 + primary-for QLayout (0x0x7f8bbef26ee0) + QLayoutItem (0x0x7f8bb91c1240) 16 + vptr=((& QVBoxLayout::_ZTV11QVBoxLayout) + 272) + +Class QButtonGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QButtonGroup::QPrivateSignal (0x0x7f8bb91c1f00) 0 empty + +Vtable for QButtonGroup +QButtonGroup::_ZTV12QButtonGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QButtonGroup) +16 (int (*)(...))QButtonGroup::metaObject +24 (int (*)(...))QButtonGroup::qt_metacast +32 (int (*)(...))QButtonGroup::qt_metacall +40 (int (*)(...))QButtonGroup::~QButtonGroup +48 (int (*)(...))QButtonGroup::~QButtonGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QButtonGroup + size=16 align=8 + base size=16 base align=8 +QButtonGroup (0x0x7f8bbb7c2c98) 0 + vptr=((& QButtonGroup::_ZTV12QButtonGroup) + 16) + QObject (0x0x7f8bb91c1ea0) 0 + primary-for QButtonGroup (0x0x7f8bbb7c2c98) + +Class QCalendarWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCalendarWidget::QPrivateSignal (0x0x7f8bb8e0f3c0) 0 empty + +Vtable for QCalendarWidget +QCalendarWidget::_ZTV15QCalendarWidget: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QCalendarWidget) +16 (int (*)(...))QCalendarWidget::metaObject +24 (int (*)(...))QCalendarWidget::qt_metacast +32 (int (*)(...))QCalendarWidget::qt_metacall +40 (int (*)(...))QCalendarWidget::~QCalendarWidget +48 (int (*)(...))QCalendarWidget::~QCalendarWidget +56 (int (*)(...))QCalendarWidget::event +64 (int (*)(...))QCalendarWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCalendarWidget::sizeHint +136 (int (*)(...))QCalendarWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QCalendarWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QCalendarWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QCalendarWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCalendarWidget::paintCell +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI15QCalendarWidget) +456 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD1Ev +464 (int (*)(...))QCalendarWidget::_ZThn16_N15QCalendarWidgetD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCalendarWidget + size=48 align=8 + base size=48 base align=8 +QCalendarWidget (0x0x7f8bbb7c2d00) 0 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 16) + QWidget (0x0x7f8bbef3e150) 0 + primary-for QCalendarWidget (0x0x7f8bbb7c2d00) + QObject (0x0x7f8bb8e0f240) 0 + primary-for QWidget (0x0x7f8bbef3e150) + QPaintDevice (0x0x7f8bb8e0f360) 16 + vptr=((& QCalendarWidget::_ZTV15QCalendarWidget) + 456) + +Class QCheckBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCheckBox::QPrivateSignal (0x0x7f8bb8e9c7e0) 0 empty + +Vtable for QCheckBox +QCheckBox::_ZTV9QCheckBox: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QCheckBox) +16 (int (*)(...))QCheckBox::metaObject +24 (int (*)(...))QCheckBox::qt_metacast +32 (int (*)(...))QCheckBox::qt_metacall +40 (int (*)(...))QCheckBox::~QCheckBox +48 (int (*)(...))QCheckBox::~QCheckBox +56 (int (*)(...))QCheckBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCheckBox::sizeHint +136 (int (*)(...))QCheckBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QCheckBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCheckBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QCheckBox::hitButton +440 (int (*)(...))QCheckBox::checkStateSet +448 (int (*)(...))QCheckBox::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI9QCheckBox) +472 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD1Ev +480 (int (*)(...))QCheckBox::_ZThn16_N9QCheckBoxD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCheckBox + size=48 align=8 + base size=48 base align=8 +QCheckBox (0x0x7f8bbb7c2ea0) 0 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 16) + QAbstractButton (0x0x7f8bbb7c2f08) 0 + primary-for QCheckBox (0x0x7f8bbb7c2ea0) + QWidget (0x0x7f8bbef3e620) 0 + primary-for QAbstractButton (0x0x7f8bbb7c2f08) + QObject (0x0x7f8bb8e7ac00) 0 + primary-for QWidget (0x0x7f8bbef3e620) + QPaintDevice (0x0x7f8bb8e9c780) 16 + vptr=((& QCheckBox::_ZTV9QCheckBox) + 472) + +Class QDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialog::QPrivateSignal (0x0x7f8bb8ebeb40) 0 empty + +Vtable for QDialog +QDialog::_ZTV7QDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QDialog) +16 (int (*)(...))QDialog::metaObject +24 (int (*)(...))QDialog::qt_metacast +32 (int (*)(...))QDialog::qt_metacall +40 (int (*)(...))QDialog::~QDialog +48 (int (*)(...))QDialog::~QDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI7QDialog) +488 (int (*)(...))QDialog::_ZThn16_N7QDialogD1Ev +496 (int (*)(...))QDialog::_ZThn16_N7QDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialog + size=48 align=8 + base size=48 base align=8 +QDialog (0x0x7f8bbb7c2f70) 0 + vptr=((& QDialog::_ZTV7QDialog) + 16) + QWidget (0x0x7f8bbef3e770) 0 + primary-for QDialog (0x0x7f8bbb7c2f70) + QObject (0x0x7f8bb8ebe8a0) 0 + primary-for QWidget (0x0x7f8bbef3e770) + QPaintDevice (0x0x7f8bb8ebe960) 16 + vptr=((& QDialog::_ZTV7QDialog) + 488) + +Class QColorDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColorDialog::QPrivateSignal (0x0x7f8bb8f22960) 0 empty + +Vtable for QColorDialog +QColorDialog::_ZTV12QColorDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QColorDialog) +16 (int (*)(...))QColorDialog::metaObject +24 (int (*)(...))QColorDialog::qt_metacast +32 (int (*)(...))QColorDialog::qt_metacall +40 (int (*)(...))QColorDialog::~QColorDialog +48 (int (*)(...))QColorDialog::~QColorDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QColorDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QColorDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QColorDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QColorDialog) +488 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD1Ev +496 (int (*)(...))QColorDialog::_ZThn16_N12QColorDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColorDialog + size=48 align=8 + base size=48 base align=8 +QColorDialog (0x0x7f8bbb3e4ea0) 0 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 16) + QDialog (0x0x7f8bbb3e4f08) 0 + primary-for QColorDialog (0x0x7f8bbb3e4ea0) + QWidget (0x0x7f8bbef3ea80) 0 + primary-for QDialog (0x0x7f8bbb3e4f08) + QObject (0x0x7f8bb8f226c0) 0 + primary-for QWidget (0x0x7f8bbef3ea80) + QPaintDevice (0x0x7f8bb8f22900) 16 + vptr=((& QColorDialog::_ZTV12QColorDialog) + 488) + +Class QColormap + size=8 align=8 + base size=8 base align=8 +QColormap (0x0x7f8bb8c71d80) 0 + +Class QColumnView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QColumnView::QPrivateSignal (0x0x7f8bb8cb8840) 0 empty + +Vtable for QColumnView +QColumnView::_ZTV11QColumnView: 107 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QColumnView) +16 (int (*)(...))QColumnView::metaObject +24 (int (*)(...))QColumnView::qt_metacast +32 (int (*)(...))QColumnView::qt_metacall +40 (int (*)(...))QColumnView::~QColumnView +48 (int (*)(...))QColumnView::~QColumnView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QColumnView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QColumnView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QColumnView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QColumnView::setModel +472 (int (*)(...))QColumnView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QColumnView::visualRect +496 (int (*)(...))QColumnView::scrollTo +504 (int (*)(...))QColumnView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QColumnView::setRootIndex +544 (int (*)(...))QAbstractItemView::doItemsLayout +552 (int (*)(...))QColumnView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QColumnView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QColumnView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QAbstractItemView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QColumnView::moveCursor +688 (int (*)(...))QColumnView::horizontalOffset +696 (int (*)(...))QColumnView::verticalOffset +704 (int (*)(...))QColumnView::isIndexHidden +712 (int (*)(...))QColumnView::setSelection +720 (int (*)(...))QColumnView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QColumnView::createColumn +776 (int (*)(...))-16 +784 (int (*)(...))(& _ZTI11QColumnView) +792 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD1Ev +800 (int (*)(...))QColumnView::_ZThn16_N11QColumnViewD0Ev +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QColumnView + size=48 align=8 + base size=48 base align=8 +QColumnView (0x0x7f8bbb3fe3a8) 0 + vptr=((& QColumnView::_ZTV11QColumnView) + 16) + QAbstractItemView (0x0x7f8bbb3fe410) 0 + primary-for QColumnView (0x0x7f8bbb3fe3a8) + QAbstractScrollArea (0x0x7f8bbb3fea28) 0 + primary-for QAbstractItemView (0x0x7f8bbb3fe410) + QFrame (0x0x7f8bbb3fea90) 0 + primary-for QAbstractScrollArea (0x0x7f8bbb3fea28) + QWidget (0x0x7f8bbef54d20) 0 + primary-for QFrame (0x0x7f8bbb3fea90) + QObject (0x0x7f8bb8c8e1e0) 0 + primary-for QWidget (0x0x7f8bbef54d20) + QPaintDevice (0x0x7f8bb8c8e240) 16 + vptr=((& QColumnView::_ZTV11QColumnView) + 792) + +Class QComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QComboBox::QPrivateSignal (0x0x7f8bb8ce59c0) 0 empty + +Vtable for QComboBox +QComboBox::_ZTV9QComboBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QComboBox) +16 (int (*)(...))QComboBox::metaObject +24 (int (*)(...))QComboBox::qt_metacast +32 (int (*)(...))QComboBox::qt_metacall +40 (int (*)(...))QComboBox::~QComboBox +48 (int (*)(...))QComboBox::~QComboBox +56 (int (*)(...))QComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI9QComboBox) +464 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD1Ev +472 (int (*)(...))QComboBox::_ZThn16_N9QComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QComboBox + size=48 align=8 + base size=48 base align=8 +QComboBox (0x0x7f8bbb3fedd0) 0 + vptr=((& QComboBox::_ZTV9QComboBox) + 16) + QWidget (0x0x7f8bbef54d90) 0 + primary-for QComboBox (0x0x7f8bbb3fedd0) + QObject (0x0x7f8bb8ce53c0) 0 + primary-for QWidget (0x0x7f8bbef54d90) + QPaintDevice (0x0x7f8bb8ce5960) 16 + vptr=((& QComboBox::_ZTV9QComboBox) + 464) + +Class QPushButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPushButton::QPrivateSignal (0x0x7f8bb8d74600) 0 empty + +Vtable for QPushButton +QPushButton::_ZTV11QPushButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPushButton) +16 (int (*)(...))QPushButton::metaObject +24 (int (*)(...))QPushButton::qt_metacast +32 (int (*)(...))QPushButton::qt_metacall +40 (int (*)(...))QPushButton::~QPushButton +48 (int (*)(...))QPushButton::~QPushButton +56 (int (*)(...))QPushButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QPushButton::sizeHint +136 (int (*)(...))QPushButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPushButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QPushButton) +472 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD1Ev +480 (int (*)(...))QPushButton::_ZThn16_N11QPushButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPushButton + size=48 align=8 + base size=48 base align=8 +QPushButton (0x0x7f8bbb3fee38) 0 + vptr=((& QPushButton::_ZTV11QPushButton) + 16) + QAbstractButton (0x0x7f8bbb411c98) 0 + primary-for QPushButton (0x0x7f8bbb3fee38) + QWidget (0x0x7f8bbef777e0) 0 + primary-for QAbstractButton (0x0x7f8bbb411c98) + QObject (0x0x7f8bb8d56f60) 0 + primary-for QWidget (0x0x7f8bbef777e0) + QPaintDevice (0x0x7f8bb8d745a0) 16 + vptr=((& QPushButton::_ZTV11QPushButton) + 472) + +Class QCommandLinkButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommandLinkButton::QPrivateSignal (0x0x7f8bb89ec5a0) 0 empty + +Vtable for QCommandLinkButton +QCommandLinkButton::_ZTV18QCommandLinkButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QCommandLinkButton) +16 (int (*)(...))QCommandLinkButton::metaObject +24 (int (*)(...))QCommandLinkButton::qt_metacast +32 (int (*)(...))QCommandLinkButton::qt_metacall +40 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +48 (int (*)(...))QCommandLinkButton::~QCommandLinkButton +56 (int (*)(...))QCommandLinkButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QCommandLinkButton::sizeHint +136 (int (*)(...))QCommandLinkButton::minimumSizeHint +144 (int (*)(...))QCommandLinkButton::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QPushButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QPushButton::focusInEvent +232 (int (*)(...))QPushButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QCommandLinkButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QAbstractButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI18QCommandLinkButton) +472 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD1Ev +480 (int (*)(...))QCommandLinkButton::_ZThn16_N18QCommandLinkButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QCommandLinkButton + size=48 align=8 + base size=48 base align=8 +QCommandLinkButton (0x0x7f8bbb411d00) 0 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 16) + QPushButton (0x0x7f8bbb411f70) 0 + primary-for QCommandLinkButton (0x0x7f8bbb411d00) + QAbstractButton (0x0x7f8bbb4dc478) 0 + primary-for QPushButton (0x0x7f8bbb411f70) + QWidget (0x0x7f8bbef77930) 0 + primary-for QAbstractButton (0x0x7f8bbb4dc478) + QObject (0x0x7f8bb89ec300) 0 + primary-for QWidget (0x0x7f8bbef77930) + QPaintDevice (0x0x7f8bb89ec360) 16 + vptr=((& QCommandLinkButton::_ZTV18QCommandLinkButton) + 472) + +Class QCommonStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCommonStyle::QPrivateSignal (0x0x7f8bb8b1e8a0) 0 empty + +Vtable for QCommonStyle +QCommonStyle::_ZTV12QCommonStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QCommonStyle) +16 (int (*)(...))QCommonStyle::metaObject +24 (int (*)(...))QCommonStyle::qt_metacast +32 (int (*)(...))QCommonStyle::qt_metacall +40 (int (*)(...))QCommonStyle::~QCommonStyle +48 (int (*)(...))QCommonStyle::~QCommonStyle +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCommonStyle::polish +120 (int (*)(...))QCommonStyle::unpolish +128 (int (*)(...))QCommonStyle::polish +136 (int (*)(...))QCommonStyle::unpolish +144 (int (*)(...))QCommonStyle::polish +152 (int (*)(...))QStyle::itemTextRect +160 (int (*)(...))QStyle::itemPixmapRect +168 (int (*)(...))QStyle::drawItemText +176 (int (*)(...))QStyle::drawItemPixmap +184 (int (*)(...))QStyle::standardPalette +192 (int (*)(...))QCommonStyle::drawPrimitive +200 (int (*)(...))QCommonStyle::drawControl +208 (int (*)(...))QCommonStyle::subElementRect +216 (int (*)(...))QCommonStyle::drawComplexControl +224 (int (*)(...))QCommonStyle::hitTestComplexControl +232 (int (*)(...))QCommonStyle::subControlRect +240 (int (*)(...))QCommonStyle::pixelMetric +248 (int (*)(...))QCommonStyle::sizeFromContents +256 (int (*)(...))QCommonStyle::styleHint +264 (int (*)(...))QCommonStyle::standardPixmap +272 (int (*)(...))QCommonStyle::standardIcon +280 (int (*)(...))QCommonStyle::generatedIconPixmap +288 (int (*)(...))QCommonStyle::layoutSpacing + +Class QCommonStyle + size=16 align=8 + base size=16 base align=8 +QCommonStyle (0x0x7f8bbb4dc4e0) 0 + vptr=((& QCommonStyle::_ZTV12QCommonStyle) + 16) + QStyle (0x0x7f8bbb4f54e0) 0 + primary-for QCommonStyle (0x0x7f8bbb4dc4e0) + QObject (0x0x7f8bb8b1e720) 0 + primary-for QStyle (0x0x7f8bbb4f54e0) + +Class QCompleter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCompleter::QPrivateSignal (0x0x7f8bb8b45f60) 0 empty + +Vtable for QCompleter +QCompleter::_ZTV10QCompleter: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QCompleter) +16 (int (*)(...))QCompleter::metaObject +24 (int (*)(...))QCompleter::qt_metacast +32 (int (*)(...))QCompleter::qt_metacall +40 (int (*)(...))QCompleter::~QCompleter +48 (int (*)(...))QCompleter::~QCompleter +56 (int (*)(...))QCompleter::event +64 (int (*)(...))QCompleter::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCompleter::pathFromIndex +120 (int (*)(...))QCompleter::splitPath + +Class QCompleter + size=16 align=8 + base size=16 base align=8 +QCompleter (0x0x7f8bbb4f5548) 0 + vptr=((& QCompleter::_ZTV10QCompleter) + 16) + QObject (0x0x7f8bb8b45b40) 0 + primary-for QCompleter (0x0x7f8bbb4f5548) + +Class QDataWidgetMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDataWidgetMapper::QPrivateSignal (0x0x7f8bb8bc9240) 0 empty + +Vtable for QDataWidgetMapper +QDataWidgetMapper::_ZTV17QDataWidgetMapper: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QDataWidgetMapper) +16 (int (*)(...))QDataWidgetMapper::metaObject +24 (int (*)(...))QDataWidgetMapper::qt_metacast +32 (int (*)(...))QDataWidgetMapper::qt_metacall +40 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +48 (int (*)(...))QDataWidgetMapper::~QDataWidgetMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDataWidgetMapper::setCurrentIndex + +Class QDataWidgetMapper + size=16 align=8 + base size=16 base align=8 +QDataWidgetMapper (0x0x7f8bbb5bc410) 0 + vptr=((& QDataWidgetMapper::_ZTV17QDataWidgetMapper) + 16) + QObject (0x0x7f8bb8b9ecc0) 0 + primary-for QDataWidgetMapper (0x0x7f8bbb5bc410) + +Class QDateTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateTimeEdit::QPrivateSignal (0x0x7f8bb894d540) 0 empty + +Vtable for QDateTimeEdit +QDateTimeEdit::_ZTV13QDateTimeEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QDateTimeEdit) +16 (int (*)(...))QDateTimeEdit::metaObject +24 (int (*)(...))QDateTimeEdit::qt_metacast +32 (int (*)(...))QDateTimeEdit::qt_metacall +40 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +48 (int (*)(...))QDateTimeEdit::~QDateTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QDateTimeEdit) +504 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD1Ev +512 (int (*)(...))QDateTimeEdit::_ZThn16_N13QDateTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateTimeEdit + size=48 align=8 + base size=48 base align=8 +QDateTimeEdit (0x0x7f8bbb5bc478) 0 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 16) + QAbstractSpinBox (0x0x7f8bbb1d8f08) 0 + primary-for QDateTimeEdit (0x0x7f8bbb5bc478) + QWidget (0x0x7f8bbef8e150) 0 + primary-for QAbstractSpinBox (0x0x7f8bbb1d8f08) + QObject (0x0x7f8bb894d420) 0 + primary-for QWidget (0x0x7f8bbef8e150) + QPaintDevice (0x0x7f8bb894d480) 16 + vptr=((& QDateTimeEdit::_ZTV13QDateTimeEdit) + 504) + +Class QTimeEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeEdit::QPrivateSignal (0x0x7f8bb865ba20) 0 empty + +Vtable for QTimeEdit +QTimeEdit::_ZTV9QTimeEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeEdit) +16 (int (*)(...))QTimeEdit::metaObject +24 (int (*)(...))QTimeEdit::qt_metacast +32 (int (*)(...))QTimeEdit::qt_metacall +40 (int (*)(...))QTimeEdit::~QTimeEdit +48 (int (*)(...))QTimeEdit::~QTimeEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QTimeEdit) +504 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD1Ev +512 (int (*)(...))QTimeEdit::_ZThn16_N9QTimeEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTimeEdit + size=48 align=8 + base size=48 base align=8 +QTimeEdit (0x0x7f8bbb21b340) 0 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 16) + QDateTimeEdit (0x0x7f8bbb21ba28) 0 + primary-for QTimeEdit (0x0x7f8bbb21b340) + QAbstractSpinBox (0x0x7f8bbb21ba90) 0 + primary-for QDateTimeEdit (0x0x7f8bbb21ba28) + QWidget (0x0x7f8bbefaa700) 0 + primary-for QAbstractSpinBox (0x0x7f8bbb21ba90) + QObject (0x0x7f8bb863bba0) 0 + primary-for QWidget (0x0x7f8bbefaa700) + QPaintDevice (0x0x7f8bb865b9c0) 16 + vptr=((& QTimeEdit::_ZTV9QTimeEdit) + 504) + +Class QDateEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDateEdit::QPrivateSignal (0x0x7f8bb869d1e0) 0 empty + +Vtable for QDateEdit +QDateEdit::_ZTV9QDateEdit: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDateEdit) +16 (int (*)(...))QDateEdit::metaObject +24 (int (*)(...))QDateEdit::qt_metacast +32 (int (*)(...))QDateEdit::qt_metacall +40 (int (*)(...))QDateEdit::~QDateEdit +48 (int (*)(...))QDateEdit::~QDateEdit +56 (int (*)(...))QDateTimeEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDateTimeEdit::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDateTimeEdit::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QDateTimeEdit::wheelEvent +208 (int (*)(...))QDateTimeEdit::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QDateTimeEdit::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDateTimeEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QDateTimeEdit::focusNextPrevChild +432 (int (*)(...))QDateTimeEdit::validate +440 (int (*)(...))QDateTimeEdit::fixup +448 (int (*)(...))QDateTimeEdit::stepBy +456 (int (*)(...))QDateTimeEdit::clear +464 (int (*)(...))QDateTimeEdit::stepEnabled +472 (int (*)(...))QDateTimeEdit::dateTimeFromText +480 (int (*)(...))QDateTimeEdit::textFromDateTime +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI9QDateEdit) +504 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD1Ev +512 (int (*)(...))QDateEdit::_ZThn16_N9QDateEditD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDateEdit + size=48 align=8 + base size=48 base align=8 +QDateEdit (0x0x7f8bbb236410) 0 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 16) + QDateTimeEdit (0x0x7f8bbb236478) 0 + primary-for QDateEdit (0x0x7f8bbb236410) + QAbstractSpinBox (0x0x7f8bbb26a340) 0 + primary-for QDateTimeEdit (0x0x7f8bbb236478) + QWidget (0x0x7f8bbefaa850) 0 + primary-for QAbstractSpinBox (0x0x7f8bbb26a340) + QObject (0x0x7f8bb8682600) 0 + primary-for QWidget (0x0x7f8bbefaa850) + QPaintDevice (0x0x7f8bb8682660) 16 + vptr=((& QDateEdit::_ZTV9QDateEdit) + 504) + +Class QDesktopWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDesktopWidget::QPrivateSignal (0x0x7f8bb86d95a0) 0 empty + +Vtable for QDesktopWidget +QDesktopWidget::_ZTV14QDesktopWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDesktopWidget) +16 (int (*)(...))QDesktopWidget::metaObject +24 (int (*)(...))QDesktopWidget::qt_metacast +32 (int (*)(...))QDesktopWidget::qt_metacall +40 (int (*)(...))QDesktopWidget::~QDesktopWidget +48 (int (*)(...))QDesktopWidget::~QDesktopWidget +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDesktopWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QDesktopWidget) +448 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD1Ev +456 (int (*)(...))QDesktopWidget::_ZThn16_N14QDesktopWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDesktopWidget + size=48 align=8 + base size=48 base align=8 +QDesktopWidget (0x0x7f8bbb26a3a8) 0 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 16) + QWidget (0x0x7f8bbebfc0e0) 0 + primary-for QDesktopWidget (0x0x7f8bbb26a3a8) + QObject (0x0x7f8bb86d9300) 0 + primary-for QWidget (0x0x7f8bbebfc0e0) + QPaintDevice (0x0x7f8bb86d9360) 16 + vptr=((& QDesktopWidget::_ZTV14QDesktopWidget) + 448) + +Class QDial::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDial::QPrivateSignal (0x0x7f8bb87c94e0) 0 empty + +Vtable for QDial +QDial::_ZTV5QDial: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QDial) +16 (int (*)(...))QDial::metaObject +24 (int (*)(...))QDial::qt_metacast +32 (int (*)(...))QDial::qt_metacall +40 (int (*)(...))QDial::~QDial +48 (int (*)(...))QDial::~QDial +56 (int (*)(...))QDial::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QDial::sizeHint +136 (int (*)(...))QDial::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QDial::mousePressEvent +176 (int (*)(...))QDial::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QDial::mouseMoveEvent +200 (int (*)(...))QAbstractSlider::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDial::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDial::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDial::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI5QDial) +456 (int (*)(...))QDial::_ZThn16_N5QDialD1Ev +464 (int (*)(...))QDial::_ZThn16_N5QDialD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDial + size=48 align=8 + base size=48 base align=8 +QDial (0x0x7f8bbb26a548) 0 + vptr=((& QDial::_ZTV5QDial) + 16) + QAbstractSlider (0x0x7f8bbb26a750) 0 + primary-for QDial (0x0x7f8bbb26a548) + QWidget (0x0x7f8bbebfc150) 0 + primary-for QAbstractSlider (0x0x7f8bbb26a750) + QObject (0x0x7f8bb8739b40) 0 + primary-for QWidget (0x0x7f8bbebfc150) + QPaintDevice (0x0x7f8bb8739ba0) 16 + vptr=((& QDial::_ZTV5QDial) + 456) + +Class QDialogButtonBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDialogButtonBox::QPrivateSignal (0x0x7f8bb8420060) 0 empty + +Vtable for QDialogButtonBox +QDialogButtonBox::_ZTV16QDialogButtonBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QDialogButtonBox) +16 (int (*)(...))QDialogButtonBox::metaObject +24 (int (*)(...))QDialogButtonBox::qt_metacast +32 (int (*)(...))QDialogButtonBox::qt_metacall +40 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +48 (int (*)(...))QDialogButtonBox::~QDialogButtonBox +56 (int (*)(...))QDialogButtonBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDialogButtonBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QDialogButtonBox) +448 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD1Ev +456 (int (*)(...))QDialogButtonBox::_ZThn16_N16QDialogButtonBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDialogButtonBox + size=48 align=8 + base size=48 base align=8 +QDialogButtonBox (0x0x7f8bbb26a7b8) 0 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 16) + QWidget (0x0x7f8bbebfc230) 0 + primary-for QDialogButtonBox (0x0x7f8bbb26a7b8) + QObject (0x0x7f8bb83f9de0) 0 + primary-for QWidget (0x0x7f8bbebfc230) + QPaintDevice (0x0x7f8bb8420000) 16 + vptr=((& QDialogButtonBox::_ZTV16QDialogButtonBox) + 448) + +Vtable for QFileIconProvider +QFileIconProvider::_ZTV17QFileIconProvider: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFileIconProvider) +16 (int (*)(...))QFileIconProvider::~QFileIconProvider +24 (int (*)(...))QFileIconProvider::~QFileIconProvider +32 (int (*)(...))QFileIconProvider::icon +40 (int (*)(...))QFileIconProvider::icon +48 (int (*)(...))QFileIconProvider::type + +Class QFileIconProvider + size=16 align=8 + base size=16 base align=8 +QFileIconProvider (0x0x7f8bb7be2360) 0 + vptr=((& QFileIconProvider::_ZTV17QFileIconProvider) + 16) + +Class QDirModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDirModel::QPrivateSignal (0x0x7f8bb7cd7c60) 0 empty + +Vtable for QDirModel +QDirModel::_ZTV9QDirModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QDirModel) +16 (int (*)(...))QDirModel::metaObject +24 (int (*)(...))QDirModel::qt_metacast +32 (int (*)(...))QDirModel::qt_metacall +40 (int (*)(...))QDirModel::~QDirModel +48 (int (*)(...))QDirModel::~QDirModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QDirModel::index +120 (int (*)(...))QDirModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QDirModel::rowCount +144 (int (*)(...))QDirModel::columnCount +152 (int (*)(...))QDirModel::hasChildren +160 (int (*)(...))QDirModel::data +168 (int (*)(...))QDirModel::setData +176 (int (*)(...))QDirModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QDirModel::mimeTypes +216 (int (*)(...))QDirModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QDirModel::dropMimeData +240 (int (*)(...))QDirModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QDirModel::flags +328 (int (*)(...))QDirModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QDirModel + size=16 align=8 + base size=16 base align=8 +QDirModel (0x0x7f8bbb29e410) 0 + vptr=((& QDirModel::_ZTV9QDirModel) + 16) + QAbstractItemModel (0x0x7f8bbb29eaf8) 0 + primary-for QDirModel (0x0x7f8bbb29e410) + QObject (0x0x7f8bb7cd7300) 0 + primary-for QAbstractItemModel (0x0x7f8bbb29eaf8) + +Class QDockWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDockWidget::QPrivateSignal (0x0x7f8bb7cf28a0) 0 empty + +Vtable for QDockWidget +QDockWidget::_ZTV11QDockWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QDockWidget) +16 (int (*)(...))QDockWidget::metaObject +24 (int (*)(...))QDockWidget::qt_metacast +32 (int (*)(...))QDockWidget::qt_metacall +40 (int (*)(...))QDockWidget::~QDockWidget +48 (int (*)(...))QDockWidget::~QDockWidget +56 (int (*)(...))QDockWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QDockWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QDockWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QDockWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QDockWidget) +448 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD1Ev +456 (int (*)(...))QDockWidget::_ZThn16_N11QDockWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDockWidget + size=48 align=8 + base size=48 base align=8 +QDockWidget (0x0x7f8bbb29eb60) 0 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 16) + QWidget (0x0x7f8bbec94000) 0 + primary-for QDockWidget (0x0x7f8bbb29eb60) + QObject (0x0x7f8bb7cf2240) 0 + primary-for QWidget (0x0x7f8bbec94000) + QPaintDevice (0x0x7f8bb7cf2840) 16 + vptr=((& QDockWidget::_ZTV11QDockWidget) + 448) + +Class QTileRules + size=8 align=4 + base size=8 base align=4 +QTileRules (0x0x7f8bb7b4ade0) 0 + +Class QErrorMessage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QErrorMessage::QPrivateSignal (0x0x7f8bb78d24e0) 0 empty + +Vtable for QErrorMessage +QErrorMessage::_ZTV13QErrorMessage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QErrorMessage) +16 (int (*)(...))QErrorMessage::metaObject +24 (int (*)(...))QErrorMessage::qt_metacast +32 (int (*)(...))QErrorMessage::qt_metacall +40 (int (*)(...))QErrorMessage::~QErrorMessage +48 (int (*)(...))QErrorMessage::~QErrorMessage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QErrorMessage::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QErrorMessage::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI13QErrorMessage) +488 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD1Ev +496 (int (*)(...))QErrorMessage::_ZThn16_N13QErrorMessageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QErrorMessage + size=48 align=8 + base size=48 base align=8 +QErrorMessage (0x0x7f8bbb0dff08) 0 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 16) + QDialog (0x0x7f8bbb0fd888) 0 + primary-for QErrorMessage (0x0x7f8bbb0dff08) + QWidget (0x0x7f8bbeb650e0) 0 + primary-for QDialog (0x0x7f8bbb0fd888) + QObject (0x0x7f8bb78d2240) 0 + primary-for QWidget (0x0x7f8bbeb650e0) + QPaintDevice (0x0x7f8bb78d2300) 16 + vptr=((& QErrorMessage::_ZTV13QErrorMessage) + 488) + +Class QFileDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDialog::QPrivateSignal (0x0x7f8bb78ee6c0) 0 empty + +Vtable for QFileDialog +QFileDialog::_ZTV11QFileDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDialog) +16 (int (*)(...))QFileDialog::metaObject +24 (int (*)(...))QFileDialog::qt_metacast +32 (int (*)(...))QFileDialog::qt_metacall +40 (int (*)(...))QFileDialog::~QFileDialog +48 (int (*)(...))QFileDialog::~QFileDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFileDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFileDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFileDialog::done +456 (int (*)(...))QFileDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFileDialog) +488 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD1Ev +496 (int (*)(...))QFileDialog::_ZThn16_N11QFileDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFileDialog + size=48 align=8 + base size=48 base align=8 +QFileDialog (0x0x7f8bbb0fd8f0) 0 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 16) + QDialog (0x0x7f8bbb1135b0) 0 + primary-for QFileDialog (0x0x7f8bbb0fd8f0) + QWidget (0x0x7f8bbeb654d0) 0 + primary-for QDialog (0x0x7f8bbb1135b0) + QObject (0x0x7f8bb78ee360) 0 + primary-for QWidget (0x0x7f8bbeb654d0) + QPaintDevice (0x0x7f8bb78ee660) 16 + vptr=((& QFileDialog::_ZTV11QFileDialog) + 488) + +Class QFileSystemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemModel::QPrivateSignal (0x0x7f8bb7256a80) 0 empty + +Vtable for QFileSystemModel +QFileSystemModel::_ZTV16QFileSystemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QFileSystemModel) +16 (int (*)(...))QFileSystemModel::metaObject +24 (int (*)(...))QFileSystemModel::qt_metacast +32 (int (*)(...))QFileSystemModel::qt_metacall +40 (int (*)(...))QFileSystemModel::~QFileSystemModel +48 (int (*)(...))QFileSystemModel::~QFileSystemModel +56 (int (*)(...))QFileSystemModel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QFileSystemModel::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileSystemModel::index +120 (int (*)(...))QFileSystemModel::parent +128 (int (*)(...))QFileSystemModel::sibling +136 (int (*)(...))QFileSystemModel::rowCount +144 (int (*)(...))QFileSystemModel::columnCount +152 (int (*)(...))QFileSystemModel::hasChildren +160 (int (*)(...))QFileSystemModel::data +168 (int (*)(...))QFileSystemModel::setData +176 (int (*)(...))QFileSystemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QFileSystemModel::mimeTypes +216 (int (*)(...))QFileSystemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QFileSystemModel::dropMimeData +240 (int (*)(...))QFileSystemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QFileSystemModel::fetchMore +312 (int (*)(...))QFileSystemModel::canFetchMore +320 (int (*)(...))QFileSystemModel::flags +328 (int (*)(...))QFileSystemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QFileSystemModel + size=16 align=8 + base size=16 base align=8 +QFileSystemModel (0x0x7f8bbb151820) 0 + vptr=((& QFileSystemModel::_ZTV16QFileSystemModel) + 16) + QAbstractItemModel (0x0x7f8bbb1973a8) 0 + primary-for QFileSystemModel (0x0x7f8bbb151820) + QObject (0x0x7f8bb7256a20) 0 + primary-for QAbstractItemModel (0x0x7f8bbb1973a8) + +Class QFocusFrame::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFocusFrame::QPrivateSignal (0x0x7f8bb6ff24e0) 0 empty + +Vtable for QFocusFrame +QFocusFrame::_ZTV11QFocusFrame: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFocusFrame) +16 (int (*)(...))QFocusFrame::metaObject +24 (int (*)(...))QFocusFrame::qt_metacast +32 (int (*)(...))QFocusFrame::qt_metacall +40 (int (*)(...))QFocusFrame::~QFocusFrame +48 (int (*)(...))QFocusFrame::~QFocusFrame +56 (int (*)(...))QFocusFrame::event +64 (int (*)(...))QFocusFrame::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFocusFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI11QFocusFrame) +448 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD1Ev +456 (int (*)(...))QFocusFrame::_ZThn16_N11QFocusFrameD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFocusFrame + size=48 align=8 + base size=48 base align=8 +QFocusFrame (0x0x7f8bbb197410) 0 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 16) + QWidget (0x0x7f8bbe88b310) 0 + primary-for QFocusFrame (0x0x7f8bbb197410) + QObject (0x0x7f8bb6ff23c0) 0 + primary-for QWidget (0x0x7f8bbe88b310) + QPaintDevice (0x0x7f8bb6ff2480) 16 + vptr=((& QFocusFrame::_ZTV11QFocusFrame) + 448) + +Class QFontComboBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontComboBox::QPrivateSignal (0x0x7f8bb7141000) 0 empty + +Vtable for QFontComboBox +QFontComboBox::_ZTV13QFontComboBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFontComboBox) +16 (int (*)(...))QFontComboBox::metaObject +24 (int (*)(...))QFontComboBox::qt_metacast +32 (int (*)(...))QFontComboBox::qt_metacall +40 (int (*)(...))QFontComboBox::~QFontComboBox +48 (int (*)(...))QFontComboBox::~QFontComboBox +56 (int (*)(...))QFontComboBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFontComboBox::sizeHint +136 (int (*)(...))QComboBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QComboBox::mousePressEvent +176 (int (*)(...))QComboBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QComboBox::wheelEvent +208 (int (*)(...))QComboBox::keyPressEvent +216 (int (*)(...))QComboBox::keyReleaseEvent +224 (int (*)(...))QComboBox::focusInEvent +232 (int (*)(...))QComboBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QComboBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QComboBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QComboBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QComboBox::showEvent +352 (int (*)(...))QComboBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QComboBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QComboBox::inputMethodEvent +416 (int (*)(...))QComboBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QComboBox::showPopup +440 (int (*)(...))QComboBox::hidePopup +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI13QFontComboBox) +464 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD1Ev +472 (int (*)(...))QFontComboBox::_ZThn16_N13QFontComboBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontComboBox + size=48 align=8 + base size=48 base align=8 +QFontComboBox (0x0x7f8bbb197750) 0 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 16) + QComboBox (0x0x7f8bbb1977b8) 0 + primary-for QFontComboBox (0x0x7f8bbb197750) + QWidget (0x0x7f8bbe88b3f0) 0 + primary-for QComboBox (0x0x7f8bbb1977b8) + QObject (0x0x7f8bb702d180) 0 + primary-for QWidget (0x0x7f8bbe88b3f0) + QPaintDevice (0x0x7f8bb707bf60) 16 + vptr=((& QFontComboBox::_ZTV13QFontComboBox) + 464) + +Class QFontDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFontDialog::QPrivateSignal (0x0x7f8bb6c9a4e0) 0 empty + +Vtable for QFontDialog +QFontDialog::_ZTV11QFontDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFontDialog) +16 (int (*)(...))QFontDialog::metaObject +24 (int (*)(...))QFontDialog::qt_metacast +32 (int (*)(...))QFontDialog::qt_metacall +40 (int (*)(...))QFontDialog::~QFontDialog +48 (int (*)(...))QFontDialog::~QFontDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QFontDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QFontDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFontDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QFontDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QFontDialog) +488 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD1Ev +496 (int (*)(...))QFontDialog::_ZThn16_N11QFontDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QFontDialog + size=48 align=8 + base size=48 base align=8 +QFontDialog (0x0x7f8bbb1b5c30) 0 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 16) + QDialog (0x0x7f8bbb1c9bc8) 0 + primary-for QFontDialog (0x0x7f8bbb1b5c30) + QWidget (0x0x7f8bbe8dc700) 0 + primary-for QDialog (0x0x7f8bbb1c9bc8) + QObject (0x0x7f8bb6c9a360) 0 + primary-for QWidget (0x0x7f8bbe8dc700) + QPaintDevice (0x0x7f8bb6c9a3c0) 16 + vptr=((& QFontDialog::_ZTV11QFontDialog) + 488) + +Class QFormLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFormLayout::QPrivateSignal (0x0x7f8bb6a61420) 0 empty + +Class QFormLayout::TakeRowResult + size=16 align=8 + base size=16 base align=8 +QFormLayout::TakeRowResult (0x0x7f8bb6a9c060) 0 + +Vtable for QFormLayout +QFormLayout::_ZTV11QFormLayout: 50 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFormLayout) +16 (int (*)(...))QFormLayout::metaObject +24 (int (*)(...))QFormLayout::qt_metacast +32 (int (*)(...))QFormLayout::qt_metacall +40 (int (*)(...))QFormLayout::~QFormLayout +48 (int (*)(...))QFormLayout::~QFormLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFormLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QFormLayout::addItem +136 (int (*)(...))QFormLayout::expandingDirections +144 (int (*)(...))QFormLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QFormLayout::setGeometry +168 (int (*)(...))QFormLayout::itemAt +176 (int (*)(...))QFormLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QFormLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QFormLayout::sizeHint +232 (int (*)(...))QFormLayout::hasHeightForWidth +240 (int (*)(...))QFormLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI11QFormLayout) +264 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD1Ev +272 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayoutD0Ev +280 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout8sizeHintEv +288 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout19expandingDirectionsEv +312 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout17hasHeightForWidthEv +344 (int (*)(...))QFormLayout::_ZThn16_NK11QFormLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QFormLayout::_ZThn16_N11QFormLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QFormLayout + size=32 align=8 + base size=28 base align=8 +QFormLayout (0x0x7f8bbaefb0d0) 0 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 16) + QLayout (0x0x7f8bbe918a80) 0 + primary-for QFormLayout (0x0x7f8bbaefb0d0) + QObject (0x0x7f8bb6a612a0) 0 + primary-for QLayout (0x0x7f8bbe918a80) + QLayoutItem (0x0x7f8bb6a613c0) 16 + vptr=((& QFormLayout::_ZTV11QFormLayout) + 264) + +Class QGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGesture::QPrivateSignal (0x0x7f8bb6254ea0) 0 empty + +Vtable for QGesture +QGesture::_ZTV8QGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QGesture) +16 (int (*)(...))QGesture::metaObject +24 (int (*)(...))QGesture::qt_metacast +32 (int (*)(...))QGesture::qt_metacall +40 (int (*)(...))QGesture::~QGesture +48 (int (*)(...))QGesture::~QGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGesture + size=16 align=8 + base size=16 base align=8 +QGesture (0x0x7f8bba65e1a0) 0 + vptr=((& QGesture::_ZTV8QGesture) + 16) + QObject (0x0x7f8bb6254e40) 0 + primary-for QGesture (0x0x7f8bba65e1a0) + +Class QPanGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPanGesture::QPrivateSignal (0x0x7f8bb6289d80) 0 empty + +Vtable for QPanGesture +QPanGesture::_ZTV11QPanGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QPanGesture) +16 (int (*)(...))QPanGesture::metaObject +24 (int (*)(...))QPanGesture::qt_metacast +32 (int (*)(...))QPanGesture::qt_metacall +40 (int (*)(...))QPanGesture::~QPanGesture +48 (int (*)(...))QPanGesture::~QPanGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPanGesture + size=16 align=8 + base size=16 base align=8 +QPanGesture (0x0x7f8bba65ec30) 0 + vptr=((& QPanGesture::_ZTV11QPanGesture) + 16) + QGesture (0x0x7f8bba65ec98) 0 + primary-for QPanGesture (0x0x7f8bba65ec30) + QObject (0x0x7f8bb6289ba0) 0 + primary-for QGesture (0x0x7f8bba65ec98) + +Class QPinchGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPinchGesture::QPrivateSignal (0x0x7f8bb60e5000) 0 empty + +Vtable for QPinchGesture +QPinchGesture::_ZTV13QPinchGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPinchGesture) +16 (int (*)(...))QPinchGesture::metaObject +24 (int (*)(...))QPinchGesture::qt_metacast +32 (int (*)(...))QPinchGesture::qt_metacall +40 (int (*)(...))QPinchGesture::~QPinchGesture +48 (int (*)(...))QPinchGesture::~QPinchGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPinchGesture + size=16 align=8 + base size=16 base align=8 +QPinchGesture (0x0x7f8bba676068) 0 + vptr=((& QPinchGesture::_ZTV13QPinchGesture) + 16) + QGesture (0x0x7f8bba6760d0) 0 + primary-for QPinchGesture (0x0x7f8bba676068) + QObject (0x0x7f8bb609df60) 0 + primary-for QGesture (0x0x7f8bba6760d0) + +Class QSwipeGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSwipeGesture::QPrivateSignal (0x0x7f8bb5e1eba0) 0 empty + +Vtable for QSwipeGesture +QSwipeGesture::_ZTV13QSwipeGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSwipeGesture) +16 (int (*)(...))QSwipeGesture::metaObject +24 (int (*)(...))QSwipeGesture::qt_metacast +32 (int (*)(...))QSwipeGesture::qt_metacall +40 (int (*)(...))QSwipeGesture::~QSwipeGesture +48 (int (*)(...))QSwipeGesture::~QSwipeGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSwipeGesture + size=16 align=8 + base size=16 base align=8 +QSwipeGesture (0x0x7f8bba6764e0) 0 + vptr=((& QSwipeGesture::_ZTV13QSwipeGesture) + 16) + QGesture (0x0x7f8bba6767b8) 0 + primary-for QSwipeGesture (0x0x7f8bba6764e0) + QObject (0x0x7f8bb5e1eae0) 0 + primary-for QGesture (0x0x7f8bba6767b8) + +Class QTapGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapGesture::QPrivateSignal (0x0x7f8bb5e6b600) 0 empty + +Vtable for QTapGesture +QTapGesture::_ZTV11QTapGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTapGesture) +16 (int (*)(...))QTapGesture::metaObject +24 (int (*)(...))QTapGesture::qt_metacast +32 (int (*)(...))QTapGesture::qt_metacall +40 (int (*)(...))QTapGesture::~QTapGesture +48 (int (*)(...))QTapGesture::~QTapGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapGesture + size=16 align=8 + base size=16 base align=8 +QTapGesture (0x0x7f8bba676820) 0 + vptr=((& QTapGesture::_ZTV11QTapGesture) + 16) + QGesture (0x0x7f8bba676958) 0 + primary-for QTapGesture (0x0x7f8bba676820) + QObject (0x0x7f8bb5e6b5a0) 0 + primary-for QGesture (0x0x7f8bba676958) + +Class QTapAndHoldGesture::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTapAndHoldGesture::QPrivateSignal (0x0x7f8bb5e88720) 0 empty + +Vtable for QTapAndHoldGesture +QTapAndHoldGesture::_ZTV18QTapAndHoldGesture: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QTapAndHoldGesture) +16 (int (*)(...))QTapAndHoldGesture::metaObject +24 (int (*)(...))QTapAndHoldGesture::qt_metacast +32 (int (*)(...))QTapAndHoldGesture::qt_metacall +40 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +48 (int (*)(...))QTapAndHoldGesture::~QTapAndHoldGesture +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTapAndHoldGesture + size=16 align=8 + base size=16 base align=8 +QTapAndHoldGesture (0x0x7f8bba77b618) 0 + vptr=((& QTapAndHoldGesture::_ZTV18QTapAndHoldGesture) + 16) + QGesture (0x0x7f8bba77b680) 0 + primary-for QTapAndHoldGesture (0x0x7f8bba77b618) + QObject (0x0x7f8bb5e886c0) 0 + primary-for QGesture (0x0x7f8bba77b680) + +Vtable for QGestureEvent +QGestureEvent::_ZTV13QGestureEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGestureEvent) +16 (int (*)(...))QGestureEvent::~QGestureEvent +24 (int (*)(...))QGestureEvent::~QGestureEvent + +Class QGestureEvent + size=56 align=8 + base size=56 base align=8 +QGestureEvent (0x0x7f8bba77b8f0) 0 + vptr=((& QGestureEvent::_ZTV13QGestureEvent) + 16) + QEvent (0x0x7f8bb5ec47e0) 0 + primary-for QGestureEvent (0x0x7f8bba77b8f0) + +Vtable for QGestureRecognizer +QGestureRecognizer::_ZTV18QGestureRecognizer: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGestureRecognizer) +16 0 +24 0 +32 (int (*)(...))QGestureRecognizer::create +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGestureRecognizer::reset + +Class QGestureRecognizer + size=8 align=8 + base size=8 base align=8 +QGestureRecognizer (0x0x7f8bb5f04840) 0 nearly-empty + vptr=((& QGestureRecognizer::_ZTV18QGestureRecognizer) + 16) + +Vtable for QGraphicsItem +QGraphicsItem::_ZTV13QGraphicsItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItem::isObscuredBy +88 (int (*)(...))QGraphicsItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItem + size=16 align=8 + base size=16 base align=8 +QGraphicsItem (0x0x7f8bb5fa5c60) 0 + vptr=((& QGraphicsItem::_ZTV13QGraphicsItem) + 16) + +Class QGraphicsObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsObject::QPrivateSignal (0x0x7f8bb594f420) 0 empty + +Vtable for QGraphicsObject +QGraphicsObject::_ZTV15QGraphicsObject: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsObject) +16 (int (*)(...))QGraphicsObject::metaObject +24 (int (*)(...))QGraphicsObject::qt_metacast +32 (int (*)(...))QGraphicsObject::qt_metacall +40 0 +48 0 +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))-16 +120 (int (*)(...))(& _ZTI15QGraphicsObject) +128 0 +136 0 +144 (int (*)(...))QGraphicsItem::advance +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))QGraphicsItem::shape +168 (int (*)(...))QGraphicsItem::contains +176 (int (*)(...))QGraphicsItem::collidesWithItem +184 (int (*)(...))QGraphicsItem::collidesWithPath +192 (int (*)(...))QGraphicsItem::isObscuredBy +200 (int (*)(...))QGraphicsItem::opaqueArea +208 (int (*)(...))__cxa_pure_virtual +216 (int (*)(...))QGraphicsItem::type +224 (int (*)(...))QGraphicsItem::sceneEventFilter +232 (int (*)(...))QGraphicsItem::sceneEvent +240 (int (*)(...))QGraphicsItem::contextMenuEvent +248 (int (*)(...))QGraphicsItem::dragEnterEvent +256 (int (*)(...))QGraphicsItem::dragLeaveEvent +264 (int (*)(...))QGraphicsItem::dragMoveEvent +272 (int (*)(...))QGraphicsItem::dropEvent +280 (int (*)(...))QGraphicsItem::focusInEvent +288 (int (*)(...))QGraphicsItem::focusOutEvent +296 (int (*)(...))QGraphicsItem::hoverEnterEvent +304 (int (*)(...))QGraphicsItem::hoverMoveEvent +312 (int (*)(...))QGraphicsItem::hoverLeaveEvent +320 (int (*)(...))QGraphicsItem::keyPressEvent +328 (int (*)(...))QGraphicsItem::keyReleaseEvent +336 (int (*)(...))QGraphicsItem::mousePressEvent +344 (int (*)(...))QGraphicsItem::mouseMoveEvent +352 (int (*)(...))QGraphicsItem::mouseReleaseEvent +360 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +368 (int (*)(...))QGraphicsItem::wheelEvent +376 (int (*)(...))QGraphicsItem::inputMethodEvent +384 (int (*)(...))QGraphicsItem::inputMethodQuery +392 (int (*)(...))QGraphicsItem::itemChange +400 (int (*)(...))QGraphicsItem::supportsExtension +408 (int (*)(...))QGraphicsItem::setExtension +416 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsObject + size=32 align=8 + base size=32 base align=8 +QGraphicsObject (0x0x7f8bbe4afd90) 0 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 16) + QObject (0x0x7f8bb58d1ba0) 0 + primary-for QGraphicsObject (0x0x7f8bbe4afd90) + QGraphicsItem (0x0x7f8bb58d1c00) 16 + vptr=((& QGraphicsObject::_ZTV15QGraphicsObject) + 128) + +Vtable for QAbstractGraphicsShapeItem +QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractGraphicsShapeItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QAbstractGraphicsShapeItem::isObscuredBy +88 (int (*)(...))QAbstractGraphicsShapeItem::opaqueArea +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))QGraphicsItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QAbstractGraphicsShapeItem + size=16 align=8 + base size=16 base align=8 +QAbstractGraphicsShapeItem (0x0x7f8bba4ae138) 0 + vptr=((& QAbstractGraphicsShapeItem::_ZTV26QAbstractGraphicsShapeItem) + 16) + QGraphicsItem (0x0x7f8bb594fae0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8bba4ae138) + +Vtable for QGraphicsPathItem +QGraphicsPathItem::_ZTV17QGraphicsPathItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsPathItem) +16 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +24 (int (*)(...))QGraphicsPathItem::~QGraphicsPathItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPathItem::boundingRect +48 (int (*)(...))QGraphicsPathItem::shape +56 (int (*)(...))QGraphicsPathItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPathItem::isObscuredBy +88 (int (*)(...))QGraphicsPathItem::opaqueArea +96 (int (*)(...))QGraphicsPathItem::paint +104 (int (*)(...))QGraphicsPathItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPathItem::supportsExtension +296 (int (*)(...))QGraphicsPathItem::setExtension +304 (int (*)(...))QGraphicsPathItem::extension + +Class QGraphicsPathItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPathItem (0x0x7f8bba4ae1a0) 0 + vptr=((& QGraphicsPathItem::_ZTV17QGraphicsPathItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8bba4aeaf8) 0 + primary-for QGraphicsPathItem (0x0x7f8bba4ae1a0) + QGraphicsItem (0x0x7f8bb596fc00) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8bba4aeaf8) + +Vtable for QGraphicsRectItem +QGraphicsRectItem::_ZTV17QGraphicsRectItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRectItem) +16 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +24 (int (*)(...))QGraphicsRectItem::~QGraphicsRectItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsRectItem::boundingRect +48 (int (*)(...))QGraphicsRectItem::shape +56 (int (*)(...))QGraphicsRectItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsRectItem::isObscuredBy +88 (int (*)(...))QGraphicsRectItem::opaqueArea +96 (int (*)(...))QGraphicsRectItem::paint +104 (int (*)(...))QGraphicsRectItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsRectItem::supportsExtension +296 (int (*)(...))QGraphicsRectItem::setExtension +304 (int (*)(...))QGraphicsRectItem::extension + +Class QGraphicsRectItem + size=16 align=8 + base size=16 base align=8 +QGraphicsRectItem (0x0x7f8bba4aeb60) 0 + vptr=((& QGraphicsRectItem::_ZTV17QGraphicsRectItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8bba54e068) 0 + primary-for QGraphicsRectItem (0x0x7f8bba4aeb60) + QGraphicsItem (0x0x7f8bb59ba120) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8bba54e068) + +Vtable for QGraphicsEllipseItem +QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsEllipseItem) +16 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +24 (int (*)(...))QGraphicsEllipseItem::~QGraphicsEllipseItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsEllipseItem::boundingRect +48 (int (*)(...))QGraphicsEllipseItem::shape +56 (int (*)(...))QGraphicsEllipseItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsEllipseItem::isObscuredBy +88 (int (*)(...))QGraphicsEllipseItem::opaqueArea +96 (int (*)(...))QGraphicsEllipseItem::paint +104 (int (*)(...))QGraphicsEllipseItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsEllipseItem::supportsExtension +296 (int (*)(...))QGraphicsEllipseItem::setExtension +304 (int (*)(...))QGraphicsEllipseItem::extension + +Class QGraphicsEllipseItem + size=16 align=8 + base size=16 base align=8 +QGraphicsEllipseItem (0x0x7f8bba54e0d0) 0 + vptr=((& QGraphicsEllipseItem::_ZTV20QGraphicsEllipseItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8bba54e5b0) 0 + primary-for QGraphicsEllipseItem (0x0x7f8bba54e0d0) + QGraphicsItem (0x0x7f8bb59bac00) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8bba54e5b0) + +Vtable for QGraphicsPolygonItem +QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsPolygonItem) +16 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +24 (int (*)(...))QGraphicsPolygonItem::~QGraphicsPolygonItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPolygonItem::boundingRect +48 (int (*)(...))QGraphicsPolygonItem::shape +56 (int (*)(...))QGraphicsPolygonItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPolygonItem::isObscuredBy +88 (int (*)(...))QGraphicsPolygonItem::opaqueArea +96 (int (*)(...))QGraphicsPolygonItem::paint +104 (int (*)(...))QGraphicsPolygonItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPolygonItem::supportsExtension +296 (int (*)(...))QGraphicsPolygonItem::setExtension +304 (int (*)(...))QGraphicsPolygonItem::extension + +Class QGraphicsPolygonItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPolygonItem (0x0x7f8bba54e618) 0 + vptr=((& QGraphicsPolygonItem::_ZTV20QGraphicsPolygonItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8bba56e680) 0 + primary-for QGraphicsPolygonItem (0x0x7f8bba54e618) + QGraphicsItem (0x0x7f8bb55d84e0) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8bba56e680) + +Vtable for QGraphicsLineItem +QGraphicsLineItem::_ZTV17QGraphicsLineItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsLineItem) +16 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +24 (int (*)(...))QGraphicsLineItem::~QGraphicsLineItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsLineItem::boundingRect +48 (int (*)(...))QGraphicsLineItem::shape +56 (int (*)(...))QGraphicsLineItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsLineItem::isObscuredBy +88 (int (*)(...))QGraphicsLineItem::opaqueArea +96 (int (*)(...))QGraphicsLineItem::paint +104 (int (*)(...))QGraphicsLineItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsLineItem::supportsExtension +296 (int (*)(...))QGraphicsLineItem::setExtension +304 (int (*)(...))QGraphicsLineItem::extension + +Class QGraphicsLineItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLineItem (0x0x7f8bba56e6e8) 0 + vptr=((& QGraphicsLineItem::_ZTV17QGraphicsLineItem) + 16) + QGraphicsItem (0x0x7f8bb56328a0) 0 + primary-for QGraphicsLineItem (0x0x7f8bba56e6e8) + +Vtable for QGraphicsPixmapItem +QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsPixmapItem) +16 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +24 (int (*)(...))QGraphicsPixmapItem::~QGraphicsPixmapItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsPixmapItem::boundingRect +48 (int (*)(...))QGraphicsPixmapItem::shape +56 (int (*)(...))QGraphicsPixmapItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsPixmapItem::isObscuredBy +88 (int (*)(...))QGraphicsPixmapItem::opaqueArea +96 (int (*)(...))QGraphicsPixmapItem::paint +104 (int (*)(...))QGraphicsPixmapItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsPixmapItem::supportsExtension +296 (int (*)(...))QGraphicsPixmapItem::setExtension +304 (int (*)(...))QGraphicsPixmapItem::extension + +Class QGraphicsPixmapItem + size=16 align=8 + base size=16 base align=8 +QGraphicsPixmapItem (0x0x7f8bba56ea90) 0 + vptr=((& QGraphicsPixmapItem::_ZTV19QGraphicsPixmapItem) + 16) + QGraphicsItem (0x0x7f8bb5632d20) 0 + primary-for QGraphicsPixmapItem (0x0x7f8bba56ea90) + +Class QGraphicsTextItem::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTextItem::QPrivateSignal (0x0x7f8bb5661840) 0 empty + +Vtable for QGraphicsTextItem +QGraphicsTextItem::_ZTV17QGraphicsTextItem: 82 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsTextItem) +16 (int (*)(...))QGraphicsTextItem::metaObject +24 (int (*)(...))QGraphicsTextItem::qt_metacast +32 (int (*)(...))QGraphicsTextItem::qt_metacall +40 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +48 (int (*)(...))QGraphicsTextItem::~QGraphicsTextItem +56 (int (*)(...))QGraphicsObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsTextItem::boundingRect +120 (int (*)(...))QGraphicsTextItem::shape +128 (int (*)(...))QGraphicsTextItem::contains +136 (int (*)(...))QGraphicsTextItem::paint +144 (int (*)(...))QGraphicsTextItem::isObscuredBy +152 (int (*)(...))QGraphicsTextItem::opaqueArea +160 (int (*)(...))QGraphicsTextItem::type +168 (int (*)(...))QGraphicsTextItem::sceneEvent +176 (int (*)(...))QGraphicsTextItem::mousePressEvent +184 (int (*)(...))QGraphicsTextItem::mouseMoveEvent +192 (int (*)(...))QGraphicsTextItem::mouseReleaseEvent +200 (int (*)(...))QGraphicsTextItem::mouseDoubleClickEvent +208 (int (*)(...))QGraphicsTextItem::contextMenuEvent +216 (int (*)(...))QGraphicsTextItem::keyPressEvent +224 (int (*)(...))QGraphicsTextItem::keyReleaseEvent +232 (int (*)(...))QGraphicsTextItem::focusInEvent +240 (int (*)(...))QGraphicsTextItem::focusOutEvent +248 (int (*)(...))QGraphicsTextItem::dragEnterEvent +256 (int (*)(...))QGraphicsTextItem::dragLeaveEvent +264 (int (*)(...))QGraphicsTextItem::dragMoveEvent +272 (int (*)(...))QGraphicsTextItem::dropEvent +280 (int (*)(...))QGraphicsTextItem::inputMethodEvent +288 (int (*)(...))QGraphicsTextItem::hoverEnterEvent +296 (int (*)(...))QGraphicsTextItem::hoverMoveEvent +304 (int (*)(...))QGraphicsTextItem::hoverLeaveEvent +312 (int (*)(...))QGraphicsTextItem::inputMethodQuery +320 (int (*)(...))QGraphicsTextItem::supportsExtension +328 (int (*)(...))QGraphicsTextItem::setExtension +336 (int (*)(...))QGraphicsTextItem::extension +344 (int (*)(...))-16 +352 (int (*)(...))(& _ZTI17QGraphicsTextItem) +360 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD1Ev +368 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItemD0Ev +376 (int (*)(...))QGraphicsItem::advance +384 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12boundingRectEv +392 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem5shapeEv +400 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem8containsERK7QPointF +408 (int (*)(...))QGraphicsItem::collidesWithItem +416 (int (*)(...))QGraphicsItem::collidesWithPath +424 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem12isObscuredByEPK13QGraphicsItem +432 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem10opaqueAreaEv +440 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +448 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem4typeEv +456 (int (*)(...))QGraphicsItem::sceneEventFilter +464 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem10sceneEventEP6QEvent +472 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16contextMenuEventEP30QGraphicsSceneContextMenuEvent +480 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragEnterEventEP27QGraphicsSceneDragDropEvent +488 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14dragLeaveEventEP27QGraphicsSceneDragDropEvent +496 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13dragMoveEventEP27QGraphicsSceneDragDropEvent +504 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem9dropEventEP27QGraphicsSceneDragDropEvent +512 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12focusInEventEP11QFocusEvent +520 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13focusOutEventEP11QFocusEvent +528 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverEnterEventEP24QGraphicsSceneHoverEvent +536 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14hoverMoveEventEP24QGraphicsSceneHoverEvent +544 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15hoverLeaveEventEP24QGraphicsSceneHoverEvent +552 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem13keyPressEventEP9QKeyEvent +560 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15keyReleaseEventEP9QKeyEvent +568 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem15mousePressEventEP24QGraphicsSceneMouseEvent +576 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem14mouseMoveEventEP24QGraphicsSceneMouseEvent +584 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem17mouseReleaseEventEP24QGraphicsSceneMouseEvent +592 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +600 (int (*)(...))QGraphicsItem::wheelEvent +608 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem16inputMethodEventEP17QInputMethodEvent +616 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem16inputMethodQueryEN2Qt16InputMethodQueryE +624 (int (*)(...))QGraphicsItem::itemChange +632 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem17supportsExtensionEN13QGraphicsItem9ExtensionE +640 (int (*)(...))QGraphicsTextItem::_ZThn16_N17QGraphicsTextItem12setExtensionEN13QGraphicsItem9ExtensionERK8QVariant +648 (int (*)(...))QGraphicsTextItem::_ZThn16_NK17QGraphicsTextItem9extensionERK8QVariant + +Class QGraphicsTextItem + size=40 align=8 + base size=40 base align=8 +QGraphicsTextItem (0x0x7f8bba56eaf8) 0 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 16) + QGraphicsObject (0x0x7f8bbe535690) 0 + primary-for QGraphicsTextItem (0x0x7f8bba56eaf8) + QObject (0x0x7f8bb5661360) 0 + primary-for QGraphicsObject (0x0x7f8bbe535690) + QGraphicsItem (0x0x7f8bb56617e0) 16 + vptr=((& QGraphicsTextItem::_ZTV17QGraphicsTextItem) + 360) + +Vtable for QGraphicsSimpleTextItem +QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSimpleTextItem) +16 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +24 (int (*)(...))QGraphicsSimpleTextItem::~QGraphicsSimpleTextItem +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsSimpleTextItem::boundingRect +48 (int (*)(...))QGraphicsSimpleTextItem::shape +56 (int (*)(...))QGraphicsSimpleTextItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsSimpleTextItem::isObscuredBy +88 (int (*)(...))QGraphicsSimpleTextItem::opaqueArea +96 (int (*)(...))QGraphicsSimpleTextItem::paint +104 (int (*)(...))QGraphicsSimpleTextItem::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsSimpleTextItem::supportsExtension +296 (int (*)(...))QGraphicsSimpleTextItem::setExtension +304 (int (*)(...))QGraphicsSimpleTextItem::extension + +Class QGraphicsSimpleTextItem + size=16 align=8 + base size=16 base align=8 +QGraphicsSimpleTextItem (0x0x7f8bba5aec30) 0 + vptr=((& QGraphicsSimpleTextItem::_ZTV23QGraphicsSimpleTextItem) + 16) + QAbstractGraphicsShapeItem (0x0x7f8bba5aec98) 0 + primary-for QGraphicsSimpleTextItem (0x0x7f8bba5aec30) + QGraphicsItem (0x0x7f8bb5683180) 0 + primary-for QAbstractGraphicsShapeItem (0x0x7f8bba5aec98) + +Vtable for QGraphicsItemGroup +QGraphicsItemGroup::_ZTV18QGraphicsItemGroup: 39 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsItemGroup) +16 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +24 (int (*)(...))QGraphicsItemGroup::~QGraphicsItemGroup +32 (int (*)(...))QGraphicsItem::advance +40 (int (*)(...))QGraphicsItemGroup::boundingRect +48 (int (*)(...))QGraphicsItem::shape +56 (int (*)(...))QGraphicsItem::contains +64 (int (*)(...))QGraphicsItem::collidesWithItem +72 (int (*)(...))QGraphicsItem::collidesWithPath +80 (int (*)(...))QGraphicsItemGroup::isObscuredBy +88 (int (*)(...))QGraphicsItemGroup::opaqueArea +96 (int (*)(...))QGraphicsItemGroup::paint +104 (int (*)(...))QGraphicsItemGroup::type +112 (int (*)(...))QGraphicsItem::sceneEventFilter +120 (int (*)(...))QGraphicsItem::sceneEvent +128 (int (*)(...))QGraphicsItem::contextMenuEvent +136 (int (*)(...))QGraphicsItem::dragEnterEvent +144 (int (*)(...))QGraphicsItem::dragLeaveEvent +152 (int (*)(...))QGraphicsItem::dragMoveEvent +160 (int (*)(...))QGraphicsItem::dropEvent +168 (int (*)(...))QGraphicsItem::focusInEvent +176 (int (*)(...))QGraphicsItem::focusOutEvent +184 (int (*)(...))QGraphicsItem::hoverEnterEvent +192 (int (*)(...))QGraphicsItem::hoverMoveEvent +200 (int (*)(...))QGraphicsItem::hoverLeaveEvent +208 (int (*)(...))QGraphicsItem::keyPressEvent +216 (int (*)(...))QGraphicsItem::keyReleaseEvent +224 (int (*)(...))QGraphicsItem::mousePressEvent +232 (int (*)(...))QGraphicsItem::mouseMoveEvent +240 (int (*)(...))QGraphicsItem::mouseReleaseEvent +248 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +256 (int (*)(...))QGraphicsItem::wheelEvent +264 (int (*)(...))QGraphicsItem::inputMethodEvent +272 (int (*)(...))QGraphicsItem::inputMethodQuery +280 (int (*)(...))QGraphicsItem::itemChange +288 (int (*)(...))QGraphicsItem::supportsExtension +296 (int (*)(...))QGraphicsItem::setExtension +304 (int (*)(...))QGraphicsItem::extension + +Class QGraphicsItemGroup + size=16 align=8 + base size=16 base align=8 +QGraphicsItemGroup (0x0x7f8bba2185b0) 0 + vptr=((& QGraphicsItemGroup::_ZTV18QGraphicsItemGroup) + 16) + QGraphicsItem (0x0x7f8bb56835a0) 0 + primary-for QGraphicsItemGroup (0x0x7f8bba2185b0) + +Vtable for QGraphicsLayoutItem +QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsLayoutItem) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayoutItem::getContentsMargins +48 (int (*)(...))QGraphicsLayoutItem::updateGeometry +56 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayoutItem + size=16 align=8 + base size=16 base align=8 +QGraphicsLayoutItem (0x0x7f8bb569b2a0) 0 + vptr=((& QGraphicsLayoutItem::_ZTV19QGraphicsLayoutItem) + 16) + +Vtable for QGraphicsLayout +QGraphicsLayout::_ZTV15QGraphicsLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsLayout) +16 0 +24 0 +32 (int (*)(...))QGraphicsLayoutItem::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))QGraphicsLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLayout (0x0x7f8bba218618) 0 + vptr=((& QGraphicsLayout::_ZTV15QGraphicsLayout) + 16) + QGraphicsLayoutItem (0x0x7f8bb56b3ea0) 0 + primary-for QGraphicsLayout (0x0x7f8bba218618) + +Class QGraphicsAnchor::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsAnchor::QPrivateSignal (0x0x7f8bb57179c0) 0 empty + +Vtable for QGraphicsAnchor +QGraphicsAnchor::_ZTV15QGraphicsAnchor: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsAnchor) +16 (int (*)(...))QGraphicsAnchor::metaObject +24 (int (*)(...))QGraphicsAnchor::qt_metacast +32 (int (*)(...))QGraphicsAnchor::qt_metacall +40 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +48 (int (*)(...))QGraphicsAnchor::~QGraphicsAnchor +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QGraphicsAnchor + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchor (0x0x7f8bba2351a0) 0 + vptr=((& QGraphicsAnchor::_ZTV15QGraphicsAnchor) + 16) + QObject (0x0x7f8bb57175a0) 0 + primary-for QGraphicsAnchor (0x0x7f8bba2351a0) + +Vtable for QGraphicsAnchorLayout +QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsAnchorLayout) +16 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +24 (int (*)(...))QGraphicsAnchorLayout::~QGraphicsAnchorLayout +32 (int (*)(...))QGraphicsAnchorLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsAnchorLayout::sizeHint +64 (int (*)(...))QGraphicsAnchorLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsAnchorLayout::count +88 (int (*)(...))QGraphicsAnchorLayout::itemAt +96 (int (*)(...))QGraphicsAnchorLayout::removeAt + +Class QGraphicsAnchorLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsAnchorLayout (0x0x7f8bba235208) 0 + vptr=((& QGraphicsAnchorLayout::_ZTV21QGraphicsAnchorLayout) + 16) + QGraphicsLayout (0x0x7f8bba2353a8) 0 + primary-for QGraphicsAnchorLayout (0x0x7f8bba235208) + QGraphicsLayoutItem (0x0x7f8bb5735060) 0 + primary-for QGraphicsLayout (0x0x7f8bba2353a8) + +Class QGraphicsEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsEffect::QPrivateSignal (0x0x7f8bb57836c0) 0 empty + +Vtable for QGraphicsEffect +QGraphicsEffect::_ZTV15QGraphicsEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsEffect) +16 (int (*)(...))QGraphicsEffect::metaObject +24 (int (*)(...))QGraphicsEffect::qt_metacast +32 (int (*)(...))QGraphicsEffect::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsEffect (0x0x7f8bba2355b0) 0 + vptr=((& QGraphicsEffect::_ZTV15QGraphicsEffect) + 16) + QObject (0x0x7f8bb5783660) 0 + primary-for QGraphicsEffect (0x0x7f8bba2355b0) + +Class QGraphicsColorizeEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsColorizeEffect::QPrivateSignal (0x0x7f8bb5540480) 0 empty + +Vtable for QGraphicsColorizeEffect +QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsColorizeEffect) +16 (int (*)(...))QGraphicsColorizeEffect::metaObject +24 (int (*)(...))QGraphicsColorizeEffect::qt_metacast +32 (int (*)(...))QGraphicsColorizeEffect::qt_metacall +40 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +48 (int (*)(...))QGraphicsColorizeEffect::~QGraphicsColorizeEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsColorizeEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsColorizeEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsColorizeEffect (0x0x7f8bba24b548) 0 + vptr=((& QGraphicsColorizeEffect::_ZTV23QGraphicsColorizeEffect) + 16) + QGraphicsEffect (0x0x7f8bba25ff70) 0 + primary-for QGraphicsColorizeEffect (0x0x7f8bba24b548) + QObject (0x0x7f8bb55400c0) 0 + primary-for QGraphicsEffect (0x0x7f8bba25ff70) + +Class QGraphicsBlurEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsBlurEffect::QPrivateSignal (0x0x7f8bb555ca20) 0 empty + +Vtable for QGraphicsBlurEffect +QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsBlurEffect) +16 (int (*)(...))QGraphicsBlurEffect::metaObject +24 (int (*)(...))QGraphicsBlurEffect::qt_metacast +32 (int (*)(...))QGraphicsBlurEffect::qt_metacall +40 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +48 (int (*)(...))QGraphicsBlurEffect::~QGraphicsBlurEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsBlurEffect::boundingRectFor +120 (int (*)(...))QGraphicsBlurEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsBlurEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsBlurEffect (0x0x7f8bba279000) 0 + vptr=((& QGraphicsBlurEffect::_ZTV19QGraphicsBlurEffect) + 16) + QGraphicsEffect (0x0x7f8bba2798f0) 0 + primary-for QGraphicsBlurEffect (0x0x7f8bba279000) + QObject (0x0x7f8bb555c2a0) 0 + primary-for QGraphicsEffect (0x0x7f8bba2798f0) + +Class QGraphicsDropShadowEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsDropShadowEffect::QPrivateSignal (0x0x7f8bb52499c0) 0 empty + +Vtable for QGraphicsDropShadowEffect +QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsDropShadowEffect) +16 (int (*)(...))QGraphicsDropShadowEffect::metaObject +24 (int (*)(...))QGraphicsDropShadowEffect::qt_metacast +32 (int (*)(...))QGraphicsDropShadowEffect::qt_metacall +40 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +48 (int (*)(...))QGraphicsDropShadowEffect::~QGraphicsDropShadowEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsDropShadowEffect::boundingRectFor +120 (int (*)(...))QGraphicsDropShadowEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsDropShadowEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsDropShadowEffect (0x0x7f8bba279c30) 0 + vptr=((& QGraphicsDropShadowEffect::_ZTV25QGraphicsDropShadowEffect) + 16) + QGraphicsEffect (0x0x7f8bba279c98) 0 + primary-for QGraphicsDropShadowEffect (0x0x7f8bba279c30) + QObject (0x0x7f8bb5249960) 0 + primary-for QGraphicsEffect (0x0x7f8bba279c98) + +Class QGraphicsOpacityEffect::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsOpacityEffect::QPrivateSignal (0x0x7f8bb52ee180) 0 empty + +Vtable for QGraphicsOpacityEffect +QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsOpacityEffect) +16 (int (*)(...))QGraphicsOpacityEffect::metaObject +24 (int (*)(...))QGraphicsOpacityEffect::qt_metacast +32 (int (*)(...))QGraphicsOpacityEffect::qt_metacall +40 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +48 (int (*)(...))QGraphicsOpacityEffect::~QGraphicsOpacityEffect +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsEffect::boundingRectFor +120 (int (*)(...))QGraphicsOpacityEffect::draw +128 (int (*)(...))QGraphicsEffect::sourceChanged + +Class QGraphicsOpacityEffect + size=16 align=8 + base size=16 base align=8 +QGraphicsOpacityEffect (0x0x7f8bba295618) 0 + vptr=((& QGraphicsOpacityEffect::_ZTV22QGraphicsOpacityEffect) + 16) + QGraphicsEffect (0x0x7f8bba295680) 0 + primary-for QGraphicsOpacityEffect (0x0x7f8bba295618) + QObject (0x0x7f8bb52ee120) 0 + primary-for QGraphicsEffect (0x0x7f8bba295680) + +Vtable for QGraphicsGridLayout +QGraphicsGridLayout::_ZTV19QGraphicsGridLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsGridLayout) +16 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +24 (int (*)(...))QGraphicsGridLayout::~QGraphicsGridLayout +32 (int (*)(...))QGraphicsGridLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsGridLayout::sizeHint +64 (int (*)(...))QGraphicsGridLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsGridLayout::count +88 (int (*)(...))QGraphicsGridLayout::itemAt +96 (int (*)(...))QGraphicsGridLayout::removeAt + +Class QGraphicsGridLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsGridLayout (0x0x7f8bba295750) 0 + vptr=((& QGraphicsGridLayout::_ZTV19QGraphicsGridLayout) + 16) + QGraphicsLayout (0x0x7f8bba2957b8) 0 + primary-for QGraphicsGridLayout (0x0x7f8bba295750) + QGraphicsLayoutItem (0x0x7f8bb530f420) 0 + primary-for QGraphicsLayout (0x0x7f8bba2957b8) + +Class QGraphicsItemAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsItemAnimation::QPrivateSignal (0x0x7f8bb536bf60) 0 empty + +Vtable for QGraphicsItemAnimation +QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QGraphicsItemAnimation) +16 (int (*)(...))QGraphicsItemAnimation::metaObject +24 (int (*)(...))QGraphicsItemAnimation::qt_metacast +32 (int (*)(...))QGraphicsItemAnimation::qt_metacall +40 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +48 (int (*)(...))QGraphicsItemAnimation::~QGraphicsItemAnimation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsItemAnimation::beforeAnimationStep +120 (int (*)(...))QGraphicsItemAnimation::afterAnimationStep + +Class QGraphicsItemAnimation + size=24 align=8 + base size=24 base align=8 +QGraphicsItemAnimation (0x0x7f8bba2ab6e8) 0 + vptr=((& QGraphicsItemAnimation::_ZTV22QGraphicsItemAnimation) + 16) + QObject (0x0x7f8bb536bf00) 0 + primary-for QGraphicsItemAnimation (0x0x7f8bba2ab6e8) + +Vtable for QGraphicsLinearLayout +QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout: 13 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QGraphicsLinearLayout) +16 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +24 (int (*)(...))QGraphicsLinearLayout::~QGraphicsLinearLayout +32 (int (*)(...))QGraphicsLinearLayout::setGeometry +40 (int (*)(...))QGraphicsLayout::getContentsMargins +48 (int (*)(...))QGraphicsLayout::updateGeometry +56 (int (*)(...))QGraphicsLinearLayout::sizeHint +64 (int (*)(...))QGraphicsLinearLayout::invalidate +72 (int (*)(...))QGraphicsLayout::widgetEvent +80 (int (*)(...))QGraphicsLinearLayout::count +88 (int (*)(...))QGraphicsLinearLayout::itemAt +96 (int (*)(...))QGraphicsLinearLayout::removeAt + +Class QGraphicsLinearLayout + size=16 align=8 + base size=16 base align=8 +QGraphicsLinearLayout (0x0x7f8bba2ab750) 0 + vptr=((& QGraphicsLinearLayout::_ZTV21QGraphicsLinearLayout) + 16) + QGraphicsLayout (0x0x7f8bba2abaf8) 0 + primary-for QGraphicsLinearLayout (0x0x7f8bba2ab750) + QGraphicsLayoutItem (0x0x7f8bb53af840) 0 + primary-for QGraphicsLayout (0x0x7f8bba2abaf8) + +Class QGraphicsWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsWidget::QPrivateSignal (0x0x7f8bb4fd0900) 0 empty + +Vtable for QGraphicsWidget +QGraphicsWidget::_ZTV15QGraphicsWidget: 92 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QGraphicsWidget) +16 (int (*)(...))QGraphicsWidget::metaObject +24 (int (*)(...))QGraphicsWidget::qt_metacast +32 (int (*)(...))QGraphicsWidget::qt_metacall +40 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +48 (int (*)(...))QGraphicsWidget::~QGraphicsWidget +56 (int (*)(...))QGraphicsWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsWidget::type +136 (int (*)(...))QGraphicsWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsWidget::focusInEvent +256 (int (*)(...))QGraphicsWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsWidget::focusOutEvent +272 (int (*)(...))QGraphicsWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsWidget::resizeEvent +304 (int (*)(...))QGraphicsWidget::showEvent +312 (int (*)(...))QGraphicsWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsWidget::grabMouseEvent +336 (int (*)(...))QGraphicsWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))-16 +368 (int (*)(...))(& _ZTI15QGraphicsWidget) +376 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD1Ev +384 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidgetD0Ev +392 (int (*)(...))QGraphicsItem::advance +400 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +408 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +416 (int (*)(...))QGraphicsItem::contains +424 (int (*)(...))QGraphicsItem::collidesWithItem +432 (int (*)(...))QGraphicsItem::collidesWithPath +440 (int (*)(...))QGraphicsItem::isObscuredBy +448 (int (*)(...))QGraphicsItem::opaqueArea +456 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +464 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget4typeEv +472 (int (*)(...))QGraphicsItem::sceneEventFilter +480 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +488 (int (*)(...))QGraphicsItem::contextMenuEvent +496 (int (*)(...))QGraphicsItem::dragEnterEvent +504 (int (*)(...))QGraphicsItem::dragLeaveEvent +512 (int (*)(...))QGraphicsItem::dragMoveEvent +520 (int (*)(...))QGraphicsItem::dropEvent +528 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget12focusInEventEP11QFocusEvent +536 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget13focusOutEventEP11QFocusEvent +544 (int (*)(...))QGraphicsItem::hoverEnterEvent +552 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +560 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +568 (int (*)(...))QGraphicsItem::keyPressEvent +576 (int (*)(...))QGraphicsItem::keyReleaseEvent +584 (int (*)(...))QGraphicsItem::mousePressEvent +592 (int (*)(...))QGraphicsItem::mouseMoveEvent +600 (int (*)(...))QGraphicsItem::mouseReleaseEvent +608 (int (*)(...))QGraphicsItem::mouseDoubleClickEvent +616 (int (*)(...))QGraphicsItem::wheelEvent +624 (int (*)(...))QGraphicsItem::inputMethodEvent +632 (int (*)(...))QGraphicsItem::inputMethodQuery +640 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +648 (int (*)(...))QGraphicsItem::supportsExtension +656 (int (*)(...))QGraphicsItem::setExtension +664 (int (*)(...))QGraphicsItem::extension +672 (int (*)(...))-32 +680 (int (*)(...))(& _ZTI15QGraphicsWidget) +688 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD1Ev +696 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidgetD0Ev +704 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget11setGeometryERK6QRectF +712 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +720 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +728 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsWidget (0x0x7f8bbe364b60) 0 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 16) + QGraphicsObject (0x0x7f8bbe364bd0) 0 + primary-for QGraphicsWidget (0x0x7f8bbe364b60) + QObject (0x0x7f8bb4fd0600) 0 + primary-for QGraphicsObject (0x0x7f8bbe364bd0) + QGraphicsItem (0x0x7f8bb4fd0660) 16 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 376) + QGraphicsLayoutItem (0x0x7f8bb4fd08a0) 32 + vptr=((& QGraphicsWidget::_ZTV15QGraphicsWidget) + 688) + +Class QGraphicsProxyWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsProxyWidget::QPrivateSignal (0x0x7f8bb502d300) 0 empty + +Vtable for QGraphicsProxyWidget +QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget: 107 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +16 (int (*)(...))QGraphicsProxyWidget::metaObject +24 (int (*)(...))QGraphicsProxyWidget::qt_metacast +32 (int (*)(...))QGraphicsProxyWidget::qt_metacall +40 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +48 (int (*)(...))QGraphicsProxyWidget::~QGraphicsProxyWidget +56 (int (*)(...))QGraphicsProxyWidget::event +64 (int (*)(...))QGraphicsProxyWidget::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsProxyWidget::setGeometry +120 (int (*)(...))QGraphicsWidget::getContentsMargins +128 (int (*)(...))QGraphicsProxyWidget::type +136 (int (*)(...))QGraphicsProxyWidget::paint +144 (int (*)(...))QGraphicsWidget::paintWindowFrame +152 (int (*)(...))QGraphicsWidget::boundingRect +160 (int (*)(...))QGraphicsWidget::shape +168 (int (*)(...))QGraphicsWidget::initStyleOption +176 (int (*)(...))QGraphicsProxyWidget::sizeHint +184 (int (*)(...))QGraphicsWidget::updateGeometry +192 (int (*)(...))QGraphicsProxyWidget::itemChange +200 (int (*)(...))QGraphicsWidget::propertyChange +208 (int (*)(...))QGraphicsWidget::sceneEvent +216 (int (*)(...))QGraphicsWidget::windowFrameEvent +224 (int (*)(...))QGraphicsWidget::windowFrameSectionAt +232 (int (*)(...))QGraphicsWidget::changeEvent +240 (int (*)(...))QGraphicsWidget::closeEvent +248 (int (*)(...))QGraphicsProxyWidget::focusInEvent +256 (int (*)(...))QGraphicsProxyWidget::focusNextPrevChild +264 (int (*)(...))QGraphicsProxyWidget::focusOutEvent +272 (int (*)(...))QGraphicsProxyWidget::hideEvent +280 (int (*)(...))QGraphicsWidget::moveEvent +288 (int (*)(...))QGraphicsWidget::polishEvent +296 (int (*)(...))QGraphicsProxyWidget::resizeEvent +304 (int (*)(...))QGraphicsProxyWidget::showEvent +312 (int (*)(...))QGraphicsProxyWidget::hoverMoveEvent +320 (int (*)(...))QGraphicsProxyWidget::hoverLeaveEvent +328 (int (*)(...))QGraphicsProxyWidget::grabMouseEvent +336 (int (*)(...))QGraphicsProxyWidget::ungrabMouseEvent +344 (int (*)(...))QGraphicsWidget::grabKeyboardEvent +352 (int (*)(...))QGraphicsWidget::ungrabKeyboardEvent +360 (int (*)(...))QGraphicsProxyWidget::contextMenuEvent +368 (int (*)(...))QGraphicsProxyWidget::dragEnterEvent +376 (int (*)(...))QGraphicsProxyWidget::dragLeaveEvent +384 (int (*)(...))QGraphicsProxyWidget::dragMoveEvent +392 (int (*)(...))QGraphicsProxyWidget::dropEvent +400 (int (*)(...))QGraphicsProxyWidget::hoverEnterEvent +408 (int (*)(...))QGraphicsProxyWidget::mouseMoveEvent +416 (int (*)(...))QGraphicsProxyWidget::mousePressEvent +424 (int (*)(...))QGraphicsProxyWidget::mouseReleaseEvent +432 (int (*)(...))QGraphicsProxyWidget::mouseDoubleClickEvent +440 (int (*)(...))QGraphicsProxyWidget::wheelEvent +448 (int (*)(...))QGraphicsProxyWidget::keyPressEvent +456 (int (*)(...))QGraphicsProxyWidget::keyReleaseEvent +464 (int (*)(...))QGraphicsProxyWidget::inputMethodQuery +472 (int (*)(...))QGraphicsProxyWidget::inputMethodEvent +480 (int (*)(...))-16 +488 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +496 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD1Ev +504 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidgetD0Ev +512 (int (*)(...))QGraphicsItem::advance +520 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget12boundingRectEv +528 (int (*)(...))QGraphicsWidget::_ZThn16_NK15QGraphicsWidget5shapeEv +536 (int (*)(...))QGraphicsItem::contains +544 (int (*)(...))QGraphicsItem::collidesWithItem +552 (int (*)(...))QGraphicsItem::collidesWithPath +560 (int (*)(...))QGraphicsItem::isObscuredBy +568 (int (*)(...))QGraphicsItem::opaqueArea +576 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget5paintEP8QPainterPK24QStyleOptionGraphicsItemP7QWidget +584 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget4typeEv +592 (int (*)(...))QGraphicsItem::sceneEventFilter +600 (int (*)(...))QGraphicsWidget::_ZThn16_N15QGraphicsWidget10sceneEventEP6QEvent +608 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16contextMenuEventEP30QGraphicsSceneContextMenuEvent +616 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragEnterEventEP27QGraphicsSceneDragDropEvent +624 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14dragLeaveEventEP27QGraphicsSceneDragDropEvent +632 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13dragMoveEventEP27QGraphicsSceneDragDropEvent +640 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget9dropEventEP27QGraphicsSceneDragDropEvent +648 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget12focusInEventEP11QFocusEvent +656 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13focusOutEventEP11QFocusEvent +664 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverEnterEventEP24QGraphicsSceneHoverEvent +672 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14hoverMoveEventEP24QGraphicsSceneHoverEvent +680 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15hoverLeaveEventEP24QGraphicsSceneHoverEvent +688 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget13keyPressEventEP9QKeyEvent +696 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15keyReleaseEventEP9QKeyEvent +704 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget15mousePressEventEP24QGraphicsSceneMouseEvent +712 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget14mouseMoveEventEP24QGraphicsSceneMouseEvent +720 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget17mouseReleaseEventEP24QGraphicsSceneMouseEvent +728 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget21mouseDoubleClickEventEP24QGraphicsSceneMouseEvent +736 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10wheelEventEP24QGraphicsSceneWheelEvent +744 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget16inputMethodEventEP17QInputMethodEvent +752 (int (*)(...))QGraphicsProxyWidget::_ZThn16_NK20QGraphicsProxyWidget16inputMethodQueryEN2Qt16InputMethodQueryE +760 (int (*)(...))QGraphicsProxyWidget::_ZThn16_N20QGraphicsProxyWidget10itemChangeEN13QGraphicsItem18GraphicsItemChangeERK8QVariant +768 (int (*)(...))QGraphicsItem::supportsExtension +776 (int (*)(...))QGraphicsItem::setExtension +784 (int (*)(...))QGraphicsItem::extension +792 (int (*)(...))-32 +800 (int (*)(...))(& _ZTI20QGraphicsProxyWidget) +808 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD1Ev +816 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidgetD0Ev +824 (int (*)(...))QGraphicsProxyWidget::_ZThn32_N20QGraphicsProxyWidget11setGeometryERK6QRectF +832 (int (*)(...))QGraphicsWidget::_ZThn32_NK15QGraphicsWidget18getContentsMarginsEPdS0_S0_S0_ +840 (int (*)(...))QGraphicsWidget::_ZThn32_N15QGraphicsWidget14updateGeometryEv +848 (int (*)(...))QGraphicsProxyWidget::_ZThn32_NK20QGraphicsProxyWidget8sizeHintEN2Qt8SizeHintERK6QSizeF + +Class QGraphicsProxyWidget + size=48 align=8 + base size=48 base align=8 +QGraphicsProxyWidget (0x0x7f8bba2c1270) 0 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 16) + QGraphicsWidget (0x0x7f8bbe364ee0) 0 + primary-for QGraphicsProxyWidget (0x0x7f8bba2c1270) + QGraphicsObject (0x0x7f8bbe364f50) 0 + primary-for QGraphicsWidget (0x0x7f8bbe364ee0) + QObject (0x0x7f8bb500c8a0) 0 + primary-for QGraphicsObject (0x0x7f8bbe364f50) + QGraphicsItem (0x0x7f8bb500c900) 16 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 496) + QGraphicsLayoutItem (0x0x7f8bb502d2a0) 32 + vptr=((& QGraphicsProxyWidget::_ZTV20QGraphicsProxyWidget) + 808) + +Class QGraphicsScene::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScene::QPrivateSignal (0x0x7f8bb50c5a80) 0 empty + +Vtable for QGraphicsScene +QGraphicsScene::_ZTV14QGraphicsScene: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScene) +16 (int (*)(...))QGraphicsScene::metaObject +24 (int (*)(...))QGraphicsScene::qt_metacast +32 (int (*)(...))QGraphicsScene::qt_metacall +40 (int (*)(...))QGraphicsScene::~QGraphicsScene +48 (int (*)(...))QGraphicsScene::~QGraphicsScene +56 (int (*)(...))QGraphicsScene::event +64 (int (*)(...))QGraphicsScene::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScene::inputMethodQuery +120 (int (*)(...))QGraphicsScene::contextMenuEvent +128 (int (*)(...))QGraphicsScene::dragEnterEvent +136 (int (*)(...))QGraphicsScene::dragMoveEvent +144 (int (*)(...))QGraphicsScene::dragLeaveEvent +152 (int (*)(...))QGraphicsScene::dropEvent +160 (int (*)(...))QGraphicsScene::focusInEvent +168 (int (*)(...))QGraphicsScene::focusOutEvent +176 (int (*)(...))QGraphicsScene::helpEvent +184 (int (*)(...))QGraphicsScene::keyPressEvent +192 (int (*)(...))QGraphicsScene::keyReleaseEvent +200 (int (*)(...))QGraphicsScene::mousePressEvent +208 (int (*)(...))QGraphicsScene::mouseMoveEvent +216 (int (*)(...))QGraphicsScene::mouseReleaseEvent +224 (int (*)(...))QGraphicsScene::mouseDoubleClickEvent +232 (int (*)(...))QGraphicsScene::wheelEvent +240 (int (*)(...))QGraphicsScene::inputMethodEvent +248 (int (*)(...))QGraphicsScene::drawBackground +256 (int (*)(...))QGraphicsScene::drawForeground +264 (int (*)(...))QGraphicsScene::drawItems + +Class QGraphicsScene + size=16 align=8 + base size=16 base align=8 +QGraphicsScene (0x0x7f8bba069bc8) 0 + vptr=((& QGraphicsScene::_ZTV14QGraphicsScene) + 16) + QObject (0x0x7f8bb50c5a20) 0 + primary-for QGraphicsScene (0x0x7f8bba069bc8) + +Vtable for QGraphicsSceneEvent +QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QGraphicsSceneEvent) +16 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent +24 (int (*)(...))QGraphicsSceneEvent::~QGraphicsSceneEvent + +Class QGraphicsSceneEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneEvent (0x0x7f8bba0b4068) 0 + vptr=((& QGraphicsSceneEvent::_ZTV19QGraphicsSceneEvent) + 16) + QEvent (0x0x7f8bb4ec1600) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba0b4068) + +Vtable for QGraphicsSceneMouseEvent +QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneMouseEvent) +16 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent +24 (int (*)(...))QGraphicsSceneMouseEvent::~QGraphicsSceneMouseEvent + +Class QGraphicsSceneMouseEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMouseEvent (0x0x7f8bba0b4888) 0 + vptr=((& QGraphicsSceneMouseEvent::_ZTV24QGraphicsSceneMouseEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba0b48f0) 0 + primary-for QGraphicsSceneMouseEvent (0x0x7f8bba0b4888) + QEvent (0x0x7f8bb4ec1e40) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba0b48f0) + +Vtable for QGraphicsSceneWheelEvent +QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneWheelEvent) +16 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent +24 (int (*)(...))QGraphicsSceneWheelEvent::~QGraphicsSceneWheelEvent + +Class QGraphicsSceneWheelEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneWheelEvent (0x0x7f8bba0b4d68) 0 + vptr=((& QGraphicsSceneWheelEvent::_ZTV24QGraphicsSceneWheelEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba0b4dd0) 0 + primary-for QGraphicsSceneWheelEvent (0x0x7f8bba0b4d68) + QEvent (0x0x7f8bb4ee0480) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba0b4dd0) + +Vtable for QGraphicsSceneContextMenuEvent +QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI30QGraphicsSceneContextMenuEvent) +16 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent +24 (int (*)(...))QGraphicsSceneContextMenuEvent::~QGraphicsSceneContextMenuEvent + +Class QGraphicsSceneContextMenuEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneContextMenuEvent (0x0x7f8bba1280d0) 0 + vptr=((& QGraphicsSceneContextMenuEvent::_ZTV30QGraphicsSceneContextMenuEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba128138) 0 + primary-for QGraphicsSceneContextMenuEvent (0x0x7f8bba1280d0) + QEvent (0x0x7f8bb4ee06c0) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba128138) + +Vtable for QGraphicsSceneHoverEvent +QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QGraphicsSceneHoverEvent) +16 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent +24 (int (*)(...))QGraphicsSceneHoverEvent::~QGraphicsSceneHoverEvent + +Class QGraphicsSceneHoverEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHoverEvent (0x0x7f8bba1282d8) 0 + vptr=((& QGraphicsSceneHoverEvent::_ZTV24QGraphicsSceneHoverEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba128410) 0 + primary-for QGraphicsSceneHoverEvent (0x0x7f8bba1282d8) + QEvent (0x0x7f8bb4efd120) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba128410) + +Vtable for QGraphicsSceneHelpEvent +QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneHelpEvent) +16 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent +24 (int (*)(...))QGraphicsSceneHelpEvent::~QGraphicsSceneHelpEvent + +Class QGraphicsSceneHelpEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneHelpEvent (0x0x7f8bba128478) 0 + vptr=((& QGraphicsSceneHelpEvent::_ZTV23QGraphicsSceneHelpEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba128618) 0 + primary-for QGraphicsSceneHelpEvent (0x0x7f8bba128478) + QEvent (0x0x7f8bb4efdc00) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba128618) + +Vtable for QGraphicsSceneDragDropEvent +QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QGraphicsSceneDragDropEvent) +16 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent +24 (int (*)(...))QGraphicsSceneDragDropEvent::~QGraphicsSceneDragDropEvent + +Class QGraphicsSceneDragDropEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneDragDropEvent (0x0x7f8bba128680) 0 + vptr=((& QGraphicsSceneDragDropEvent::_ZTV27QGraphicsSceneDragDropEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba1286e8) 0 + primary-for QGraphicsSceneDragDropEvent (0x0x7f8bba128680) + QEvent (0x0x7f8bb4efdea0) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba1286e8) + +Vtable for QGraphicsSceneResizeEvent +QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QGraphicsSceneResizeEvent) +16 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent +24 (int (*)(...))QGraphicsSceneResizeEvent::~QGraphicsSceneResizeEvent + +Class QGraphicsSceneResizeEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneResizeEvent (0x0x7f8bba128dd0) 0 + vptr=((& QGraphicsSceneResizeEvent::_ZTV25QGraphicsSceneResizeEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba128e38) 0 + primary-for QGraphicsSceneResizeEvent (0x0x7f8bba128dd0) + QEvent (0x0x7f8bb4f222a0) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba128e38) + +Vtable for QGraphicsSceneMoveEvent +QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QGraphicsSceneMoveEvent) +16 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent +24 (int (*)(...))QGraphicsSceneMoveEvent::~QGraphicsSceneMoveEvent + +Class QGraphicsSceneMoveEvent + size=32 align=8 + base size=32 base align=8 +QGraphicsSceneMoveEvent (0x0x7f8bba13c000) 0 + vptr=((& QGraphicsSceneMoveEvent::_ZTV23QGraphicsSceneMoveEvent) + 16) + QGraphicsSceneEvent (0x0x7f8bba13c208) 0 + primary-for QGraphicsSceneMoveEvent (0x0x7f8bba13c000) + QEvent (0x0x7f8bb4f22ae0) 0 + primary-for QGraphicsSceneEvent (0x0x7f8bba13c208) + +Class QGraphicsTransform::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsTransform::QPrivateSignal (0x0x7f8bb4f421e0) 0 empty + +Vtable for QGraphicsTransform +QGraphicsTransform::_ZTV18QGraphicsTransform: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QGraphicsTransform) +16 (int (*)(...))QGraphicsTransform::metaObject +24 (int (*)(...))QGraphicsTransform::qt_metacast +32 (int (*)(...))QGraphicsTransform::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QGraphicsTransform + size=16 align=8 + base size=16 base align=8 +QGraphicsTransform (0x0x7f8bba13c478) 0 + vptr=((& QGraphicsTransform::_ZTV18QGraphicsTransform) + 16) + QObject (0x0x7f8bb4f22d20) 0 + primary-for QGraphicsTransform (0x0x7f8bba13c478) + +Class QGraphicsScale::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsScale::QPrivateSignal (0x0x7f8bb4f42960) 0 empty + +Vtable for QGraphicsScale +QGraphicsScale::_ZTV14QGraphicsScale: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QGraphicsScale) +16 (int (*)(...))QGraphicsScale::metaObject +24 (int (*)(...))QGraphicsScale::qt_metacast +32 (int (*)(...))QGraphicsScale::qt_metacall +40 (int (*)(...))QGraphicsScale::~QGraphicsScale +48 (int (*)(...))QGraphicsScale::~QGraphicsScale +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsScale::applyTo + +Class QGraphicsScale + size=16 align=8 + base size=16 base align=8 +QGraphicsScale (0x0x7f8bba13c888) 0 + vptr=((& QGraphicsScale::_ZTV14QGraphicsScale) + 16) + QGraphicsTransform (0x0x7f8bba13c8f0) 0 + primary-for QGraphicsScale (0x0x7f8bba13c888) + QObject (0x0x7f8bb4f428a0) 0 + primary-for QGraphicsTransform (0x0x7f8bba13c8f0) + +Class QGraphicsRotation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsRotation::QPrivateSignal (0x0x7f8bb4f5fc00) 0 empty + +Vtable for QGraphicsRotation +QGraphicsRotation::_ZTV17QGraphicsRotation: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QGraphicsRotation) +16 (int (*)(...))QGraphicsRotation::metaObject +24 (int (*)(...))QGraphicsRotation::qt_metacast +32 (int (*)(...))QGraphicsRotation::qt_metacall +40 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +48 (int (*)(...))QGraphicsRotation::~QGraphicsRotation +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QGraphicsRotation::applyTo + +Class QGraphicsRotation + size=16 align=8 + base size=16 base align=8 +QGraphicsRotation (0x0x7f8bba13cc30) 0 + vptr=((& QGraphicsRotation::_ZTV17QGraphicsRotation) + 16) + QGraphicsTransform (0x0x7f8bba13cc98) 0 + primary-for QGraphicsRotation (0x0x7f8bba13cc30) + QObject (0x0x7f8bb4f5f960) 0 + primary-for QGraphicsTransform (0x0x7f8bba13cc98) + +Class QScrollArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollArea::QPrivateSignal (0x0x7f8bb4f7c900) 0 empty + +Vtable for QScrollArea +QScrollArea::_ZTV11QScrollArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QScrollArea) +16 (int (*)(...))QScrollArea::metaObject +24 (int (*)(...))QScrollArea::qt_metacast +32 (int (*)(...))QScrollArea::qt_metacall +40 (int (*)(...))QScrollArea::~QScrollArea +48 (int (*)(...))QScrollArea::~QScrollArea +56 (int (*)(...))QScrollArea::event +64 (int (*)(...))QScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractScrollArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QScrollArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QScrollArea::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QScrollArea::scrollContentsBy +456 (int (*)(...))QScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI11QScrollArea) +480 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD1Ev +488 (int (*)(...))QScrollArea::_ZThn16_N11QScrollAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollArea + size=48 align=8 + base size=48 base align=8 +QScrollArea (0x0x7f8bba1663a8) 0 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 16) + QAbstractScrollArea (0x0x7f8bba166410) 0 + primary-for QScrollArea (0x0x7f8bba1663a8) + QFrame (0x0x7f8bba1668f0) 0 + primary-for QAbstractScrollArea (0x0x7f8bba166410) + QWidget (0x0x7f8bbe1c27e0) 0 + primary-for QFrame (0x0x7f8bba1668f0) + QObject (0x0x7f8bb4f7c3c0) 0 + primary-for QWidget (0x0x7f8bbe1c27e0) + QPaintDevice (0x0x7f8bb4f7c480) 16 + vptr=((& QScrollArea::_ZTV11QScrollArea) + 480) + +Class QGraphicsView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGraphicsView::QPrivateSignal (0x0x7f8bb4f97f00) 0 empty + +Vtable for QGraphicsView +QGraphicsView::_ZTV13QGraphicsView: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QGraphicsView) +16 (int (*)(...))QGraphicsView::metaObject +24 (int (*)(...))QGraphicsView::qt_metacast +32 (int (*)(...))QGraphicsView::qt_metacall +40 (int (*)(...))QGraphicsView::~QGraphicsView +48 (int (*)(...))QGraphicsView::~QGraphicsView +56 (int (*)(...))QGraphicsView::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QGraphicsView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGraphicsView::mousePressEvent +176 (int (*)(...))QGraphicsView::mouseReleaseEvent +184 (int (*)(...))QGraphicsView::mouseDoubleClickEvent +192 (int (*)(...))QGraphicsView::mouseMoveEvent +200 (int (*)(...))QGraphicsView::wheelEvent +208 (int (*)(...))QGraphicsView::keyPressEvent +216 (int (*)(...))QGraphicsView::keyReleaseEvent +224 (int (*)(...))QGraphicsView::focusInEvent +232 (int (*)(...))QGraphicsView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGraphicsView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGraphicsView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QGraphicsView::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QGraphicsView::dragEnterEvent +320 (int (*)(...))QGraphicsView::dragMoveEvent +328 (int (*)(...))QGraphicsView::dragLeaveEvent +336 (int (*)(...))QGraphicsView::dropEvent +344 (int (*)(...))QGraphicsView::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QGraphicsView::inputMethodEvent +416 (int (*)(...))QGraphicsView::inputMethodQuery +424 (int (*)(...))QGraphicsView::focusNextPrevChild +432 (int (*)(...))QGraphicsView::setupViewport +440 (int (*)(...))QGraphicsView::viewportEvent +448 (int (*)(...))QGraphicsView::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QGraphicsView::drawBackground +472 (int (*)(...))QGraphicsView::drawForeground +480 (int (*)(...))QGraphicsView::drawItems +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI13QGraphicsView) +504 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD1Ev +512 (int (*)(...))QGraphicsView::_ZThn16_N13QGraphicsViewD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGraphicsView + size=48 align=8 + base size=48 base align=8 +QGraphicsView (0x0x7f8bba166958) 0 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 16) + QAbstractScrollArea (0x0x7f8bba166c98) 0 + primary-for QGraphicsView (0x0x7f8bba166958) + QFrame (0x0x7f8bba166d00) 0 + primary-for QAbstractScrollArea (0x0x7f8bba166c98) + QWidget (0x0x7f8bbe1c2930) 0 + primary-for QFrame (0x0x7f8bba166d00) + QObject (0x0x7f8bb4f97de0) 0 + primary-for QWidget (0x0x7f8bbe1c2930) + QPaintDevice (0x0x7f8bb4f97e40) 16 + vptr=((& QGraphicsView::_ZTV13QGraphicsView) + 504) + +Class QGroupBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QGroupBox::QPrivateSignal (0x0x7f8bb4d8cf00) 0 empty + +Vtable for QGroupBox +QGroupBox::_ZTV9QGroupBox: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QGroupBox) +16 (int (*)(...))QGroupBox::metaObject +24 (int (*)(...))QGroupBox::qt_metacast +32 (int (*)(...))QGroupBox::qt_metacall +40 (int (*)(...))QGroupBox::~QGroupBox +48 (int (*)(...))QGroupBox::~QGroupBox +56 (int (*)(...))QGroupBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QGroupBox::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QGroupBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QGroupBox::mousePressEvent +176 (int (*)(...))QGroupBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QGroupBox::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QGroupBox::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QGroupBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QGroupBox::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QGroupBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QGroupBox) +448 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD1Ev +456 (int (*)(...))QGroupBox::_ZThn16_N9QGroupBoxD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QGroupBox + size=48 align=8 + base size=48 base align=8 +QGroupBox (0x0x7f8bb9ee3068) 0 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 16) + QWidget (0x0x7f8bbdf2eaf0) 0 + primary-for QGroupBox (0x0x7f8bb9ee3068) + QObject (0x0x7f8bb4d8c660) 0 + primary-for QWidget (0x0x7f8bbdf2eaf0) + QPaintDevice (0x0x7f8bb4d8c6c0) 16 + vptr=((& QGroupBox::_ZTV9QGroupBox) + 448) + +Class QHeaderView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHeaderView::QPrivateSignal (0x0x7f8bb49f1240) 0 empty + +Vtable for QHeaderView +QHeaderView::_ZTV11QHeaderView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QHeaderView) +16 (int (*)(...))QHeaderView::metaObject +24 (int (*)(...))QHeaderView::qt_metacast +32 (int (*)(...))QHeaderView::qt_metacall +40 (int (*)(...))QHeaderView::~QHeaderView +48 (int (*)(...))QHeaderView::~QHeaderView +56 (int (*)(...))QHeaderView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QAbstractItemView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QHeaderView::setVisible +128 (int (*)(...))QHeaderView::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QHeaderView::mousePressEvent +176 (int (*)(...))QHeaderView::mouseReleaseEvent +184 (int (*)(...))QHeaderView::mouseDoubleClickEvent +192 (int (*)(...))QHeaderView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QHeaderView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QHeaderView::viewportEvent +448 (int (*)(...))QHeaderView::scrollContentsBy +456 (int (*)(...))QAbstractItemView::viewportSizeHint +464 (int (*)(...))QHeaderView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QHeaderView::visualRect +496 (int (*)(...))QHeaderView::scrollTo +504 (int (*)(...))QHeaderView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QHeaderView::reset +536 (int (*)(...))QAbstractItemView::setRootIndex +544 (int (*)(...))QHeaderView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QHeaderView::dataChanged +568 (int (*)(...))QHeaderView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QAbstractItemView::selectionChanged +592 (int (*)(...))QHeaderView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QHeaderView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QHeaderView::moveCursor +688 (int (*)(...))QHeaderView::horizontalOffset +696 (int (*)(...))QHeaderView::verticalOffset +704 (int (*)(...))QHeaderView::isIndexHidden +712 (int (*)(...))QHeaderView::setSelection +720 (int (*)(...))QHeaderView::visualRegionForSelection +728 (int (*)(...))QAbstractItemView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QHeaderView::paintSection +776 (int (*)(...))QHeaderView::sectionSizeFromContents +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI11QHeaderView) +800 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD1Ev +808 (int (*)(...))QHeaderView::_ZThn16_N11QHeaderViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QHeaderView + size=48 align=8 + base size=48 base align=8 +QHeaderView (0x0x7f8bb9ee30d0) 0 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 16) + QAbstractItemView (0x0x7f8bb9eff0d0) 0 + primary-for QHeaderView (0x0x7f8bb9ee30d0) + QAbstractScrollArea (0x0x7f8bb9eff138) 0 + primary-for QAbstractItemView (0x0x7f8bb9eff0d0) + QFrame (0x0x7f8bb9fa8c98) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9eff138) + QWidget (0x0x7f8bbdf2eb60) 0 + primary-for QFrame (0x0x7f8bb9fa8c98) + QObject (0x0x7f8bb49d36c0) 0 + primary-for QWidget (0x0x7f8bbdf2eb60) + QPaintDevice (0x0x7f8bb49f11e0) 16 + vptr=((& QHeaderView::_ZTV11QHeaderView) + 800) + +Class QLineEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLineEdit::QPrivateSignal (0x0x7f8bb46a1ae0) 0 empty + +Vtable for QLineEdit +QLineEdit::_ZTV9QLineEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QLineEdit) +16 (int (*)(...))QLineEdit::metaObject +24 (int (*)(...))QLineEdit::qt_metacast +32 (int (*)(...))QLineEdit::qt_metacall +40 (int (*)(...))QLineEdit::~QLineEdit +48 (int (*)(...))QLineEdit::~QLineEdit +56 (int (*)(...))QLineEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLineEdit::sizeHint +136 (int (*)(...))QLineEdit::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLineEdit::mousePressEvent +176 (int (*)(...))QLineEdit::mouseReleaseEvent +184 (int (*)(...))QLineEdit::mouseDoubleClickEvent +192 (int (*)(...))QLineEdit::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLineEdit::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLineEdit::focusInEvent +232 (int (*)(...))QLineEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLineEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLineEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QLineEdit::dragEnterEvent +320 (int (*)(...))QLineEdit::dragMoveEvent +328 (int (*)(...))QLineEdit::dragLeaveEvent +336 (int (*)(...))QLineEdit::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLineEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QLineEdit::inputMethodEvent +416 (int (*)(...))QLineEdit::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QLineEdit) +448 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD1Ev +456 (int (*)(...))QLineEdit::_ZThn16_N9QLineEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLineEdit + size=48 align=8 + base size=48 base align=8 +QLineEdit (0x0x7f8bb9c9c680) 0 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 16) + QWidget (0x0x7f8bbdbf4380) 0 + primary-for QLineEdit (0x0x7f8bb9c9c680) + QObject (0x0x7f8bb47f5780) 0 + primary-for QWidget (0x0x7f8bbdbf4380) + QPaintDevice (0x0x7f8bb47f57e0) 16 + vptr=((& QLineEdit::_ZTV9QLineEdit) + 448) + +Class QInputDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QInputDialog::QPrivateSignal (0x0x7f8bb46fd480) 0 empty + +Vtable for QInputDialog +QInputDialog::_ZTV12QInputDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QInputDialog) +16 (int (*)(...))QInputDialog::metaObject +24 (int (*)(...))QInputDialog::qt_metacast +32 (int (*)(...))QInputDialog::qt_metacall +40 (int (*)(...))QInputDialog::~QInputDialog +48 (int (*)(...))QInputDialog::~QInputDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QInputDialog::setVisible +128 (int (*)(...))QInputDialog::sizeHint +136 (int (*)(...))QInputDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QDialog::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QInputDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI12QInputDialog) +488 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD1Ev +496 (int (*)(...))QInputDialog::_ZThn16_N12QInputDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QInputDialog + size=48 align=8 + base size=48 base align=8 +QInputDialog (0x0x7f8bb9c9c6e8) 0 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 16) + QDialog (0x0x7f8bb9c9c7b8) 0 + primary-for QInputDialog (0x0x7f8bb9c9c6e8) + QWidget (0x0x7f8bbdbf47e0) 0 + primary-for QDialog (0x0x7f8bb9c9c7b8) + QObject (0x0x7f8bb46fd1e0) 0 + primary-for QWidget (0x0x7f8bbdbf47e0) + QPaintDevice (0x0x7f8bb46fd240) 16 + vptr=((& QInputDialog::_ZTV12QInputDialog) + 488) + +Class QItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemDelegate::QPrivateSignal (0x0x7f8bb477f660) 0 empty + +Vtable for QItemDelegate +QItemDelegate::_ZTV13QItemDelegate: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QItemDelegate) +16 (int (*)(...))QItemDelegate::metaObject +24 (int (*)(...))QItemDelegate::qt_metacast +32 (int (*)(...))QItemDelegate::qt_metacall +40 (int (*)(...))QItemDelegate::~QItemDelegate +48 (int (*)(...))QItemDelegate::~QItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemDelegate::paint +120 (int (*)(...))QItemDelegate::sizeHint +128 (int (*)(...))QItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QItemDelegate::setEditorData +152 (int (*)(...))QItemDelegate::setModelData +160 (int (*)(...))QItemDelegate::updateEditorGeometry +168 (int (*)(...))QItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QItemDelegate::drawDisplay +200 (int (*)(...))QItemDelegate::drawDecoration +208 (int (*)(...))QItemDelegate::drawFocus +216 (int (*)(...))QItemDelegate::drawCheck + +Class QItemDelegate + size=16 align=8 + base size=16 base align=8 +QItemDelegate (0x0x7f8bb9c9cbc8) 0 + vptr=((& QItemDelegate::_ZTV13QItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f8bb9cb1270) 0 + primary-for QItemDelegate (0x0x7f8bb9c9cbc8) + QObject (0x0x7f8bb4756c60) 0 + primary-for QAbstractItemDelegate (0x0x7f8bb9cb1270) + +Vtable for QItemEditorCreatorBase +QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI22QItemEditorCreatorBase) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QItemEditorCreatorBase + size=8 align=8 + base size=8 base align=8 +QItemEditorCreatorBase (0x0x7f8bb47a4180) 0 nearly-empty + vptr=((& QItemEditorCreatorBase::_ZTV22QItemEditorCreatorBase) + 16) + +Vtable for QItemEditorFactory +QItemEditorFactory::_ZTV18QItemEditorFactory: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QItemEditorFactory) +16 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +24 (int (*)(...))QItemEditorFactory::~QItemEditorFactory +32 (int (*)(...))QItemEditorFactory::createEditor +40 (int (*)(...))QItemEditorFactory::valuePropertyName + +Class QItemEditorFactory + size=16 align=8 + base size=16 base align=8 +QItemEditorFactory (0x0x7f8bb47c4840) 0 + vptr=((& QItemEditorFactory::_ZTV18QItemEditorFactory) + 16) + +Class QKeyEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeyEventTransition::QPrivateSignal (0x0x7f8bb43e1f60) 0 empty + +Vtable for QKeyEventTransition +QKeyEventTransition::_ZTV19QKeyEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QKeyEventTransition) +16 (int (*)(...))QKeyEventTransition::metaObject +24 (int (*)(...))QKeyEventTransition::qt_metacast +32 (int (*)(...))QKeyEventTransition::qt_metacall +40 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +48 (int (*)(...))QKeyEventTransition::~QKeyEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QKeyEventTransition::eventTest +120 (int (*)(...))QKeyEventTransition::onTransition + +Class QKeyEventTransition + size=16 align=8 + base size=16 base align=8 +QKeyEventTransition (0x0x7f8bb9cc0a28) 0 + vptr=((& QKeyEventTransition::_ZTV19QKeyEventTransition) + 16) + QEventTransition (0x0x7f8bb9cc0a90) 0 + primary-for QKeyEventTransition (0x0x7f8bb9cc0a28) + QAbstractTransition (0x0x7f8bb9cc0c30) 0 + primary-for QEventTransition (0x0x7f8bb9cc0a90) + QObject (0x0x7f8bb43e1d20) 0 + primary-for QAbstractTransition (0x0x7f8bb9cc0c30) + +Class QKeySequenceEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QKeySequenceEdit::QPrivateSignal (0x0x7f8bb4421120) 0 empty + +Vtable for QKeySequenceEdit +QKeySequenceEdit::_ZTV16QKeySequenceEdit: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QKeySequenceEdit) +16 (int (*)(...))QKeySequenceEdit::metaObject +24 (int (*)(...))QKeySequenceEdit::qt_metacast +32 (int (*)(...))QKeySequenceEdit::qt_metacall +40 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +48 (int (*)(...))QKeySequenceEdit::~QKeySequenceEdit +56 (int (*)(...))QKeySequenceEdit::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QKeySequenceEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QKeySequenceEdit::keyPressEvent +216 (int (*)(...))QKeySequenceEdit::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI16QKeySequenceEdit) +448 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD1Ev +456 (int (*)(...))QKeySequenceEdit::_ZThn16_N16QKeySequenceEditD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QKeySequenceEdit + size=48 align=8 + base size=48 base align=8 +QKeySequenceEdit (0x0x7f8bb9cc0e38) 0 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 16) + QWidget (0x0x7f8bbdd2fee0) 0 + primary-for QKeySequenceEdit (0x0x7f8bb9cc0e38) + QObject (0x0x7f8bb4404e40) 0 + primary-for QWidget (0x0x7f8bbdd2fee0) + QPaintDevice (0x0x7f8bb44210c0) 16 + vptr=((& QKeySequenceEdit::_ZTV16QKeySequenceEdit) + 448) + +Class QLabel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLabel::QPrivateSignal (0x0x7f8bb44adae0) 0 empty + +Vtable for QLabel +QLabel::_ZTV6QLabel: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QLabel) +16 (int (*)(...))QLabel::metaObject +24 (int (*)(...))QLabel::qt_metacast +32 (int (*)(...))QLabel::qt_metacall +40 (int (*)(...))QLabel::~QLabel +48 (int (*)(...))QLabel::~QLabel +56 (int (*)(...))QLabel::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLabel::sizeHint +136 (int (*)(...))QLabel::minimumSizeHint +144 (int (*)(...))QLabel::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QLabel::mousePressEvent +176 (int (*)(...))QLabel::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QLabel::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QLabel::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QLabel::focusInEvent +232 (int (*)(...))QLabel::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLabel::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QLabel::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QLabel::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QLabel::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI6QLabel) +448 (int (*)(...))QLabel::_ZThn16_N6QLabelD1Ev +456 (int (*)(...))QLabel::_ZThn16_N6QLabelD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLabel + size=48 align=8 + base size=48 base align=8 +QLabel (0x0x7f8bb9cc0ea0) 0 + vptr=((& QLabel::_ZTV6QLabel) + 16) + QFrame (0x0x7f8bb9cda068) 0 + primary-for QLabel (0x0x7f8bb9cc0ea0) + QWidget (0x0x7f8bbdd64070) 0 + primary-for QFrame (0x0x7f8bb9cda068) + QObject (0x0x7f8bb44ad2a0) 0 + primary-for QWidget (0x0x7f8bbdd64070) + QPaintDevice (0x0x7f8bb44ad300) 16 + vptr=((& QLabel::_ZTV6QLabel) + 448) + +Class QLCDNumber::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLCDNumber::QPrivateSignal (0x0x7f8bb44ce8a0) 0 empty + +Vtable for QLCDNumber +QLCDNumber::_ZTV10QLCDNumber: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QLCDNumber) +16 (int (*)(...))QLCDNumber::metaObject +24 (int (*)(...))QLCDNumber::qt_metacast +32 (int (*)(...))QLCDNumber::qt_metacall +40 (int (*)(...))QLCDNumber::~QLCDNumber +48 (int (*)(...))QLCDNumber::~QLCDNumber +56 (int (*)(...))QLCDNumber::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QLCDNumber::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QLCDNumber::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QLCDNumber) +448 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD1Ev +456 (int (*)(...))QLCDNumber::_ZThn16_N10QLCDNumberD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QLCDNumber + size=48 align=8 + base size=48 base align=8 +QLCDNumber (0x0x7f8bb9cda0d0) 0 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 16) + QFrame (0x0x7f8bb9cdaf08) 0 + primary-for QLCDNumber (0x0x7f8bb9cda0d0) + QWidget (0x0x7f8bbdd642a0) 0 + primary-for QFrame (0x0x7f8bb9cdaf08) + QObject (0x0x7f8bb44ce420) 0 + primary-for QWidget (0x0x7f8bbdd642a0) + QPaintDevice (0x0x7f8bb44ce840) 16 + vptr=((& QLCDNumber::_ZTV10QLCDNumber) + 448) + +Class QListView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListView::QPrivateSignal (0x0x7f8bb4559960) 0 empty + +Vtable for QListView +QListView::_ZTV9QListView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QListView) +16 (int (*)(...))QListView::metaObject +24 (int (*)(...))QListView::qt_metacast +32 (int (*)(...))QListView::qt_metacall +40 (int (*)(...))QListView::~QListView +48 (int (*)(...))QListView::~QListView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QListView) +784 (int (*)(...))QListView::_ZThn16_N9QListViewD1Ev +792 (int (*)(...))QListView::_ZThn16_N9QListViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListView + size=48 align=8 + base size=48 base align=8 +QListView (0x0x7f8bb9cdaf70) 0 + vptr=((& QListView::_ZTV9QListView) + 16) + QAbstractItemView (0x0x7f8bb9cf4340) 0 + primary-for QListView (0x0x7f8bb9cdaf70) + QAbstractScrollArea (0x0x7f8bb9cf43a8) 0 + primary-for QAbstractItemView (0x0x7f8bb9cf4340) + QFrame (0x0x7f8bb9cf46e8) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9cf43a8) + QWidget (0x0x7f8bbdd64700) 0 + primary-for QFrame (0x0x7f8bb9cf46e8) + QObject (0x0x7f8bb4559120) 0 + primary-for QWidget (0x0x7f8bbdd64700) + QPaintDevice (0x0x7f8bb4559900) 16 + vptr=((& QListView::_ZTV9QListView) + 784) + +Vtable for QListWidgetItem +QListWidgetItem::_ZTV15QListWidgetItem: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QListWidgetItem) +16 (int (*)(...))QListWidgetItem::~QListWidgetItem +24 (int (*)(...))QListWidgetItem::~QListWidgetItem +32 (int (*)(...))QListWidgetItem::clone +40 (int (*)(...))QListWidgetItem::setBackgroundColor +48 (int (*)(...))QListWidgetItem::data +56 (int (*)(...))QListWidgetItem::setData +64 (int (*)(...))QListWidgetItem::operator< +72 (int (*)(...))QListWidgetItem::read +80 (int (*)(...))QListWidgetItem::write + +Class QListWidgetItem + size=48 align=8 + base size=44 base align=8 +QListWidgetItem (0x0x7f8bb45c1000) 0 + vptr=((& QListWidgetItem::_ZTV15QListWidgetItem) + 16) + +Class QListWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QListWidget::QPrivateSignal (0x0x7f8bb3dee7e0) 0 empty + +Vtable for QListWidget +QListWidget::_ZTV11QListWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QListWidget) +16 (int (*)(...))QListWidget::metaObject +24 (int (*)(...))QListWidget::qt_metacast +32 (int (*)(...))QListWidget::qt_metacall +40 (int (*)(...))QListWidget::~QListWidget +48 (int (*)(...))QListWidget::~QListWidget +56 (int (*)(...))QListWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QListWidget::setModel +472 (int (*)(...))QListWidget::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))QListWidget::mimeTypes +776 (int (*)(...))QListWidget::mimeData +784 (int (*)(...))QListWidget::dropMimeData +792 (int (*)(...))QListWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI11QListWidget) +816 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD1Ev +824 (int (*)(...))QListWidget::_ZThn16_N11QListWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QListWidget + size=48 align=8 + base size=48 base align=8 +QListWidget (0x0x7f8bb9cf4e38) 0 + vptr=((& QListWidget::_ZTV11QListWidget) + 16) + QListView (0x0x7f8bb9d0e1a0) 0 + primary-for QListWidget (0x0x7f8bb9cf4e38) + QAbstractItemView (0x0x7f8bb9d0e208) 0 + primary-for QListView (0x0x7f8bb9d0e1a0) + QAbstractScrollArea (0x0x7f8bb9d27208) 0 + primary-for QAbstractItemView (0x0x7f8bb9d0e208) + QFrame (0x0x7f8bb9d27270) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9d27208) + QWidget (0x0x7f8bbd9df230) 0 + primary-for QFrame (0x0x7f8bb9d27270) + QObject (0x0x7f8bb41693c0) 0 + primary-for QWidget (0x0x7f8bbd9df230) + QPaintDevice (0x0x7f8bb3dee780) 16 + vptr=((& QListWidget::_ZTV11QListWidget) + 816) + +Class QMainWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMainWindow::QPrivateSignal (0x0x7f8bb2636c60) 0 empty + +Vtable for QMainWindow +QMainWindow::_ZTV11QMainWindow: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMainWindow) +16 (int (*)(...))QMainWindow::metaObject +24 (int (*)(...))QMainWindow::qt_metacast +32 (int (*)(...))QMainWindow::qt_metacall +40 (int (*)(...))QMainWindow::~QMainWindow +48 (int (*)(...))QMainWindow::~QMainWindow +56 (int (*)(...))QMainWindow::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QMainWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMainWindow::createPopupMenu +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI11QMainWindow) +456 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD1Ev +464 (int (*)(...))QMainWindow::_ZThn16_N11QMainWindowD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMainWindow + size=48 align=8 + base size=48 base align=8 +QMainWindow (0x0x7f8bb9d27618) 0 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 16) + QWidget (0x0x7f8bbd9df690) 0 + primary-for QMainWindow (0x0x7f8bb9d27618) + QObject (0x0x7f8bb3f59ea0) 0 + primary-for QWidget (0x0x7f8bbd9df690) + QPaintDevice (0x0x7f8bb2636c00) 16 + vptr=((& QMainWindow::_ZTV11QMainWindow) + 456) + +Class QMdiArea::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiArea::QPrivateSignal (0x0x7f8bb20b9540) 0 empty + +Vtable for QMdiArea +QMdiArea::_ZTV8QMdiArea: 68 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMdiArea) +16 (int (*)(...))QMdiArea::metaObject +24 (int (*)(...))QMdiArea::qt_metacast +32 (int (*)(...))QMdiArea::qt_metacall +40 (int (*)(...))QMdiArea::~QMdiArea +48 (int (*)(...))QMdiArea::~QMdiArea +56 (int (*)(...))QMdiArea::event +64 (int (*)(...))QMdiArea::eventFilter +72 (int (*)(...))QMdiArea::timerEvent +80 (int (*)(...))QMdiArea::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiArea::sizeHint +136 (int (*)(...))QMdiArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractScrollArea::mousePressEvent +176 (int (*)(...))QAbstractScrollArea::mouseReleaseEvent +184 (int (*)(...))QAbstractScrollArea::mouseDoubleClickEvent +192 (int (*)(...))QAbstractScrollArea::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractScrollArea::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QMdiArea::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMdiArea::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractScrollArea::dragEnterEvent +320 (int (*)(...))QAbstractScrollArea::dragMoveEvent +328 (int (*)(...))QAbstractScrollArea::dragLeaveEvent +336 (int (*)(...))QAbstractScrollArea::dropEvent +344 (int (*)(...))QMdiArea::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QMdiArea::setupViewport +440 (int (*)(...))QMdiArea::viewportEvent +448 (int (*)(...))QMdiArea::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))-16 +472 (int (*)(...))(& _ZTI8QMdiArea) +480 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD1Ev +488 (int (*)(...))QMdiArea::_ZThn16_N8QMdiAreaD0Ev +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiArea + size=48 align=8 + base size=48 base align=8 +QMdiArea (0x0x7f8bb9d63000) 0 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 16) + QAbstractScrollArea (0x0x7f8bb9d631a0) 0 + primary-for QMdiArea (0x0x7f8bb9d63000) + QFrame (0x0x7f8bb9d63340) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9d631a0) + QWidget (0x0x7f8bbdaa92a0) 0 + primary-for QFrame (0x0x7f8bb9d63340) + QObject (0x0x7f8bb2098960) 0 + primary-for QWidget (0x0x7f8bbdaa92a0) + QPaintDevice (0x0x7f8bb20b94e0) 16 + vptr=((& QMdiArea::_ZTV8QMdiArea) + 480) + +Class QMdiSubWindow::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMdiSubWindow::QPrivateSignal (0x0x7f8bb1cd7e40) 0 empty + +Vtable for QMdiSubWindow +QMdiSubWindow::_ZTV13QMdiSubWindow: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QMdiSubWindow) +16 (int (*)(...))QMdiSubWindow::metaObject +24 (int (*)(...))QMdiSubWindow::qt_metacast +32 (int (*)(...))QMdiSubWindow::qt_metacall +40 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +48 (int (*)(...))QMdiSubWindow::~QMdiSubWindow +56 (int (*)(...))QMdiSubWindow::event +64 (int (*)(...))QMdiSubWindow::eventFilter +72 (int (*)(...))QMdiSubWindow::timerEvent +80 (int (*)(...))QMdiSubWindow::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMdiSubWindow::sizeHint +136 (int (*)(...))QMdiSubWindow::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMdiSubWindow::mousePressEvent +176 (int (*)(...))QMdiSubWindow::mouseReleaseEvent +184 (int (*)(...))QMdiSubWindow::mouseDoubleClickEvent +192 (int (*)(...))QMdiSubWindow::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMdiSubWindow::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMdiSubWindow::focusInEvent +232 (int (*)(...))QMdiSubWindow::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMdiSubWindow::leaveEvent +256 (int (*)(...))QMdiSubWindow::paintEvent +264 (int (*)(...))QMdiSubWindow::moveEvent +272 (int (*)(...))QMdiSubWindow::resizeEvent +280 (int (*)(...))QMdiSubWindow::closeEvent +288 (int (*)(...))QMdiSubWindow::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMdiSubWindow::showEvent +352 (int (*)(...))QMdiSubWindow::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMdiSubWindow::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI13QMdiSubWindow) +448 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD1Ev +456 (int (*)(...))QMdiSubWindow::_ZThn16_N13QMdiSubWindowD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMdiSubWindow + size=48 align=8 + base size=48 base align=8 +QMdiSubWindow (0x0x7f8bb9d63750) 0 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 16) + QWidget (0x0x7f8bbdb0c850) 0 + primary-for QMdiSubWindow (0x0x7f8bb9d63750) + QObject (0x0x7f8bb1cd7660) 0 + primary-for QWidget (0x0x7f8bbdb0c850) + QPaintDevice (0x0x7f8bb1cd7de0) 16 + vptr=((& QMdiSubWindow::_ZTV13QMdiSubWindow) + 448) + +Class QMenu::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenu::QPrivateSignal (0x0x7f8bb1db6b40) 0 empty + +Vtable for QMenu +QMenu::_ZTV5QMenu: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QMenu) +16 (int (*)(...))QMenu::metaObject +24 (int (*)(...))QMenu::qt_metacast +32 (int (*)(...))QMenu::qt_metacall +40 (int (*)(...))QMenu::~QMenu +48 (int (*)(...))QMenu::~QMenu +56 (int (*)(...))QMenu::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QMenu::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QMenu::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenu::mousePressEvent +176 (int (*)(...))QMenu::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenu::mouseMoveEvent +200 (int (*)(...))QMenu::wheelEvent +208 (int (*)(...))QMenu::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QMenu::enterEvent +248 (int (*)(...))QMenu::leaveEvent +256 (int (*)(...))QMenu::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenu::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QMenu::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenu::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QMenu::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI5QMenu) +448 (int (*)(...))QMenu::_ZThn16_N5QMenuD1Ev +456 (int (*)(...))QMenu::_ZThn16_N5QMenuD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenu + size=48 align=8 + base size=48 base align=8 +QMenu (0x0x7f8bb9d638f0) 0 + vptr=((& QMenu::_ZTV5QMenu) + 16) + QWidget (0x0x7f8bbdb9ca80) 0 + primary-for QMenu (0x0x7f8bb9d638f0) + QObject (0x0x7f8bb1db6120) 0 + primary-for QWidget (0x0x7f8bbdb9ca80) + QPaintDevice (0x0x7f8bb1db61e0) 16 + vptr=((& QMenu::_ZTV5QMenu) + 448) + +Class QMenuBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMenuBar::QPrivateSignal (0x0x7f8bb1b4d000) 0 empty + +Vtable for QMenuBar +QMenuBar::_ZTV8QMenuBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QMenuBar) +16 (int (*)(...))QMenuBar::metaObject +24 (int (*)(...))QMenuBar::qt_metacast +32 (int (*)(...))QMenuBar::qt_metacall +40 (int (*)(...))QMenuBar::~QMenuBar +48 (int (*)(...))QMenuBar::~QMenuBar +56 (int (*)(...))QMenuBar::event +64 (int (*)(...))QMenuBar::eventFilter +72 (int (*)(...))QMenuBar::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QMenuBar::setVisible +128 (int (*)(...))QMenuBar::sizeHint +136 (int (*)(...))QMenuBar::minimumSizeHint +144 (int (*)(...))QMenuBar::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QMenuBar::mousePressEvent +176 (int (*)(...))QMenuBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QMenuBar::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMenuBar::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QMenuBar::focusInEvent +232 (int (*)(...))QMenuBar::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QMenuBar::leaveEvent +256 (int (*)(...))QMenuBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMenuBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QMenuBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMenuBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QMenuBar) +448 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD1Ev +456 (int (*)(...))QMenuBar::_ZThn16_N8QMenuBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMenuBar + size=48 align=8 + base size=48 base align=8 +QMenuBar (0x0x7f8bb9d7a000) 0 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 16) + QWidget (0x0x7f8bbd663000) 0 + primary-for QMenuBar (0x0x7f8bb9d7a000) + QObject (0x0x7f8bb1b2f9c0) 0 + primary-for QWidget (0x0x7f8bbd663000) + QPaintDevice (0x0x7f8bb1b2fa20) 16 + vptr=((& QMenuBar::_ZTV8QMenuBar) + 448) + +Class QMessageBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMessageBox::QPrivateSignal (0x0x7f8bb17e3360) 0 empty + +Vtable for QMessageBox +QMessageBox::_ZTV11QMessageBox: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QMessageBox) +16 (int (*)(...))QMessageBox::metaObject +24 (int (*)(...))QMessageBox::qt_metacast +32 (int (*)(...))QMessageBox::qt_metacall +40 (int (*)(...))QMessageBox::~QMessageBox +48 (int (*)(...))QMessageBox::~QMessageBox +56 (int (*)(...))QMessageBox::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QMessageBox::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QMessageBox::resizeEvent +280 (int (*)(...))QMessageBox::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QMessageBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QMessageBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QMessageBox) +488 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD1Ev +496 (int (*)(...))QMessageBox::_ZThn16_N11QMessageBoxD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QMessageBox + size=48 align=8 + base size=48 base align=8 +QMessageBox (0x0x7f8bb9d7a068) 0 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 16) + QDialog (0x0x7f8bb9d7a208) 0 + primary-for QMessageBox (0x0x7f8bb9d7a068) + QWidget (0x0x7f8bbd663150) 0 + primary-for QDialog (0x0x7f8bb9d7a208) + QObject (0x0x7f8bb17e3000) 0 + primary-for QWidget (0x0x7f8bbd663150) + QPaintDevice (0x0x7f8bb17e3060) 16 + vptr=((& QMessageBox::_ZTV11QMessageBox) + 488) + +Class QMouseEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMouseEventTransition::QPrivateSignal (0x0x7f8bb1890840) 0 empty + +Vtable for QMouseEventTransition +QMouseEventTransition::_ZTV21QMouseEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QMouseEventTransition) +16 (int (*)(...))QMouseEventTransition::metaObject +24 (int (*)(...))QMouseEventTransition::qt_metacast +32 (int (*)(...))QMouseEventTransition::qt_metacall +40 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +48 (int (*)(...))QMouseEventTransition::~QMouseEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMouseEventTransition::eventTest +120 (int (*)(...))QMouseEventTransition::onTransition + +Class QMouseEventTransition + size=16 align=8 + base size=16 base align=8 +QMouseEventTransition (0x0x7f8bb9d7aa90) 0 + vptr=((& QMouseEventTransition::_ZTV21QMouseEventTransition) + 16) + QEventTransition (0x0x7f8bb9d7aaf8) 0 + primary-for QMouseEventTransition (0x0x7f8bb9d7aa90) + QAbstractTransition (0x0x7f8bb9d7ae38) 0 + primary-for QEventTransition (0x0x7f8bb9d7aaf8) + QObject (0x0x7f8bb18907e0) 0 + primary-for QAbstractTransition (0x0x7f8bb9d7ae38) + +Class QOpenGLWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QOpenGLWidget::QPrivateSignal (0x0x7f8bb1890ae0) 0 empty + +Vtable for QOpenGLWidget +QOpenGLWidget::_ZTV13QOpenGLWidget: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QOpenGLWidget) +16 (int (*)(...))QOpenGLWidget::metaObject +24 (int (*)(...))QOpenGLWidget::qt_metacast +32 (int (*)(...))QOpenGLWidget::qt_metacall +40 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +48 (int (*)(...))QOpenGLWidget::~QOpenGLWidget +56 (int (*)(...))QOpenGLWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QOpenGLWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QOpenGLWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QOpenGLWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QOpenGLWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QOpenGLWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QOpenGLWidget::initializeGL +440 (int (*)(...))QOpenGLWidget::resizeGL +448 (int (*)(...))QOpenGLWidget::paintGL +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI13QOpenGLWidget) +472 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD1Ev +480 (int (*)(...))QOpenGLWidget::_ZThn16_N13QOpenGLWidgetD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget11paintEngineEv +504 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QOpenGLWidget::_ZThn16_NK13QOpenGLWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QOpenGLWidget + size=48 align=8 + base size=48 base align=8 +QOpenGLWidget (0x0x7f8bb9d7aea0) 0 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 16) + QWidget (0x0x7f8bbd729ee0) 0 + primary-for QOpenGLWidget (0x0x7f8bb9d7aea0) + QObject (0x0x7f8bb1890a20) 0 + primary-for QWidget (0x0x7f8bbd729ee0) + QPaintDevice (0x0x7f8bb1890a80) 16 + vptr=((& QOpenGLWidget::_ZTV13QOpenGLWidget) + 472) + +Class QTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextEdit::QPrivateSignal (0x0x7f8bb1890d80) 0 empty + +Class QTextEdit::ExtraSelection + size=24 align=8 + base size=24 base align=8 +QTextEdit::ExtraSelection (0x0x7f8bb1890de0) 0 + +Vtable for QTextEdit +QTextEdit::_ZTV9QTextEdit: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTextEdit) +16 (int (*)(...))QTextEdit::metaObject +24 (int (*)(...))QTextEdit::qt_metacast +32 (int (*)(...))QTextEdit::qt_metacall +40 (int (*)(...))QTextEdit::~QTextEdit +48 (int (*)(...))QTextEdit::~QTextEdit +56 (int (*)(...))QTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextEdit::mousePressEvent +176 (int (*)(...))QTextEdit::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextEdit::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextEdit::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextEdit::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI9QTextEdit) +520 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD1Ev +528 (int (*)(...))QTextEdit::_ZThn16_N9QTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextEdit + size=48 align=8 + base size=48 base align=8 +QTextEdit (0x0x7f8bb9d8d270) 0 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 16) + QAbstractScrollArea (0x0x7f8bb9b2cf08) 0 + primary-for QTextEdit (0x0x7f8bb9d8d270) + QFrame (0x0x7f8bb9b2cf70) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9b2cf08) + QWidget (0x0x7f8bbd75d1c0) 0 + primary-for QFrame (0x0x7f8bb9b2cf70) + QObject (0x0x7f8bb1890cc0) 0 + primary-for QWidget (0x0x7f8bbd75d1c0) + QPaintDevice (0x0x7f8bb1890d20) 16 + vptr=((& QTextEdit::_ZTV9QTextEdit) + 520) + +Class QPlainTextEdit::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextEdit::QPrivateSignal (0x0x7f8bba861960) 0 empty + +Vtable for QPlainTextEdit +QPlainTextEdit::_ZTV14QPlainTextEdit: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QPlainTextEdit) +16 (int (*)(...))QPlainTextEdit::metaObject +24 (int (*)(...))QPlainTextEdit::qt_metacast +32 (int (*)(...))QPlainTextEdit::qt_metacall +40 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +48 (int (*)(...))QPlainTextEdit::~QPlainTextEdit +56 (int (*)(...))QPlainTextEdit::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QPlainTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QPlainTextEdit::mousePressEvent +176 (int (*)(...))QPlainTextEdit::mouseReleaseEvent +184 (int (*)(...))QPlainTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QPlainTextEdit::mouseMoveEvent +200 (int (*)(...))QPlainTextEdit::wheelEvent +208 (int (*)(...))QPlainTextEdit::keyPressEvent +216 (int (*)(...))QPlainTextEdit::keyReleaseEvent +224 (int (*)(...))QPlainTextEdit::focusInEvent +232 (int (*)(...))QPlainTextEdit::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QPlainTextEdit::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QPlainTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QPlainTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QPlainTextEdit::dragEnterEvent +320 (int (*)(...))QPlainTextEdit::dragMoveEvent +328 (int (*)(...))QPlainTextEdit::dragLeaveEvent +336 (int (*)(...))QPlainTextEdit::dropEvent +344 (int (*)(...))QPlainTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QPlainTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QPlainTextEdit::inputMethodEvent +416 (int (*)(...))QPlainTextEdit::inputMethodQuery +424 (int (*)(...))QPlainTextEdit::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QPlainTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QPlainTextEdit::loadResource +472 (int (*)(...))QPlainTextEdit::createMimeDataFromSelection +480 (int (*)(...))QPlainTextEdit::canInsertFromMimeData +488 (int (*)(...))QPlainTextEdit::insertFromMimeData +496 (int (*)(...))QPlainTextEdit::doSetTextCursor +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI14QPlainTextEdit) +520 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD1Ev +528 (int (*)(...))QPlainTextEdit::_ZThn16_N14QPlainTextEditD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QPlainTextEdit + size=48 align=8 + base size=48 base align=8 +QPlainTextEdit (0x0x7f8bb9b685b0) 0 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 16) + QAbstractScrollArea (0x0x7f8bb9b68618) 0 + primary-for QPlainTextEdit (0x0x7f8bb9b685b0) + QFrame (0x0x7f8bb9b92958) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9b68618) + QWidget (0x0x7f8bbd785000) 0 + primary-for QFrame (0x0x7f8bb9b92958) + QObject (0x0x7f8bba8618a0) 0 + primary-for QWidget (0x0x7f8bbd785000) + QPaintDevice (0x0x7f8bba861900) 16 + vptr=((& QPlainTextEdit::_ZTV14QPlainTextEdit) + 520) + +Class QPlainTextDocumentLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPlainTextDocumentLayout::QPrivateSignal (0x0x7f8bba861f00) 0 empty + +Vtable for QPlainTextDocumentLayout +QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QPlainTextDocumentLayout) +16 (int (*)(...))QPlainTextDocumentLayout::metaObject +24 (int (*)(...))QPlainTextDocumentLayout::qt_metacast +32 (int (*)(...))QPlainTextDocumentLayout::qt_metacall +40 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +48 (int (*)(...))QPlainTextDocumentLayout::~QPlainTextDocumentLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPlainTextDocumentLayout::draw +120 (int (*)(...))QPlainTextDocumentLayout::hitTest +128 (int (*)(...))QPlainTextDocumentLayout::pageCount +136 (int (*)(...))QPlainTextDocumentLayout::documentSize +144 (int (*)(...))QPlainTextDocumentLayout::frameBoundingRect +152 (int (*)(...))QPlainTextDocumentLayout::blockBoundingRect +160 (int (*)(...))QPlainTextDocumentLayout::documentChanged +168 (int (*)(...))QAbstractTextDocumentLayout::resizeInlineObject +176 (int (*)(...))QAbstractTextDocumentLayout::positionInlineObject +184 (int (*)(...))QAbstractTextDocumentLayout::drawInlineObject + +Class QPlainTextDocumentLayout + size=16 align=8 + base size=16 base align=8 +QPlainTextDocumentLayout (0x0x7f8bb9b929c0) 0 + vptr=((& QPlainTextDocumentLayout::_ZTV24QPlainTextDocumentLayout) + 16) + QAbstractTextDocumentLayout (0x0x7f8bb9b92d00) 0 + primary-for QPlainTextDocumentLayout (0x0x7f8bb9b929c0) + QObject (0x0x7f8bba861ea0) 0 + primary-for QAbstractTextDocumentLayout (0x0x7f8bb9b92d00) + +Class QProgressBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressBar::QPrivateSignal (0x0x7f8bb96741e0) 0 empty + +Vtable for QProgressBar +QProgressBar::_ZTV12QProgressBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QProgressBar) +16 (int (*)(...))QProgressBar::metaObject +24 (int (*)(...))QProgressBar::qt_metacast +32 (int (*)(...))QProgressBar::qt_metacall +40 (int (*)(...))QProgressBar::~QProgressBar +48 (int (*)(...))QProgressBar::~QProgressBar +56 (int (*)(...))QProgressBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QProgressBar::sizeHint +136 (int (*)(...))QProgressBar::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QProgressBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QProgressBar::text +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI12QProgressBar) +456 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD1Ev +464 (int (*)(...))QProgressBar::_ZThn16_N12QProgressBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressBar + size=48 align=8 + base size=48 base align=8 +QProgressBar (0x0x7f8bb9b92d68) 0 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 16) + QWidget (0x0x7f8bbd785310) 0 + primary-for QProgressBar (0x0x7f8bb9b92d68) + QObject (0x0x7f8bb9674120) 0 + primary-for QWidget (0x0x7f8bbd785310) + QPaintDevice (0x0x7f8bb9674180) 16 + vptr=((& QProgressBar::_ZTV12QProgressBar) + 456) + +Class QProgressDialog::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProgressDialog::QPrivateSignal (0x0x7f8bb9674540) 0 empty + +Vtable for QProgressDialog +QProgressDialog::_ZTV15QProgressDialog: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QProgressDialog) +16 (int (*)(...))QProgressDialog::metaObject +24 (int (*)(...))QProgressDialog::qt_metacast +32 (int (*)(...))QProgressDialog::qt_metacall +40 (int (*)(...))QProgressDialog::~QProgressDialog +48 (int (*)(...))QProgressDialog::~QProgressDialog +56 (int (*)(...))QWidget::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QDialog::setVisible +128 (int (*)(...))QProgressDialog::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QProgressDialog::resizeEvent +280 (int (*)(...))QProgressDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QProgressDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QProgressDialog::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QDialog::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI15QProgressDialog) +488 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD1Ev +496 (int (*)(...))QProgressDialog::_ZThn16_N15QProgressDialogD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QProgressDialog + size=48 align=8 + base size=48 base align=8 +QProgressDialog (0x0x7f8bb9baed68) 0 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 16) + QDialog (0x0x7f8bb9baedd0) 0 + primary-for QProgressDialog (0x0x7f8bb9baed68) + QWidget (0x0x7f8bbd785770) 0 + primary-for QDialog (0x0x7f8bb9baedd0) + QObject (0x0x7f8bb9674480) 0 + primary-for QWidget (0x0x7f8bbd785770) + QPaintDevice (0x0x7f8bb96744e0) 16 + vptr=((& QProgressDialog::_ZTV15QProgressDialog) + 488) + +Class QProxyStyle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProxyStyle::QPrivateSignal (0x0x7f8bb9674780) 0 empty + +Vtable for QProxyStyle +QProxyStyle::_ZTV11QProxyStyle: 37 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QProxyStyle) +16 (int (*)(...))QProxyStyle::metaObject +24 (int (*)(...))QProxyStyle::qt_metacast +32 (int (*)(...))QProxyStyle::qt_metacall +40 (int (*)(...))QProxyStyle::~QProxyStyle +48 (int (*)(...))QProxyStyle::~QProxyStyle +56 (int (*)(...))QProxyStyle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProxyStyle::polish +120 (int (*)(...))QProxyStyle::unpolish +128 (int (*)(...))QProxyStyle::polish +136 (int (*)(...))QProxyStyle::unpolish +144 (int (*)(...))QProxyStyle::polish +152 (int (*)(...))QProxyStyle::itemTextRect +160 (int (*)(...))QProxyStyle::itemPixmapRect +168 (int (*)(...))QProxyStyle::drawItemText +176 (int (*)(...))QProxyStyle::drawItemPixmap +184 (int (*)(...))QProxyStyle::standardPalette +192 (int (*)(...))QProxyStyle::drawPrimitive +200 (int (*)(...))QProxyStyle::drawControl +208 (int (*)(...))QProxyStyle::subElementRect +216 (int (*)(...))QProxyStyle::drawComplexControl +224 (int (*)(...))QProxyStyle::hitTestComplexControl +232 (int (*)(...))QProxyStyle::subControlRect +240 (int (*)(...))QProxyStyle::pixelMetric +248 (int (*)(...))QProxyStyle::sizeFromContents +256 (int (*)(...))QProxyStyle::styleHint +264 (int (*)(...))QProxyStyle::standardPixmap +272 (int (*)(...))QProxyStyle::standardIcon +280 (int (*)(...))QProxyStyle::generatedIconPixmap +288 (int (*)(...))QProxyStyle::layoutSpacing + +Class QProxyStyle + size=16 align=8 + base size=16 base align=8 +QProxyStyle (0x0x7f8bb9bc55b0) 0 + vptr=((& QProxyStyle::_ZTV11QProxyStyle) + 16) + QCommonStyle (0x0x7f8bb9bc5618) 0 + primary-for QProxyStyle (0x0x7f8bb9bc55b0) + QStyle (0x0x7f8bb9bc5a90) 0 + primary-for QCommonStyle (0x0x7f8bb9bc5618) + QObject (0x0x7f8bb9674720) 0 + primary-for QStyle (0x0x7f8bb9bc5a90) + +Class QRadioButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QRadioButton::QPrivateSignal (0x0x7f8bb9674a20) 0 empty + +Vtable for QRadioButton +QRadioButton::_ZTV12QRadioButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QRadioButton) +16 (int (*)(...))QRadioButton::metaObject +24 (int (*)(...))QRadioButton::qt_metacast +32 (int (*)(...))QRadioButton::qt_metacall +40 (int (*)(...))QRadioButton::~QRadioButton +48 (int (*)(...))QRadioButton::~QRadioButton +56 (int (*)(...))QRadioButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QRadioButton::sizeHint +136 (int (*)(...))QRadioButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractButton::mousePressEvent +176 (int (*)(...))QAbstractButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QRadioButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QRadioButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QRadioButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QAbstractButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI12QRadioButton) +472 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD1Ev +480 (int (*)(...))QRadioButton::_ZThn16_N12QRadioButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QRadioButton + size=48 align=8 + base size=48 base align=8 +QRadioButton (0x0x7f8bb9bc5af8) 0 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 16) + QAbstractButton (0x0x7f8bb97de548) 0 + primary-for QRadioButton (0x0x7f8bb9bc5af8) + QWidget (0x0x7f8bbd785a80) 0 + primary-for QAbstractButton (0x0x7f8bb97de548) + QObject (0x0x7f8bb9674960) 0 + primary-for QWidget (0x0x7f8bbd785a80) + QPaintDevice (0x0x7f8bb96749c0) 16 + vptr=((& QRadioButton::_ZTV12QRadioButton) + 472) + +Class QScrollBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScrollBar::QPrivateSignal (0x0x7f8bb9674cc0) 0 empty + +Vtable for QScrollBar +QScrollBar::_ZTV10QScrollBar: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QScrollBar) +16 (int (*)(...))QScrollBar::metaObject +24 (int (*)(...))QScrollBar::qt_metacast +32 (int (*)(...))QScrollBar::qt_metacall +40 (int (*)(...))QScrollBar::~QScrollBar +48 (int (*)(...))QScrollBar::~QScrollBar +56 (int (*)(...))QScrollBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSlider::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QScrollBar::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QScrollBar::mousePressEvent +176 (int (*)(...))QScrollBar::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QScrollBar::mouseMoveEvent +200 (int (*)(...))QScrollBar::wheelEvent +208 (int (*)(...))QAbstractSlider::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QScrollBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QScrollBar::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QScrollBar::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSlider::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QScrollBar::sliderChange +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI10QScrollBar) +456 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD1Ev +464 (int (*)(...))QScrollBar::_ZThn16_N10QScrollBarD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QScrollBar + size=48 align=8 + base size=48 base align=8 +QScrollBar (0x0x7f8bb97de5b0) 0 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 16) + QAbstractSlider (0x0x7f8bb97dec30) 0 + primary-for QScrollBar (0x0x7f8bb97de5b0) + QWidget (0x0x7f8bbd785bd0) 0 + primary-for QAbstractSlider (0x0x7f8bb97dec30) + QObject (0x0x7f8bb9674c00) 0 + primary-for QWidget (0x0x7f8bbd785bd0) + QPaintDevice (0x0x7f8bb9674c60) 16 + vptr=((& QScrollBar::_ZTV10QScrollBar) + 456) + +Vtable for QScrollerProperties +QScrollerProperties::_ZTV19QScrollerProperties: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QScrollerProperties) +16 (int (*)(...))QScrollerProperties::~QScrollerProperties +24 (int (*)(...))QScrollerProperties::~QScrollerProperties + +Class QScrollerProperties + size=16 align=8 + base size=16 base align=8 +QScrollerProperties (0x0x7f8bb9674ea0) 0 + vptr=((& QScrollerProperties::_ZTV19QScrollerProperties) + 16) + +Class QScroller::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QScroller::QPrivateSignal (0x0x7f8bb724f3c0) 0 empty + +Vtable for QScroller +QScroller::_ZTV9QScroller: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QScroller) +16 (int (*)(...))QScroller::metaObject +24 (int (*)(...))QScroller::qt_metacast +32 (int (*)(...))QScroller::qt_metacall +40 (int (*)(...))QScroller::~QScroller +48 (int (*)(...))QScroller::~QScroller +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QScroller + size=24 align=8 + base size=24 base align=8 +QScroller (0x0x7f8bb97dec98) 0 + vptr=((& QScroller::_ZTV9QScroller) + 16) + QObject (0x0x7f8bb724f360) 0 + primary-for QScroller (0x0x7f8bb97dec98) + +Class QShortcut::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QShortcut::QPrivateSignal (0x0x7f8bb724f6c0) 0 empty + +Vtable for QShortcut +QShortcut::_ZTV9QShortcut: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QShortcut) +16 (int (*)(...))QShortcut::metaObject +24 (int (*)(...))QShortcut::qt_metacast +32 (int (*)(...))QShortcut::qt_metacall +40 (int (*)(...))QShortcut::~QShortcut +48 (int (*)(...))QShortcut::~QShortcut +56 (int (*)(...))QShortcut::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QShortcut + size=16 align=8 + base size=16 base align=8 +QShortcut (0x0x7f8bb981c6e8) 0 + vptr=((& QShortcut::_ZTV9QShortcut) + 16) + QObject (0x0x7f8bb724f660) 0 + primary-for QShortcut (0x0x7f8bb981c6e8) + +Class QSizeGrip::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSizeGrip::QPrivateSignal (0x0x7f8bb724f9c0) 0 empty + +Vtable for QSizeGrip +QSizeGrip::_ZTV9QSizeGrip: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSizeGrip) +16 (int (*)(...))QSizeGrip::metaObject +24 (int (*)(...))QSizeGrip::qt_metacast +32 (int (*)(...))QSizeGrip::qt_metacall +40 (int (*)(...))QSizeGrip::~QSizeGrip +48 (int (*)(...))QSizeGrip::~QSizeGrip +56 (int (*)(...))QSizeGrip::event +64 (int (*)(...))QSizeGrip::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QSizeGrip::setVisible +128 (int (*)(...))QSizeGrip::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSizeGrip::mousePressEvent +176 (int (*)(...))QSizeGrip::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSizeGrip::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSizeGrip::paintEvent +264 (int (*)(...))QSizeGrip::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QSizeGrip::showEvent +352 (int (*)(...))QSizeGrip::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI9QSizeGrip) +448 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD1Ev +456 (int (*)(...))QSizeGrip::_ZThn16_N9QSizeGripD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSizeGrip + size=48 align=8 + base size=48 base align=8 +QSizeGrip (0x0x7f8bb981c750) 0 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 16) + QWidget (0x0x7f8bbd561c40) 0 + primary-for QSizeGrip (0x0x7f8bb981c750) + QObject (0x0x7f8bb724f900) 0 + primary-for QWidget (0x0x7f8bbd561c40) + QPaintDevice (0x0x7f8bb724f960) 16 + vptr=((& QSizeGrip::_ZTV9QSizeGrip) + 448) + +Class QSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSpinBox::QPrivateSignal (0x0x7f8bb724fc60) 0 empty + +Vtable for QSpinBox +QSpinBox::_ZTV8QSpinBox: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QSpinBox) +16 (int (*)(...))QSpinBox::metaObject +24 (int (*)(...))QSpinBox::qt_metacast +32 (int (*)(...))QSpinBox::qt_metacall +40 (int (*)(...))QSpinBox::~QSpinBox +48 (int (*)(...))QSpinBox::~QSpinBox +56 (int (*)(...))QSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSpinBox::validate +440 (int (*)(...))QSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QSpinBox::valueFromText +480 (int (*)(...))QSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI8QSpinBox) +504 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD1Ev +512 (int (*)(...))QSpinBox::_ZThn16_N8QSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSpinBox + size=48 align=8 + base size=48 base align=8 +QSpinBox (0x0x7f8bb981ca90) 0 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 16) + QAbstractSpinBox (0x0x7f8bb981caf8) 0 + primary-for QSpinBox (0x0x7f8bb981ca90) + QWidget (0x0x7f8bbd561d90) 0 + primary-for QAbstractSpinBox (0x0x7f8bb981caf8) + QObject (0x0x7f8bb724fba0) 0 + primary-for QWidget (0x0x7f8bbd561d90) + QPaintDevice (0x0x7f8bb724fc00) 16 + vptr=((& QSpinBox::_ZTV8QSpinBox) + 504) + +Class QDoubleSpinBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QDoubleSpinBox::QPrivateSignal (0x0x7f8bb724ff00) 0 empty + +Vtable for QDoubleSpinBox +QDoubleSpinBox::_ZTV14QDoubleSpinBox: 71 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QDoubleSpinBox) +16 (int (*)(...))QDoubleSpinBox::metaObject +24 (int (*)(...))QDoubleSpinBox::qt_metacast +32 (int (*)(...))QDoubleSpinBox::qt_metacall +40 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +48 (int (*)(...))QDoubleSpinBox::~QDoubleSpinBox +56 (int (*)(...))QAbstractSpinBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QAbstractSpinBox::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractSpinBox::sizeHint +136 (int (*)(...))QAbstractSpinBox::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractSpinBox::mousePressEvent +176 (int (*)(...))QAbstractSpinBox::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractSpinBox::mouseMoveEvent +200 (int (*)(...))QAbstractSpinBox::wheelEvent +208 (int (*)(...))QAbstractSpinBox::keyPressEvent +216 (int (*)(...))QAbstractSpinBox::keyReleaseEvent +224 (int (*)(...))QAbstractSpinBox::focusInEvent +232 (int (*)(...))QAbstractSpinBox::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QAbstractSpinBox::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractSpinBox::resizeEvent +280 (int (*)(...))QAbstractSpinBox::closeEvent +288 (int (*)(...))QAbstractSpinBox::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QAbstractSpinBox::showEvent +352 (int (*)(...))QAbstractSpinBox::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QAbstractSpinBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QAbstractSpinBox::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDoubleSpinBox::validate +440 (int (*)(...))QDoubleSpinBox::fixup +448 (int (*)(...))QAbstractSpinBox::stepBy +456 (int (*)(...))QAbstractSpinBox::clear +464 (int (*)(...))QAbstractSpinBox::stepEnabled +472 (int (*)(...))QDoubleSpinBox::valueFromText +480 (int (*)(...))QDoubleSpinBox::textFromValue +488 (int (*)(...))-16 +496 (int (*)(...))(& _ZTI14QDoubleSpinBox) +504 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD1Ev +512 (int (*)(...))QDoubleSpinBox::_ZThn16_N14QDoubleSpinBoxD0Ev +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QDoubleSpinBox + size=48 align=8 + base size=48 base align=8 +QDoubleSpinBox (0x0x7f8bb98a9af8) 0 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 16) + QAbstractSpinBox (0x0x7f8bb98a9b60) 0 + primary-for QDoubleSpinBox (0x0x7f8bb98a9af8) + QWidget (0x0x7f8bbd561ee0) 0 + primary-for QAbstractSpinBox (0x0x7f8bb98a9b60) + QObject (0x0x7f8bb724fe40) 0 + primary-for QWidget (0x0x7f8bbd561ee0) + QPaintDevice (0x0x7f8bb724fea0) 16 + vptr=((& QDoubleSpinBox::_ZTV14QDoubleSpinBox) + 504) + +Class QSplashScreen::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplashScreen::QPrivateSignal (0x0x7f8bb5a381e0) 0 empty + +Vtable for QSplashScreen +QSplashScreen::_ZTV13QSplashScreen: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSplashScreen) +16 (int (*)(...))QSplashScreen::metaObject +24 (int (*)(...))QSplashScreen::qt_metacast +32 (int (*)(...))QSplashScreen::qt_metacall +40 (int (*)(...))QSplashScreen::~QSplashScreen +48 (int (*)(...))QSplashScreen::~QSplashScreen +56 (int (*)(...))QSplashScreen::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplashScreen::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplashScreen::drawContents +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI13QSplashScreen) +456 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD1Ev +464 (int (*)(...))QSplashScreen::_ZThn16_N13QSplashScreenD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplashScreen + size=48 align=8 + base size=48 base align=8 +QSplashScreen (0x0x7f8bb98a9f08) 0 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 16) + QWidget (0x0x7f8bbd5840e0) 0 + primary-for QSplashScreen (0x0x7f8bb98a9f08) + QObject (0x0x7f8bb5a38120) 0 + primary-for QWidget (0x0x7f8bbd5840e0) + QPaintDevice (0x0x7f8bb5a38180) 16 + vptr=((& QSplashScreen::_ZTV13QSplashScreen) + 456) + +Class QSplitter::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitter::QPrivateSignal (0x0x7f8bb5a38480) 0 empty + +Vtable for QSplitter +QSplitter::_ZTV9QSplitter: 65 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSplitter) +16 (int (*)(...))QSplitter::metaObject +24 (int (*)(...))QSplitter::qt_metacast +32 (int (*)(...))QSplitter::qt_metacall +40 (int (*)(...))QSplitter::~QSplitter +48 (int (*)(...))QSplitter::~QSplitter +56 (int (*)(...))QSplitter::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QSplitter::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitter::sizeHint +136 (int (*)(...))QSplitter::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitter::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QSplitter::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QSplitter::createHandle +440 (int (*)(...))-16 +448 (int (*)(...))(& _ZTI9QSplitter) +456 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD1Ev +464 (int (*)(...))QSplitter::_ZThn16_N9QSplitterD0Ev +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitter + size=48 align=8 + base size=48 base align=8 +QSplitter (0x0x7f8bb98a9f70) 0 + vptr=((& QSplitter::_ZTV9QSplitter) + 16) + QFrame (0x0x7f8bb996e1a0) 0 + primary-for QSplitter (0x0x7f8bb98a9f70) + QWidget (0x0x7f8bbd584460) 0 + primary-for QFrame (0x0x7f8bb996e1a0) + QObject (0x0x7f8bb5a383c0) 0 + primary-for QWidget (0x0x7f8bbd584460) + QPaintDevice (0x0x7f8bb5a38420) 16 + vptr=((& QSplitter::_ZTV9QSplitter) + 456) + +Class QSplitterHandle::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSplitterHandle::QPrivateSignal (0x0x7f8bb5a38720) 0 empty + +Vtable for QSplitterHandle +QSplitterHandle::_ZTV15QSplitterHandle: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSplitterHandle) +16 (int (*)(...))QSplitterHandle::metaObject +24 (int (*)(...))QSplitterHandle::qt_metacast +32 (int (*)(...))QSplitterHandle::qt_metacall +40 (int (*)(...))QSplitterHandle::~QSplitterHandle +48 (int (*)(...))QSplitterHandle::~QSplitterHandle +56 (int (*)(...))QSplitterHandle::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QSplitterHandle::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QSplitterHandle::mousePressEvent +176 (int (*)(...))QSplitterHandle::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QSplitterHandle::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QSplitterHandle::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QSplitterHandle::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI15QSplitterHandle) +448 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD1Ev +456 (int (*)(...))QSplitterHandle::_ZThn16_N15QSplitterHandleD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QSplitterHandle + size=48 align=8 + base size=48 base align=8 +QSplitterHandle (0x0x7f8bb996e208) 0 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 16) + QWidget (0x0x7f8bbd584690) 0 + primary-for QSplitterHandle (0x0x7f8bb996e208) + QObject (0x0x7f8bb5a38660) 0 + primary-for QWidget (0x0x7f8bbd584690) + QPaintDevice (0x0x7f8bb5a386c0) 16 + vptr=((& QSplitterHandle::_ZTV15QSplitterHandle) + 448) + +Class QStackedLayout::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedLayout::QPrivateSignal (0x0x7f8bb5a389c0) 0 empty + +Vtable for QStackedLayout +QStackedLayout::_ZTV14QStackedLayout: 50 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedLayout) +16 (int (*)(...))QStackedLayout::metaObject +24 (int (*)(...))QStackedLayout::qt_metacast +32 (int (*)(...))QStackedLayout::qt_metacall +40 (int (*)(...))QStackedLayout::~QStackedLayout +48 (int (*)(...))QStackedLayout::~QStackedLayout +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QLayout::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QLayout::invalidate +120 (int (*)(...))QLayout::geometry +128 (int (*)(...))QStackedLayout::addItem +136 (int (*)(...))QLayout::expandingDirections +144 (int (*)(...))QStackedLayout::minimumSize +152 (int (*)(...))QLayout::maximumSize +160 (int (*)(...))QStackedLayout::setGeometry +168 (int (*)(...))QStackedLayout::itemAt +176 (int (*)(...))QStackedLayout::takeAt +184 (int (*)(...))QLayout::indexOf +192 (int (*)(...))QStackedLayout::count +200 (int (*)(...))QLayout::isEmpty +208 (int (*)(...))QLayout::controlTypes +216 (int (*)(...))QLayout::layout +224 (int (*)(...))QStackedLayout::sizeHint +232 (int (*)(...))QStackedLayout::hasHeightForWidth +240 (int (*)(...))QStackedLayout::heightForWidth +248 (int (*)(...))-16 +256 (int (*)(...))(& _ZTI14QStackedLayout) +264 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD1Ev +272 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayoutD0Ev +280 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout8sizeHintEv +288 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout11minimumSizeEv +296 (int (*)(...))QLayout::_ZThn16_NK7QLayout11maximumSizeEv +304 (int (*)(...))QLayout::_ZThn16_NK7QLayout19expandingDirectionsEv +312 (int (*)(...))QStackedLayout::_ZThn16_N14QStackedLayout11setGeometryERK5QRect +320 (int (*)(...))QLayout::_ZThn16_NK7QLayout8geometryEv +328 (int (*)(...))QLayout::_ZThn16_NK7QLayout7isEmptyEv +336 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout17hasHeightForWidthEv +344 (int (*)(...))QStackedLayout::_ZThn16_NK14QStackedLayout14heightForWidthEi +352 (int (*)(...))QLayoutItem::minimumHeightForWidth +360 (int (*)(...))QLayout::_ZThn16_N7QLayout10invalidateEv +368 (int (*)(...))QLayoutItem::widget +376 (int (*)(...))QLayout::_ZThn16_N7QLayout6layoutEv +384 (int (*)(...))QLayoutItem::spacerItem +392 (int (*)(...))QLayout::_ZThn16_NK7QLayout12controlTypesEv + +Class QStackedLayout + size=32 align=8 + base size=28 base align=8 +QStackedLayout (0x0x7f8bb996ec30) 0 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 16) + QLayout (0x0x7f8bbd584850) 0 + primary-for QStackedLayout (0x0x7f8bb996ec30) + QObject (0x0x7f8bb5a38900) 0 + primary-for QLayout (0x0x7f8bbd584850) + QLayoutItem (0x0x7f8bb5a38960) 16 + vptr=((& QStackedLayout::_ZTV14QStackedLayout) + 264) + +Class QStackedWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStackedWidget::QPrivateSignal (0x0x7f8bb5a38d20) 0 empty + +Vtable for QStackedWidget +QStackedWidget::_ZTV14QStackedWidget: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QStackedWidget) +16 (int (*)(...))QStackedWidget::metaObject +24 (int (*)(...))QStackedWidget::qt_metacast +32 (int (*)(...))QStackedWidget::qt_metacall +40 (int (*)(...))QStackedWidget::~QStackedWidget +48 (int (*)(...))QStackedWidget::~QStackedWidget +56 (int (*)(...))QStackedWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI14QStackedWidget) +448 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD1Ev +456 (int (*)(...))QStackedWidget::_ZThn16_N14QStackedWidgetD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStackedWidget + size=48 align=8 + base size=48 base align=8 +QStackedWidget (0x0x7f8bb996ec98) 0 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 16) + QFrame (0x0x7f8bb95f80d0) 0 + primary-for QStackedWidget (0x0x7f8bb996ec98) + QWidget (0x0x7f8bbd584a80) 0 + primary-for QFrame (0x0x7f8bb95f80d0) + QObject (0x0x7f8bb5a38c60) 0 + primary-for QWidget (0x0x7f8bbd584a80) + QPaintDevice (0x0x7f8bb5a38cc0) 16 + vptr=((& QStackedWidget::_ZTV14QStackedWidget) + 448) + +Class QStatusBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStatusBar::QPrivateSignal (0x0x7f8bb4dcb000) 0 empty + +Vtable for QStatusBar +QStatusBar::_ZTV10QStatusBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QStatusBar) +16 (int (*)(...))QStatusBar::metaObject +24 (int (*)(...))QStatusBar::qt_metacast +32 (int (*)(...))QStatusBar::qt_metacall +40 (int (*)(...))QStatusBar::~QStatusBar +48 (int (*)(...))QStatusBar::~QStatusBar +56 (int (*)(...))QStatusBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QStatusBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QStatusBar::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QStatusBar::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI10QStatusBar) +448 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD1Ev +456 (int (*)(...))QStatusBar::_ZThn16_N10QStatusBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QStatusBar + size=48 align=8 + base size=48 base align=8 +QStatusBar (0x0x7f8bb95f8138) 0 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 16) + QWidget (0x0x7f8bbd584bd0) 0 + primary-for QStatusBar (0x0x7f8bb95f8138) + QObject (0x0x7f8bb5a38f00) 0 + primary-for QWidget (0x0x7f8bbd584bd0) + QPaintDevice (0x0x7f8bb5a38f60) 16 + vptr=((& QStatusBar::_ZTV10QStatusBar) + 448) + +Class QStyledItemDelegate::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStyledItemDelegate::QPrivateSignal (0x0x7f8bb4dcb240) 0 empty + +Vtable for QStyledItemDelegate +QStyledItemDelegate::_ZTV19QStyledItemDelegate: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QStyledItemDelegate) +16 (int (*)(...))QStyledItemDelegate::metaObject +24 (int (*)(...))QStyledItemDelegate::qt_metacast +32 (int (*)(...))QStyledItemDelegate::qt_metacall +40 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +48 (int (*)(...))QStyledItemDelegate::~QStyledItemDelegate +56 (int (*)(...))QObject::event +64 (int (*)(...))QStyledItemDelegate::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStyledItemDelegate::paint +120 (int (*)(...))QStyledItemDelegate::sizeHint +128 (int (*)(...))QStyledItemDelegate::createEditor +136 (int (*)(...))QAbstractItemDelegate::destroyEditor +144 (int (*)(...))QStyledItemDelegate::setEditorData +152 (int (*)(...))QStyledItemDelegate::setModelData +160 (int (*)(...))QStyledItemDelegate::updateEditorGeometry +168 (int (*)(...))QStyledItemDelegate::editorEvent +176 (int (*)(...))QAbstractItemDelegate::helpEvent +184 (int (*)(...))QAbstractItemDelegate::paintingRoles +192 (int (*)(...))QStyledItemDelegate::displayText +200 (int (*)(...))QStyledItemDelegate::initStyleOption + +Class QStyledItemDelegate + size=16 align=8 + base size=16 base align=8 +QStyledItemDelegate (0x0x7f8bb95f8410) 0 + vptr=((& QStyledItemDelegate::_ZTV19QStyledItemDelegate) + 16) + QAbstractItemDelegate (0x0x7f8bb95f8478) 0 + primary-for QStyledItemDelegate (0x0x7f8bb95f8410) + QObject (0x0x7f8bb4dcb1e0) 0 + primary-for QAbstractItemDelegate (0x0x7f8bb95f8478) + +Class QStyleFactory + size=1 align=1 + base size=0 base align=1 +QStyleFactory (0x0x7f8bb4dcb420) 0 empty + +Class QStylePainter + size=24 align=8 + base size=24 base align=8 +QStylePainter (0x0x7f8bb95f8618) 0 + QPainter (0x0x7f8bb4dcb480) 0 + +Class QStylePlugin::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStylePlugin::QPrivateSignal (0x0x7f8bb4dcbd20) 0 empty + +Vtable for QStylePlugin +QStylePlugin::_ZTV12QStylePlugin: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QStylePlugin) +16 (int (*)(...))QStylePlugin::metaObject +24 (int (*)(...))QStylePlugin::qt_metacast +32 (int (*)(...))QStylePlugin::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual + +Class QStylePlugin + size=16 align=8 + base size=16 base align=8 +QStylePlugin (0x0x7f8bb95f8888) 0 + vptr=((& QStylePlugin::_ZTV12QStylePlugin) + 16) + QObject (0x0x7f8bb4dcbcc0) 0 + primary-for QStylePlugin (0x0x7f8bb95f8888) + +Class QSystemTrayIcon::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSystemTrayIcon::QPrivateSignal (0x0x7f8bb4dcbea0) 0 empty + +Vtable for QSystemTrayIcon +QSystemTrayIcon::_ZTV15QSystemTrayIcon: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSystemTrayIcon) +16 (int (*)(...))QSystemTrayIcon::metaObject +24 (int (*)(...))QSystemTrayIcon::qt_metacast +32 (int (*)(...))QSystemTrayIcon::qt_metacall +40 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +48 (int (*)(...))QSystemTrayIcon::~QSystemTrayIcon +56 (int (*)(...))QSystemTrayIcon::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSystemTrayIcon + size=16 align=8 + base size=16 base align=8 +QSystemTrayIcon (0x0x7f8bb95f88f0) 0 + vptr=((& QSystemTrayIcon::_ZTV15QSystemTrayIcon) + 16) + QObject (0x0x7f8bb4dcbe40) 0 + primary-for QSystemTrayIcon (0x0x7f8bb95f88f0) + +Class QTableView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableView::QPrivateSignal (0x0x7f8bb211f240) 0 empty + +Vtable for QTableView +QTableView::_ZTV10QTableView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTableView) +16 (int (*)(...))QTableView::metaObject +24 (int (*)(...))QTableView::qt_metacast +32 (int (*)(...))QTableView::qt_metacall +40 (int (*)(...))QTableView::~QTableView +48 (int (*)(...))QTableView::~QTableView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableView::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI10QTableView) +784 (int (*)(...))QTableView::_ZThn16_N10QTableViewD1Ev +792 (int (*)(...))QTableView::_ZThn16_N10QTableViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableView + size=48 align=8 + base size=48 base align=8 +QTableView (0x0x7f8bb95f8bc8) 0 + vptr=((& QTableView::_ZTV10QTableView) + 16) + QAbstractItemView (0x0x7f8bb95f8c30) 0 + primary-for QTableView (0x0x7f8bb95f8bc8) + QAbstractScrollArea (0x0x7f8bb962a548) 0 + primary-for QAbstractItemView (0x0x7f8bb95f8c30) + QFrame (0x0x7f8bb962a5b0) 0 + primary-for QAbstractScrollArea (0x0x7f8bb962a548) + QWidget (0x0x7f8bbd201930) 0 + primary-for QFrame (0x0x7f8bb962a5b0) + QObject (0x0x7f8bb211f180) 0 + primary-for QWidget (0x0x7f8bbd201930) + QPaintDevice (0x0x7f8bb211f1e0) 16 + vptr=((& QTableView::_ZTV10QTableView) + 784) + +Class QTableWidgetSelectionRange + size=16 align=4 + base size=16 base align=4 +QTableWidgetSelectionRange (0x0x7f8bb211f480) 0 + +Vtable for QTableWidgetItem +QTableWidgetItem::_ZTV16QTableWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QTableWidgetItem) +16 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +24 (int (*)(...))QTableWidgetItem::~QTableWidgetItem +32 (int (*)(...))QTableWidgetItem::clone +40 (int (*)(...))QTableWidgetItem::data +48 (int (*)(...))QTableWidgetItem::setData +56 (int (*)(...))QTableWidgetItem::operator< +64 (int (*)(...))QTableWidgetItem::read +72 (int (*)(...))QTableWidgetItem::write + +Class QTableWidgetItem + size=48 align=8 + base size=44 base align=8 +QTableWidgetItem (0x0x7f8bb211f720) 0 + vptr=((& QTableWidgetItem::_ZTV16QTableWidgetItem) + 16) + +Class QTableWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTableWidget::QPrivateSignal (0x0x7f8bb9982480) 0 empty + +Vtable for QTableWidget +QTableWidget::_ZTV12QTableWidget: 110 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTableWidget) +16 (int (*)(...))QTableWidget::metaObject +24 (int (*)(...))QTableWidget::qt_metacast +32 (int (*)(...))QTableWidget::qt_metacall +40 (int (*)(...))QTableWidget::~QTableWidget +48 (int (*)(...))QTableWidget::~QTableWidget +56 (int (*)(...))QTableWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTableView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QAbstractItemView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QAbstractItemView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTableView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QAbstractItemView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTableWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QTableView::scrollContentsBy +456 (int (*)(...))QTableView::viewportSizeHint +464 (int (*)(...))QTableWidget::setModel +472 (int (*)(...))QTableView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QTableView::visualRect +496 (int (*)(...))QTableView::scrollTo +504 (int (*)(...))QTableView::indexAt +512 (int (*)(...))QTableView::sizeHintForRow +520 (int (*)(...))QTableView::sizeHintForColumn +528 (int (*)(...))QAbstractItemView::reset +536 (int (*)(...))QTableView::setRootIndex +544 (int (*)(...))QTableView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QAbstractItemView::dataChanged +568 (int (*)(...))QAbstractItemView::rowsInserted +576 (int (*)(...))QAbstractItemView::rowsAboutToBeRemoved +584 (int (*)(...))QTableView::selectionChanged +592 (int (*)(...))QTableView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTableView::updateGeometries +624 (int (*)(...))QTableView::verticalScrollbarAction +632 (int (*)(...))QTableView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTableView::moveCursor +688 (int (*)(...))QTableView::horizontalOffset +696 (int (*)(...))QTableView::verticalOffset +704 (int (*)(...))QTableView::isIndexHidden +712 (int (*)(...))QTableView::setSelection +720 (int (*)(...))QTableView::visualRegionForSelection +728 (int (*)(...))QTableView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QTableView::viewOptions +768 (int (*)(...))QTableWidget::mimeTypes +776 (int (*)(...))QTableWidget::mimeData +784 (int (*)(...))QTableWidget::dropMimeData +792 (int (*)(...))QTableWidget::supportedDropActions +800 (int (*)(...))-16 +808 (int (*)(...))(& _ZTI12QTableWidget) +816 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD1Ev +824 (int (*)(...))QTableWidget::_ZThn16_N12QTableWidgetD0Ev +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTableWidget + size=48 align=8 + base size=48 base align=8 +QTableWidget (0x0x7f8bb9656548) 0 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 16) + QTableView (0x0x7f8bb96565b0) 0 + primary-for QTableWidget (0x0x7f8bb9656548) + QAbstractItemView (0x0x7f8bb9656f70) 0 + primary-for QTableView (0x0x7f8bb96565b0) + QAbstractScrollArea (0x0x7f8bb9676000) 0 + primary-for QAbstractItemView (0x0x7f8bb9656f70) + QFrame (0x0x7f8bb968b068) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9676000) + QWidget (0x0x7f8bbd201d20) 0 + primary-for QFrame (0x0x7f8bb968b068) + QObject (0x0x7f8bb99823c0) 0 + primary-for QWidget (0x0x7f8bbd201d20) + QPaintDevice (0x0x7f8bb9982420) 16 + vptr=((& QTableWidget::_ZTV12QTableWidget) + 816) + +Class QTextBrowser::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTextBrowser::QPrivateSignal (0x0x7f8bb99828a0) 0 empty + +Vtable for QTextBrowser +QTextBrowser::_ZTV12QTextBrowser: 78 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QTextBrowser) +16 (int (*)(...))QTextBrowser::metaObject +24 (int (*)(...))QTextBrowser::qt_metacast +32 (int (*)(...))QTextBrowser::qt_metacall +40 (int (*)(...))QTextBrowser::~QTextBrowser +48 (int (*)(...))QTextBrowser::~QTextBrowser +56 (int (*)(...))QTextBrowser::event +64 (int (*)(...))QAbstractScrollArea::eventFilter +72 (int (*)(...))QTextEdit::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTextBrowser::mousePressEvent +176 (int (*)(...))QTextBrowser::mouseReleaseEvent +184 (int (*)(...))QTextEdit::mouseDoubleClickEvent +192 (int (*)(...))QTextBrowser::mouseMoveEvent +200 (int (*)(...))QTextEdit::wheelEvent +208 (int (*)(...))QTextBrowser::keyPressEvent +216 (int (*)(...))QTextEdit::keyReleaseEvent +224 (int (*)(...))QTextEdit::focusInEvent +232 (int (*)(...))QTextBrowser::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTextBrowser::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QTextEdit::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QTextEdit::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QTextEdit::dragEnterEvent +320 (int (*)(...))QTextEdit::dragMoveEvent +328 (int (*)(...))QTextEdit::dragLeaveEvent +336 (int (*)(...))QTextEdit::dropEvent +344 (int (*)(...))QTextEdit::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QTextEdit::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QTextEdit::inputMethodEvent +416 (int (*)(...))QTextEdit::inputMethodQuery +424 (int (*)(...))QTextBrowser::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractScrollArea::viewportEvent +448 (int (*)(...))QTextEdit::scrollContentsBy +456 (int (*)(...))QAbstractScrollArea::viewportSizeHint +464 (int (*)(...))QTextBrowser::loadResource +472 (int (*)(...))QTextEdit::createMimeDataFromSelection +480 (int (*)(...))QTextEdit::canInsertFromMimeData +488 (int (*)(...))QTextEdit::insertFromMimeData +496 (int (*)(...))QTextEdit::doSetTextCursor +504 (int (*)(...))QTextBrowser::setSource +512 (int (*)(...))QTextBrowser::backward +520 (int (*)(...))QTextBrowser::forward +528 (int (*)(...))QTextBrowser::home +536 (int (*)(...))QTextBrowser::reload +544 (int (*)(...))-16 +552 (int (*)(...))(& _ZTI12QTextBrowser) +560 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD1Ev +568 (int (*)(...))QTextBrowser::_ZThn16_N12QTextBrowserD0Ev +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +584 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +592 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +600 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +608 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +616 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTextBrowser + size=48 align=8 + base size=48 base align=8 +QTextBrowser (0x0x7f8bb968b0d0) 0 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 16) + QTextEdit (0x0x7f8bb9418068) 0 + primary-for QTextBrowser (0x0x7f8bb968b0d0) + QAbstractScrollArea (0x0x7f8bb94180d0) 0 + primary-for QTextEdit (0x0x7f8bb9418068) + QFrame (0x0x7f8bb9418270) 0 + primary-for QAbstractScrollArea (0x0x7f8bb94180d0) + QWidget (0x0x7f8bbd201ee0) 0 + primary-for QFrame (0x0x7f8bb9418270) + QObject (0x0x7f8bb99827e0) 0 + primary-for QWidget (0x0x7f8bbd201ee0) + QPaintDevice (0x0x7f8bb9982840) 16 + vptr=((& QTextBrowser::_ZTV12QTextBrowser) + 560) + +Class QToolBar::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBar::QPrivateSignal (0x0x7f8bb9982b40) 0 empty + +Vtable for QToolBar +QToolBar::_ZTV8QToolBar: 64 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBar) +16 (int (*)(...))QToolBar::metaObject +24 (int (*)(...))QToolBar::qt_metacast +32 (int (*)(...))QToolBar::qt_metacall +40 (int (*)(...))QToolBar::~QToolBar +48 (int (*)(...))QToolBar::~QToolBar +56 (int (*)(...))QToolBar::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QToolBar::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolBar::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBar::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))-16 +440 (int (*)(...))(& _ZTI8QToolBar) +448 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD1Ev +456 (int (*)(...))QToolBar::_ZThn16_N8QToolBarD0Ev +464 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +472 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBar + size=48 align=8 + base size=48 base align=8 +QToolBar (0x0x7f8bb94189c0) 0 + vptr=((& QToolBar::_ZTV8QToolBar) + 16) + QWidget (0x0x7f8bbd23d070) 0 + primary-for QToolBar (0x0x7f8bb94189c0) + QObject (0x0x7f8bb9982a80) 0 + primary-for QWidget (0x0x7f8bbd23d070) + QPaintDevice (0x0x7f8bb9982ae0) 16 + vptr=((& QToolBar::_ZTV8QToolBar) + 448) + +Class QToolBox::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolBox::QPrivateSignal (0x0x7f8bb4b114e0) 0 empty + +Vtable for QToolBox +QToolBox::_ZTV8QToolBox: 66 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QToolBox) +16 (int (*)(...))QToolBox::metaObject +24 (int (*)(...))QToolBox::qt_metacast +32 (int (*)(...))QToolBox::qt_metacall +40 (int (*)(...))QToolBox::~QToolBox +48 (int (*)(...))QToolBox::~QToolBox +56 (int (*)(...))QToolBox::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QFrame::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QFrame::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QToolBox::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolBox::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolBox::itemInserted +440 (int (*)(...))QToolBox::itemRemoved +448 (int (*)(...))-16 +456 (int (*)(...))(& _ZTI8QToolBox) +464 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD1Ev +472 (int (*)(...))QToolBox::_ZThn16_N8QToolBoxD0Ev +480 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolBox + size=48 align=8 + base size=48 base align=8 +QToolBox (0x0x7f8bb95a3f08) 0 + vptr=((& QToolBox::_ZTV8QToolBox) + 16) + QFrame (0x0x7f8bb91d90d0) 0 + primary-for QToolBox (0x0x7f8bb95a3f08) + QWidget (0x0x7f8bbd23daf0) 0 + primary-for QFrame (0x0x7f8bb91d90d0) + QObject (0x0x7f8bb4b11420) 0 + primary-for QWidget (0x0x7f8bbd23daf0) + QPaintDevice (0x0x7f8bb4b11480) 16 + vptr=((& QToolBox::_ZTV8QToolBox) + 464) + +Class QToolButton::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QToolButton::QPrivateSignal (0x0x7f8bb4b118a0) 0 empty + +Vtable for QToolButton +QToolButton::_ZTV11QToolButton: 67 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QToolButton) +16 (int (*)(...))QToolButton::metaObject +24 (int (*)(...))QToolButton::qt_metacast +32 (int (*)(...))QToolButton::qt_metacall +40 (int (*)(...))QToolButton::~QToolButton +48 (int (*)(...))QToolButton::~QToolButton +56 (int (*)(...))QToolButton::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QToolButton::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QToolButton::sizeHint +136 (int (*)(...))QToolButton::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QToolButton::mousePressEvent +176 (int (*)(...))QToolButton::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QAbstractButton::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QAbstractButton::keyPressEvent +216 (int (*)(...))QAbstractButton::keyReleaseEvent +224 (int (*)(...))QAbstractButton::focusInEvent +232 (int (*)(...))QAbstractButton::focusOutEvent +240 (int (*)(...))QToolButton::enterEvent +248 (int (*)(...))QToolButton::leaveEvent +256 (int (*)(...))QToolButton::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QToolButton::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QToolButton::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QToolButton::hitButton +440 (int (*)(...))QAbstractButton::checkStateSet +448 (int (*)(...))QToolButton::nextCheckState +456 (int (*)(...))-16 +464 (int (*)(...))(& _ZTI11QToolButton) +472 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD1Ev +480 (int (*)(...))QToolButton::_ZThn16_N11QToolButtonD0Ev +488 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +496 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QToolButton + size=48 align=8 + base size=48 base align=8 +QToolButton (0x0x7f8bb91d9138) 0 + vptr=((& QToolButton::_ZTV11QToolButton) + 16) + QAbstractButton (0x0x7f8bb91d92d8) 0 + primary-for QToolButton (0x0x7f8bb91d9138) + QWidget (0x0x7f8bbd23dc40) 0 + primary-for QAbstractButton (0x0x7f8bb91d92d8) + QObject (0x0x7f8bb4b117e0) 0 + primary-for QWidget (0x0x7f8bbd23dc40) + QPaintDevice (0x0x7f8bb4b11840) 16 + vptr=((& QToolButton::_ZTV11QToolButton) + 472) + +Class QToolTip + size=1 align=1 + base size=0 base align=1 +QToolTip (0x0x7f8bb4b11b40) 0 empty + +Class QTreeView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeView::QPrivateSignal (0x0x7f8bb4b11cc0) 0 empty + +Vtable for QTreeView +QTreeView::_ZTV9QTreeView: 108 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTreeView) +16 (int (*)(...))QTreeView::metaObject +24 (int (*)(...))QTreeView::qt_metacast +32 (int (*)(...))QTreeView::qt_metacall +40 (int (*)(...))QTreeView::~QTreeView +48 (int (*)(...))QTreeView::~QTreeView +56 (int (*)(...))QAbstractItemView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QAbstractItemView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeView::setModel +472 (int (*)(...))QTreeView::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QTreeView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))-16 +792 (int (*)(...))(& _ZTI9QTreeView) +800 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD1Ev +808 (int (*)(...))QTreeView::_ZThn16_N9QTreeViewD0Ev +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeView + size=48 align=8 + base size=48 base align=8 +QTreeView (0x0x7f8bb91d9548) 0 + vptr=((& QTreeView::_ZTV9QTreeView) + 16) + QAbstractItemView (0x0x7f8bb91d95b0) 0 + primary-for QTreeView (0x0x7f8bb91d9548) + QAbstractScrollArea (0x0x7f8bb91d9c98) 0 + primary-for QAbstractItemView (0x0x7f8bb91d95b0) + QFrame (0x0x7f8bb91d9d00) 0 + primary-for QAbstractScrollArea (0x0x7f8bb91d9c98) + QWidget (0x0x7f8bbd23df50) 0 + primary-for QFrame (0x0x7f8bb91d9d00) + QObject (0x0x7f8bb4b11c00) 0 + primary-for QWidget (0x0x7f8bbd23df50) + QPaintDevice (0x0x7f8bb4b11c60) 16 + vptr=((& QTreeView::_ZTV9QTreeView) + 800) + +Class QTreeWidgetItemIterator + size=24 align=8 + base size=20 base align=8 +QTreeWidgetItemIterator (0x0x7f8bb4b11f00) 0 + +Vtable for QTreeWidgetItem +QTreeWidgetItem::_ZTV15QTreeWidgetItem: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QTreeWidgetItem) +16 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +24 (int (*)(...))QTreeWidgetItem::~QTreeWidgetItem +32 (int (*)(...))QTreeWidgetItem::clone +40 (int (*)(...))QTreeWidgetItem::data +48 (int (*)(...))QTreeWidgetItem::setData +56 (int (*)(...))QTreeWidgetItem::operator< +64 (int (*)(...))QTreeWidgetItem::read +72 (int (*)(...))QTreeWidgetItem::write + +Class QTreeWidgetItem + size=64 align=8 + base size=60 base align=8 +QTreeWidgetItem (0x0x7f8bb38969c0) 0 + vptr=((& QTreeWidgetItem::_ZTV15QTreeWidgetItem) + 16) + +Class QTreeWidget::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTreeWidget::QPrivateSignal (0x0x7f8bb24799c0) 0 empty + +Vtable for QTreeWidget +QTreeWidget::_ZTV11QTreeWidget: 112 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTreeWidget) +16 (int (*)(...))QTreeWidget::metaObject +24 (int (*)(...))QTreeWidget::qt_metacast +32 (int (*)(...))QTreeWidget::qt_metacall +40 (int (*)(...))QTreeWidget::~QTreeWidget +48 (int (*)(...))QTreeWidget::~QTreeWidget +56 (int (*)(...))QTreeWidget::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QTreeView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QTreeView::mousePressEvent +176 (int (*)(...))QTreeView::mouseReleaseEvent +184 (int (*)(...))QTreeView::mouseDoubleClickEvent +192 (int (*)(...))QTreeView::mouseMoveEvent +200 (int (*)(...))QAbstractScrollArea::wheelEvent +208 (int (*)(...))QTreeView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QTreeView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QAbstractItemView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QTreeView::dragMoveEvent +328 (int (*)(...))QAbstractItemView::dragLeaveEvent +336 (int (*)(...))QTreeWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QTreeView::viewportEvent +448 (int (*)(...))QTreeView::scrollContentsBy +456 (int (*)(...))QTreeView::viewportSizeHint +464 (int (*)(...))QTreeWidget::setModel +472 (int (*)(...))QTreeWidget::setSelectionModel +480 (int (*)(...))QTreeView::keyboardSearch +488 (int (*)(...))QTreeView::visualRect +496 (int (*)(...))QTreeView::scrollTo +504 (int (*)(...))QTreeView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QTreeView::sizeHintForColumn +528 (int (*)(...))QTreeView::reset +536 (int (*)(...))QTreeView::setRootIndex +544 (int (*)(...))QTreeView::doItemsLayout +552 (int (*)(...))QTreeView::selectAll +560 (int (*)(...))QTreeView::dataChanged +568 (int (*)(...))QTreeView::rowsInserted +576 (int (*)(...))QTreeView::rowsAboutToBeRemoved +584 (int (*)(...))QTreeView::selectionChanged +592 (int (*)(...))QTreeView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QTreeView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QTreeView::horizontalScrollbarAction +640 (int (*)(...))QTreeView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QTreeView::moveCursor +688 (int (*)(...))QTreeView::horizontalOffset +696 (int (*)(...))QTreeView::verticalOffset +704 (int (*)(...))QTreeView::isIndexHidden +712 (int (*)(...))QTreeView::setSelection +720 (int (*)(...))QTreeView::visualRegionForSelection +728 (int (*)(...))QTreeView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QAbstractItemView::startDrag +760 (int (*)(...))QAbstractItemView::viewOptions +768 (int (*)(...))QTreeView::drawRow +776 (int (*)(...))QTreeView::drawBranches +784 (int (*)(...))QTreeWidget::mimeTypes +792 (int (*)(...))QTreeWidget::mimeData +800 (int (*)(...))QTreeWidget::dropMimeData +808 (int (*)(...))QTreeWidget::supportedDropActions +816 (int (*)(...))-16 +824 (int (*)(...))(& _ZTI11QTreeWidget) +832 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD1Ev +840 (int (*)(...))QTreeWidget::_ZThn16_N11QTreeWidgetD0Ev +848 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +856 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +864 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +872 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +880 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +888 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QTreeWidget + size=48 align=8 + base size=48 base align=8 +QTreeWidget (0x0x7f8bb91eeaf8) 0 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 16) + QTreeView (0x0x7f8bb91eeb60) 0 + primary-for QTreeWidget (0x0x7f8bb91eeaf8) + QAbstractItemView (0x0x7f8bb91eeea0) 0 + primary-for QTreeView (0x0x7f8bb91eeb60) + QAbstractScrollArea (0x0x7f8bb91eef08) 0 + primary-for QAbstractItemView (0x0x7f8bb91eeea0) + QFrame (0x0x7f8bb9205618) 0 + primary-for QAbstractScrollArea (0x0x7f8bb91eef08) + QWidget (0x0x7f8bbd2c9bd0) 0 + primary-for QFrame (0x0x7f8bb9205618) + QObject (0x0x7f8bb2479900) 0 + primary-for QWidget (0x0x7f8bbd2c9bd0) + QPaintDevice (0x0x7f8bb2479960) 16 + vptr=((& QTreeWidget::_ZTV11QTreeWidget) + 832) + +Class QUndoGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoGroup::QPrivateSignal (0x0x7f8bb2479de0) 0 empty + +Vtable for QUndoGroup +QUndoGroup::_ZTV10QUndoGroup: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoGroup) +16 (int (*)(...))QUndoGroup::metaObject +24 (int (*)(...))QUndoGroup::qt_metacast +32 (int (*)(...))QUndoGroup::qt_metacall +40 (int (*)(...))QUndoGroup::~QUndoGroup +48 (int (*)(...))QUndoGroup::~QUndoGroup +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoGroup + size=16 align=8 + base size=16 base align=8 +QUndoGroup (0x0x7f8bb9205680) 0 + vptr=((& QUndoGroup::_ZTV10QUndoGroup) + 16) + QObject (0x0x7f8bb2479d80) 0 + primary-for QUndoGroup (0x0x7f8bb9205680) + +Vtable for QUndoCommand +QUndoCommand::_ZTV12QUndoCommand: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI12QUndoCommand) +16 (int (*)(...))QUndoCommand::~QUndoCommand +24 (int (*)(...))QUndoCommand::~QUndoCommand +32 (int (*)(...))QUndoCommand::undo +40 (int (*)(...))QUndoCommand::redo +48 (int (*)(...))QUndoCommand::id +56 (int (*)(...))QUndoCommand::mergeWith + +Class QUndoCommand + size=16 align=8 + base size=16 base align=8 +QUndoCommand (0x0x7f8bb1ff3000) 0 + vptr=((& QUndoCommand::_ZTV12QUndoCommand) + 16) + +Class QUndoStack::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoStack::QPrivateSignal (0x0x7f8bb1ff30c0) 0 empty + +Vtable for QUndoStack +QUndoStack::_ZTV10QUndoStack: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QUndoStack) +16 (int (*)(...))QUndoStack::metaObject +24 (int (*)(...))QUndoStack::qt_metacast +32 (int (*)(...))QUndoStack::qt_metacall +40 (int (*)(...))QUndoStack::~QUndoStack +48 (int (*)(...))QUndoStack::~QUndoStack +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QUndoStack + size=16 align=8 + base size=16 base align=8 +QUndoStack (0x0x7f8bb9205e38) 0 + vptr=((& QUndoStack::_ZTV10QUndoStack) + 16) + QObject (0x0x7f8bb1ff3060) 0 + primary-for QUndoStack (0x0x7f8bb9205e38) + +Class QUndoView::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QUndoView::QPrivateSignal (0x0x7f8bb1ff3360) 0 empty + +Vtable for QUndoView +QUndoView::_ZTV9QUndoView: 106 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QUndoView) +16 (int (*)(...))QUndoView::metaObject +24 (int (*)(...))QUndoView::qt_metacast +32 (int (*)(...))QUndoView::qt_metacall +40 (int (*)(...))QUndoView::~QUndoView +48 (int (*)(...))QUndoView::~QUndoView +56 (int (*)(...))QListView::event +64 (int (*)(...))QAbstractItemView::eventFilter +72 (int (*)(...))QListView::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QAbstractScrollArea::sizeHint +136 (int (*)(...))QAbstractScrollArea::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QAbstractItemView::mousePressEvent +176 (int (*)(...))QListView::mouseReleaseEvent +184 (int (*)(...))QAbstractItemView::mouseDoubleClickEvent +192 (int (*)(...))QListView::mouseMoveEvent +200 (int (*)(...))QListView::wheelEvent +208 (int (*)(...))QAbstractItemView::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QAbstractItemView::focusInEvent +232 (int (*)(...))QAbstractItemView::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QListView::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QListView::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QAbstractScrollArea::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QAbstractItemView::dragEnterEvent +320 (int (*)(...))QListView::dragMoveEvent +328 (int (*)(...))QListView::dragLeaveEvent +336 (int (*)(...))QListView::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QFrame::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QAbstractItemView::inputMethodEvent +416 (int (*)(...))QAbstractItemView::inputMethodQuery +424 (int (*)(...))QAbstractItemView::focusNextPrevChild +432 (int (*)(...))QAbstractScrollArea::setupViewport +440 (int (*)(...))QAbstractItemView::viewportEvent +448 (int (*)(...))QListView::scrollContentsBy +456 (int (*)(...))QListView::viewportSizeHint +464 (int (*)(...))QAbstractItemView::setModel +472 (int (*)(...))QAbstractItemView::setSelectionModel +480 (int (*)(...))QAbstractItemView::keyboardSearch +488 (int (*)(...))QListView::visualRect +496 (int (*)(...))QListView::scrollTo +504 (int (*)(...))QListView::indexAt +512 (int (*)(...))QAbstractItemView::sizeHintForRow +520 (int (*)(...))QAbstractItemView::sizeHintForColumn +528 (int (*)(...))QListView::reset +536 (int (*)(...))QListView::setRootIndex +544 (int (*)(...))QListView::doItemsLayout +552 (int (*)(...))QAbstractItemView::selectAll +560 (int (*)(...))QListView::dataChanged +568 (int (*)(...))QListView::rowsInserted +576 (int (*)(...))QListView::rowsAboutToBeRemoved +584 (int (*)(...))QListView::selectionChanged +592 (int (*)(...))QListView::currentChanged +600 (int (*)(...))QAbstractItemView::updateEditorData +608 (int (*)(...))QAbstractItemView::updateEditorGeometries +616 (int (*)(...))QListView::updateGeometries +624 (int (*)(...))QAbstractItemView::verticalScrollbarAction +632 (int (*)(...))QAbstractItemView::horizontalScrollbarAction +640 (int (*)(...))QAbstractItemView::verticalScrollbarValueChanged +648 (int (*)(...))QAbstractItemView::horizontalScrollbarValueChanged +656 (int (*)(...))QAbstractItemView::closeEditor +664 (int (*)(...))QAbstractItemView::commitData +672 (int (*)(...))QAbstractItemView::editorDestroyed +680 (int (*)(...))QListView::moveCursor +688 (int (*)(...))QListView::horizontalOffset +696 (int (*)(...))QListView::verticalOffset +704 (int (*)(...))QListView::isIndexHidden +712 (int (*)(...))QListView::setSelection +720 (int (*)(...))QListView::visualRegionForSelection +728 (int (*)(...))QListView::selectedIndexes +736 (int (*)(...))QAbstractItemView::edit +744 (int (*)(...))QAbstractItemView::selectionCommand +752 (int (*)(...))QListView::startDrag +760 (int (*)(...))QListView::viewOptions +768 (int (*)(...))-16 +776 (int (*)(...))(& _ZTI9QUndoView) +784 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD1Ev +792 (int (*)(...))QUndoView::_ZThn16_N9QUndoViewD0Ev +800 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +808 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +816 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +824 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +832 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +840 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QUndoView + size=48 align=8 + base size=48 base align=8 +QUndoView (0x0x7f8bb9205ea0) 0 + vptr=((& QUndoView::_ZTV9QUndoView) + 16) + QListView (0x0x7f8bb9292340) 0 + primary-for QUndoView (0x0x7f8bb9205ea0) + QAbstractItemView (0x0x7f8bb92923a8) 0 + primary-for QListView (0x0x7f8bb9292340) + QAbstractScrollArea (0x0x7f8bb9292dd0) 0 + primary-for QAbstractItemView (0x0x7f8bb92923a8) + QFrame (0x0x7f8bb9292e38) 0 + primary-for QAbstractScrollArea (0x0x7f8bb9292dd0) + QWidget (0x0x7f8bbd30f700) 0 + primary-for QFrame (0x0x7f8bb9292e38) + QObject (0x0x7f8bb1ff32a0) 0 + primary-for QWidget (0x0x7f8bbd30f700) + QPaintDevice (0x0x7f8bb1ff3300) 16 + vptr=((& QUndoView::_ZTV9QUndoView) + 784) + +Class QWhatsThis + size=1 align=1 + base size=0 base align=1 +QWhatsThis (0x0x7f8bb1ff3540) 0 empty + +Class QWidgetAction::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWidgetAction::QPrivateSignal (0x0x7f8bb1ff3600) 0 empty + +Vtable for QWidgetAction +QWidgetAction::_ZTV13QWidgetAction: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QWidgetAction) +16 (int (*)(...))QWidgetAction::metaObject +24 (int (*)(...))QWidgetAction::qt_metacast +32 (int (*)(...))QWidgetAction::qt_metacall +40 (int (*)(...))QWidgetAction::~QWidgetAction +48 (int (*)(...))QWidgetAction::~QWidgetAction +56 (int (*)(...))QWidgetAction::event +64 (int (*)(...))QWidgetAction::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidgetAction::createWidget +120 (int (*)(...))QWidgetAction::deleteWidget + +Class QWidgetAction + size=16 align=8 + base size=16 base align=8 +QWidgetAction (0x0x7f8bb92ab4e0) 0 + vptr=((& QWidgetAction::_ZTV13QWidgetAction) + 16) + QAction (0x0x7f8bb92ab548) 0 + primary-for QWidgetAction (0x0x7f8bb92ab4e0) + QObject (0x0x7f8bb1ff35a0) 0 + primary-for QAction (0x0x7f8bb92ab548) + +Class QWizard::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizard::QPrivateSignal (0x0x7f8bb1ff38a0) 0 empty + +Vtable for QWizard +QWizard::_ZTV7QWizard: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QWizard) +16 (int (*)(...))QWizard::metaObject +24 (int (*)(...))QWizard::qt_metacast +32 (int (*)(...))QWizard::qt_metacall +40 (int (*)(...))QWizard::~QWizard +48 (int (*)(...))QWizard::~QWizard +56 (int (*)(...))QWizard::event +64 (int (*)(...))QDialog::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWizard::setVisible +128 (int (*)(...))QWizard::sizeHint +136 (int (*)(...))QDialog::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QDialog::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWizard::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWizard::resizeEvent +280 (int (*)(...))QDialog::closeEvent +288 (int (*)(...))QDialog::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QDialog::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QDialog::open +440 (int (*)(...))QDialog::exec +448 (int (*)(...))QWizard::done +456 (int (*)(...))QDialog::accept +464 (int (*)(...))QDialog::reject +472 (int (*)(...))QWizard::validateCurrentPage +480 (int (*)(...))QWizard::nextId +488 (int (*)(...))QWizard::initializePage +496 (int (*)(...))QWizard::cleanupPage +504 (int (*)(...))-16 +512 (int (*)(...))(& _ZTI7QWizard) +520 (int (*)(...))QWizard::_ZThn16_N7QWizardD1Ev +528 (int (*)(...))QWizard::_ZThn16_N7QWizardD0Ev +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +552 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +560 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +568 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +576 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizard + size=48 align=8 + base size=48 base align=8 +QWizard (0x0x7f8bb92fd068) 0 + vptr=((& QWizard::_ZTV7QWizard) + 16) + QDialog (0x0x7f8bb92fd0d0) 0 + primary-for QWizard (0x0x7f8bb92fd068) + QWidget (0x0x7f8bbd30f9a0) 0 + primary-for QDialog (0x0x7f8bb92fd0d0) + QObject (0x0x7f8bb1ff37e0) 0 + primary-for QWidget (0x0x7f8bbd30f9a0) + QPaintDevice (0x0x7f8bb1ff3840) 16 + vptr=((& QWizard::_ZTV7QWizard) + 520) + +Class QWizardPage::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QWizardPage::QPrivateSignal (0x0x7f8bb6c3b480) 0 empty + +Vtable for QWizardPage +QWizardPage::_ZTV11QWizardPage: 69 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QWizardPage) +16 (int (*)(...))QWizardPage::metaObject +24 (int (*)(...))QWizardPage::qt_metacast +32 (int (*)(...))QWizardPage::qt_metacall +40 (int (*)(...))QWizardPage::~QWizardPage +48 (int (*)(...))QWizardPage::~QWizardPage +56 (int (*)(...))QWidget::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QWidget::devType +120 (int (*)(...))QWidget::setVisible +128 (int (*)(...))QWidget::sizeHint +136 (int (*)(...))QWidget::minimumSizeHint +144 (int (*)(...))QWidget::heightForWidth +152 (int (*)(...))QWidget::hasHeightForWidth +160 (int (*)(...))QWidget::paintEngine +168 (int (*)(...))QWidget::mousePressEvent +176 (int (*)(...))QWidget::mouseReleaseEvent +184 (int (*)(...))QWidget::mouseDoubleClickEvent +192 (int (*)(...))QWidget::mouseMoveEvent +200 (int (*)(...))QWidget::wheelEvent +208 (int (*)(...))QWidget::keyPressEvent +216 (int (*)(...))QWidget::keyReleaseEvent +224 (int (*)(...))QWidget::focusInEvent +232 (int (*)(...))QWidget::focusOutEvent +240 (int (*)(...))QWidget::enterEvent +248 (int (*)(...))QWidget::leaveEvent +256 (int (*)(...))QWidget::paintEvent +264 (int (*)(...))QWidget::moveEvent +272 (int (*)(...))QWidget::resizeEvent +280 (int (*)(...))QWidget::closeEvent +288 (int (*)(...))QWidget::contextMenuEvent +296 (int (*)(...))QWidget::tabletEvent +304 (int (*)(...))QWidget::actionEvent +312 (int (*)(...))QWidget::dragEnterEvent +320 (int (*)(...))QWidget::dragMoveEvent +328 (int (*)(...))QWidget::dragLeaveEvent +336 (int (*)(...))QWidget::dropEvent +344 (int (*)(...))QWidget::showEvent +352 (int (*)(...))QWidget::hideEvent +360 (int (*)(...))QWidget::nativeEvent +368 (int (*)(...))QWidget::changeEvent +376 (int (*)(...))QWidget::metric +384 (int (*)(...))QWidget::initPainter +392 (int (*)(...))QWidget::redirected +400 (int (*)(...))QWidget::sharedPainter +408 (int (*)(...))QWidget::inputMethodEvent +416 (int (*)(...))QWidget::inputMethodQuery +424 (int (*)(...))QWidget::focusNextPrevChild +432 (int (*)(...))QWizardPage::initializePage +440 (int (*)(...))QWizardPage::cleanupPage +448 (int (*)(...))QWizardPage::validatePage +456 (int (*)(...))QWizardPage::isComplete +464 (int (*)(...))QWizardPage::nextId +472 (int (*)(...))-16 +480 (int (*)(...))(& _ZTI11QWizardPage) +488 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD1Ev +496 (int (*)(...))QWizardPage::_ZThn16_N11QWizardPageD0Ev +504 (int (*)(...))QWidget::_ZThn16_NK7QWidget7devTypeEv +512 (int (*)(...))QWidget::_ZThn16_NK7QWidget11paintEngineEv +520 (int (*)(...))QWidget::_ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE +528 (int (*)(...))QWidget::_ZThn16_NK7QWidget11initPainterEP8QPainter +536 (int (*)(...))QWidget::_ZThn16_NK7QWidget10redirectedEP6QPoint +544 (int (*)(...))QWidget::_ZThn16_NK7QWidget13sharedPainterEv + +Class QWizardPage + size=48 align=8 + base size=48 base align=8 +QWizardPage (0x0x7f8bb92fd4e0) 0 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 16) + QWidget (0x0x7f8bbd14e8c0) 0 + primary-for QWizardPage (0x0x7f8bb92fd4e0) + QObject (0x0x7f8bb6c3b3c0) 0 + primary-for QWidget (0x0x7f8bbd14e8c0) + QPaintDevice (0x0x7f8bb6c3b420) 16 + vptr=((& QWizardPage::_ZTV11QWizardPage) + 488) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bbb165900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bbb165c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bbb165e40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bba3031e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bba3033c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bba303720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bba303900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bba303c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bba303e40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bba3c31e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bba3c33c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bba3c3720) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bba3c3900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bba3c3c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bba3c3e40) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb9c051e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb9a9e6c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb9a9ea20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb9a9eba0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb9a9ef00) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb903a0c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb903a420) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb903a5a0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb903a900) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb903aa80) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb903ade0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb903af60) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb7e65300) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb7e65480) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb7e657e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f8bb7e65960) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f8bb7e65cc0) 0 empty + diff --git a/tests/auto/bic/data/QtXml.5.13.0.linux-gcc-amd64.txt b/tests/auto/bic/data/QtXml.5.13.0.linux-gcc-amd64.txt new file mode 100644 index 0000000000..e9ce444a14 --- /dev/null +++ b/tests/auto/bic/data/QtXml.5.13.0.linux-gcc-amd64.txt @@ -0,0 +1,5417 @@ +Class std::__failure_type + size=1 align=1 + base size=0 base align=1 +std::__failure_type (0x0x7f38bcad9c60) 0 empty + +Class std::__do_is_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_destructible_impl (0x0x7f38bb7b2420) 0 empty + +Class std::__do_is_nt_destructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nt_destructible_impl (0x0x7f38bb7b2660) 0 empty + +Class std::__do_is_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_default_constructible_impl (0x0x7f38bb7b28a0) 0 empty + +Class std::__do_is_static_castable_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_static_castable_impl (0x0x7f38bb7b2ae0) 0 empty + +Class std::__do_is_direct_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_direct_constructible_impl (0x0x7f38bb7b2c60) 0 empty + +Class std::__do_is_nary_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_nary_constructible_impl (0x0x7f38bb7ee060) 0 empty + +Class std::__do_is_implicitly_default_constructible_impl + size=1 align=1 + base size=0 base align=1 +std::__do_is_implicitly_default_constructible_impl (0x0x7f38bb81d180) 0 empty + +Class std::__do_common_type_impl + size=1 align=1 + base size=0 base align=1 +std::__do_common_type_impl (0x0x7f38bb875840) 0 empty + +Class std::__do_member_type_wrapper + size=1 align=1 + base size=0 base align=1 +std::__do_member_type_wrapper (0x0x7f38bb875900) 0 empty + +Class std::__invoke_memfun_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_ref (0x0x7f38bb875cc0) 0 empty + +Class std::__invoke_memfun_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memfun_deref (0x0x7f38bb875d20) 0 empty + +Class std::__invoke_memobj_ref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_ref (0x0x7f38bb875d80) 0 empty + +Class std::__invoke_memobj_deref + size=1 align=1 + base size=0 base align=1 +std::__invoke_memobj_deref (0x0x7f38bb875de0) 0 empty + +Class std::__invoke_other + size=1 align=1 + base size=0 base align=1 +std::__invoke_other (0x0x7f38bb875e40) 0 empty + +Class std::__result_of_memfun_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_ref_impl (0x0x7f38bb875f00) 0 empty + +Class std::__result_of_memfun_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memfun_deref_impl (0x0x7f38bb8a5000) 0 empty + +Class std::__result_of_memobj_ref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_ref_impl (0x0x7f38bb8a50c0) 0 empty + +Class std::__result_of_memobj_deref_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_memobj_deref_impl (0x0x7f38bb8a5180) 0 empty + +Class std::__result_of_other_impl + size=1 align=1 + base size=0 base align=1 +std::__result_of_other_impl (0x0x7f38bb8a54e0) 0 empty + +Class std::__swappable_details::__do_is_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_swappable_impl (0x0x7f38bb8a5840) 0 empty + +Class std::__swappable_details::__do_is_nothrow_swappable_impl + size=1 align=1 + base size=0 base align=1 +std::__swappable_details::__do_is_nothrow_swappable_impl (0x0x7f38bb8a58a0) 0 empty + +Class std::__nonesuch + size=1 align=1 + base size=0 base align=1 +std::__nonesuch (0x0x7f38bb8a5e40) 0 empty + +Class std::piecewise_construct_t + size=1 align=1 + base size=0 base align=1 +std::piecewise_construct_t (0x0x7f38bb4f34e0) 0 empty + +Class std::__nonesuch_no_braces + size=1 align=1 + base size=1 base align=1 +std::__nonesuch_no_braces (0x0x7f38bb8d8410) 0 empty + std::__nonesuch (0x0x7f38bb4f39c0) 0 empty + +Class std::__true_type + size=1 align=1 + base size=0 base align=1 +std::__true_type (0x0x7f38bb570360) 0 empty + +Class std::__false_type + size=1 align=1 + base size=0 base align=1 +std::__false_type (0x0x7f38bb5703c0) 0 empty + +Class std::input_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::input_iterator_tag (0x0x7f38bb5cf0c0) 0 empty + +Class std::output_iterator_tag + size=1 align=1 + base size=0 base align=1 +std::output_iterator_tag (0x0x7f38bb5cf120) 0 empty + +Class std::forward_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::forward_iterator_tag (0x0x7f38bb8d88f0) 0 empty + std::input_iterator_tag (0x0x7f38bb5cf180) 0 empty + +Class std::bidirectional_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::bidirectional_iterator_tag (0x0x7f38bb8d8958) 0 empty + std::forward_iterator_tag (0x0x7f38bb8d89c0) 0 empty + std::input_iterator_tag (0x0x7f38bb5cf1e0) 0 empty + +Class std::random_access_iterator_tag + size=1 align=1 + base size=1 base align=1 +std::random_access_iterator_tag (0x0x7f38bb8d8a28) 0 empty + std::bidirectional_iterator_tag (0x0x7f38bb8d8a90) 0 empty + std::forward_iterator_tag (0x0x7f38bb8d8af8) 0 empty + std::input_iterator_tag (0x0x7f38bb5cf240) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_iter (0x0x7f38bb65fd20) 0 empty + +Class __gnu_cxx::__ops::_Iter_less_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_less_val (0x0x7f38bb65fe40) 0 empty + +Class __gnu_cxx::__ops::_Val_less_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Val_less_iter (0x0x7f38bb680180) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_iter + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_iter (0x0x7f38bb680480) 0 empty + +Class __gnu_cxx::__ops::_Iter_equal_to_val + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__ops::_Iter_equal_to_val (0x0x7f38bb6805a0) 0 empty + +Class __locale_struct + size=232 align=8 + base size=232 base align=8 +__locale_struct (0x0x7f38bb30e8a0) 0 + +Class timeval + size=16 align=8 + base size=16 base align=8 +timeval (0x0x7f38bb30eba0) 0 + +Class timespec + size=16 align=8 + base size=16 base align=8 +timespec (0x0x7f38bb30ec00) 0 + +Class __pthread_rwlock_arch_t + size=56 align=8 + base size=56 base align=8 +__pthread_rwlock_arch_t (0x0x7f38bb30ecc0) 0 + +Class __pthread_internal_list + size=16 align=8 + base size=16 base align=8 +__pthread_internal_list (0x0x7f38bb30ed20) 0 + +Class __pthread_mutex_s + size=40 align=8 + base size=40 base align=8 +__pthread_mutex_s (0x0x7f38bb30ed80) 0 + +Class __pthread_cond_s + size=48 align=8 + base size=48 base align=8 +__pthread_cond_s (0x0x7f38bb30ede0) 0 + +Class pthread_attr_t + size=56 align=8 + base size=56 base align=8 +pthread_attr_t (0x0x7f38bb3500c0) 0 + +Class random_data + size=48 align=8 + base size=48 base align=8 +random_data (0x0x7f38bb350360) 0 + +Class drand48_data + size=24 align=8 + base size=24 base align=8 +drand48_data (0x0x7f38bb3503c0) 0 + +Vtable for std::exception +std::exception::_ZTVSt9exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9exception) +16 (int (*)(...))std::exception::~exception +24 (int (*)(...))std::exception::~exception +32 (int (*)(...))std::exception::what + +Class std::exception + size=8 align=8 + base size=8 base align=8 +std::exception (0x0x7f38bb407180) 0 nearly-empty + vptr=((& std::exception::_ZTVSt9exception) + 16) + +Vtable for std::bad_exception +std::bad_exception::_ZTVSt13bad_exception: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13bad_exception) +16 (int (*)(...))std::bad_exception::~bad_exception +24 (int (*)(...))std::bad_exception::~bad_exception +32 (int (*)(...))std::bad_exception::what + +Class std::bad_exception + size=8 align=8 + base size=8 base align=8 +std::bad_exception (0x0x7f38bb8d8e38) 0 nearly-empty + vptr=((& std::bad_exception::_ZTVSt13bad_exception) + 16) + std::exception (0x0x7f38bb407360) 0 nearly-empty + primary-for std::bad_exception (0x0x7f38bb8d8e38) + +Vtable for std::type_info +std::type_info::_ZTVSt9type_info: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9type_info) +16 (int (*)(...))std::type_info::~type_info +24 (int (*)(...))std::type_info::~type_info +32 (int (*)(...))std::type_info::__is_pointer_p +40 (int (*)(...))std::type_info::__is_function_p +48 (int (*)(...))std::type_info::__do_catch +56 (int (*)(...))std::type_info::__do_upcast + +Class std::type_info + size=16 align=8 + base size=16 base align=8 +std::type_info (0x0x7f38bb407540) 0 + vptr=((& std::type_info::_ZTVSt9type_info) + 16) + +Vtable for std::bad_cast +std::bad_cast::_ZTVSt8bad_cast: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8bad_cast) +16 (int (*)(...))std::bad_cast::~bad_cast +24 (int (*)(...))std::bad_cast::~bad_cast +32 (int (*)(...))std::bad_cast::what + +Class std::bad_cast + size=8 align=8 + base size=8 base align=8 +std::bad_cast (0x0x7f38bb8d8ea0) 0 nearly-empty + vptr=((& std::bad_cast::_ZTVSt8bad_cast) + 16) + std::exception (0x0x7f38bb407900) 0 nearly-empty + primary-for std::bad_cast (0x0x7f38bb8d8ea0) + +Vtable for std::bad_typeid +std::bad_typeid::_ZTVSt10bad_typeid: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt10bad_typeid) +16 (int (*)(...))std::bad_typeid::~bad_typeid +24 (int (*)(...))std::bad_typeid::~bad_typeid +32 (int (*)(...))std::bad_typeid::what + +Class std::bad_typeid + size=8 align=8 + base size=8 base align=8 +std::bad_typeid (0x0x7f38bb8d8f08) 0 nearly-empty + vptr=((& std::bad_typeid::_ZTVSt10bad_typeid) + 16) + std::exception (0x0x7f38bb407ae0) 0 nearly-empty + primary-for std::bad_typeid (0x0x7f38bb8d8f08) + +Class std::__exception_ptr::exception_ptr + size=8 align=8 + base size=8 base align=8 +std::__exception_ptr::exception_ptr (0x0x7f38bb407cc0) 0 + +Vtable for std::nested_exception +std::nested_exception::_ZTVSt16nested_exception: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16nested_exception) +16 (int (*)(...))std::nested_exception::~nested_exception +24 (int (*)(...))std::nested_exception::~nested_exception + +Class std::nested_exception + size=16 align=8 + base size=16 base align=8 +std::nested_exception (0x0x7f38bb43e2a0) 0 + vptr=((& std::nested_exception::_ZTVSt16nested_exception) + 16) + +Vtable for std::bad_alloc +std::bad_alloc::_ZTVSt9bad_alloc: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt9bad_alloc) +16 (int (*)(...))std::bad_alloc::~bad_alloc +24 (int (*)(...))std::bad_alloc::~bad_alloc +32 (int (*)(...))std::bad_alloc::what + +Class std::bad_alloc + size=8 align=8 + base size=8 base align=8 +std::bad_alloc (0x0x7f38bb8d8f70) 0 nearly-empty + vptr=((& std::bad_alloc::_ZTVSt9bad_alloc) + 16) + std::exception (0x0x7f38bb43e960) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f38bb8d8f70) + +Vtable for std::bad_array_new_length +std::bad_array_new_length::_ZTVSt20bad_array_new_length: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt20bad_array_new_length) +16 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +24 (int (*)(...))std::bad_array_new_length::~bad_array_new_length +32 (int (*)(...))std::bad_array_new_length::what + +Class std::bad_array_new_length + size=8 align=8 + base size=8 base align=8 +std::bad_array_new_length (0x0x7f38bb464000) 0 nearly-empty + vptr=((& std::bad_array_new_length::_ZTVSt20bad_array_new_length) + 16) + std::bad_alloc (0x0x7f38bb464068) 0 nearly-empty + primary-for std::bad_array_new_length (0x0x7f38bb464000) + std::exception (0x0x7f38bb43eb40) 0 nearly-empty + primary-for std::bad_alloc (0x0x7f38bb464068) + +Class std::nothrow_t + size=1 align=1 + base size=0 base align=1 +std::nothrow_t (0x0x7f38bb43ed20) 0 empty + +Class std::__allocator_traits_base + size=1 align=1 + base size=0 base align=1 +std::__allocator_traits_base (0x0x7f38bb43ef00) 0 empty + +Class std::__numeric_limits_base + size=1 align=1 + base size=0 base align=1 +std::__numeric_limits_base (0x0x7f38bb0e7420) 0 empty + +Class qIsNull(double)::U + size=8 align=8 + base size=8 base align=8 +qIsNull(double)::U (0x0x7f38bb29dea0) 0 + +Class qIsNull(float)::U + size=4 align=4 + base size=4 base align=4 +qIsNull(float)::U (0x0x7f38bb29df60) 0 + +Class QSysInfo + size=1 align=1 + base size=0 base align=1 +QSysInfo (0x0x7f38bad61900) 0 empty + +Class QMessageLogContext + size=32 align=8 + base size=32 base align=8 +QMessageLogContext (0x0x7f38bad61a20) 0 + +Class QMessageLogger + size=32 align=8 + base size=32 base align=8 +QMessageLogger (0x0x7f38bad61d80) 0 + +Class QFlag + size=4 align=4 + base size=4 base align=4 +QFlag (0x0x7f38bad9f300) 0 + +Class QIncompatibleFlag + size=4 align=4 + base size=4 base align=4 +QIncompatibleFlag (0x0x7f38baddaa80) 0 + +Class std::__atomic_flag_base + size=1 align=1 + base size=1 base align=1 +std::__atomic_flag_base (0x0x7f38bae70ea0) 0 + +Class std::atomic_flag + size=1 align=1 + base size=1 base align=1 +std::atomic_flag (0x0x7f38bae16ea0) 0 + std::__atomic_flag_base (0x0x7f38bae70f00) 0 + +Class QAtomicInt + size=4 align=4 + base size=4 base align=4 +QAtomicInt (0x0x7f38babab618) 0 + QAtomicInteger (0x0x7f38babab680) 0 + QBasicAtomicInteger (0x0x7f38ba9acea0) 0 + +Class QInternal + size=1 align=1 + base size=0 base align=1 +QInternal (0x0x7f38ba5db1e0) 0 empty + +Class QtPrivate::QSlotObjectBase + size=16 align=8 + base size=16 base align=8 +QtPrivate::QSlotObjectBase (0x0x7f38ba61e780) 0 + +Class QGenericArgument + size=16 align=8 + base size=16 base align=8 +QGenericArgument (0x0x7f38ba61eea0) 0 + +Class QGenericReturnArgument + size=16 align=8 + base size=16 base align=8 +QGenericReturnArgument (0x0x7f38ba651208) 0 + QGenericArgument (0x0x7f38ba660180) 0 + +Class QMetaObject + size=48 align=8 + base size=48 base align=8 +QMetaObject (0x0x7f38ba6605a0) 0 + +Class QMetaObject::Connection + size=8 align=8 + base size=8 base align=8 +QMetaObject::Connection (0x0x7f38ba6609c0) 0 + +Class QLatin1Char + size=1 align=1 + base size=1 base align=1 +QLatin1Char (0x0x7f38ba3134e0) 0 + +Class QChar + size=2 align=2 + base size=2 base align=2 +QChar (0x0x7f38ba313780) 0 + +Class QtPrivate::RefCount + size=4 align=4 + base size=4 base align=4 +QtPrivate::RefCount (0x0x7f38ba3de5a0) 0 + +Class QArrayData + size=24 align=8 + base size=24 base align=8 +QArrayData (0x0x7f38ba3de900) 0 + +Class QtPrivate::QContainerImplHelper + size=1 align=1 + base size=0 base align=1 +QtPrivate::QContainerImplHelper (0x0x7f38ba437c00) 0 empty + +Class lconv + size=96 align=8 + base size=96 base align=8 +lconv (0x0x7f38ba136480) 0 + +Vtable for __cxxabiv1::__forced_unwind +__cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN10__cxxabiv115__forced_unwindE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class __cxxabiv1::__forced_unwind + size=8 align=8 + base size=8 base align=8 +__cxxabiv1::__forced_unwind (0x0x7f38ba136540) 0 nearly-empty + vptr=((& __cxxabiv1::__forced_unwind::_ZTVN10__cxxabiv115__forced_unwindE) + 16) + +Class sched_param + size=4 align=4 + base size=4 base align=4 +sched_param (0x0x7f38ba1e4660) 0 + +Class timex + size=208 align=8 + base size=208 base align=8 +timex (0x0x7f38ba1e4720) 0 + +Class tm + size=56 align=8 + base size=56 base align=8 +tm (0x0x7f38ba1e4780) 0 + +Class itimerspec + size=32 align=8 + base size=32 base align=8 +itimerspec (0x0x7f38ba1e47e0) 0 + +Class _pthread_cleanup_buffer + size=32 align=8 + base size=32 base align=8 +_pthread_cleanup_buffer (0x0x7f38ba1e4840) 0 + +Class __pthread_cleanup_frame + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_frame (0x0x7f38ba1e4960) 0 + +Class __pthread_cleanup_class + size=24 align=8 + base size=24 base align=8 +__pthread_cleanup_class (0x0x7f38ba1e49c0) 0 + +Class _IO_marker + size=24 align=8 + base size=24 base align=8 +_IO_marker (0x0x7f38b9f26960) 0 + +Class _IO_FILE + size=216 align=8 + base size=216 base align=8 +_IO_FILE (0x0x7f38b9f269c0) 0 + +Class std::_Hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Hash_impl (0x0x7f38ba0dea20) 0 empty + +Class std::_Fnv_hash_impl + size=1 align=1 + base size=0 base align=1 +std::_Fnv_hash_impl (0x0x7f38ba0deba0) 0 empty + +Class std::locale + size=8 align=8 + base size=8 base align=8 +std::locale (0x0x7f38b9e52d20) 0 + +Vtable for std::locale::facet +std::locale::facet::_ZTVNSt6locale5facetE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6locale5facetE) +16 (int (*)(...))std::locale::facet::~facet +24 (int (*)(...))std::locale::facet::~facet + +Class std::locale::facet + size=16 align=8 + base size=12 base align=8 +std::locale::facet (0x0x7f38b9ea0120) 0 + vptr=((& std::locale::facet::_ZTVNSt6locale5facetE) + 16) + +Class std::locale::id + size=8 align=8 + base size=8 base align=8 +std::locale::id (0x0x7f38b9ea03c0) 0 + +Class std::locale::_Impl + size=40 align=8 + base size=40 base align=8 +std::locale::_Impl (0x0x7f38b9ea05a0) 0 + +Class std::__cow_string + size=8 align=8 + base size=8 base align=8 +std::__cow_string (0x0x7f38b9aec5a0) 0 + +Vtable for std::logic_error +std::logic_error::_ZTVSt11logic_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11logic_error) +16 (int (*)(...))std::logic_error::~logic_error +24 (int (*)(...))std::logic_error::~logic_error +32 (int (*)(...))std::logic_error::what + +Class std::logic_error + size=16 align=8 + base size=16 base align=8 +std::logic_error (0x0x7f38b9af71a0) 0 + vptr=((& std::logic_error::_ZTVSt11logic_error) + 16) + std::exception (0x0x7f38b9aec660) 0 nearly-empty + primary-for std::logic_error (0x0x7f38b9af71a0) + +Vtable for std::domain_error +std::domain_error::_ZTVSt12domain_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12domain_error) +16 (int (*)(...))std::domain_error::~domain_error +24 (int (*)(...))std::domain_error::~domain_error +32 (int (*)(...))std::logic_error::what + +Class std::domain_error + size=16 align=8 + base size=16 base align=8 +std::domain_error (0x0x7f38b9af7208) 0 + vptr=((& std::domain_error::_ZTVSt12domain_error) + 16) + std::logic_error (0x0x7f38b9af7270) 0 + primary-for std::domain_error (0x0x7f38b9af7208) + std::exception (0x0x7f38b9aec6c0) 0 nearly-empty + primary-for std::logic_error (0x0x7f38b9af7270) + +Vtable for std::invalid_argument +std::invalid_argument::_ZTVSt16invalid_argument: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt16invalid_argument) +16 (int (*)(...))std::invalid_argument::~invalid_argument +24 (int (*)(...))std::invalid_argument::~invalid_argument +32 (int (*)(...))std::logic_error::what + +Class std::invalid_argument + size=16 align=8 + base size=16 base align=8 +std::invalid_argument (0x0x7f38b9af72d8) 0 + vptr=((& std::invalid_argument::_ZTVSt16invalid_argument) + 16) + std::logic_error (0x0x7f38b9af7340) 0 + primary-for std::invalid_argument (0x0x7f38b9af72d8) + std::exception (0x0x7f38b9aec720) 0 nearly-empty + primary-for std::logic_error (0x0x7f38b9af7340) + +Vtable for std::length_error +std::length_error::_ZTVSt12length_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12length_error) +16 (int (*)(...))std::length_error::~length_error +24 (int (*)(...))std::length_error::~length_error +32 (int (*)(...))std::logic_error::what + +Class std::length_error + size=16 align=8 + base size=16 base align=8 +std::length_error (0x0x7f38b9af73a8) 0 + vptr=((& std::length_error::_ZTVSt12length_error) + 16) + std::logic_error (0x0x7f38b9af7410) 0 + primary-for std::length_error (0x0x7f38b9af73a8) + std::exception (0x0x7f38b9aec780) 0 nearly-empty + primary-for std::logic_error (0x0x7f38b9af7410) + +Vtable for std::out_of_range +std::out_of_range::_ZTVSt12out_of_range: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12out_of_range) +16 (int (*)(...))std::out_of_range::~out_of_range +24 (int (*)(...))std::out_of_range::~out_of_range +32 (int (*)(...))std::logic_error::what + +Class std::out_of_range + size=16 align=8 + base size=16 base align=8 +std::out_of_range (0x0x7f38b9af7478) 0 + vptr=((& std::out_of_range::_ZTVSt12out_of_range) + 16) + std::logic_error (0x0x7f38b9af74e0) 0 + primary-for std::out_of_range (0x0x7f38b9af7478) + std::exception (0x0x7f38b9aec7e0) 0 nearly-empty + primary-for std::logic_error (0x0x7f38b9af74e0) + +Vtable for std::runtime_error +std::runtime_error::_ZTVSt13runtime_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt13runtime_error) +16 (int (*)(...))std::runtime_error::~runtime_error +24 (int (*)(...))std::runtime_error::~runtime_error +32 (int (*)(...))std::runtime_error::what + +Class std::runtime_error + size=16 align=8 + base size=16 base align=8 +std::runtime_error (0x0x7f38b9af7548) 0 + vptr=((& std::runtime_error::_ZTVSt13runtime_error) + 16) + std::exception (0x0x7f38b9aec840) 0 nearly-empty + primary-for std::runtime_error (0x0x7f38b9af7548) + +Vtable for std::range_error +std::range_error::_ZTVSt11range_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt11range_error) +16 (int (*)(...))std::range_error::~range_error +24 (int (*)(...))std::range_error::~range_error +32 (int (*)(...))std::runtime_error::what + +Class std::range_error + size=16 align=8 + base size=16 base align=8 +std::range_error (0x0x7f38b9af75b0) 0 + vptr=((& std::range_error::_ZTVSt11range_error) + 16) + std::runtime_error (0x0x7f38b9af7618) 0 + primary-for std::range_error (0x0x7f38b9af75b0) + std::exception (0x0x7f38b9aec8a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f38b9af7618) + +Vtable for std::overflow_error +std::overflow_error::_ZTVSt14overflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt14overflow_error) +16 (int (*)(...))std::overflow_error::~overflow_error +24 (int (*)(...))std::overflow_error::~overflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::overflow_error + size=16 align=8 + base size=16 base align=8 +std::overflow_error (0x0x7f38b9af7680) 0 + vptr=((& std::overflow_error::_ZTVSt14overflow_error) + 16) + std::runtime_error (0x0x7f38b9af76e8) 0 + primary-for std::overflow_error (0x0x7f38b9af7680) + std::exception (0x0x7f38b9aec900) 0 nearly-empty + primary-for std::runtime_error (0x0x7f38b9af76e8) + +Vtable for std::underflow_error +std::underflow_error::_ZTVSt15underflow_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt15underflow_error) +16 (int (*)(...))std::underflow_error::~underflow_error +24 (int (*)(...))std::underflow_error::~underflow_error +32 (int (*)(...))std::runtime_error::what + +Class std::underflow_error + size=16 align=8 + base size=16 base align=8 +std::underflow_error (0x0x7f38b9af7750) 0 + vptr=((& std::underflow_error::_ZTVSt15underflow_error) + 16) + std::runtime_error (0x0x7f38b9af77b8) 0 + primary-for std::underflow_error (0x0x7f38b9af7750) + std::exception (0x0x7f38b9aec960) 0 nearly-empty + primary-for std::runtime_error (0x0x7f38b9af77b8) + +Vtable for std::_V2::error_category +std::_V2::error_category::_ZTVNSt3_V214error_categoryE: 10 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt3_V214error_categoryE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))std::_V2::error_category::_M_message +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))std::_V2::error_category::default_error_condition +64 (int (*)(...))std::_V2::error_category::equivalent +72 (int (*)(...))std::_V2::error_category::equivalent + +Class std::_V2::error_category + size=8 align=8 + base size=8 base align=8 +std::_V2::error_category (0x0x7f38b9aecae0) 0 nearly-empty + vptr=((& std::_V2::error_category::_ZTVNSt3_V214error_categoryE) + 16) + +Class std::error_code + size=16 align=8 + base size=16 base align=8 +std::error_code (0x0x7f38b9aece40) 0 + +Class std::error_condition + size=16 align=8 + base size=16 base align=8 +std::error_condition (0x0x7f38b9b496c0) 0 + +Vtable for std::system_error +std::system_error::_ZTVSt12system_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12system_error) +16 (int (*)(...))std::system_error::~system_error +24 (int (*)(...))std::system_error::~system_error +32 (int (*)(...))std::runtime_error::what + +Class std::system_error + size=32 align=8 + base size=32 base align=8 +std::system_error (0x0x7f38b9af7bc8) 0 + vptr=((& std::system_error::_ZTVSt12system_error) + 16) + std::runtime_error (0x0x7f38b9af7c30) 0 + primary-for std::system_error (0x0x7f38b9af7bc8) + std::exception (0x0x7f38b9b732a0) 0 nearly-empty + primary-for std::runtime_error (0x0x7f38b9af7c30) + +Vtable for std::ios_base::failure +std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt8ios_base7failureB5cxx11E) +16 (int (*)(...))std::ios_base::failure::~failure +24 (int (*)(...))std::ios_base::failure::~failure +32 (int (*)(...))std::ios_base::failure::what + +Class std::ios_base::failure + size=32 align=8 + base size=32 base align=8 +std::ios_base::failure (0x0x7f38b9af7ea0) 0 + vptr=((& std::ios_base::failure::_ZTVNSt8ios_base7failureB5cxx11E) + 16) + std::system_error (0x0x7f38b9af7f08) 0 + primary-for std::ios_base::failure (0x0x7f38b9af7ea0) + std::runtime_error (0x0x7f38b9af7f70) 0 + primary-for std::system_error (0x0x7f38b9af7f08) + std::exception (0x0x7f38b9ba4840) 0 nearly-empty + primary-for std::runtime_error (0x0x7f38b9af7f70) + +Class std::ios_base::_Callback_list + size=24 align=8 + base size=24 base align=8 +std::ios_base::_Callback_list (0x0x7f38b9ba48a0) 0 + +Class std::ios_base::_Words + size=16 align=8 + base size=16 base align=8 +std::ios_base::_Words (0x0x7f38b9ba4900) 0 + +Class std::ios_base::Init + size=1 align=1 + base size=0 base align=1 +std::ios_base::Init (0x0x7f38b9ba4960) 0 empty + +Vtable for std::ios_base +std::ios_base::_ZTVSt8ios_base: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt8ios_base) +16 (int (*)(...))std::ios_base::~ios_base +24 (int (*)(...))std::ios_base::~ios_base + +Class std::ios_base + size=216 align=8 + base size=216 base align=8 +std::ios_base (0x0x7f38b9ba47e0) 0 + vptr=((& std::ios_base::_ZTVSt8ios_base) + 16) + +Class std::ctype_base + size=1 align=1 + base size=0 base align=1 +std::ctype_base (0x0x7f38b9c972a0) 0 empty + +Class std::__num_base + size=1 align=1 + base size=0 base align=1 +std::__num_base (0x0x7f38b9960480) 0 empty + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSo: 2 entries +0 ((& std::basic_ostream::_ZTVSo) + 24) +8 ((& std::basic_ostream::_ZTVSo) + 64) + +VTT for std::basic_ostream +std::basic_ostream::_ZTTSt13basic_ostreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_ostream::_ZTVSt13basic_ostreamIwSt11char_traitsIwEE) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSi: 2 entries +0 ((& std::basic_istream::_ZTVSi) + 24) +8 ((& std::basic_istream::_ZTVSi) + 64) + +VTT for std::basic_istream +std::basic_istream::_ZTTSt13basic_istreamIwSt11char_traitsIwEE: 2 entries +0 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_istream::_ZTVSt13basic_istreamIwSt11char_traitsIwEE) + 64) + +Construction vtable for std::basic_istream (0x0x7f38b94fe680 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd0_Si: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISi) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISi) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f38b94fe750 instance) in std::basic_iostream +std::basic_iostream::_ZTCSd16_So: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISo) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISo) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSd: 7 entries +0 ((& std::basic_iostream::_ZTVSd) + 24) +8 ((& std::basic_iostream::_ZTCSd0_Si) + 24) +16 ((& std::basic_iostream::_ZTCSd0_Si) + 64) +24 ((& std::basic_iostream::_ZTCSd16_So) + 24) +32 ((& std::basic_iostream::_ZTCSd16_So) + 64) +40 ((& std::basic_iostream::_ZTVSd) + 104) +48 ((& std::basic_iostream::_ZTVSd) + 64) + +Construction vtable for std::basic_istream (0x0x7f38b953a410 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: 10 entries +0 24 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551592 +48 (int (*)(...))-24 +56 (int (*)(...))(& _ZTISt13basic_istreamIwSt11char_traitsIwEE) +64 0 +72 0 + +Construction vtable for std::basic_ostream (0x0x7f38b953a4e0 instance) in std::basic_iostream +std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: 10 entries +0 8 +8 (int (*)(...))0 +16 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +24 0 +32 0 +40 18446744073709551608 +48 (int (*)(...))-8 +56 (int (*)(...))(& _ZTISt13basic_ostreamIwSt11char_traitsIwEE) +64 0 +72 0 + +VTT for std::basic_iostream +std::basic_iostream::_ZTTSt14basic_iostreamIwSt11char_traitsIwEE: 7 entries +0 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 24) +8 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 24) +16 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E) + 64) +24 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 24) +32 ((& std::basic_iostream::_ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E) + 64) +40 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 104) +48 ((& std::basic_iostream::_ZTVSt14basic_iostreamIwSt11char_traitsIwEE) + 64) + +Class QByteArrayDataPtr + size=8 align=8 + base size=8 base align=8 +QByteArrayDataPtr (0x0x7f38b953cde0) 0 + +Class QByteArray + size=8 align=8 + base size=8 base align=8 +QByteArray (0x0x7f38b953ce40) 0 + +Class QByteRef + size=16 align=8 + base size=12 base align=8 +QByteRef (0x0x7f38b96aa240) 0 + +Class QStringDataPtr + size=8 align=8 + base size=8 base align=8 +QStringDataPtr (0x0x7f38b93450c0) 0 + +Class QStringView + size=16 align=8 + base size=16 base align=8 +QStringView (0x0x7f38b9345540) 0 + +Class QLatin1String + size=16 align=8 + base size=16 base align=8 +QLatin1String (0x0x7f38b941b300) 0 + +Class QString::Null + size=1 align=1 + base size=0 base align=1 +QString::Null (0x0x7f38b9499d20) 0 empty + +Class QString + size=8 align=8 + base size=8 base align=8 +QString (0x0x7f38b9499cc0) 0 + +Class QCharRef + size=16 align=8 + base size=12 base align=8 +QCharRef (0x0x7f38b927aea0) 0 + +Class QStringRef + size=16 align=8 + base size=16 base align=8 +QStringRef (0x0x7f38b901a720) 0 + +Class QtPrivate::QHashCombine + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombine (0x0x7f38b8e2da20) 0 empty + +Class QtPrivate::QHashCombineCommutative + size=1 align=1 + base size=0 base align=1 +QtPrivate::QHashCombineCommutative (0x0x7f38b8e2dae0) 0 empty + +Class std::_Bit_reference + size=16 align=8 + base size=16 base align=8 +std::_Bit_reference (0x0x7f38b8b12000) 0 + +Class std::_Bit_iterator_base + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator_base (0x0x7f38b90b8820) 0 + std::iterator (0x0x7f38b8b12720) 0 empty + +Class std::_Bit_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_iterator (0x0x7f38b90b8958) 0 + std::_Bit_iterator_base (0x0x7f38b90b89c0) 0 + std::iterator (0x0x7f38b8b12d80) 0 empty + +Class std::_Bit_const_iterator + size=16 align=8 + base size=12 base align=8 +std::_Bit_const_iterator (0x0x7f38b90b8a28) 0 + std::_Bit_iterator_base (0x0x7f38b90b8a90) 0 + std::iterator (0x0x7f38b8b445a0) 0 empty + +Class std::__detail::_List_node_base + size=16 align=8 + base size=16 base align=8 +std::__detail::_List_node_base (0x0x7f38b88f9c00) 0 + +Class QListData::NotArrayCompatibleLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotArrayCompatibleLayout (0x0x7f38b89fc9c0) 0 empty + +Class QListData::NotIndirectLayout + size=1 align=1 + base size=0 base align=1 +QListData::NotIndirectLayout (0x0x7f38b89fca20) 0 empty + +Class QListData::ArrayCompatibleLayout + size=1 align=1 + base size=1 base align=1 +QListData::ArrayCompatibleLayout (0x0x7f38b8c684e0) 0 empty + QListData::NotIndirectLayout (0x0x7f38b89fca80) 0 empty + +Class QListData::InlineWithPaddingLayout + size=1 align=1 + base size=1 base align=1 +QListData::InlineWithPaddingLayout (0x0x7f38b89f0150) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f38b89fcae0) 0 empty + QListData::NotIndirectLayout (0x0x7f38b89fcb40) 0 empty + +Class QListData::IndirectLayout + size=1 align=1 + base size=1 base align=1 +QListData::IndirectLayout (0x0x7f38b8c68548) 0 empty + QListData::NotArrayCompatibleLayout (0x0x7f38b89fcba0) 0 empty + +Class QListData::Data + size=24 align=8 + base size=24 base align=8 +QListData::Data (0x0x7f38b89fcc00) 0 + +Class QListData + size=8 align=8 + base size=8 base align=8 +QListData (0x0x7f38b89fc960) 0 + +Class QRegExp + size=8 align=8 + base size=8 base align=8 +QRegExp (0x0x7f38b86eade0) 0 + +Class QStringMatcher::Data + size=272 align=8 + base size=272 base align=8 +QStringMatcher::Data (0x0x7f38b87e3480) 0 + +Class QStringMatcher + size=1048 align=8 + base size=1048 base align=8 +QStringMatcher (0x0x7f38b87e3420) 0 + +Class QStringList + size=8 align=8 + base size=8 base align=8 +QStringList (0x0x7f38b87e7270) 0 + QList (0x0x7f38b87e72d8) 0 + QListSpecialMethods (0x0x7f38b87e36c0) 0 empty + +Class QScopedPointerPodDeleter + size=1 align=1 + base size=0 base align=1 +QScopedPointerPodDeleter (0x0x7f38b88ae240) 0 empty + +Class std::_Rb_tree_node_base + size=32 align=8 + base size=32 base align=8 +std::_Rb_tree_node_base (0x0x7f38b8535360) 0 + +Class std::_Rb_tree_header + size=40 align=8 + base size=40 base align=8 +std::_Rb_tree_header (0x0x7f38b85356c0) 0 + +Class std::__erased_type + size=1 align=1 + base size=0 base align=1 +std::__erased_type (0x0x7f38b8317c60) 0 empty + +Class std::allocator_arg_t + size=1 align=1 + base size=0 base align=1 +std::allocator_arg_t (0x0x7f38b8317cc0) 0 empty + +Class std::__uses_alloc_base + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc_base (0x0x7f38b8317e40) 0 empty + +Class std::__uses_alloc0::_Sink + size=1 align=1 + base size=0 base align=1 +std::__uses_alloc0::_Sink (0x0x7f38b8317f00) 0 empty + +Class std::__uses_alloc0 + size=1 align=1 + base size=1 base align=1 +std::__uses_alloc0 (0x0x7f38b86ae618) 0 + std::__uses_alloc_base (0x0x7f38b8317ea0) 0 empty + +Class std::_Swallow_assign + size=1 align=1 + base size=0 base align=1 +std::_Swallow_assign (0x0x7f38b84a52a0) 0 empty + +Class QtPrivate::AbstractDebugStreamFunction + size=16 align=8 + base size=16 base align=8 +QtPrivate::AbstractDebugStreamFunction (0x0x7f38b80ba720) 0 + +Class QtPrivate::AbstractComparatorFunction + size=24 align=8 + base size=24 base align=8 +QtPrivate::AbstractComparatorFunction (0x0x7f38b80baa80) 0 + +Class QtPrivate::AbstractConverterFunction + size=8 align=8 + base size=8 base align=8 +QtPrivate::AbstractConverterFunction (0x0x7f38b80e1000) 0 + +Class QMetaType + size=80 align=8 + base size=80 base align=8 +QMetaType (0x0x7f38b80e1540) 0 + +Class QtMetaTypePrivate::VariantData + size=24 align=8 + base size=20 base align=8 +QtMetaTypePrivate::VariantData (0x0x7f38b8148720) 0 + +Class QtMetaTypePrivate::VectorBoolElements + size=1 align=1 + base size=0 base align=1 +QtMetaTypePrivate::VectorBoolElements (0x0x7f38b8148de0) 0 empty + +Class QtMetaTypePrivate::QSequentialIterableImpl + size=104 align=8 + base size=104 base align=8 +QtMetaTypePrivate::QSequentialIterableImpl (0x0x7f38b817bc60) 0 + +Class QtMetaTypePrivate::QAssociativeIterableImpl + size=112 align=8 + base size=112 base align=8 +QtMetaTypePrivate::QAssociativeIterableImpl (0x0x7f38b825a360) 0 + +Class QtMetaTypePrivate::QPairVariantInterfaceImpl + size=40 align=8 + base size=40 base align=8 +QtMetaTypePrivate::QPairVariantInterfaceImpl (0x0x7f38b7eb38a0) 0 + +Class std::chrono::_V2::system_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::system_clock (0x0x7f38b7cf46c0) 0 empty + +Class std::chrono::_V2::steady_clock + size=1 align=1 + base size=0 base align=1 +std::chrono::_V2::steady_clock (0x0x7f38b7a23180) 0 empty + +Vtable for QObjectData +QObjectData::_ZTV11QObjectData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QObjectData) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))__cxa_pure_virtual + +Class QObjectData + size=48 align=8 + base size=48 base align=8 +QObjectData (0x0x7f38b7a231e0) 0 + vptr=((& QObjectData::_ZTV11QObjectData) + 16) + +Class QObject::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObject::QPrivateSignal (0x0x7f38b7a233c0) 0 empty + +Vtable for QObject +QObject::_ZTV7QObject: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QObject) +16 (int (*)(...))QObject::metaObject +24 (int (*)(...))QObject::qt_metacast +32 (int (*)(...))QObject::qt_metacall +40 (int (*)(...))QObject::~QObject +48 (int (*)(...))QObject::~QObject +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObject + size=16 align=8 + base size=16 base align=8 +QObject (0x0x7f38b7a23360) 0 + vptr=((& QObject::_ZTV7QObject) + 16) + +Vtable for QObjectUserData +QObjectUserData::_ZTV15QObjectUserData: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QObjectUserData) +16 (int (*)(...))QObjectUserData::~QObjectUserData +24 (int (*)(...))QObjectUserData::~QObjectUserData + +Class QObjectUserData + size=8 align=8 + base size=8 base align=8 +QObjectUserData (0x0x7f38b7aeb1e0) 0 nearly-empty + vptr=((& QObjectUserData::_ZTV15QObjectUserData) + 16) + +Class QSignalBlocker + size=16 align=8 + base size=10 base align=8 +QSignalBlocker (0x0x7f38b7aeb360) 0 + +Class QAbstractAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractAnimation::QPrivateSignal (0x0x7f38b7aebc00) 0 empty + +Vtable for QAbstractAnimation +QAbstractAnimation::_ZTV18QAbstractAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractAnimation) +16 (int (*)(...))QAbstractAnimation::metaObject +24 (int (*)(...))QAbstractAnimation::qt_metacast +32 (int (*)(...))QAbstractAnimation::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAbstractAnimation + size=16 align=8 + base size=16 base align=8 +QAbstractAnimation (0x0x7f38b7ac4820) 0 + vptr=((& QAbstractAnimation::_ZTV18QAbstractAnimation) + 16) + QObject (0x0x7f38b7aebba0) 0 + primary-for QAbstractAnimation (0x0x7f38b7ac4820) + +Class QAnimationDriver::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationDriver::QPrivateSignal (0x0x7f38b7b28000) 0 empty + +Vtable for QAnimationDriver +QAnimationDriver::_ZTV16QAnimationDriver: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QAnimationDriver) +16 (int (*)(...))QAnimationDriver::metaObject +24 (int (*)(...))QAnimationDriver::qt_metacast +32 (int (*)(...))QAnimationDriver::qt_metacall +40 (int (*)(...))QAnimationDriver::~QAnimationDriver +48 (int (*)(...))QAnimationDriver::~QAnimationDriver +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAnimationDriver::advance +120 (int (*)(...))QAnimationDriver::elapsed +128 (int (*)(...))QAnimationDriver::start +136 (int (*)(...))QAnimationDriver::stop + +Class QAnimationDriver + size=16 align=8 + base size=16 base align=8 +QAnimationDriver (0x0x7f38b7ac4888) 0 + vptr=((& QAnimationDriver::_ZTV16QAnimationDriver) + 16) + QObject (0x0x7f38b7aebf60) 0 + primary-for QAnimationDriver (0x0x7f38b7ac4888) + +Class QEventLoop::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventLoop::QPrivateSignal (0x0x7f38b7b28240) 0 empty + +Vtable for QEventLoop +QEventLoop::_ZTV10QEventLoop: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QEventLoop) +16 (int (*)(...))QEventLoop::metaObject +24 (int (*)(...))QEventLoop::qt_metacast +32 (int (*)(...))QEventLoop::qt_metacall +40 (int (*)(...))QEventLoop::~QEventLoop +48 (int (*)(...))QEventLoop::~QEventLoop +56 (int (*)(...))QEventLoop::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QEventLoop + size=16 align=8 + base size=16 base align=8 +QEventLoop (0x0x7f38b7ac48f0) 0 + vptr=((& QEventLoop::_ZTV10QEventLoop) + 16) + QObject (0x0x7f38b7b281e0) 0 + primary-for QEventLoop (0x0x7f38b7ac48f0) + +Class QEventLoopLocker + size=8 align=8 + base size=8 base align=8 +QEventLoopLocker (0x0x7f38b7b28ae0) 0 + +Class QAbstractEventDispatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractEventDispatcher::QPrivateSignal (0x0x7f38b7b28ba0) 0 empty + +Class QAbstractEventDispatcher::TimerInfo + size=12 align=4 + base size=12 base align=4 +QAbstractEventDispatcher::TimerInfo (0x0x7f38b7b28c00) 0 + +Vtable for QAbstractEventDispatcher +QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher: 28 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QAbstractEventDispatcher) +16 (int (*)(...))QAbstractEventDispatcher::metaObject +24 (int (*)(...))QAbstractEventDispatcher::qt_metacast +32 (int (*)(...))QAbstractEventDispatcher::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual +192 (int (*)(...))__cxa_pure_virtual +200 (int (*)(...))__cxa_pure_virtual +208 (int (*)(...))QAbstractEventDispatcher::startingUp +216 (int (*)(...))QAbstractEventDispatcher::closingDown + +Class QAbstractEventDispatcher + size=16 align=8 + base size=16 base align=8 +QAbstractEventDispatcher (0x0x7f38b7ac4a28) 0 + vptr=((& QAbstractEventDispatcher::_ZTV24QAbstractEventDispatcher) + 16) + QObject (0x0x7f38b7b28b40) 0 + primary-for QAbstractEventDispatcher (0x0x7f38b7ac4a28) + +Vtable for std::bad_function_call +std::bad_function_call::_ZTVSt17bad_function_call: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt17bad_function_call) +16 (int (*)(...))std::bad_function_call::~bad_function_call +24 (int (*)(...))std::bad_function_call::~bad_function_call +32 (int (*)(...))std::bad_function_call::what + +Class std::bad_function_call + size=8 align=8 + base size=8 base align=8 +std::bad_function_call (0x0x7f38b77f53a8) 0 nearly-empty + vptr=((& std::bad_function_call::_ZTVSt17bad_function_call) + 16) + std::exception (0x0x7f38b78042a0) 0 nearly-empty + primary-for std::bad_function_call (0x0x7f38b77f53a8) + +Class std::_Nocopy_types + size=16 align=8 + base size=16 base align=8 +std::_Nocopy_types (0x0x7f38b7804360) 0 + +Class std::_Any_data + size=16 align=8 + base size=16 base align=8 +std::_Any_data (0x0x7f38b78043c0) 0 + +Class std::_Function_base + size=24 align=8 + base size=24 base align=8 +std::_Function_base (0x0x7f38b78046c0) 0 + +Class QMapNodeBase + size=24 align=8 + base size=24 base align=8 +QMapNodeBase (0x0x7f38b75ff660) 0 + +Class QMapDataBase + size=40 align=8 + base size=40 base align=8 +QMapDataBase (0x0x7f38b7635300) 0 + +Class QHashData::Node + size=16 align=8 + base size=16 base align=8 +QHashData::Node (0x0x7f38b7700c60) 0 + +Class QHashData + size=48 align=8 + base size=44 base align=8 +QHashData (0x0x7f38b7700c00) 0 + +Class QHashDummyValue + size=1 align=1 + base size=0 base align=1 +QHashDummyValue (0x0x7f38b7700f00) 0 empty + +Class QVariant::PrivateShared + size=16 align=8 + base size=12 base align=8 +QVariant::PrivateShared (0x0x7f38b742c4e0) 0 + +Class QVariant::Private::Data + size=8 align=8 + base size=8 base align=8 +QVariant::Private::Data (0x0x7f38b742c5a0) 0 + +Class QVariant::Private + size=16 align=8 + base size=12 base align=8 +QVariant::Private (0x0x7f38b742c540) 0 + +Class QVariant::Handler + size=72 align=8 + base size=72 base align=8 +QVariant::Handler (0x0x7f38b742c600) 0 + +Class QVariant + size=16 align=8 + base size=16 base align=8 +QVariant (0x0x7f38b742c480) 0 + +Class QVariantComparisonHelper + size=8 align=8 + base size=8 base align=8 +QVariantComparisonHelper (0x0x7f38b75858a0) 0 + +Class QSequentialIterable::const_iterator + size=112 align=8 + base size=112 base align=8 +QSequentialIterable::const_iterator (0x0x7f38b75c9f00) 0 + +Class QSequentialIterable + size=104 align=8 + base size=104 base align=8 +QSequentialIterable (0x0x7f38b75c9ea0) 0 + +Class QAssociativeIterable::const_iterator + size=120 align=8 + base size=120 base align=8 +QAssociativeIterable::const_iterator (0x0x7f38b71f0060) 0 + +Class QAssociativeIterable + size=112 align=8 + base size=112 base align=8 +QAssociativeIterable (0x0x7f38b71f0000) 0 + +Class QModelIndex + size=24 align=8 + base size=24 base align=8 +QModelIndex (0x0x7f38b72b11e0) 0 + +Class QPersistentModelIndex + size=8 align=8 + base size=8 base align=8 +QPersistentModelIndex (0x0x7f38b7304de0) 0 + +Class QAbstractItemModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractItemModel::QPrivateSignal (0x0x7f38b73d2c00) 0 empty + +Vtable for QAbstractItemModel +QAbstractItemModel::_ZTV18QAbstractItemModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractItemModel) +16 (int (*)(...))QAbstractItemModel::metaObject +24 (int (*)(...))QAbstractItemModel::qt_metacast +32 (int (*)(...))QAbstractItemModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractItemModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractItemModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractItemModel + size=16 align=8 + base size=16 base align=8 +QAbstractItemModel (0x0x7f38b73cff70) 0 + vptr=((& QAbstractItemModel::_ZTV18QAbstractItemModel) + 16) + QObject (0x0x7f38b73d2ba0) 0 + primary-for QAbstractItemModel (0x0x7f38b73cff70) + +Class QAbstractTableModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTableModel::QPrivateSignal (0x0x7f38b70b3000) 0 empty + +Vtable for QAbstractTableModel +QAbstractTableModel::_ZTV19QAbstractTableModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTableModel) +16 (int (*)(...))QAbstractTableModel::metaObject +24 (int (*)(...))QAbstractTableModel::qt_metacast +32 (int (*)(...))QAbstractTableModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractTableModel::index +120 (int (*)(...))QAbstractTableModel::parent +128 (int (*)(...))QAbstractTableModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractTableModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractTableModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractTableModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractTableModel + size=16 align=8 + base size=16 base align=8 +QAbstractTableModel (0x0x7f38b70175b0) 0 + vptr=((& QAbstractTableModel::_ZTV19QAbstractTableModel) + 16) + QAbstractItemModel (0x0x7f38b7017618) 0 + primary-for QAbstractTableModel (0x0x7f38b70175b0) + QObject (0x0x7f38b7028f60) 0 + primary-for QAbstractItemModel (0x0x7f38b7017618) + +Class QAbstractListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractListModel::QPrivateSignal (0x0x7f38b70b3180) 0 empty + +Vtable for QAbstractListModel +QAbstractListModel::_ZTV18QAbstractListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QAbstractListModel) +16 (int (*)(...))QAbstractListModel::metaObject +24 (int (*)(...))QAbstractListModel::qt_metacast +32 (int (*)(...))QAbstractListModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QAbstractListModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))QAbstractItemModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QAbstractItemModel::itemData +200 (int (*)(...))QAbstractItemModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QAbstractListModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QAbstractListModel + size=16 align=8 + base size=16 base align=8 +QAbstractListModel (0x0x7f38b7017680) 0 + vptr=((& QAbstractListModel::_ZTV18QAbstractListModel) + 16) + QAbstractItemModel (0x0x7f38b70176e8) 0 + primary-for QAbstractListModel (0x0x7f38b7017680) + QObject (0x0x7f38b70b3120) 0 + primary-for QAbstractItemModel (0x0x7f38b70176e8) + +Vtable for QAbstractNativeEventFilter +QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI26QAbstractNativeEventFilter) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QAbstractNativeEventFilter + size=16 align=8 + base size=16 base align=8 +QAbstractNativeEventFilter (0x0x7f38b70b38a0) 0 + vptr=((& QAbstractNativeEventFilter::_ZTV26QAbstractNativeEventFilter) + 16) + +Class QAbstractProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractProxyModel::QPrivateSignal (0x0x7f38b70b3960) 0 empty + +Vtable for QAbstractProxyModel +QAbstractProxyModel::_ZTV19QAbstractProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractProxyModel) +16 (int (*)(...))QAbstractProxyModel::metaObject +24 (int (*)(...))QAbstractProxyModel::qt_metacast +32 (int (*)(...))QAbstractProxyModel::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QAbstractProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QAbstractProxyModel::setSourceModel +392 (int (*)(...))__cxa_pure_virtual +400 (int (*)(...))__cxa_pure_virtual +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QAbstractProxyModel + size=16 align=8 + base size=16 base align=8 +QAbstractProxyModel (0x0x7f38b70177b8) 0 + vptr=((& QAbstractProxyModel::_ZTV19QAbstractProxyModel) + 16) + QAbstractItemModel (0x0x7f38b7017820) 0 + primary-for QAbstractProxyModel (0x0x7f38b70177b8) + QObject (0x0x7f38b70b3900) 0 + primary-for QAbstractItemModel (0x0x7f38b7017820) + +Class QAbstractState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractState::QPrivateSignal (0x0x7f38b70b3ba0) 0 empty + +Vtable for QAbstractState +QAbstractState::_ZTV14QAbstractState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QAbstractState) +16 (int (*)(...))QAbstractState::metaObject +24 (int (*)(...))QAbstractState::qt_metacast +32 (int (*)(...))QAbstractState::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractState + size=16 align=8 + base size=16 base align=8 +QAbstractState (0x0x7f38b7017888) 0 + vptr=((& QAbstractState::_ZTV14QAbstractState) + 16) + QObject (0x0x7f38b70b3b40) 0 + primary-for QAbstractState (0x0x7f38b7017888) + +Class QAbstractTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAbstractTransition::QPrivateSignal (0x0x7f38b70b3de0) 0 empty + +Vtable for QAbstractTransition +QAbstractTransition::_ZTV19QAbstractTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QAbstractTransition) +16 (int (*)(...))QAbstractTransition::metaObject +24 (int (*)(...))QAbstractTransition::qt_metacast +32 (int (*)(...))QAbstractTransition::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAbstractTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QAbstractTransition + size=16 align=8 + base size=16 base align=8 +QAbstractTransition (0x0x7f38b70178f0) 0 + vptr=((& QAbstractTransition::_ZTV19QAbstractTransition) + 16) + QObject (0x0x7f38b70b3d80) 0 + primary-for QAbstractTransition (0x0x7f38b70178f0) + +Class QAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QAnimationGroup::QPrivateSignal (0x0x7f38b714c120) 0 empty + +Vtable for QAnimationGroup +QAnimationGroup::_ZTV15QAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QAnimationGroup) +16 (int (*)(...))QAnimationGroup::metaObject +24 (int (*)(...))QAnimationGroup::qt_metacast +32 (int (*)(...))QAnimationGroup::qt_metacall +40 0 +48 0 +56 (int (*)(...))QAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QAnimationGroup + size=16 align=8 + base size=16 base align=8 +QAnimationGroup (0x0x7f38b7017958) 0 + vptr=((& QAnimationGroup::_ZTV15QAnimationGroup) + 16) + QAbstractAnimation (0x0x7f38b70179c0) 0 + primary-for QAnimationGroup (0x0x7f38b7017958) + QObject (0x0x7f38b714c0c0) 0 + primary-for QAbstractAnimation (0x0x7f38b70179c0) + +Class QBasicTimer + size=4 align=4 + base size=4 base align=4 +QBasicTimer (0x0x7f38b719c480) 0 + +Class QBitArray + size=8 align=8 + base size=8 base align=8 +QBitArray (0x0x7f38b71dc840) 0 + +Class QBitRef + size=16 align=8 + base size=12 base align=8 +QBitRef (0x0x7f38b6e2dcc0) 0 + +Class QIODevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIODevice::QPrivateSignal (0x0x7f38b6e9f0c0) 0 empty + +Vtable for QIODevice +QIODevice::_ZTV9QIODevice: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QIODevice) +16 (int (*)(...))QIODevice::metaObject +24 (int (*)(...))QIODevice::qt_metacast +32 (int (*)(...))QIODevice::qt_metacall +40 0 +48 0 +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QIODevice::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QIODevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))__cxa_pure_virtual +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))__cxa_pure_virtual + +Class QIODevice + size=16 align=8 + base size=16 base align=8 +QIODevice (0x0x7f38b6e89f08) 0 + vptr=((& QIODevice::_ZTV9QIODevice) + 16) + QObject (0x0x7f38b6e9f060) 0 + primary-for QIODevice (0x0x7f38b6e89f08) + +Class QBuffer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QBuffer::QPrivateSignal (0x0x7f38b6e9fa20) 0 empty + +Vtable for QBuffer +QBuffer::_ZTV7QBuffer: 30 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QBuffer) +16 (int (*)(...))QBuffer::metaObject +24 (int (*)(...))QBuffer::qt_metacast +32 (int (*)(...))QBuffer::qt_metacall +40 (int (*)(...))QBuffer::~QBuffer +48 (int (*)(...))QBuffer::~QBuffer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QBuffer::connectNotify +104 (int (*)(...))QBuffer::disconnectNotify +112 (int (*)(...))QIODevice::isSequential +120 (int (*)(...))QBuffer::open +128 (int (*)(...))QBuffer::close +136 (int (*)(...))QBuffer::pos +144 (int (*)(...))QBuffer::size +152 (int (*)(...))QBuffer::seek +160 (int (*)(...))QBuffer::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QBuffer::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QBuffer::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QBuffer::writeData + +Class QBuffer + size=16 align=8 + base size=16 base align=8 +QBuffer (0x0x7f38b6ec1068) 0 + vptr=((& QBuffer::_ZTV7QBuffer) + 16) + QIODevice (0x0x7f38b6ec10d0) 0 + primary-for QBuffer (0x0x7f38b6ec1068) + QObject (0x0x7f38b6e9f9c0) 0 + primary-for QIODevice (0x0x7f38b6ec10d0) + +Class QByteArrayMatcher::Data + size=272 align=8 + base size=272 base align=8 +QByteArrayMatcher::Data (0x0x7f38b6e9fcc0) 0 + +Class QByteArrayMatcher + size=1040 align=8 + base size=1040 base align=8 +QByteArrayMatcher (0x0x7f38b6e9fc60) 0 + +Class QStaticByteArrayMatcherBase::Skiptable + size=256 align=1 + base size=256 base align=1 +QStaticByteArrayMatcherBase::Skiptable (0x0x7f38b6e9fe40) 0 + +Class QStaticByteArrayMatcherBase + size=256 align=16 + base size=256 base align=16 +QStaticByteArrayMatcherBase (0x0x7f38b6e9fde0) 0 + +Class QSharedData + size=4 align=4 + base size=4 base align=4 +QSharedData (0x0x7f38b6f07d20) 0 + +Class QDate + size=8 align=8 + base size=8 base align=8 +QDate (0x0x7f38b6f62cc0) 0 + +Class QTime + size=4 align=4 + base size=4 base align=4 +QTime (0x0x7f38b6fcf5a0) 0 + +Class QDateTime::ShortData + size=8 align=8 + base size=8 base align=8 +QDateTime::ShortData (0x0x7f38b6c38240) 0 + +Class QDateTime::Data + size=8 align=8 + base size=8 base align=8 +QDateTime::Data (0x0x7f38b6c382a0) 0 + +Class QDateTime + size=8 align=8 + base size=8 base align=8 +QDateTime (0x0x7f38b6c381e0) 0 + +Class QLocale + size=8 align=8 + base size=8 base align=8 +QLocale (0x0x7f38b6d0c960) 0 + +Vtable for QTextStream +QTextStream::_ZTV11QTextStream: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTextStream) +16 (int (*)(...))QTextStream::~QTextStream +24 (int (*)(...))QTextStream::~QTextStream + +Class QTextStream + size=16 align=8 + base size=16 base align=8 +QTextStream (0x0x7f38b69f6f00) 0 + vptr=((& QTextStream::_ZTV11QTextStream) + 16) + +Class QTextStreamManipulator + size=40 align=8 + base size=38 base align=8 +QTextStreamManipulator (0x0x7f38b6a5b7e0) 0 + +Class QContiguousCacheData + size=24 align=4 + base size=24 base align=4 +QContiguousCacheData (0x0x7f38b6b00300) 0 + +Class QtSharedPointer::NormalDeleter + size=1 align=1 + base size=0 base align=1 +QtSharedPointer::NormalDeleter (0x0x7f38b6b27f60) 0 empty + +Class QtSharedPointer::ExternalRefCountData + size=16 align=8 + base size=16 base align=8 +QtSharedPointer::ExternalRefCountData (0x0x7f38b6b57120) 0 + +Class QDebug::Stream + size=80 align=8 + base size=76 base align=8 +QDebug::Stream (0x0x7f38b6bdcd20) 0 + +Class QDebug + size=8 align=8 + base size=8 base align=8 +QDebug (0x0x7f38b6bdccc0) 0 + +Class QDebugStateSaver + size=8 align=8 + base size=8 base align=8 +QDebugStateSaver (0x0x7f38b6984d80) 0 + +Class QNoDebug + size=1 align=1 + base size=0 base align=1 +QNoDebug (0x0x7f38b6984e40) 0 empty + +Class QCborError + size=4 align=4 + base size=4 base align=4 +QCborError (0x0x7f38b6633180) 0 + +Class QRegularExpression + size=8 align=8 + base size=8 base align=8 +QRegularExpression (0x0x7f38b6633900) 0 + +Class QRegularExpressionMatch + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatch (0x0x7f38b66dc7e0) 0 + +Class QRegularExpressionMatchIterator + size=8 align=8 + base size=8 base align=8 +QRegularExpressionMatchIterator (0x0x7f38b67495a0) 0 + +Class QUrl + size=8 align=8 + base size=8 base align=8 +QUrl (0x0x7f38b67bf000) 0 + +Class QUuid + size=16 align=4 + base size=16 base align=4 +QUuid (0x0x7f38b64e6f60) 0 + +Class QCborParserError + size=16 align=8 + base size=12 base align=8 +QCborParserError (0x0x7f38b6576ae0) 0 + +Class QCborValue + size=24 align=8 + base size=20 base align=8 +QCborValue (0x0x7f38b6576ba0) 0 + +Class QCborValueRef + size=16 align=8 + base size=16 base align=8 +QCborValueRef (0x0x7f38b5febba0) 0 + +Class QCborArray::Iterator + size=16 align=8 + base size=16 base align=8 +QCborArray::Iterator (0x0x7f38b6081600) 0 + +Class QCborArray::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborArray::ConstIterator (0x0x7f38b6081660) 0 + +Class QCborArray + size=8 align=8 + base size=8 base align=8 +QCborArray (0x0x7f38b60815a0) 0 + +Class QCborMap::Iterator + size=16 align=8 + base size=16 base align=8 +QCborMap::Iterator (0x0x7f38b6195060) 0 + +Class QCborMap::ConstIterator + size=16 align=8 + base size=16 base align=8 +QCborMap::ConstIterator (0x0x7f38b61950c0) 0 + +Class QCborMap + size=8 align=8 + base size=8 base align=8 +QCborMap (0x0x7f38b6195000) 0 + +Class qfloat16 + size=2 align=2 + base size=2 base align=2 +qfloat16 (0x0x7f38b5f8b7e0) 0 + +Class QCborStreamWriter + size=8 align=8 + base size=8 base align=8 +QCborStreamWriter (0x0x7f38b5c48780) 0 + +Class QCborStreamReader + size=24 align=8 + base size=20 base align=8 +QCborStreamReader (0x0x7f38b5c7a4e0) 0 + +Class QCollatorSortKey + size=8 align=8 + base size=8 base align=8 +QCollatorSortKey (0x0x7f38b5cfe600) 0 + +Class QCollator + size=8 align=8 + base size=8 base align=8 +QCollator (0x0x7f38b5cfe7e0) 0 + +Class QCommandLineOption + size=8 align=8 + base size=8 base align=8 +QCommandLineOption (0x0x7f38b59f6d80) 0 + +Vtable for QEvent +QEvent::_ZTV6QEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QEvent) +16 (int (*)(...))QEvent::~QEvent +24 (int (*)(...))QEvent::~QEvent + +Class QEvent + size=24 align=8 + base size=20 base align=8 +QEvent (0x0x7f38b5a824e0) 0 + vptr=((& QEvent::_ZTV6QEvent) + 16) + +Vtable for QTimerEvent +QTimerEvent::_ZTV11QTimerEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTimerEvent) +16 (int (*)(...))QTimerEvent::~QTimerEvent +24 (int (*)(...))QTimerEvent::~QTimerEvent + +Class QTimerEvent + size=24 align=8 + base size=24 base align=8 +QTimerEvent (0x0x7f38b5a64270) 0 + vptr=((& QTimerEvent::_ZTV11QTimerEvent) + 16) + QEvent (0x0x7f38b5a828a0) 0 + primary-for QTimerEvent (0x0x7f38b5a64270) + +Vtable for QChildEvent +QChildEvent::_ZTV11QChildEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QChildEvent) +16 (int (*)(...))QChildEvent::~QChildEvent +24 (int (*)(...))QChildEvent::~QChildEvent + +Class QChildEvent + size=32 align=8 + base size=32 base align=8 +QChildEvent (0x0x7f38b5a642d8) 0 + vptr=((& QChildEvent::_ZTV11QChildEvent) + 16) + QEvent (0x0x7f38b5a82960) 0 + primary-for QChildEvent (0x0x7f38b5a642d8) + +Vtable for QDynamicPropertyChangeEvent +QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI27QDynamicPropertyChangeEvent) +16 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent +24 (int (*)(...))QDynamicPropertyChangeEvent::~QDynamicPropertyChangeEvent + +Class QDynamicPropertyChangeEvent + size=32 align=8 + base size=32 base align=8 +QDynamicPropertyChangeEvent (0x0x7f38b5a64820) 0 + vptr=((& QDynamicPropertyChangeEvent::_ZTV27QDynamicPropertyChangeEvent) + 16) + QEvent (0x0x7f38b5abe000) 0 + primary-for QDynamicPropertyChangeEvent (0x0x7f38b5a64820) + +Vtable for QDeferredDeleteEvent +QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QDeferredDeleteEvent) +16 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent +24 (int (*)(...))QDeferredDeleteEvent::~QDeferredDeleteEvent + +Class QDeferredDeleteEvent + size=24 align=8 + base size=24 base align=8 +QDeferredDeleteEvent (0x0x7f38b5a64888) 0 + vptr=((& QDeferredDeleteEvent::_ZTV20QDeferredDeleteEvent) + 16) + QEvent (0x0x7f38b5abe0c0) 0 + primary-for QDeferredDeleteEvent (0x0x7f38b5a64888) + +Class QCoreApplication::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QCoreApplication::QPrivateSignal (0x0x7f38b5abe1e0) 0 empty + +Vtable for QCoreApplication +QCoreApplication::_ZTV16QCoreApplication: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QCoreApplication) +16 (int (*)(...))QCoreApplication::metaObject +24 (int (*)(...))QCoreApplication::qt_metacast +32 (int (*)(...))QCoreApplication::qt_metacall +40 (int (*)(...))QCoreApplication::~QCoreApplication +48 (int (*)(...))QCoreApplication::~QCoreApplication +56 (int (*)(...))QCoreApplication::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QCoreApplication::notify +120 (int (*)(...))QCoreApplication::compressEvent + +Class QCoreApplication + size=16 align=8 + base size=16 base align=8 +QCoreApplication (0x0x7f38b5a648f0) 0 + vptr=((& QCoreApplication::_ZTV16QCoreApplication) + 16) + QObject (0x0x7f38b5abe180) 0 + primary-for QCoreApplication (0x0x7f38b5a648f0) + +Class QCommandLineParser + size=8 align=8 + base size=8 base align=8 +QCommandLineParser (0x0x7f38b5abe420) 0 + +Class QConcatenateTablesProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QConcatenateTablesProxyModel::QPrivateSignal (0x0x7f38b5abe5a0) 0 empty + +Vtable for QConcatenateTablesProxyModel +QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI28QConcatenateTablesProxyModel) +16 (int (*)(...))QConcatenateTablesProxyModel::metaObject +24 (int (*)(...))QConcatenateTablesProxyModel::qt_metacast +32 (int (*)(...))QConcatenateTablesProxyModel::qt_metacall +40 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +48 (int (*)(...))QConcatenateTablesProxyModel::~QConcatenateTablesProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QConcatenateTablesProxyModel::index +120 (int (*)(...))QConcatenateTablesProxyModel::parent +128 (int (*)(...))QAbstractItemModel::sibling +136 (int (*)(...))QConcatenateTablesProxyModel::rowCount +144 (int (*)(...))QConcatenateTablesProxyModel::columnCount +152 (int (*)(...))QAbstractItemModel::hasChildren +160 (int (*)(...))QConcatenateTablesProxyModel::data +168 (int (*)(...))QConcatenateTablesProxyModel::setData +176 (int (*)(...))QConcatenateTablesProxyModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QConcatenateTablesProxyModel::itemData +200 (int (*)(...))QConcatenateTablesProxyModel::setItemData +208 (int (*)(...))QConcatenateTablesProxyModel::mimeTypes +216 (int (*)(...))QConcatenateTablesProxyModel::mimeData +224 (int (*)(...))QConcatenateTablesProxyModel::canDropMimeData +232 (int (*)(...))QConcatenateTablesProxyModel::dropMimeData +240 (int (*)(...))QAbstractItemModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QAbstractItemModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QAbstractItemModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QConcatenateTablesProxyModel::flags +328 (int (*)(...))QAbstractItemModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QConcatenateTablesProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QConcatenateTablesProxyModel + size=16 align=8 + base size=16 base align=8 +QConcatenateTablesProxyModel (0x0x7f38b5a64958) 0 + vptr=((& QConcatenateTablesProxyModel::_ZTV28QConcatenateTablesProxyModel) + 16) + QAbstractItemModel (0x0x7f38b5a649c0) 0 + primary-for QConcatenateTablesProxyModel (0x0x7f38b5a64958) + QObject (0x0x7f38b5abe540) 0 + primary-for QAbstractItemModel (0x0x7f38b5a649c0) + +Class QCryptographicHash + size=8 align=8 + base size=8 base align=8 +QCryptographicHash (0x0x7f38b5abe780) 0 + +Class QDataStream + size=32 align=8 + base size=32 base align=8 +QDataStream (0x0x7f38b5abe8a0) 0 + +Class QtPrivate::StreamStateSaver + size=16 align=8 + base size=12 base align=8 +QtPrivate::StreamStateSaver (0x0x7f38b5abea20) 0 + +Class QElapsedTimer + size=16 align=8 + base size=16 base align=8 +QElapsedTimer (0x0x7f38b5b7e180) 0 + +Class QDeadlineTimer + size=16 align=8 + base size=16 base align=8 +QDeadlineTimer (0x0x7f38b5b7e8a0) 0 + +Class QFileDevice::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileDevice::QPrivateSignal (0x0x7f38b58c3600) 0 empty + +Vtable for QFileDevice +QFileDevice::_ZTV11QFileDevice: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFileDevice) +16 (int (*)(...))QFileDevice::metaObject +24 (int (*)(...))QFileDevice::qt_metacast +32 (int (*)(...))QFileDevice::qt_metacall +40 (int (*)(...))QFileDevice::~QFileDevice +48 (int (*)(...))QFileDevice::~QFileDevice +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QIODevice::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFileDevice::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QFileDevice + size=16 align=8 + base size=16 base align=8 +QFileDevice (0x0x7f38b58b5bc8) 0 + vptr=((& QFileDevice::_ZTV11QFileDevice) + 16) + QIODevice (0x0x7f38b58b5c30) 0 + primary-for QFileDevice (0x0x7f38b58b5bc8) + QObject (0x0x7f38b58c35a0) 0 + primary-for QIODevice (0x0x7f38b58b5c30) + +Class QFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFile::QPrivateSignal (0x0x7f38b58c3f00) 0 empty + +Vtable for QFile +QFile::_ZTV5QFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI5QFile) +16 (int (*)(...))QFile::metaObject +24 (int (*)(...))QFile::qt_metacast +32 (int (*)(...))QFile::qt_metacall +40 (int (*)(...))QFile::~QFile +48 (int (*)(...))QFile::~QFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QFile + size=16 align=8 + base size=16 base align=8 +QFile (0x0x7f38b58b5d68) 0 + vptr=((& QFile::_ZTV5QFile) + 16) + QFileDevice (0x0x7f38b58b5dd0) 0 + primary-for QFile (0x0x7f38b58b5d68) + QIODevice (0x0x7f38b58b5e38) 0 + primary-for QFileDevice (0x0x7f38b58b5dd0) + QObject (0x0x7f38b58c3ea0) 0 + primary-for QIODevice (0x0x7f38b58b5e38) + +Class QFileInfo + size=8 align=8 + base size=8 base align=8 +QFileInfo (0x0x7f38b59265a0) 0 + +Class QDir + size=8 align=8 + base size=8 base align=8 +QDir (0x0x7f38b5992960) 0 + +Class QDirIterator + size=8 align=8 + base size=8 base align=8 +QDirIterator (0x0x7f38b55ffcc0) 0 + +Class QEasingCurve + size=8 align=8 + base size=8 base align=8 +QEasingCurve (0x0x7f38b564c480) 0 + +Class QEventTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QEventTransition::QPrivateSignal (0x0x7f38b57565a0) 0 empty + +Vtable for QEventTransition +QEventTransition::_ZTV16QEventTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QEventTransition) +16 (int (*)(...))QEventTransition::metaObject +24 (int (*)(...))QEventTransition::qt_metacast +32 (int (*)(...))QEventTransition::qt_metacall +40 (int (*)(...))QEventTransition::~QEventTransition +48 (int (*)(...))QEventTransition::~QEventTransition +56 (int (*)(...))QEventTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QEventTransition::eventTest +120 (int (*)(...))QEventTransition::onTransition + +Class QEventTransition + size=16 align=8 + base size=16 base align=8 +QEventTransition (0x0x7f38b575e0d0) 0 + vptr=((& QEventTransition::_ZTV16QEventTransition) + 16) + QAbstractTransition (0x0x7f38b575e138) 0 + primary-for QEventTransition (0x0x7f38b575e0d0) + QObject (0x0x7f38b5756540) 0 + primary-for QAbstractTransition (0x0x7f38b575e138) + +Vtable for QException +QException::_ZTV10QException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QException) +16 (int (*)(...))QException::~QException +24 (int (*)(...))QException::~QException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QException::raise +48 (int (*)(...))QException::clone + +Class QException + size=8 align=8 + base size=8 base align=8 +QException (0x0x7f38b575e1a0) 0 nearly-empty + vptr=((& QException::_ZTV10QException) + 16) + std::exception (0x0x7f38b5756780) 0 nearly-empty + primary-for QException (0x0x7f38b575e1a0) + +Vtable for QUnhandledException +QUnhandledException::_ZTV19QUnhandledException: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QUnhandledException) +16 (int (*)(...))QUnhandledException::~QUnhandledException +24 (int (*)(...))QUnhandledException::~QUnhandledException +32 (int (*)(...))std::exception::what +40 (int (*)(...))QUnhandledException::raise +48 (int (*)(...))QUnhandledException::clone + +Class QUnhandledException + size=8 align=8 + base size=8 base align=8 +QUnhandledException (0x0x7f38b575e208) 0 nearly-empty + vptr=((& QUnhandledException::_ZTV19QUnhandledException) + 16) + QException (0x0x7f38b575e270) 0 nearly-empty + primary-for QUnhandledException (0x0x7f38b575e208) + std::exception (0x0x7f38b57567e0) 0 nearly-empty + primary-for QException (0x0x7f38b575e270) + +Class QtPrivate::ExceptionHolder + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionHolder (0x0x7f38b5756840) 0 + +Class QtPrivate::ExceptionStore + size=8 align=8 + base size=8 base align=8 +QtPrivate::ExceptionStore (0x0x7f38b5756900) 0 + +Vtable for QFactoryInterface +QFactoryInterface::_ZTV17QFactoryInterface: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QFactoryInterface) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class QFactoryInterface + size=8 align=8 + base size=8 base align=8 +QFactoryInterface (0x0x7f38b5756960) 0 nearly-empty + vptr=((& QFactoryInterface::_ZTV17QFactoryInterface) + 16) + +Class QFileSelector::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSelector::QPrivateSignal (0x0x7f38b5756ba0) 0 empty + +Vtable for QFileSelector +QFileSelector::_ZTV13QFileSelector: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QFileSelector) +16 (int (*)(...))QFileSelector::metaObject +24 (int (*)(...))QFileSelector::qt_metacast +32 (int (*)(...))QFileSelector::qt_metacall +40 (int (*)(...))QFileSelector::~QFileSelector +48 (int (*)(...))QFileSelector::~QFileSelector +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSelector + size=16 align=8 + base size=16 base align=8 +QFileSelector (0x0x7f38b575e2d8) 0 + vptr=((& QFileSelector::_ZTV13QFileSelector) + 16) + QObject (0x0x7f38b5756b40) 0 + primary-for QFileSelector (0x0x7f38b575e2d8) + +Class QFileSystemWatcher::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFileSystemWatcher::QPrivateSignal (0x0x7f38b5756de0) 0 empty + +Vtable for QFileSystemWatcher +QFileSystemWatcher::_ZTV18QFileSystemWatcher: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFileSystemWatcher) +16 (int (*)(...))QFileSystemWatcher::metaObject +24 (int (*)(...))QFileSystemWatcher::qt_metacast +32 (int (*)(...))QFileSystemWatcher::qt_metacall +40 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +48 (int (*)(...))QFileSystemWatcher::~QFileSystemWatcher +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QFileSystemWatcher + size=16 align=8 + base size=16 base align=8 +QFileSystemWatcher (0x0x7f38b575e340) 0 + vptr=((& QFileSystemWatcher::_ZTV18QFileSystemWatcher) + 16) + QObject (0x0x7f38b5756d80) 0 + primary-for QFileSystemWatcher (0x0x7f38b575e340) + +Class QFinalState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFinalState::QPrivateSignal (0x0x7f38b53ac060) 0 empty + +Vtable for QFinalState +QFinalState::_ZTV11QFinalState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QFinalState) +16 (int (*)(...))QFinalState::metaObject +24 (int (*)(...))QFinalState::qt_metacast +32 (int (*)(...))QFinalState::qt_metacall +40 (int (*)(...))QFinalState::~QFinalState +48 (int (*)(...))QFinalState::~QFinalState +56 (int (*)(...))QFinalState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFinalState::onEntry +120 (int (*)(...))QFinalState::onExit + +Class QFinalState + size=16 align=8 + base size=16 base align=8 +QFinalState (0x0x7f38b575e3a8) 0 + vptr=((& QFinalState::_ZTV11QFinalState) + 16) + QAbstractState (0x0x7f38b575e410) 0 + primary-for QFinalState (0x0x7f38b575e3a8) + QObject (0x0x7f38b53ac000) 0 + primary-for QAbstractState (0x0x7f38b575e410) + +Vtable for QRunnable +QRunnable::_ZTV9QRunnable: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QRunnable) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class QRunnable + size=16 align=8 + base size=12 base align=8 +QRunnable (0x0x7f38b53ac240) 0 + vptr=((& QRunnable::_ZTV9QRunnable) + 16) + +Class QBasicMutex + size=8 align=8 + base size=8 base align=8 +QBasicMutex (0x0x7f38b53ac4e0) 0 + +Class QMutex + size=8 align=8 + base size=8 base align=8 +QMutex (0x0x7f38b575e4e0) 0 + QBasicMutex (0x0x7f38b5432180) 0 + +Class QMutexLocker + size=8 align=8 + base size=8 base align=8 +QMutexLocker (0x0x7f38b54323c0) 0 + +Class QtPrivate::ResultItem + size=16 align=8 + base size=16 base align=8 +QtPrivate::ResultItem (0x0x7f38b5432840) 0 + +Class QtPrivate::ResultIteratorBase + size=16 align=8 + base size=12 base align=8 +QtPrivate::ResultIteratorBase (0x0x7f38b5432e40) 0 + +Vtable for QtPrivate::ResultStoreBase +QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9QtPrivate15ResultStoreBaseE) +16 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase +24 (int (*)(...))QtPrivate::ResultStoreBase::~ResultStoreBase + +Class QtPrivate::ResultStoreBase + size=48 align=8 + base size=44 base align=8 +QtPrivate::ResultStoreBase (0x0x7f38b5487060) 0 + vptr=((& QtPrivate::ResultStoreBase::_ZTVN9QtPrivate15ResultStoreBaseE) + 16) + +Vtable for QFutureInterfaceBase +QFutureInterfaceBase::_ZTV20QFutureInterfaceBase: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QFutureInterfaceBase) +16 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase +24 (int (*)(...))QFutureInterfaceBase::~QFutureInterfaceBase + +Class QFutureInterfaceBase + size=16 align=8 + base size=16 base align=8 +QFutureInterfaceBase (0x0x7f38b54d4840) 0 + vptr=((& QFutureInterfaceBase::_ZTV20QFutureInterfaceBase) + 16) + +Class QFutureWatcherBase::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QFutureWatcherBase::QPrivateSignal (0x0x7f38b5572b40) 0 empty + +Vtable for QFutureWatcherBase +QFutureWatcherBase::_ZTV18QFutureWatcherBase: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QFutureWatcherBase) +16 (int (*)(...))QFutureWatcherBase::metaObject +24 (int (*)(...))QFutureWatcherBase::qt_metacast +32 (int (*)(...))QFutureWatcherBase::qt_metacall +40 0 +48 0 +56 (int (*)(...))QFutureWatcherBase::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QFutureWatcherBase::connectNotify +104 (int (*)(...))QFutureWatcherBase::disconnectNotify +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QFutureWatcherBase + size=16 align=8 + base size=16 base align=8 +QFutureWatcherBase (0x0x7f38b5502af8) 0 + vptr=((& QFutureWatcherBase::_ZTV18QFutureWatcherBase) + 16) + QObject (0x0x7f38b5572ae0) 0 + primary-for QFutureWatcherBase (0x0x7f38b5502af8) + +Class QHistoryState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QHistoryState::QPrivateSignal (0x0x7f38b5599ea0) 0 empty + +Vtable for QHistoryState +QHistoryState::_ZTV13QHistoryState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QHistoryState) +16 (int (*)(...))QHistoryState::metaObject +24 (int (*)(...))QHistoryState::qt_metacast +32 (int (*)(...))QHistoryState::qt_metacall +40 (int (*)(...))QHistoryState::~QHistoryState +48 (int (*)(...))QHistoryState::~QHistoryState +56 (int (*)(...))QHistoryState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QHistoryState::onEntry +120 (int (*)(...))QHistoryState::onExit + +Class QHistoryState + size=16 align=8 + base size=16 base align=8 +QHistoryState (0x0x7f38b51b3340) 0 + vptr=((& QHistoryState::_ZTV13QHistoryState) + 16) + QAbstractState (0x0x7f38b51b33a8) 0 + primary-for QHistoryState (0x0x7f38b51b3340) + QObject (0x0x7f38b5599e40) 0 + primary-for QAbstractState (0x0x7f38b51b33a8) + +Class QIdentityProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QIdentityProxyModel::QPrivateSignal (0x0x7f38b51cb1e0) 0 empty + +Vtable for QIdentityProxyModel +QIdentityProxyModel::_ZTV19QIdentityProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QIdentityProxyModel) +16 (int (*)(...))QIdentityProxyModel::metaObject +24 (int (*)(...))QIdentityProxyModel::qt_metacast +32 (int (*)(...))QIdentityProxyModel::qt_metacall +40 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +48 (int (*)(...))QIdentityProxyModel::~QIdentityProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QIdentityProxyModel::index +120 (int (*)(...))QIdentityProxyModel::parent +128 (int (*)(...))QIdentityProxyModel::sibling +136 (int (*)(...))QIdentityProxyModel::rowCount +144 (int (*)(...))QIdentityProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QIdentityProxyModel::headerData +184 (int (*)(...))QAbstractProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QIdentityProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QIdentityProxyModel::insertRows +264 (int (*)(...))QIdentityProxyModel::insertColumns +272 (int (*)(...))QIdentityProxyModel::removeRows +280 (int (*)(...))QIdentityProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QAbstractProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QIdentityProxyModel::match +352 (int (*)(...))QAbstractProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QIdentityProxyModel::setSourceModel +392 (int (*)(...))QIdentityProxyModel::mapToSource +400 (int (*)(...))QIdentityProxyModel::mapFromSource +408 (int (*)(...))QIdentityProxyModel::mapSelectionToSource +416 (int (*)(...))QIdentityProxyModel::mapSelectionFromSource + +Class QIdentityProxyModel + size=16 align=8 + base size=16 base align=8 +QIdentityProxyModel (0x0x7f38b51b3410) 0 + vptr=((& QIdentityProxyModel::_ZTV19QIdentityProxyModel) + 16) + QAbstractProxyModel (0x0x7f38b51b3478) 0 + primary-for QIdentityProxyModel (0x0x7f38b51b3410) + QAbstractItemModel (0x0x7f38b51b34e0) 0 + primary-for QAbstractProxyModel (0x0x7f38b51b3478) + QObject (0x0x7f38b51cb180) 0 + primary-for QAbstractItemModel (0x0x7f38b51b34e0) + +Class QItemSelectionRange + size=16 align=8 + base size=16 base align=8 +QItemSelectionRange (0x0x7f38b51cb3c0) 0 + +Class QItemSelectionModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QItemSelectionModel::QPrivateSignal (0x0x7f38b5285cc0) 0 empty + +Vtable for QItemSelectionModel +QItemSelectionModel::_ZTV19QItemSelectionModel: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI19QItemSelectionModel) +16 (int (*)(...))QItemSelectionModel::metaObject +24 (int (*)(...))QItemSelectionModel::qt_metacast +32 (int (*)(...))QItemSelectionModel::qt_metacall +40 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +48 (int (*)(...))QItemSelectionModel::~QItemSelectionModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QItemSelectionModel::setCurrentIndex +120 (int (*)(...))QItemSelectionModel::select +128 (int (*)(...))QItemSelectionModel::select +136 (int (*)(...))QItemSelectionModel::clear +144 (int (*)(...))QItemSelectionModel::reset +152 (int (*)(...))QItemSelectionModel::clearCurrentIndex + +Class QItemSelectionModel + size=16 align=8 + base size=16 base align=8 +QItemSelectionModel (0x0x7f38b5283e38) 0 + vptr=((& QItemSelectionModel::_ZTV19QItemSelectionModel) + 16) + QObject (0x0x7f38b5285c60) 0 + primary-for QItemSelectionModel (0x0x7f38b5283e38) + +Class QItemSelection + size=8 align=8 + base size=8 base align=8 +QItemSelection (0x0x7f38b5304000) 0 + QList (0x0x7f38b5304068) 0 + QListSpecialMethods (0x0x7f38b52bc7e0) 0 empty + +Class QJsonValue + size=24 align=8 + base size=20 base align=8 +QJsonValue (0x0x7f38b5354120) 0 + +Class QJsonValueRef + size=16 align=8 + base size=12 base align=8 +QJsonValueRef (0x0x7f38b50ae300) 0 + +Class QJsonValuePtr + size=24 align=8 + base size=24 base align=8 +QJsonValuePtr (0x0x7f38b50f62a0) 0 + +Class QJsonValueRefPtr + size=16 align=8 + base size=16 base align=8 +QJsonValueRefPtr (0x0x7f38b50f6540) 0 + +Class QJsonArray::iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::iterator (0x0x7f38b51388a0) 0 + +Class QJsonArray::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonArray::const_iterator (0x0x7f38b5138900) 0 + +Class QJsonArray + size=16 align=8 + base size=16 base align=8 +QJsonArray (0x0x7f38b5138840) 0 + +Class QJsonParseError + size=8 align=4 + base size=8 base align=4 +QJsonParseError (0x0x7f38b4e657e0) 0 + +Class QJsonDocument + size=8 align=8 + base size=8 base align=8 +QJsonDocument (0x0x7f38b4e65840) 0 + +Class QJsonObject::iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::iterator (0x0x7f38b4ed5060) 0 + +Class QJsonObject::const_iterator + size=16 align=8 + base size=12 base align=8 +QJsonObject::const_iterator (0x0x7f38b4ed50c0) 0 + +Class QJsonObject + size=16 align=8 + base size=16 base align=8 +QJsonObject (0x0x7f38b4ed5000) 0 + +Class QLibrary::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QLibrary::QPrivateSignal (0x0x7f38b4be6420) 0 empty + +Vtable for QLibrary +QLibrary::_ZTV8QLibrary: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QLibrary) +16 (int (*)(...))QLibrary::metaObject +24 (int (*)(...))QLibrary::qt_metacast +32 (int (*)(...))QLibrary::qt_metacall +40 (int (*)(...))QLibrary::~QLibrary +48 (int (*)(...))QLibrary::~QLibrary +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QLibrary + size=32 align=8 + base size=25 base align=8 +QLibrary (0x0x7f38b4be80d0) 0 + vptr=((& QLibrary::_ZTV8QLibrary) + 16) + QObject (0x0x7f38b4be63c0) 0 + primary-for QLibrary (0x0x7f38b4be80d0) + +Class QVersionNumber::SegmentStorage + size=8 align=8 + base size=8 base align=8 +QVersionNumber::SegmentStorage (0x0x7f38b4c312a0) 0 + +Class QVersionNumber + size=8 align=8 + base size=8 base align=8 +QVersionNumber (0x0x7f38b4be6d80) 0 + +Class QLibraryInfo + size=1 align=1 + base size=0 base align=1 +QLibraryInfo (0x0x7f38b4cc69c0) 0 empty + +Class QPoint + size=8 align=4 + base size=8 base align=4 +QPoint (0x0x7f38b4cc6a20) 0 + +Class QPointF + size=16 align=8 + base size=16 base align=8 +QPointF (0x0x7f38b4d37840) 0 + +Class QLine + size=16 align=4 + base size=16 base align=4 +QLine (0x0x7f38b49a99c0) 0 + +Class QLineF + size=32 align=8 + base size=32 base align=8 +QLineF (0x0x7f38b4a1ad80) 0 + +Class QLinkedListData + size=32 align=8 + base size=25 base align=8 +QLinkedListData (0x0x7f38b4ac3060) 0 + +Class QLockFile + size=8 align=8 + base size=8 base align=8 +QLockFile (0x0x7f38b4b5a1e0) 0 + +Class QLoggingCategory::AtomicBools + size=4 align=1 + base size=4 base align=1 +QLoggingCategory::AtomicBools (0x0x7f38b4b5a420) 0 + +Class QLoggingCategory + size=24 align=8 + base size=24 base align=8 +QLoggingCategory (0x0x7f38b4b5a3c0) 0 + +Class QMargins + size=16 align=4 + base size=16 base align=4 +QMargins (0x0x7f38b4b5a840) 0 + +Class QMarginsF + size=32 align=8 + base size=32 base align=8 +QMarginsF (0x0x7f38b4810780) 0 + +Class QMessageAuthenticationCode + size=8 align=8 + base size=8 base align=8 +QMessageAuthenticationCode (0x0x7f38b4656f60) 0 + +Class QMetaMethod + size=16 align=8 + base size=12 base align=8 +QMetaMethod (0x0x7f38b467d000) 0 + +Class QMetaEnum + size=16 align=8 + base size=12 base align=8 +QMetaEnum (0x0x7f38b46e0840) 0 + +Class QMetaProperty + size=32 align=8 + base size=32 base align=8 +QMetaProperty (0x0x7f38b4720a80) 0 + +Class QMetaClassInfo + size=16 align=8 + base size=12 base align=8 +QMetaClassInfo (0x0x7f38b4720ba0) 0 + +Class QMimeData::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QMimeData::QPrivateSignal (0x0x7f38b477e180) 0 empty + +Vtable for QMimeData +QMimeData::_ZTV9QMimeData: 17 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QMimeData) +16 (int (*)(...))QMimeData::metaObject +24 (int (*)(...))QMimeData::qt_metacast +32 (int (*)(...))QMimeData::qt_metacall +40 (int (*)(...))QMimeData::~QMimeData +48 (int (*)(...))QMimeData::~QMimeData +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QMimeData::hasFormat +120 (int (*)(...))QMimeData::formats +128 (int (*)(...))QMimeData::retrieveData + +Class QMimeData + size=16 align=8 + base size=16 base align=8 +QMimeData (0x0x7f38b476ad00) 0 + vptr=((& QMimeData::_ZTV9QMimeData) + 16) + QObject (0x0x7f38b477e120) 0 + primary-for QMimeData (0x0x7f38b476ad00) + +Class QMimeType + size=8 align=8 + base size=8 base align=8 +QMimeType (0x0x7f38b477e360) 0 + +Class QMimeDatabase + size=8 align=8 + base size=8 base align=8 +QMimeDatabase (0x0x7f38b43df480) 0 + +Class QObjectCleanupHandler::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QObjectCleanupHandler::QPrivateSignal (0x0x7f38b43df540) 0 empty + +Vtable for QObjectCleanupHandler +QObjectCleanupHandler::_ZTV21QObjectCleanupHandler: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QObjectCleanupHandler) +16 (int (*)(...))QObjectCleanupHandler::metaObject +24 (int (*)(...))QObjectCleanupHandler::qt_metacast +32 (int (*)(...))QObjectCleanupHandler::qt_metacall +40 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +48 (int (*)(...))QObjectCleanupHandler::~QObjectCleanupHandler +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QObjectCleanupHandler + size=24 align=8 + base size=24 base align=8 +QObjectCleanupHandler (0x0x7f38b43e7068) 0 + vptr=((& QObjectCleanupHandler::_ZTV21QObjectCleanupHandler) + 16) + QObject (0x0x7f38b43df4e0) 0 + primary-for QObjectCleanupHandler (0x0x7f38b43e7068) + +Class QOperatingSystemVersion + size=16 align=4 + base size=16 base align=4 +QOperatingSystemVersion (0x0x7f38b43df660) 0 + +Class QParallelAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QParallelAnimationGroup::QPrivateSignal (0x0x7f38b444cde0) 0 empty + +Vtable for QParallelAnimationGroup +QParallelAnimationGroup::_ZTV23QParallelAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI23QParallelAnimationGroup) +16 (int (*)(...))QParallelAnimationGroup::metaObject +24 (int (*)(...))QParallelAnimationGroup::qt_metacast +32 (int (*)(...))QParallelAnimationGroup::qt_metacall +40 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +48 (int (*)(...))QParallelAnimationGroup::~QParallelAnimationGroup +56 (int (*)(...))QParallelAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QParallelAnimationGroup::duration +120 (int (*)(...))QParallelAnimationGroup::updateCurrentTime +128 (int (*)(...))QParallelAnimationGroup::updateState +136 (int (*)(...))QParallelAnimationGroup::updateDirection + +Class QParallelAnimationGroup + size=16 align=8 + base size=16 base align=8 +QParallelAnimationGroup (0x0x7f38b445c8f0) 0 + vptr=((& QParallelAnimationGroup::_ZTV23QParallelAnimationGroup) + 16) + QAnimationGroup (0x0x7f38b445c958) 0 + primary-for QParallelAnimationGroup (0x0x7f38b445c8f0) + QAbstractAnimation (0x0x7f38b445c9c0) 0 + primary-for QAnimationGroup (0x0x7f38b445c958) + QObject (0x0x7f38b444cd80) 0 + primary-for QAbstractAnimation (0x0x7f38b445c9c0) + +Class QPauseAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPauseAnimation::QPrivateSignal (0x0x7f38b4474060) 0 empty + +Vtable for QPauseAnimation +QPauseAnimation::_ZTV15QPauseAnimation: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QPauseAnimation) +16 (int (*)(...))QPauseAnimation::metaObject +24 (int (*)(...))QPauseAnimation::qt_metacast +32 (int (*)(...))QPauseAnimation::qt_metacall +40 (int (*)(...))QPauseAnimation::~QPauseAnimation +48 (int (*)(...))QPauseAnimation::~QPauseAnimation +56 (int (*)(...))QPauseAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QPauseAnimation::duration +120 (int (*)(...))QPauseAnimation::updateCurrentTime +128 (int (*)(...))QAbstractAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection + +Class QPauseAnimation + size=16 align=8 + base size=16 base align=8 +QPauseAnimation (0x0x7f38b445ca28) 0 + vptr=((& QPauseAnimation::_ZTV15QPauseAnimation) + 16) + QAbstractAnimation (0x0x7f38b445ca90) 0 + primary-for QPauseAnimation (0x0x7f38b445ca28) + QObject (0x0x7f38b4474000) 0 + primary-for QAbstractAnimation (0x0x7f38b445ca90) + +Class QStaticPlugin + size=16 align=8 + base size=16 base align=8 +QStaticPlugin (0x0x7f38b4474c60) 0 + +Class QPluginLoader::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPluginLoader::QPrivateSignal (0x0x7f38b44c4de0) 0 empty + +Vtable for QPluginLoader +QPluginLoader::_ZTV13QPluginLoader: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QPluginLoader) +16 (int (*)(...))QPluginLoader::metaObject +24 (int (*)(...))QPluginLoader::qt_metacast +32 (int (*)(...))QPluginLoader::qt_metacall +40 (int (*)(...))QPluginLoader::~QPluginLoader +48 (int (*)(...))QPluginLoader::~QPluginLoader +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QPluginLoader + size=32 align=8 + base size=25 base align=8 +QPluginLoader (0x0x7f38b44c7dd0) 0 + vptr=((& QPluginLoader::_ZTV13QPluginLoader) + 16) + QObject (0x0x7f38b44c4d80) 0 + primary-for QPluginLoader (0x0x7f38b44c7dd0) + +Class QProcessEnvironment + size=8 align=8 + base size=8 base align=8 +QProcessEnvironment (0x0x7f38b44c4f00) 0 + +Class QProcess::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QProcess::QPrivateSignal (0x0x7f38b453c5a0) 0 empty + +Vtable for QProcess +QProcess::_ZTV8QProcess: 31 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI8QProcess) +16 (int (*)(...))QProcess::metaObject +24 (int (*)(...))QProcess::qt_metacast +32 (int (*)(...))QProcess::qt_metacall +40 (int (*)(...))QProcess::~QProcess +48 (int (*)(...))QProcess::~QProcess +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QProcess::isSequential +120 (int (*)(...))QProcess::open +128 (int (*)(...))QProcess::close +136 (int (*)(...))QIODevice::pos +144 (int (*)(...))QIODevice::size +152 (int (*)(...))QIODevice::seek +160 (int (*)(...))QProcess::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QProcess::bytesAvailable +184 (int (*)(...))QProcess::bytesToWrite +192 (int (*)(...))QProcess::canReadLine +200 (int (*)(...))QProcess::waitForReadyRead +208 (int (*)(...))QProcess::waitForBytesWritten +216 (int (*)(...))QProcess::readData +224 (int (*)(...))QIODevice::readLineData +232 (int (*)(...))QProcess::writeData +240 (int (*)(...))QProcess::setupChildProcess + +Class QProcess + size=16 align=8 + base size=16 base align=8 +QProcess (0x0x7f38b4537a28) 0 + vptr=((& QProcess::_ZTV8QProcess) + 16) + QIODevice (0x0x7f38b4537a90) 0 + primary-for QProcess (0x0x7f38b4537a28) + QObject (0x0x7f38b453c540) 0 + primary-for QIODevice (0x0x7f38b4537a90) + +Class QVariantAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QVariantAnimation::QPrivateSignal (0x0x7f38b453cc60) 0 empty + +Vtable for QVariantAnimation +QVariantAnimation::_ZTV17QVariantAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QVariantAnimation) +16 (int (*)(...))QVariantAnimation::metaObject +24 (int (*)(...))QVariantAnimation::qt_metacast +32 (int (*)(...))QVariantAnimation::qt_metacall +40 (int (*)(...))QVariantAnimation::~QVariantAnimation +48 (int (*)(...))QVariantAnimation::~QVariantAnimation +56 (int (*)(...))QVariantAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QVariantAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QVariantAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QVariantAnimation + size=16 align=8 + base size=16 base align=8 +QVariantAnimation (0x0x7f38b4537af8) 0 + vptr=((& QVariantAnimation::_ZTV17QVariantAnimation) + 16) + QAbstractAnimation (0x0x7f38b4537b60) 0 + primary-for QVariantAnimation (0x0x7f38b4537af8) + QObject (0x0x7f38b453cc00) 0 + primary-for QAbstractAnimation (0x0x7f38b4537b60) + +Class QPropertyAnimation::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QPropertyAnimation::QPrivateSignal (0x0x7f38b453cf00) 0 empty + +Vtable for QPropertyAnimation +QPropertyAnimation::_ZTV18QPropertyAnimation: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QPropertyAnimation) +16 (int (*)(...))QPropertyAnimation::metaObject +24 (int (*)(...))QPropertyAnimation::qt_metacast +32 (int (*)(...))QPropertyAnimation::qt_metacall +40 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +48 (int (*)(...))QPropertyAnimation::~QPropertyAnimation +56 (int (*)(...))QPropertyAnimation::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QVariantAnimation::duration +120 (int (*)(...))QVariantAnimation::updateCurrentTime +128 (int (*)(...))QPropertyAnimation::updateState +136 (int (*)(...))QAbstractAnimation::updateDirection +144 (int (*)(...))QPropertyAnimation::updateCurrentValue +152 (int (*)(...))QVariantAnimation::interpolated + +Class QPropertyAnimation + size=16 align=8 + base size=16 base align=8 +QPropertyAnimation (0x0x7f38b4537c30) 0 + vptr=((& QPropertyAnimation::_ZTV18QPropertyAnimation) + 16) + QVariantAnimation (0x0x7f38b4537c98) 0 + primary-for QPropertyAnimation (0x0x7f38b4537c30) + QAbstractAnimation (0x0x7f38b4537d00) 0 + primary-for QVariantAnimation (0x0x7f38b4537c98) + QObject (0x0x7f38b453cea0) 0 + primary-for QAbstractAnimation (0x0x7f38b4537d00) + +Class std::random_device + size=5000 align=8 + base size=5000 base align=8 +std::random_device (0x0x7f38b4205660) 0 + +Class std::bernoulli_distribution::param_type + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution::param_type (0x0x7f38b430d3c0) 0 + +Class std::bernoulli_distribution + size=8 align=8 + base size=8 base align=8 +std::bernoulli_distribution (0x0x7f38b430d360) 0 + +Class std::seed_seq + size=24 align=8 + base size=24 base align=8 +std::seed_seq (0x0x7f38b40fa120) 0 + +Class QRandomGenerator::Storage + size=2504 align=8 + base size=2504 base align=8 +QRandomGenerator::Storage (0x0x7f38b3f05d80) 0 + +Class QRandomGenerator + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator (0x0x7f38b3f05d20) 0 + +Class QRandomGenerator64 + size=2512 align=8 + base size=2512 base align=8 +QRandomGenerator64 (0x0x7f38b3f949c0) 0 + QRandomGenerator (0x0x7f38b3b2c8a0) 0 + +Class QReadWriteLock + size=8 align=8 + base size=8 base align=8 +QReadWriteLock (0x0x7f38b3b53480) 0 + +Class QReadLocker + size=8 align=8 + base size=8 base align=8 +QReadLocker (0x0x7f38b3b53720) 0 + +Class QWriteLocker + size=8 align=8 + base size=8 base align=8 +QWriteLocker (0x0x7f38b3b53c00) 0 + +Class QSize + size=8 align=4 + base size=8 base align=4 +QSize (0x0x7f38b3bd9120) 0 + +Class QSizeF + size=16 align=8 + base size=16 base align=8 +QSizeF (0x0x7f38b3c20f00) 0 + +Class QRect + size=16 align=4 + base size=16 base align=4 +QRect (0x0x7f38b3c9aea0) 0 + +Class QRectF + size=32 align=8 + base size=32 base align=8 +QRectF (0x0x7f38b393ff00) 0 + +Class QResource + size=8 align=8 + base size=8 base align=8 +QResource (0x0x7f38b3a49060) 0 + +Class QSaveFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSaveFile::QPrivateSignal (0x0x7f38b3a49300) 0 empty + +Vtable for QSaveFile +QSaveFile::_ZTV9QSaveFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSaveFile) +16 (int (*)(...))QSaveFile::metaObject +24 (int (*)(...))QSaveFile::qt_metacast +32 (int (*)(...))QSaveFile::qt_metacall +40 (int (*)(...))QSaveFile::~QSaveFile +48 (int (*)(...))QSaveFile::~QSaveFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QSaveFile::open +128 (int (*)(...))QSaveFile::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFileDevice::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QSaveFile::writeData +240 (int (*)(...))QSaveFile::fileName +248 (int (*)(...))QFileDevice::resize +256 (int (*)(...))QFileDevice::permissions +264 (int (*)(...))QFileDevice::setPermissions + +Class QSaveFile + size=16 align=8 + base size=16 base align=8 +QSaveFile (0x0x7f38b39de3a8) 0 + vptr=((& QSaveFile::_ZTV9QSaveFile) + 16) + QFileDevice (0x0x7f38b39de410) 0 + primary-for QSaveFile (0x0x7f38b39de3a8) + QIODevice (0x0x7f38b39de478) 0 + primary-for QFileDevice (0x0x7f38b39de410) + QObject (0x0x7f38b3a492a0) 0 + primary-for QIODevice (0x0x7f38b39de478) + +Class QSemaphore + size=8 align=8 + base size=8 base align=8 +QSemaphore (0x0x7f38b3a49900) 0 + +Class QSemaphoreReleaser + size=16 align=8 + base size=12 base align=8 +QSemaphoreReleaser (0x0x7f38b3a49a80) 0 + +Class QSequentialAnimationGroup::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSequentialAnimationGroup::QPrivateSignal (0x0x7f38b3773d20) 0 empty + +Vtable for QSequentialAnimationGroup +QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup: 18 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI25QSequentialAnimationGroup) +16 (int (*)(...))QSequentialAnimationGroup::metaObject +24 (int (*)(...))QSequentialAnimationGroup::qt_metacast +32 (int (*)(...))QSequentialAnimationGroup::qt_metacall +40 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +48 (int (*)(...))QSequentialAnimationGroup::~QSequentialAnimationGroup +56 (int (*)(...))QSequentialAnimationGroup::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSequentialAnimationGroup::duration +120 (int (*)(...))QSequentialAnimationGroup::updateCurrentTime +128 (int (*)(...))QSequentialAnimationGroup::updateState +136 (int (*)(...))QSequentialAnimationGroup::updateDirection + +Class QSequentialAnimationGroup + size=16 align=8 + base size=16 base align=8 +QSequentialAnimationGroup (0x0x7f38b37811a0) 0 + vptr=((& QSequentialAnimationGroup::_ZTV25QSequentialAnimationGroup) + 16) + QAnimationGroup (0x0x7f38b3781208) 0 + primary-for QSequentialAnimationGroup (0x0x7f38b37811a0) + QAbstractAnimation (0x0x7f38b3781270) 0 + primary-for QAnimationGroup (0x0x7f38b3781208) + QObject (0x0x7f38b3773cc0) 0 + primary-for QAbstractAnimation (0x0x7f38b3781270) + +Class QSettings::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSettings::QPrivateSignal (0x0x7f38b3773f60) 0 empty + +Vtable for QSettings +QSettings::_ZTV9QSettings: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QSettings) +16 (int (*)(...))QSettings::metaObject +24 (int (*)(...))QSettings::qt_metacast +32 (int (*)(...))QSettings::qt_metacall +40 (int (*)(...))QSettings::~QSettings +48 (int (*)(...))QSettings::~QSettings +56 (int (*)(...))QSettings::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSettings + size=16 align=8 + base size=16 base align=8 +QSettings (0x0x7f38b37812d8) 0 + vptr=((& QSettings::_ZTV9QSettings) + 16) + QObject (0x0x7f38b3773f00) 0 + primary-for QSettings (0x0x7f38b37812d8) + +Class QSharedMemory::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSharedMemory::QPrivateSignal (0x0x7f38b37b6420) 0 empty + +Vtable for QSharedMemory +QSharedMemory::_ZTV13QSharedMemory: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSharedMemory) +16 (int (*)(...))QSharedMemory::metaObject +24 (int (*)(...))QSharedMemory::qt_metacast +32 (int (*)(...))QSharedMemory::qt_metacall +40 (int (*)(...))QSharedMemory::~QSharedMemory +48 (int (*)(...))QSharedMemory::~QSharedMemory +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSharedMemory + size=16 align=8 + base size=16 base align=8 +QSharedMemory (0x0x7f38b3781340) 0 + vptr=((& QSharedMemory::_ZTV13QSharedMemory) + 16) + QObject (0x0x7f38b37b63c0) 0 + primary-for QSharedMemory (0x0x7f38b3781340) + +Class QSignalMapper::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalMapper::QPrivateSignal (0x0x7f38b37b6660) 0 empty + +Vtable for QSignalMapper +QSignalMapper::_ZTV13QSignalMapper: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QSignalMapper) +16 (int (*)(...))QSignalMapper::metaObject +24 (int (*)(...))QSignalMapper::qt_metacast +32 (int (*)(...))QSignalMapper::qt_metacall +40 (int (*)(...))QSignalMapper::~QSignalMapper +48 (int (*)(...))QSignalMapper::~QSignalMapper +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSignalMapper + size=16 align=8 + base size=16 base align=8 +QSignalMapper (0x0x7f38b37813a8) 0 + vptr=((& QSignalMapper::_ZTV13QSignalMapper) + 16) + QObject (0x0x7f38b37b6600) 0 + primary-for QSignalMapper (0x0x7f38b37813a8) + +Class QSignalTransition::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSignalTransition::QPrivateSignal (0x0x7f38b37b68a0) 0 empty + +Vtable for QSignalTransition +QSignalTransition::_ZTV17QSignalTransition: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI17QSignalTransition) +16 (int (*)(...))QSignalTransition::metaObject +24 (int (*)(...))QSignalTransition::qt_metacast +32 (int (*)(...))QSignalTransition::qt_metacall +40 (int (*)(...))QSignalTransition::~QSignalTransition +48 (int (*)(...))QSignalTransition::~QSignalTransition +56 (int (*)(...))QSignalTransition::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSignalTransition::eventTest +120 (int (*)(...))QSignalTransition::onTransition + +Class QSignalTransition + size=16 align=8 + base size=16 base align=8 +QSignalTransition (0x0x7f38b3781410) 0 + vptr=((& QSignalTransition::_ZTV17QSignalTransition) + 16) + QAbstractTransition (0x0x7f38b3781478) 0 + primary-for QSignalTransition (0x0x7f38b3781410) + QObject (0x0x7f38b37b6840) 0 + primary-for QAbstractTransition (0x0x7f38b3781478) + +Class QSocketNotifier::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSocketNotifier::QPrivateSignal (0x0x7f38b37b6b40) 0 empty + +Vtable for QSocketNotifier +QSocketNotifier::_ZTV15QSocketNotifier: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QSocketNotifier) +16 (int (*)(...))QSocketNotifier::metaObject +24 (int (*)(...))QSocketNotifier::qt_metacast +32 (int (*)(...))QSocketNotifier::qt_metacall +40 (int (*)(...))QSocketNotifier::~QSocketNotifier +48 (int (*)(...))QSocketNotifier::~QSocketNotifier +56 (int (*)(...))QSocketNotifier::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QSocketNotifier + size=16 align=8 + base size=16 base align=8 +QSocketNotifier (0x0x7f38b37814e0) 0 + vptr=((& QSocketNotifier::_ZTV15QSocketNotifier) + 16) + QObject (0x0x7f38b37b6ae0) 0 + primary-for QSocketNotifier (0x0x7f38b37814e0) + +Class QSortFilterProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QSortFilterProxyModel::QPrivateSignal (0x0x7f38b37b6d80) 0 empty + +Vtable for QSortFilterProxyModel +QSortFilterProxyModel::_ZTV21QSortFilterProxyModel: 56 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI21QSortFilterProxyModel) +16 (int (*)(...))QSortFilterProxyModel::metaObject +24 (int (*)(...))QSortFilterProxyModel::qt_metacast +32 (int (*)(...))QSortFilterProxyModel::qt_metacall +40 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +48 (int (*)(...))QSortFilterProxyModel::~QSortFilterProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QSortFilterProxyModel::index +120 (int (*)(...))QSortFilterProxyModel::parent +128 (int (*)(...))QSortFilterProxyModel::sibling +136 (int (*)(...))QSortFilterProxyModel::rowCount +144 (int (*)(...))QSortFilterProxyModel::columnCount +152 (int (*)(...))QSortFilterProxyModel::hasChildren +160 (int (*)(...))QSortFilterProxyModel::data +168 (int (*)(...))QSortFilterProxyModel::setData +176 (int (*)(...))QSortFilterProxyModel::headerData +184 (int (*)(...))QSortFilterProxyModel::setHeaderData +192 (int (*)(...))QAbstractProxyModel::itemData +200 (int (*)(...))QAbstractProxyModel::setItemData +208 (int (*)(...))QSortFilterProxyModel::mimeTypes +216 (int (*)(...))QSortFilterProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QSortFilterProxyModel::dropMimeData +240 (int (*)(...))QSortFilterProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QSortFilterProxyModel::insertRows +264 (int (*)(...))QSortFilterProxyModel::insertColumns +272 (int (*)(...))QSortFilterProxyModel::removeRows +280 (int (*)(...))QSortFilterProxyModel::removeColumns +288 (int (*)(...))QAbstractItemModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QSortFilterProxyModel::fetchMore +312 (int (*)(...))QSortFilterProxyModel::canFetchMore +320 (int (*)(...))QSortFilterProxyModel::flags +328 (int (*)(...))QSortFilterProxyModel::sort +336 (int (*)(...))QSortFilterProxyModel::buddy +344 (int (*)(...))QSortFilterProxyModel::match +352 (int (*)(...))QSortFilterProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QSortFilterProxyModel::setSourceModel +392 (int (*)(...))QSortFilterProxyModel::mapToSource +400 (int (*)(...))QSortFilterProxyModel::mapFromSource +408 (int (*)(...))QSortFilterProxyModel::mapSelectionToSource +416 (int (*)(...))QSortFilterProxyModel::mapSelectionFromSource +424 (int (*)(...))QSortFilterProxyModel::filterAcceptsRow +432 (int (*)(...))QSortFilterProxyModel::filterAcceptsColumn +440 (int (*)(...))QSortFilterProxyModel::lessThan + +Class QSortFilterProxyModel + size=16 align=8 + base size=16 base align=8 +QSortFilterProxyModel (0x0x7f38b3781548) 0 + vptr=((& QSortFilterProxyModel::_ZTV21QSortFilterProxyModel) + 16) + QAbstractProxyModel (0x0x7f38b37815b0) 0 + primary-for QSortFilterProxyModel (0x0x7f38b3781548) + QAbstractItemModel (0x0x7f38b3781618) 0 + primary-for QAbstractProxyModel (0x0x7f38b37815b0) + QObject (0x0x7f38b37b6d20) 0 + primary-for QAbstractItemModel (0x0x7f38b3781618) + +Class QStandardPaths + size=1 align=1 + base size=0 base align=1 +QStandardPaths (0x0x7f38b38211e0) 0 empty + +Class QState::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QState::QPrivateSignal (0x0x7f38b3821ae0) 0 empty + +Vtable for QState +QState::_ZTV6QState: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QState) +16 (int (*)(...))QState::metaObject +24 (int (*)(...))QState::qt_metacast +32 (int (*)(...))QState::qt_metacall +40 (int (*)(...))QState::~QState +48 (int (*)(...))QState::~QState +56 (int (*)(...))QState::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QState::onEntry +120 (int (*)(...))QState::onExit + +Class QState + size=16 align=8 + base size=16 base align=8 +QState (0x0x7f38b37817b8) 0 + vptr=((& QState::_ZTV6QState) + 16) + QAbstractState (0x0x7f38b3781820) 0 + primary-for QState (0x0x7f38b37817b8) + QObject (0x0x7f38b3821a80) 0 + primary-for QAbstractState (0x0x7f38b3781820) + +Class QStateMachine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStateMachine::QPrivateSignal (0x0x7f38b3821f60) 0 empty + +Vtable for QStateMachine::SignalEvent +QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine11SignalEventE) +16 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent +24 (int (*)(...))QStateMachine::SignalEvent::~SignalEvent + +Class QStateMachine::SignalEvent + size=48 align=8 + base size=48 base align=8 +QStateMachine::SignalEvent (0x0x7f38b37819c0) 0 + vptr=((& QStateMachine::SignalEvent::_ZTVN13QStateMachine11SignalEventE) + 16) + QEvent (0x0x7f38b3871000) 0 + primary-for QStateMachine::SignalEvent (0x0x7f38b37819c0) + +Vtable for QStateMachine::WrappedEvent +QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN13QStateMachine12WrappedEventE) +16 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent +24 (int (*)(...))QStateMachine::WrappedEvent::~WrappedEvent + +Class QStateMachine::WrappedEvent + size=40 align=8 + base size=40 base align=8 +QStateMachine::WrappedEvent (0x0x7f38b3781a28) 0 + vptr=((& QStateMachine::WrappedEvent::_ZTVN13QStateMachine12WrappedEventE) + 16) + QEvent (0x0x7f38b3871060) 0 + primary-for QStateMachine::WrappedEvent (0x0x7f38b3781a28) + +Vtable for QStateMachine +QStateMachine::_ZTV13QStateMachine: 20 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI13QStateMachine) +16 (int (*)(...))QStateMachine::metaObject +24 (int (*)(...))QStateMachine::qt_metacast +32 (int (*)(...))QStateMachine::qt_metacall +40 (int (*)(...))QStateMachine::~QStateMachine +48 (int (*)(...))QStateMachine::~QStateMachine +56 (int (*)(...))QStateMachine::event +64 (int (*)(...))QStateMachine::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QStateMachine::onEntry +120 (int (*)(...))QStateMachine::onExit +128 (int (*)(...))QStateMachine::beginSelectTransitions +136 (int (*)(...))QStateMachine::endSelectTransitions +144 (int (*)(...))QStateMachine::beginMicrostep +152 (int (*)(...))QStateMachine::endMicrostep + +Class QStateMachine + size=16 align=8 + base size=16 base align=8 +QStateMachine (0x0x7f38b3781888) 0 + vptr=((& QStateMachine::_ZTV13QStateMachine) + 16) + QState (0x0x7f38b37818f0) 0 + primary-for QStateMachine (0x0x7f38b3781888) + QAbstractState (0x0x7f38b3781958) 0 + primary-for QState (0x0x7f38b37818f0) + QObject (0x0x7f38b3821f00) 0 + primary-for QAbstractState (0x0x7f38b3781958) + +Class QStorageInfo + size=8 align=8 + base size=8 base align=8 +QStorageInfo (0x0x7f38b3871420) 0 + +Class QAbstractConcatenable + size=1 align=1 + base size=0 base align=1 +QAbstractConcatenable (0x0x7f38b3912420) 0 empty + +Class QStringListModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QStringListModel::QPrivateSignal (0x0x7f38b3599780) 0 empty + +Vtable for QStringListModel +QStringListModel::_ZTV16QStringListModel: 48 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QStringListModel) +16 (int (*)(...))QStringListModel::metaObject +24 (int (*)(...))QStringListModel::qt_metacast +32 (int (*)(...))QStringListModel::qt_metacall +40 (int (*)(...))QStringListModel::~QStringListModel +48 (int (*)(...))QStringListModel::~QStringListModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QAbstractListModel::index +120 (int (*)(...))QAbstractListModel::parent +128 (int (*)(...))QStringListModel::sibling +136 (int (*)(...))QStringListModel::rowCount +144 (int (*)(...))QAbstractListModel::columnCount +152 (int (*)(...))QAbstractListModel::hasChildren +160 (int (*)(...))QStringListModel::data +168 (int (*)(...))QStringListModel::setData +176 (int (*)(...))QAbstractItemModel::headerData +184 (int (*)(...))QAbstractItemModel::setHeaderData +192 (int (*)(...))QStringListModel::itemData +200 (int (*)(...))QStringListModel::setItemData +208 (int (*)(...))QAbstractItemModel::mimeTypes +216 (int (*)(...))QAbstractItemModel::mimeData +224 (int (*)(...))QAbstractItemModel::canDropMimeData +232 (int (*)(...))QAbstractListModel::dropMimeData +240 (int (*)(...))QStringListModel::supportedDropActions +248 (int (*)(...))QAbstractItemModel::supportedDragActions +256 (int (*)(...))QStringListModel::insertRows +264 (int (*)(...))QAbstractItemModel::insertColumns +272 (int (*)(...))QStringListModel::removeRows +280 (int (*)(...))QAbstractItemModel::removeColumns +288 (int (*)(...))QStringListModel::moveRows +296 (int (*)(...))QAbstractItemModel::moveColumns +304 (int (*)(...))QAbstractItemModel::fetchMore +312 (int (*)(...))QAbstractItemModel::canFetchMore +320 (int (*)(...))QStringListModel::flags +328 (int (*)(...))QStringListModel::sort +336 (int (*)(...))QAbstractItemModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QAbstractItemModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractItemModel::submit +376 (int (*)(...))QAbstractItemModel::revert + +Class QStringListModel + size=24 align=8 + base size=24 base align=8 +QStringListModel (0x0x7f38b3582b60) 0 + vptr=((& QStringListModel::_ZTV16QStringListModel) + 16) + QAbstractListModel (0x0x7f38b3582bc8) 0 + primary-for QStringListModel (0x0x7f38b3582b60) + QAbstractItemModel (0x0x7f38b3582c30) 0 + primary-for QAbstractListModel (0x0x7f38b3582bc8) + QObject (0x0x7f38b3599720) 0 + primary-for QAbstractItemModel (0x0x7f38b3582c30) + +Class QSystemSemaphore + size=8 align=8 + base size=8 base align=8 +QSystemSemaphore (0x0x7f38b35998a0) 0 + +Class QTemporaryDir + size=8 align=8 + base size=8 base align=8 +QTemporaryDir (0x0x7f38b3599960) 0 + +Class QTemporaryFile::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTemporaryFile::QPrivateSignal (0x0x7f38b3599a80) 0 empty + +Vtable for QTemporaryFile +QTemporaryFile::_ZTV14QTemporaryFile: 34 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QTemporaryFile) +16 (int (*)(...))QTemporaryFile::metaObject +24 (int (*)(...))QTemporaryFile::qt_metacast +32 (int (*)(...))QTemporaryFile::qt_metacall +40 (int (*)(...))QTemporaryFile::~QTemporaryFile +48 (int (*)(...))QTemporaryFile::~QTemporaryFile +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QFileDevice::isSequential +120 (int (*)(...))QTemporaryFile::open +128 (int (*)(...))QFileDevice::close +136 (int (*)(...))QFileDevice::pos +144 (int (*)(...))QFile::size +152 (int (*)(...))QFileDevice::seek +160 (int (*)(...))QFileDevice::atEnd +168 (int (*)(...))QIODevice::reset +176 (int (*)(...))QIODevice::bytesAvailable +184 (int (*)(...))QIODevice::bytesToWrite +192 (int (*)(...))QIODevice::canReadLine +200 (int (*)(...))QIODevice::waitForReadyRead +208 (int (*)(...))QIODevice::waitForBytesWritten +216 (int (*)(...))QFileDevice::readData +224 (int (*)(...))QFileDevice::readLineData +232 (int (*)(...))QFileDevice::writeData +240 (int (*)(...))QTemporaryFile::fileName +248 (int (*)(...))QFile::resize +256 (int (*)(...))QFile::permissions +264 (int (*)(...))QFile::setPermissions + +Class QTemporaryFile + size=16 align=8 + base size=16 base align=8 +QTemporaryFile (0x0x7f38b3582c98) 0 + vptr=((& QTemporaryFile::_ZTV14QTemporaryFile) + 16) + QFile (0x0x7f38b3582d00) 0 + primary-for QTemporaryFile (0x0x7f38b3582c98) + QFileDevice (0x0x7f38b3582d68) 0 + primary-for QFile (0x0x7f38b3582d00) + QIODevice (0x0x7f38b3582dd0) 0 + primary-for QFileDevice (0x0x7f38b3582d68) + QObject (0x0x7f38b3599a20) 0 + primary-for QIODevice (0x0x7f38b3582dd0) + +Class QTextBoundaryFinder + size=48 align=8 + base size=48 base align=8 +QTextBoundaryFinder (0x0x7f38b3599de0) 0 + +Class QTextCodec::ConverterState + size=32 align=8 + base size=32 base align=8 +QTextCodec::ConverterState (0x0x7f38b3601660) 0 + +Vtable for QTextCodec +QTextCodec::_ZTV10QTextCodec: 9 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QTextCodec) +16 (int (*)(...))__cxa_pure_virtual +24 (int (*)(...))QTextCodec::aliases +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 0 +64 0 + +Class QTextCodec + size=8 align=8 + base size=8 base align=8 +QTextCodec (0x0x7f38b3601600) 0 nearly-empty + vptr=((& QTextCodec::_ZTV10QTextCodec) + 16) + +Class QTextEncoder + size=40 align=8 + base size=40 base align=8 +QTextEncoder (0x0x7f38b3668060) 0 + +Class QTextDecoder + size=40 align=8 + base size=40 base align=8 +QTextDecoder (0x0x7f38b3668240) 0 + +Class std::__mutex_base + size=40 align=8 + base size=40 base align=8 +std::__mutex_base (0x0x7f38b3668420) 0 + +Class std::mutex + size=40 align=8 + base size=40 base align=8 +std::mutex (0x0x7f38b3682000) 0 + std::__mutex_base (0x0x7f38b3668480) 0 + +Class std::defer_lock_t + size=1 align=1 + base size=0 base align=1 +std::defer_lock_t (0x0x7f38b3668660) 0 empty + +Class std::try_to_lock_t + size=1 align=1 + base size=0 base align=1 +std::try_to_lock_t (0x0x7f38b36686c0) 0 empty + +Class std::adopt_lock_t + size=1 align=1 + base size=0 base align=1 +std::adopt_lock_t (0x0x7f38b3668720) 0 empty + +Class std::__recursive_mutex_base + size=40 align=8 + base size=40 base align=8 +std::__recursive_mutex_base (0x0x7f38b36ab180) 0 + +Class std::recursive_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_mutex (0x0x7f38b3682068) 0 + std::__recursive_mutex_base (0x0x7f38b36ab1e0) 0 + +Class std::timed_mutex + size=40 align=8 + base size=40 base align=8 +std::timed_mutex (0x0x7f38b365ff50) 0 + std::__mutex_base (0x0x7f38b36ab5a0) 0 + std::__timed_mutex_impl (0x0x7f38b36ab600) 0 empty + +Class std::recursive_timed_mutex + size=40 align=8 + base size=40 base align=8 +std::recursive_timed_mutex (0x0x7f38b36cc2a0) 0 + std::__recursive_mutex_base (0x0x7f38b36ab960) 0 + std::__timed_mutex_impl (0x0x7f38b36ab9c0) 0 empty + +Class std::once_flag + size=4 align=4 + base size=4 base align=4 +std::once_flag (0x0x7f38b36ee120) 0 + +Vtable for __gnu_cxx::__concurrence_lock_error +__gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_lock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +24 (int (*)(...))__gnu_cxx::__concurrence_lock_error::~__concurrence_lock_error +32 (int (*)(...))__gnu_cxx::__concurrence_lock_error::what + +Class __gnu_cxx::__concurrence_lock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_lock_error (0x0x7f38b36821a0) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_lock_error::_ZTVN9__gnu_cxx24__concurrence_lock_errorE) + 16) + std::exception (0x0x7f38b36ee660) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_lock_error (0x0x7f38b36821a0) + +Vtable for __gnu_cxx::__concurrence_unlock_error +__gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx26__concurrence_unlock_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +24 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::~__concurrence_unlock_error +32 (int (*)(...))__gnu_cxx::__concurrence_unlock_error::what + +Class __gnu_cxx::__concurrence_unlock_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_unlock_error (0x0x7f38b3682208) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_unlock_error::_ZTVN9__gnu_cxx26__concurrence_unlock_errorE) + 16) + std::exception (0x0x7f38b36ee780) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_unlock_error (0x0x7f38b3682208) + +Vtable for __gnu_cxx::__concurrence_broadcast_error +__gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx29__concurrence_broadcast_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +24 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::~__concurrence_broadcast_error +32 (int (*)(...))__gnu_cxx::__concurrence_broadcast_error::what + +Class __gnu_cxx::__concurrence_broadcast_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_broadcast_error (0x0x7f38b3682270) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_broadcast_error::_ZTVN9__gnu_cxx29__concurrence_broadcast_errorE) + 16) + std::exception (0x0x7f38b36ee8a0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_broadcast_error (0x0x7f38b3682270) + +Vtable for __gnu_cxx::__concurrence_wait_error +__gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTIN9__gnu_cxx24__concurrence_wait_errorE) +16 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +24 (int (*)(...))__gnu_cxx::__concurrence_wait_error::~__concurrence_wait_error +32 (int (*)(...))__gnu_cxx::__concurrence_wait_error::what + +Class __gnu_cxx::__concurrence_wait_error + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__concurrence_wait_error (0x0x7f38b3682340) 0 nearly-empty + vptr=((& __gnu_cxx::__concurrence_wait_error::_ZTVN9__gnu_cxx24__concurrence_wait_errorE) + 16) + std::exception (0x0x7f38b36ee9c0) 0 nearly-empty + primary-for __gnu_cxx::__concurrence_wait_error (0x0x7f38b3682340) + +Class __gnu_cxx::__mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__mutex (0x0x7f38b3320a20) 0 + +Class __gnu_cxx::__recursive_mutex + size=40 align=8 + base size=40 base align=8 +__gnu_cxx::__recursive_mutex (0x0x7f38b3320d20) 0 + +Class __gnu_cxx::__scoped_lock + size=8 align=8 + base size=8 base align=8 +__gnu_cxx::__scoped_lock (0x0x7f38b3342060) 0 + +Class __gnu_cxx::__cond + size=48 align=8 + base size=48 base align=8 +__gnu_cxx::__cond (0x0x7f38b33423c0) 0 + +Vtable for std::bad_weak_ptr +std::bad_weak_ptr::_ZTVSt12bad_weak_ptr: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12bad_weak_ptr) +16 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +24 (int (*)(...))std::bad_weak_ptr::~bad_weak_ptr +32 (int (*)(...))std::bad_weak_ptr::what + +Class std::bad_weak_ptr + size=8 align=8 + base size=8 base align=8 +std::bad_weak_ptr (0x0x7f38b36823a8) 0 nearly-empty + vptr=((& std::bad_weak_ptr::_ZTVSt12bad_weak_ptr) + 16) + std::exception (0x0x7f38b33bd5a0) 0 nearly-empty + primary-for std::bad_weak_ptr (0x0x7f38b36823a8) + +Class std::_Sp_make_shared_tag + size=1 align=1 + base size=0 base align=1 +std::_Sp_make_shared_tag (0x0x7f38b3424540) 0 empty + +Class std::__sp_array_delete + size=1 align=1 + base size=0 base align=1 +std::__sp_array_delete (0x0x7f38b3424960) 0 empty + +Class std::_Sp_locker + size=2 align=1 + base size=2 base align=1 +std::_Sp_locker (0x0x7f38b31737e0) 0 + +Vtable for std::thread::_State +std::thread::_State::_ZTVNSt6thread6_StateE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt6thread6_StateE) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual + +Class std::thread::_State + size=8 align=8 + base size=8 base align=8 +std::thread::_State (0x0x7f38b319dc60) 0 nearly-empty + vptr=((& std::thread::_State::_ZTVNSt6thread6_StateE) + 16) + +Class std::thread::id + size=8 align=8 + base size=8 base align=8 +std::thread::id (0x0x7f38b319dcc0) 0 + +Class std::thread + size=8 align=8 + base size=8 base align=8 +std::thread (0x0x7f38b319dc00) 0 + +Class std::condition_variable + size=48 align=8 + base size=48 base align=8 +std::condition_variable (0x0x7f38b30620c0) 0 + +Class std::__at_thread_exit_elt + size=16 align=8 + base size=16 base align=8 +std::__at_thread_exit_elt (0x0x7f38b3062480) 0 + +Class std::_V2::condition_variable_any + size=64 align=8 + base size=64 base align=8 +std::_V2::condition_variable_any (0x0x7f38b30624e0) 0 + +Class std::__atomic_futex_unsigned_base + size=1 align=1 + base size=0 base align=1 +std::__atomic_futex_unsigned_base (0x0x7f38b2de57e0) 0 empty + +Vtable for std::future_error +std::future_error::_ZTVSt12future_error: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTISt12future_error) +16 (int (*)(...))std::future_error::~future_error +24 (int (*)(...))std::future_error::~future_error +32 (int (*)(...))std::future_error::what + +Class std::future_error + size=32 align=8 + base size=32 base align=8 +std::future_error (0x0x7f38b2ddec30) 0 + vptr=((& std::future_error::_ZTVSt12future_error) + 16) + std::logic_error (0x0x7f38b2ddec98) 0 + primary-for std::future_error (0x0x7f38b2ddec30) + std::exception (0x0x7f38b2de5f00) 0 nearly-empty + primary-for std::logic_error (0x0x7f38b2ddec98) + +Class std::__future_base::_Result_base::_Deleter + size=1 align=1 + base size=0 base align=1 +std::__future_base::_Result_base::_Deleter (0x0x7f38b2e17660) 0 empty + +Vtable for std::__future_base::_Result_base +std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE: 5 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base12_Result_baseE) +16 (int (*)(...))__cxa_pure_virtual +24 0 +32 0 + +Class std::__future_base::_Result_base + size=16 align=8 + base size=16 base align=8 +std::__future_base::_Result_base (0x0x7f38b2e17600) 0 + vptr=((& std::__future_base::_Result_base::_ZTVNSt13__future_base12_Result_baseE) + 16) + +Class std::__future_base::_State_baseV2::__exception_ptr_tag + size=1 align=1 + base size=0 base align=1 +std::__future_base::_State_baseV2::__exception_ptr_tag (0x0x7f38b2bd6d80) 0 empty + +Class std::__future_base::_State_baseV2::_Make_ready + size=32 align=8 + base size=32 base align=8 +std::__future_base::_State_baseV2::_Make_ready (0x0x7f38b2c024e0) 0 + std::__at_thread_exit_elt (0x0x7f38b2bd6e40) 0 + +Vtable for std::__future_base::_State_baseV2 +std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base13_State_baseV2E) +16 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +24 (int (*)(...))std::__future_base::_State_baseV2::~_State_baseV2 +32 (int (*)(...))std::__future_base::_State_baseV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_State_baseV2 + size=32 align=8 + base size=28 base align=8 +std::__future_base::_State_baseV2 (0x0x7f38b2e177e0) 0 + vptr=((& std::__future_base::_State_baseV2::_ZTVNSt13__future_base13_State_baseV2E) + 16) + +Class std::__future_base + size=1 align=1 + base size=0 base align=1 +std::__future_base (0x0x7f38b2e175a0) 0 empty + +Vtable for std::__future_base::_Async_state_commonV2 +std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTINSt13__future_base21_Async_state_commonV2E) +16 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +24 (int (*)(...))std::__future_base::_Async_state_commonV2::~_Async_state_commonV2 +32 (int (*)(...))std::__future_base::_Async_state_commonV2::_M_complete_async +40 (int (*)(...))std::__future_base::_State_baseV2::_M_is_deferred_future + +Class std::__future_base::_Async_state_commonV2 + size=48 align=8 + base size=44 base align=8 +std::__future_base::_Async_state_commonV2 (0x0x7f38b23be208) 0 + vptr=((& std::__future_base::_Async_state_commonV2::_ZTVNSt13__future_base21_Async_state_commonV2E) + 16) + std::__future_base::_State_baseV2 (0x0x7f38b238fe40) 0 + primary-for std::__future_base::_Async_state_commonV2 (0x0x7f38b23be208) + +Class QThread::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThread::QPrivateSignal (0x0x7f38b23ce720) 0 empty + +Vtable for QThread +QThread::_ZTV7QThread: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI7QThread) +16 (int (*)(...))QThread::metaObject +24 (int (*)(...))QThread::qt_metacast +32 (int (*)(...))QThread::qt_metacall +40 (int (*)(...))QThread::~QThread +48 (int (*)(...))QThread::~QThread +56 (int (*)(...))QThread::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QThread::run + +Class QThread + size=16 align=8 + base size=16 base align=8 +QThread (0x0x7f38b23be548) 0 + vptr=((& QThread::_ZTV7QThread) + 16) + QObject (0x0x7f38b23ce6c0) 0 + primary-for QThread (0x0x7f38b23be548) + +Class QThreadPool::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QThreadPool::QPrivateSignal (0x0x7f38b23ceae0) 0 empty + +Vtable for QThreadPool +QThreadPool::_ZTV11QThreadPool: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QThreadPool) +16 (int (*)(...))QThreadPool::metaObject +24 (int (*)(...))QThreadPool::qt_metacast +32 (int (*)(...))QThreadPool::qt_metacall +40 (int (*)(...))QThreadPool::~QThreadPool +48 (int (*)(...))QThreadPool::~QThreadPool +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QThreadPool + size=16 align=8 + base size=16 base align=8 +QThreadPool (0x0x7f38b23be5b0) 0 + vptr=((& QThreadPool::_ZTV11QThreadPool) + 16) + QObject (0x0x7f38b23cea80) 0 + primary-for QThreadPool (0x0x7f38b23be5b0) + +Class QThreadStorageData + size=4 align=4 + base size=4 base align=4 +QThreadStorageData (0x0x7f38b23cecc0) 0 + +Class QTimeLine::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimeLine::QPrivateSignal (0x0x7f38b24133c0) 0 empty + +Vtable for QTimeLine +QTimeLine::_ZTV9QTimeLine: 15 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI9QTimeLine) +16 (int (*)(...))QTimeLine::metaObject +24 (int (*)(...))QTimeLine::qt_metacast +32 (int (*)(...))QTimeLine::qt_metacall +40 (int (*)(...))QTimeLine::~QTimeLine +48 (int (*)(...))QTimeLine::~QTimeLine +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimeLine::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTimeLine::valueForTime + +Class QTimeLine + size=16 align=8 + base size=16 base align=8 +QTimeLine (0x0x7f38b23be618) 0 + vptr=((& QTimeLine::_ZTV9QTimeLine) + 16) + QObject (0x0x7f38b2413360) 0 + primary-for QTimeLine (0x0x7f38b23be618) + +Class QTimer::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTimer::QPrivateSignal (0x0x7f38b2413600) 0 empty + +Vtable for QTimer +QTimer::_ZTV6QTimer: 14 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI6QTimer) +16 (int (*)(...))QTimer::metaObject +24 (int (*)(...))QTimer::qt_metacast +32 (int (*)(...))QTimer::qt_metacall +40 (int (*)(...))QTimer::~QTimer +48 (int (*)(...))QTimer::~QTimer +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QTimer::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify + +Class QTimer + size=32 align=8 + base size=29 base align=8 +QTimer (0x0x7f38b23be680) 0 + vptr=((& QTimer::_ZTV6QTimer) + 16) + QObject (0x0x7f38b24135a0) 0 + primary-for QTimer (0x0x7f38b23be680) + +Class QTimeZone::OffsetData + size=32 align=8 + base size=28 base align=8 +QTimeZone::OffsetData (0x0x7f38b2458f60) 0 + +Class QTimeZone + size=8 align=8 + base size=8 base align=8 +QTimeZone (0x0x7f38b2458f00) 0 + +Class QTranslator::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTranslator::QPrivateSignal (0x0x7f38b211e060) 0 empty + +Vtable for QTranslator +QTranslator::_ZTV11QTranslator: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QTranslator) +16 (int (*)(...))QTranslator::metaObject +24 (int (*)(...))QTranslator::qt_metacast +32 (int (*)(...))QTranslator::qt_metacall +40 (int (*)(...))QTranslator::~QTranslator +48 (int (*)(...))QTranslator::~QTranslator +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTranslator::translate +120 (int (*)(...))QTranslator::isEmpty + +Class QTranslator + size=16 align=8 + base size=16 base align=8 +QTranslator (0x0x7f38b2502d68) 0 + vptr=((& QTranslator::_ZTV11QTranslator) + 16) + QObject (0x0x7f38b211e000) 0 + primary-for QTranslator (0x0x7f38b2502d68) + +Class QTransposeProxyModel::QPrivateSignal + size=1 align=1 + base size=0 base align=1 +QTransposeProxyModel::QPrivateSignal (0x0x7f38b211e2a0) 0 empty + +Vtable for QTransposeProxyModel +QTransposeProxyModel::_ZTV20QTransposeProxyModel: 53 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI20QTransposeProxyModel) +16 (int (*)(...))QTransposeProxyModel::metaObject +24 (int (*)(...))QTransposeProxyModel::qt_metacast +32 (int (*)(...))QTransposeProxyModel::qt_metacall +40 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +48 (int (*)(...))QTransposeProxyModel::~QTransposeProxyModel +56 (int (*)(...))QObject::event +64 (int (*)(...))QObject::eventFilter +72 (int (*)(...))QObject::timerEvent +80 (int (*)(...))QObject::childEvent +88 (int (*)(...))QObject::customEvent +96 (int (*)(...))QObject::connectNotify +104 (int (*)(...))QObject::disconnectNotify +112 (int (*)(...))QTransposeProxyModel::index +120 (int (*)(...))QTransposeProxyModel::parent +128 (int (*)(...))QAbstractProxyModel::sibling +136 (int (*)(...))QTransposeProxyModel::rowCount +144 (int (*)(...))QTransposeProxyModel::columnCount +152 (int (*)(...))QAbstractProxyModel::hasChildren +160 (int (*)(...))QAbstractProxyModel::data +168 (int (*)(...))QAbstractProxyModel::setData +176 (int (*)(...))QTransposeProxyModel::headerData +184 (int (*)(...))QTransposeProxyModel::setHeaderData +192 (int (*)(...))QTransposeProxyModel::itemData +200 (int (*)(...))QTransposeProxyModel::setItemData +208 (int (*)(...))QAbstractProxyModel::mimeTypes +216 (int (*)(...))QAbstractProxyModel::mimeData +224 (int (*)(...))QAbstractProxyModel::canDropMimeData +232 (int (*)(...))QAbstractProxyModel::dropMimeData +240 (int (*)(...))QAbstractProxyModel::supportedDropActions +248 (int (*)(...))QAbstractProxyModel::supportedDragActions +256 (int (*)(...))QTransposeProxyModel::insertRows +264 (int (*)(...))QTransposeProxyModel::insertColumns +272 (int (*)(...))QTransposeProxyModel::removeRows +280 (int (*)(...))QTransposeProxyModel::removeColumns +288 (int (*)(...))QTransposeProxyModel::moveRows +296 (int (*)(...))QTransposeProxyModel::moveColumns +304 (int (*)(...))QAbstractProxyModel::fetchMore +312 (int (*)(...))QAbstractProxyModel::canFetchMore +320 (int (*)(...))QAbstractProxyModel::flags +328 (int (*)(...))QTransposeProxyModel::sort +336 (int (*)(...))QAbstractProxyModel::buddy +344 (int (*)(...))QAbstractItemModel::match +352 (int (*)(...))QTransposeProxyModel::span +360 (int (*)(...))QAbstractItemModel::roleNames +368 (int (*)(...))QAbstractProxyModel::submit +376 (int (*)(...))QAbstractProxyModel::revert +384 (int (*)(...))QTransposeProxyModel::setSourceModel +392 (int (*)(...))QTransposeProxyModel::mapToSource +400 (int (*)(...))QTransposeProxyModel::mapFromSource +408 (int (*)(...))QAbstractProxyModel::mapSelectionToSource +416 (int (*)(...))QAbstractProxyModel::mapSelectionFromSource + +Class QTransposeProxyModel + size=16 align=8 + base size=16 base align=8 +QTransposeProxyModel (0x0x7f38b2502dd0) 0 + vptr=((& QTransposeProxyModel::_ZTV20QTransposeProxyModel) + 16) + QAbstractProxyModel (0x0x7f38b2502e38) 0 + primary-for QTransposeProxyModel (0x0x7f38b2502dd0) + QAbstractItemModel (0x0x7f38b2502ea0) 0 + primary-for QAbstractProxyModel (0x0x7f38b2502e38) + QObject (0x0x7f38b211e240) 0 + primary-for QAbstractItemModel (0x0x7f38b2502ea0) + +Class QUrlQuery + size=8 align=8 + base size=8 base align=8 +QUrlQuery (0x0x7f38b211e480) 0 + +Class QWaitCondition + size=8 align=8 + base size=8 base align=8 +QWaitCondition (0x0x7f38b21a0e40) 0 + +Class QXmlStreamStringRef + size=16 align=8 + base size=16 base align=8 +QXmlStreamStringRef (0x0x7f38b21a0f60) 0 + +Class QXmlStreamAttribute + size=80 align=8 + base size=73 base align=8 +QXmlStreamAttribute (0x0x7f38b224b360) 0 + +Class QXmlStreamAttributes + size=8 align=8 + base size=8 base align=8 +QXmlStreamAttributes (0x0x7f38b22b8548) 0 + QVector (0x0x7f38b22b1a80) 0 + +Class QXmlStreamNamespaceDeclaration + size=40 align=8 + base size=40 base align=8 +QXmlStreamNamespaceDeclaration (0x0x7f38b22b1d80) 0 + +Class QXmlStreamNotationDeclaration + size=56 align=8 + base size=56 base align=8 +QXmlStreamNotationDeclaration (0x0x7f38b1f30d20) 0 + +Class QXmlStreamEntityDeclaration + size=88 align=8 + base size=88 base align=8 +QXmlStreamEntityDeclaration (0x0x7f38b1f8bd20) 0 + +Vtable for QXmlStreamEntityResolver +QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI24QXmlStreamEntityResolver) +16 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +24 (int (*)(...))QXmlStreamEntityResolver::~QXmlStreamEntityResolver +32 (int (*)(...))QXmlStreamEntityResolver::resolveEntity +40 (int (*)(...))QXmlStreamEntityResolver::resolveUndeclaredEntity + +Class QXmlStreamEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlStreamEntityResolver (0x0x7f38b1ff6de0) 0 nearly-empty + vptr=((& QXmlStreamEntityResolver::_ZTV24QXmlStreamEntityResolver) + 16) + +Class QXmlStreamReader + size=8 align=8 + base size=8 base align=8 +QXmlStreamReader (0x0x7f38b1ff6e40) 0 + +Class QXmlStreamWriter + size=8 align=8 + base size=8 base align=8 +QXmlStreamWriter (0x0x7f38b2034d20) 0 + +Class QDomImplementation + size=8 align=8 + base size=8 base align=8 +QDomImplementation (0x0x7f38b2034f00) 0 + +Class QDomNode + size=8 align=8 + base size=8 base align=8 +QDomNode (0x0x7f38b2034f60) 0 + +Class QDomNodeList + size=8 align=8 + base size=8 base align=8 +QDomNodeList (0x0x7f38b20ab000) 0 + +Class QDomDocumentType + size=8 align=8 + base size=8 base align=8 +QDomDocumentType (0x0x7f38b2069208) 0 + QDomNode (0x0x7f38b20ab1e0) 0 + +Class QDomDocument + size=8 align=8 + base size=8 base align=8 +QDomDocument (0x0x7f38b2069270) 0 + QDomNode (0x0x7f38b20ab2a0) 0 + +Class QDomNamedNodeMap + size=8 align=8 + base size=8 base align=8 +QDomNamedNodeMap (0x0x7f38b20ab360) 0 + +Class QDomDocumentFragment + size=8 align=8 + base size=8 base align=8 +QDomDocumentFragment (0x0x7f38b20692d8) 0 + QDomNode (0x0x7f38b20ab4e0) 0 + +Class QDomCharacterData + size=8 align=8 + base size=8 base align=8 +QDomCharacterData (0x0x7f38b2069340) 0 + QDomNode (0x0x7f38b20ab5a0) 0 + +Class QDomAttr + size=8 align=8 + base size=8 base align=8 +QDomAttr (0x0x7f38b20693a8) 0 + QDomNode (0x0x7f38b20ab600) 0 + +Class QDomElement + size=8 align=8 + base size=8 base align=8 +QDomElement (0x0x7f38b2069410) 0 + QDomNode (0x0x7f38b20ab6c0) 0 + +Class QDomText + size=8 align=8 + base size=8 base align=8 +QDomText (0x0x7f38b2069478) 0 + QDomCharacterData (0x0x7f38b20694e0) 0 + QDomNode (0x0x7f38b20ab900) 0 + +Class QDomComment + size=8 align=8 + base size=8 base align=8 +QDomComment (0x0x7f38b2069548) 0 + QDomCharacterData (0x0x7f38b20695b0) 0 + QDomNode (0x0x7f38b20ab9c0) 0 + +Class QDomCDATASection + size=8 align=8 + base size=8 base align=8 +QDomCDATASection (0x0x7f38b2069618) 0 + QDomText (0x0x7f38b2069680) 0 + QDomCharacterData (0x0x7f38b20696e8) 0 + QDomNode (0x0x7f38b20aba80) 0 + +Class QDomNotation + size=8 align=8 + base size=8 base align=8 +QDomNotation (0x0x7f38b2069750) 0 + QDomNode (0x0x7f38b20abb40) 0 + +Class QDomEntity + size=8 align=8 + base size=8 base align=8 +QDomEntity (0x0x7f38b20697b8) 0 + QDomNode (0x0x7f38b20abc00) 0 + +Class QDomEntityReference + size=8 align=8 + base size=8 base align=8 +QDomEntityReference (0x0x7f38b2069820) 0 + QDomNode (0x0x7f38b20abcc0) 0 + +Class QDomProcessingInstruction + size=8 align=8 + base size=8 base align=8 +QDomProcessingInstruction (0x0x7f38b2069888) 0 + QDomNode (0x0x7f38b20abd80) 0 + +Class QXmlNamespaceSupport + size=8 align=8 + base size=8 base align=8 +QXmlNamespaceSupport (0x0x7f38b20abe40) 0 + +Class QXmlAttributes::Attribute + size=32 align=8 + base size=32 base align=8 +QXmlAttributes::Attribute (0x0x7f38b20abf00) 0 + +Vtable for QXmlAttributes +QXmlAttributes::_ZTV14QXmlAttributes: 4 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QXmlAttributes) +16 (int (*)(...))QXmlAttributes::~QXmlAttributes +24 (int (*)(...))QXmlAttributes::~QXmlAttributes + +Class QXmlAttributes + size=24 align=8 + base size=24 base align=8 +QXmlAttributes (0x0x7f38b20abea0) 0 + vptr=((& QXmlAttributes::_ZTV14QXmlAttributes) + 16) + +Vtable for QXmlInputSource +QXmlInputSource::_ZTV15QXmlInputSource: 11 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QXmlInputSource) +16 (int (*)(...))QXmlInputSource::~QXmlInputSource +24 (int (*)(...))QXmlInputSource::~QXmlInputSource +32 (int (*)(...))QXmlInputSource::setData +40 (int (*)(...))QXmlInputSource::setData +48 (int (*)(...))QXmlInputSource::fetchData +56 (int (*)(...))QXmlInputSource::data +64 (int (*)(...))QXmlInputSource::next +72 (int (*)(...))QXmlInputSource::reset +80 (int (*)(...))QXmlInputSource::fromRawData + +Class QXmlInputSource + size=16 align=8 + base size=16 base align=8 +QXmlInputSource (0x0x7f38b1ead720) 0 + vptr=((& QXmlInputSource::_ZTV15QXmlInputSource) + 16) + +Class QXmlParseException + size=8 align=8 + base size=8 base align=8 +QXmlParseException (0x0x7f38b1ead780) 0 + +Vtable for QXmlReader +QXmlReader::_ZTV10QXmlReader: 24 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI10QXmlReader) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual +128 (int (*)(...))__cxa_pure_virtual +136 (int (*)(...))__cxa_pure_virtual +144 (int (*)(...))__cxa_pure_virtual +152 (int (*)(...))__cxa_pure_virtual +160 (int (*)(...))__cxa_pure_virtual +168 (int (*)(...))__cxa_pure_virtual +176 (int (*)(...))__cxa_pure_virtual +184 (int (*)(...))__cxa_pure_virtual + +Class QXmlReader + size=8 align=8 + base size=8 base align=8 +QXmlReader (0x0x7f38b1ead840) 0 nearly-empty + vptr=((& QXmlReader::_ZTV10QXmlReader) + 16) + +Vtable for QXmlSimpleReader +QXmlSimpleReader::_ZTV16QXmlSimpleReader: 26 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QXmlSimpleReader) +16 (int (*)(...))QXmlSimpleReader::~QXmlSimpleReader +24 (int (*)(...))QXmlSimpleReader::~QXmlSimpleReader +32 (int (*)(...))QXmlSimpleReader::feature +40 (int (*)(...))QXmlSimpleReader::setFeature +48 (int (*)(...))QXmlSimpleReader::hasFeature +56 (int (*)(...))QXmlSimpleReader::property +64 (int (*)(...))QXmlSimpleReader::setProperty +72 (int (*)(...))QXmlSimpleReader::hasProperty +80 (int (*)(...))QXmlSimpleReader::setEntityResolver +88 (int (*)(...))QXmlSimpleReader::entityResolver +96 (int (*)(...))QXmlSimpleReader::setDTDHandler +104 (int (*)(...))QXmlSimpleReader::DTDHandler +112 (int (*)(...))QXmlSimpleReader::setContentHandler +120 (int (*)(...))QXmlSimpleReader::contentHandler +128 (int (*)(...))QXmlSimpleReader::setErrorHandler +136 (int (*)(...))QXmlSimpleReader::errorHandler +144 (int (*)(...))QXmlSimpleReader::setLexicalHandler +152 (int (*)(...))QXmlSimpleReader::lexicalHandler +160 (int (*)(...))QXmlSimpleReader::setDeclHandler +168 (int (*)(...))QXmlSimpleReader::declHandler +176 (int (*)(...))QXmlSimpleReader::parse +184 (int (*)(...))QXmlSimpleReader::parse +192 (int (*)(...))QXmlSimpleReader::parse +200 (int (*)(...))QXmlSimpleReader::parseContinue + +Class QXmlSimpleReader + size=16 align=8 + base size=16 base align=8 +QXmlSimpleReader (0x0x7f38b1eaa9c0) 0 + vptr=((& QXmlSimpleReader::_ZTV16QXmlSimpleReader) + 16) + QXmlReader (0x0x7f38b1eada80) 0 nearly-empty + primary-for QXmlSimpleReader (0x0x7f38b1eaa9c0) + +Vtable for QXmlLocator +QXmlLocator::_ZTV11QXmlLocator: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI11QXmlLocator) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QXmlLocator + size=8 align=8 + base size=8 base align=8 +QXmlLocator (0x0x7f38b1eadc60) 0 nearly-empty + vptr=((& QXmlLocator::_ZTV11QXmlLocator) + 16) + +Vtable for QXmlContentHandler +QXmlContentHandler::_ZTV18QXmlContentHandler: 16 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QXmlContentHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual +96 (int (*)(...))__cxa_pure_virtual +104 (int (*)(...))__cxa_pure_virtual +112 (int (*)(...))__cxa_pure_virtual +120 (int (*)(...))__cxa_pure_virtual + +Class QXmlContentHandler + size=8 align=8 + base size=8 base align=8 +QXmlContentHandler (0x0x7f38b1eadcc0) 0 nearly-empty + vptr=((& QXmlContentHandler::_ZTV18QXmlContentHandler) + 16) + +Vtable for QXmlErrorHandler +QXmlErrorHandler::_ZTV16QXmlErrorHandler: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI16QXmlErrorHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QXmlErrorHandler + size=8 align=8 + base size=8 base align=8 +QXmlErrorHandler (0x0x7f38b1eadf00) 0 nearly-empty + vptr=((& QXmlErrorHandler::_ZTV16QXmlErrorHandler) + 16) + +Vtable for QXmlDTDHandler +QXmlDTDHandler::_ZTV14QXmlDTDHandler: 7 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI14QXmlDTDHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual + +Class QXmlDTDHandler + size=8 align=8 + base size=8 base align=8 +QXmlDTDHandler (0x0x7f38b1ef5180) 0 nearly-empty + vptr=((& QXmlDTDHandler::_ZTV14QXmlDTDHandler) + 16) + +Vtable for QXmlEntityResolver +QXmlEntityResolver::_ZTV18QXmlEntityResolver: 6 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QXmlEntityResolver) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual + +Class QXmlEntityResolver + size=8 align=8 + base size=8 base align=8 +QXmlEntityResolver (0x0x7f38b1ef53c0) 0 nearly-empty + vptr=((& QXmlEntityResolver::_ZTV18QXmlEntityResolver) + 16) + +Vtable for QXmlLexicalHandler +QXmlLexicalHandler::_ZTV18QXmlLexicalHandler: 12 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QXmlLexicalHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual +64 (int (*)(...))__cxa_pure_virtual +72 (int (*)(...))__cxa_pure_virtual +80 (int (*)(...))__cxa_pure_virtual +88 (int (*)(...))__cxa_pure_virtual + +Class QXmlLexicalHandler + size=8 align=8 + base size=8 base align=8 +QXmlLexicalHandler (0x0x7f38b1ef5600) 0 nearly-empty + vptr=((& QXmlLexicalHandler::_ZTV18QXmlLexicalHandler) + 16) + +Vtable for QXmlDeclHandler +QXmlDeclHandler::_ZTV15QXmlDeclHandler: 8 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI15QXmlDeclHandler) +16 0 +24 0 +32 (int (*)(...))__cxa_pure_virtual +40 (int (*)(...))__cxa_pure_virtual +48 (int (*)(...))__cxa_pure_virtual +56 (int (*)(...))__cxa_pure_virtual + +Class QXmlDeclHandler + size=8 align=8 + base size=8 base align=8 +QXmlDeclHandler (0x0x7f38b1ef5840) 0 nearly-empty + vptr=((& QXmlDeclHandler::_ZTV15QXmlDeclHandler) + 16) + +Vtable for QXmlDefaultHandler +QXmlDefaultHandler::_ZTV18QXmlDefaultHandler: 73 entries +0 (int (*)(...))0 +8 (int (*)(...))(& _ZTI18QXmlDefaultHandler) +16 (int (*)(...))QXmlDefaultHandler::~QXmlDefaultHandler +24 (int (*)(...))QXmlDefaultHandler::~QXmlDefaultHandler +32 (int (*)(...))QXmlDefaultHandler::setDocumentLocator +40 (int (*)(...))QXmlDefaultHandler::startDocument +48 (int (*)(...))QXmlDefaultHandler::endDocument +56 (int (*)(...))QXmlDefaultHandler::startPrefixMapping +64 (int (*)(...))QXmlDefaultHandler::endPrefixMapping +72 (int (*)(...))QXmlDefaultHandler::startElement +80 (int (*)(...))QXmlDefaultHandler::endElement +88 (int (*)(...))QXmlDefaultHandler::characters +96 (int (*)(...))QXmlDefaultHandler::ignorableWhitespace +104 (int (*)(...))QXmlDefaultHandler::processingInstruction +112 (int (*)(...))QXmlDefaultHandler::skippedEntity +120 (int (*)(...))QXmlDefaultHandler::errorString +128 (int (*)(...))QXmlDefaultHandler::warning +136 (int (*)(...))QXmlDefaultHandler::error +144 (int (*)(...))QXmlDefaultHandler::fatalError +152 (int (*)(...))QXmlDefaultHandler::notationDecl +160 (int (*)(...))QXmlDefaultHandler::unparsedEntityDecl +168 (int (*)(...))QXmlDefaultHandler::resolveEntity +176 (int (*)(...))QXmlDefaultHandler::startDTD +184 (int (*)(...))QXmlDefaultHandler::endDTD +192 (int (*)(...))QXmlDefaultHandler::startEntity +200 (int (*)(...))QXmlDefaultHandler::endEntity +208 (int (*)(...))QXmlDefaultHandler::startCDATA +216 (int (*)(...))QXmlDefaultHandler::endCDATA +224 (int (*)(...))QXmlDefaultHandler::comment +232 (int (*)(...))QXmlDefaultHandler::attributeDecl +240 (int (*)(...))QXmlDefaultHandler::internalEntityDecl +248 (int (*)(...))QXmlDefaultHandler::externalEntityDecl +256 (int (*)(...))-8 +264 (int (*)(...))(& _ZTI18QXmlDefaultHandler) +272 (int (*)(...))QXmlDefaultHandler::_ZThn8_N18QXmlDefaultHandlerD1Ev +280 (int (*)(...))QXmlDefaultHandler::_ZThn8_N18QXmlDefaultHandlerD0Ev +288 (int (*)(...))QXmlDefaultHandler::_ZThn8_N18QXmlDefaultHandler7warningERK18QXmlParseException +296 (int (*)(...))QXmlDefaultHandler::_ZThn8_N18QXmlDefaultHandler5errorERK18QXmlParseException +304 (int (*)(...))QXmlDefaultHandler::_ZThn8_N18QXmlDefaultHandler10fatalErrorERK18QXmlParseException +312 (int (*)(...))QXmlDefaultHandler::_ZThn8_NK18QXmlDefaultHandler11errorStringEv +320 (int (*)(...))-16 +328 (int (*)(...))(& _ZTI18QXmlDefaultHandler) +336 (int (*)(...))QXmlDefaultHandler::_ZThn16_N18QXmlDefaultHandlerD1Ev +344 (int (*)(...))QXmlDefaultHandler::_ZThn16_N18QXmlDefaultHandlerD0Ev +352 (int (*)(...))QXmlDefaultHandler::_ZThn16_N18QXmlDefaultHandler12notationDeclERK7QStringS2_S2_ +360 (int (*)(...))QXmlDefaultHandler::_ZThn16_N18QXmlDefaultHandler18unparsedEntityDeclERK7QStringS2_S2_S2_ +368 (int (*)(...))QXmlDefaultHandler::_ZThn16_NK18QXmlDefaultHandler11errorStringEv +376 (int (*)(...))-24 +384 (int (*)(...))(& _ZTI18QXmlDefaultHandler) +392 (int (*)(...))QXmlDefaultHandler::_ZThn24_N18QXmlDefaultHandlerD1Ev +400 (int (*)(...))QXmlDefaultHandler::_ZThn24_N18QXmlDefaultHandlerD0Ev +408 (int (*)(...))QXmlDefaultHandler::_ZThn24_N18QXmlDefaultHandler13resolveEntityERK7QStringS2_RP15QXmlInputSource +416 (int (*)(...))QXmlDefaultHandler::_ZThn24_NK18QXmlDefaultHandler11errorStringEv +424 (int (*)(...))-32 +432 (int (*)(...))(& _ZTI18QXmlDefaultHandler) +440 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandlerD1Ev +448 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandlerD0Ev +456 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler8startDTDERK7QStringS2_S2_ +464 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler6endDTDEv +472 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler11startEntityERK7QString +480 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler9endEntityERK7QString +488 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler10startCDATAEv +496 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler8endCDATAEv +504 (int (*)(...))QXmlDefaultHandler::_ZThn32_N18QXmlDefaultHandler7commentERK7QString +512 (int (*)(...))QXmlDefaultHandler::_ZThn32_NK18QXmlDefaultHandler11errorStringEv +520 (int (*)(...))-40 +528 (int (*)(...))(& _ZTI18QXmlDefaultHandler) +536 (int (*)(...))QXmlDefaultHandler::_ZThn40_N18QXmlDefaultHandlerD1Ev +544 (int (*)(...))QXmlDefaultHandler::_ZThn40_N18QXmlDefaultHandlerD0Ev +552 (int (*)(...))QXmlDefaultHandler::_ZThn40_N18QXmlDefaultHandler13attributeDeclERK7QStringS2_S2_S2_S2_ +560 (int (*)(...))QXmlDefaultHandler::_ZThn40_N18QXmlDefaultHandler18internalEntityDeclERK7QStringS2_ +568 (int (*)(...))QXmlDefaultHandler::_ZThn40_N18QXmlDefaultHandler18externalEntityDeclERK7QStringS2_S2_ +576 (int (*)(...))QXmlDefaultHandler::_ZThn40_NK18QXmlDefaultHandler11errorStringEv + +Class QXmlDefaultHandler + size=56 align=8 + base size=56 base align=8 +QXmlDefaultHandler (0x0x7f38b1f041b0) 0 + vptr=((& QXmlDefaultHandler::_ZTV18QXmlDefaultHandler) + 16) + QXmlContentHandler (0x0x7f38b1ef5a80) 0 nearly-empty + primary-for QXmlDefaultHandler (0x0x7f38b1f041b0) + QXmlErrorHandler (0x0x7f38b1ef5ae0) 8 nearly-empty + vptr=((& QXmlDefaultHandler::_ZTV18QXmlDefaultHandler) + 272) + QXmlDTDHandler (0x0x7f38b1ef5b40) 16 nearly-empty + vptr=((& QXmlDefaultHandler::_ZTV18QXmlDefaultHandler) + 336) + QXmlEntityResolver (0x0x7f38b1ef5ba0) 24 nearly-empty + vptr=((& QXmlDefaultHandler::_ZTV18QXmlDefaultHandler) + 392) + QXmlLexicalHandler (0x0x7f38b1ef5c00) 32 nearly-empty + vptr=((& QXmlDefaultHandler::_ZTV18QXmlDefaultHandler) + 440) + QXmlDeclHandler (0x0x7f38b1ef5c60) 40 nearly-empty + vptr=((& QXmlDefaultHandler::_ZTV18QXmlDefaultHandler) + 536) + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1b5b180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1b5b4e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1b5b6c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1b5ba20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1b5bc00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1b5bf60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1b98180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1b984e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1b986c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = char; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1b98a20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1b98c00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1b98f60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1bcf180) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1bcf4e0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1bcf6c0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = char; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1bcfa20) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c06f00) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c302a0) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c30420) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long int; _Ret = long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c30780) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c30900) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long unsigned int; _Ret = long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c30c60) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c30de0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long int; _Ret = long long int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c62180) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c62300) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long long unsigned int; _Ret = long long unsigned int; _CharT = wchar_t; _Base = {int}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c62660) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c627e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = float; _Ret = float; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c62b40) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c62cc0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = double; _Ret = double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c8e060) 0 empty + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno + size=4 align=4 + base size=4 base align=4 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Save_errno (0x0x7f38b1c8e1e0) 0 + +Class __gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk + size=1 align=1 + base size=0 base align=1 +__gnu_cxx::__stoa(_TRet (*)(const _CharT*, _CharT**, _Base ...), const char*, const _CharT*, std::size_t*, _Base ...) [with _TRet = long double; _Ret = long double; _CharT = wchar_t; _Base = {}; std::size_t = long unsigned int]::_Range_chk (0x0x7f38b1c8e540) 0 empty + -- cgit v1.2.3 From 5322998a0ba80b1e095340245ddb00aaf5947be9 Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland Date: Tue, 13 Aug 2019 12:11:40 +0200 Subject: Limit curve stroking threshold to reasonable range Avoid unreasonable threshold values for extremely wide pens, since that can lead to a very high processing cost. The rare usecases where this would make a noticeable difference will necessarily also be using scaling, and so is anyway depending on setting a suitable curve threshold manually. Fixes: QTBUG-77241 Change-Id: I27cea7d566d144389bb430739fde4f6033c4a28c Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/painting/qstroker_p.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/painting/qstroker_p.h b/src/gui/painting/qstroker_p.h index 59e4cc6a7b..7df766e9a3 100644 --- a/src/gui/painting/qstroker_p.h +++ b/src/gui/painting/qstroker_p.h @@ -209,7 +209,7 @@ public: QStroker(); ~QStroker(); - void setStrokeWidth(qfixed width) { m_strokeWidth = width; m_curveThreshold = qt_real_to_fixed(width > 4 ? 1.0/width : 0.25); } + void setStrokeWidth(qfixed width) { m_strokeWidth = width; m_curveThreshold = qt_real_to_fixed(qBound(0.025, 1.0/width, 0.25)); } qfixed strokeWidth() const { return m_strokeWidth; } void setCapStyle(Qt::PenCapStyle capStyle) { m_capStyle = joinModeForCap(capStyle); } -- cgit v1.2.3 From 8bd48a1c335b404ebbeb7c09c859e0715e6b5cd4 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Wed, 14 Aug 2019 10:29:21 +0200 Subject: Fix crash in optimized solid fills on RGBA64PM Was expecting destStore64 to be non-null. Change-Id: I4fc827256630a35e0669d405c04f9b5b7e71580e Reviewed-by: Eirik Aavitsland --- src/gui/painting/qdrawhelper.cpp | 2 +- tests/auto/other/lancelot/tst_lancelot.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 36fb091ff8..533ad39b86 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -4491,7 +4491,7 @@ void blend_color_generic_rgb64(int count, const QSpan *spans, void *userData) while (count--) { int x = spans->x; int length = spans->len; - if (solidFill && bpp >= QPixelLayout::BPP8 && spans->coverage == 255 && length) { + if (solidFill && bpp >= QPixelLayout::BPP8 && spans->coverage == 255 && length && op.destStore64) { // If dest doesn't matter we don't need to bother with blending or converting all the identical pixels op.destStore64(data->rasterBuffer, x, spans->y, &color, 1); spanfill_from_first(data->rasterBuffer, bpp, x, spans->y, length); diff --git a/tests/auto/other/lancelot/tst_lancelot.cpp b/tests/auto/other/lancelot/tst_lancelot.cpp index 15267d256e..ba04802a26 100644 --- a/tests/auto/other/lancelot/tst_lancelot.cpp +++ b/tests/auto/other/lancelot/tst_lancelot.cpp @@ -85,6 +85,8 @@ private slots: void testRasterARGB8565PM(); void testRasterGrayscale8_data(); void testRasterGrayscale8(); + void testRasterRGBA64PM_data(); + void testRasterRGBA64PM(); #ifndef QT_NO_OPENGL void testOpenGL_data(); @@ -226,6 +228,17 @@ void tst_Lancelot::testRasterGrayscale8() } +void tst_Lancelot::testRasterRGBA64PM_data() +{ + setupTestSuite(); +} + +void tst_Lancelot::testRasterRGBA64PM() +{ + runTestSuite(Raster, QImage::Format_RGBA64_Premultiplied); +} + + #ifndef QT_NO_OPENGL bool tst_Lancelot::checkSystemGLSupport() { -- cgit v1.2.3 From 98aeee5b5b120afba850607e497c55f3cc93a51c Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 7 Aug 2019 10:12:59 +0200 Subject: rhi: Avoid generating gl errors in ES 2.0 contexts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ...due to setting the unsupported texture compare mode. This keeps wasm happy (gl errors show up in the console there). Change-Id: I5de8bce8e793c709272f3df499d2320c7b07ff71 Reviewed-by: Christian Strømme --- src/gui/rhi/qrhigles2.cpp | 17 ++++++++++++----- src/gui/rhi/qrhigles2_p_p.h | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 379801efbd..92aaf9d4b0 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -472,6 +472,11 @@ bool QRhiGles2::create(QRhi::Flags flags) else caps.compute = caps.ctxMajor > 4 || (caps.ctxMajor == 4 && caps.ctxMinor >= 3); // 4.3 + if (caps.gles) + caps.textureCompareMode = caps.ctxMajor >= 3; // ES 3.0 + else + caps.textureCompareMode = true; + if (!caps.gles) f->glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); // else (with gles) this is always on @@ -2376,11 +2381,13 @@ void QRhiGles2::bindShaderResources(QRhiGraphicsPipeline *maybeGraphicsPs, QRhiC f->glTexParameteri(texD->target, GL_TEXTURE_WRAP_T, samplerD->d.glwrapt); // 3D textures not supported by GLES 2.0 or by us atm... //f->glTexParameteri(texD->target, GL_TEXTURE_WRAP_R, samplerD->d.glwrapr); - if (samplerD->d.gltexcomparefunc != GL_NEVER) { - f->glTexParameteri(texD->target, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_REF_TO_TEXTURE); - f->glTexParameteri(texD->target, GL_TEXTURE_COMPARE_FUNC, samplerD->d.gltexcomparefunc); - } else { - f->glTexParameteri(texD->target, GL_TEXTURE_COMPARE_MODE, GL_NONE); + if (caps.textureCompareMode) { + if (samplerD->d.gltexcomparefunc != GL_NEVER) { + f->glTexParameteri(texD->target, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_REF_TO_TEXTURE); + f->glTexParameteri(texD->target, GL_TEXTURE_COMPARE_FUNC, samplerD->d.gltexcomparefunc); + } else { + f->glTexParameteri(texD->target, GL_TEXTURE_COMPARE_MODE, GL_NONE); + } } texD->samplerState = samplerD->d; } diff --git a/src/gui/rhi/qrhigles2_p_p.h b/src/gui/rhi/qrhigles2_p_p.h index 88a6144b42..259d16ca5e 100644 --- a/src/gui/rhi/qrhigles2_p_p.h +++ b/src/gui/rhi/qrhigles2_p_p.h @@ -768,6 +768,7 @@ public: uint instancing : 1; uint baseVertex : 1; uint compute : 1; + uint textureCompareMode : 1; } caps; QGles2SwapChain *currentSwapChain = nullptr; QVector supportedCompressedFormats; -- cgit v1.2.3 From 0a36001a13833dc8e1e1e6a51a20d0f8a7373a9c Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 7 Aug 2019 12:52:08 +0200 Subject: rhi: gl: remove useless npot checks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adjusting the size is not very useful on its own. Leave it to Qt Quick or whoever provides the data to scale the source image data as they see fit. This is also more in line with other backends. While we are at it, update the feature flag documentation. It applies both to the repeat wrap mode and filtering modes other than nearest and linear (i.e. mipmapping). Change-Id: Ie28f1436b862335efeac042dc21e09189f46e626 Reviewed-by: Christian Strømme --- src/gui/rhi/qrhi.cpp | 7 +++++-- src/gui/rhi/qrhigles2.cpp | 47 +++++---------------------------------------- src/gui/rhi/qrhigles2_p_p.h | 7 ++----- 3 files changed, 12 insertions(+), 49 deletions(-) diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp index 0da3e05f13..a24bdde04f 100644 --- a/src/gui/rhi/qrhi.cpp +++ b/src/gui/rhi/qrhi.cpp @@ -505,8 +505,11 @@ Q_LOGGING_CATEGORY(QRHI_LOG_INFO, "qt.rhi.general") to issue a \l{QRhiCommandBuffer::drawIndexed()}{drawIndexed()} with a non-aligned effective offset may lead to unspecified behavior. - \value NPOTTextureRepeat Indicates that the \l{QRhiSampler::Repeat}{Repeat} - mode is supported for textures with a non-power-of-two size. + \value NPOTTextureRepeat Indicates that the + \l{QRhiSampler::Repeat}{Repeat} wrap mode and mipmap filtering modes are + supported for textures with a non-power-of-two size. In practice this can + only be false with OpenGL ES 2.0 implementations without + \c{GL_OES_texture_npot}. \value RedOrAlpha8IsRed Indicates that the \l{QRhiTexture::RED_OR_ALPHA8}{RED_OR_ALPHA8} format maps to a one diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 92aaf9d4b0..0d7f8224af 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -424,8 +424,8 @@ bool QRhiGles2::create(QRhi::Flags flags) caps.msaaRenderBuffer = f->hasOpenGLExtension(QOpenGLExtensions::FramebufferMultisample) && f->hasOpenGLExtension(QOpenGLExtensions::FramebufferBlit); - caps.npotTexture = f->hasOpenGLFeature(QOpenGLFunctions::NPOTTextures); - caps.npotTextureRepeat = f->hasOpenGLFeature(QOpenGLFunctions::NPOTTextureRepeat); + caps.npotTextureFull = f->hasOpenGLFeature(QOpenGLFunctions::NPOTTextures) + && f->hasOpenGLFeature(QOpenGLFunctions::NPOTTextureRepeat); caps.gles = actualFormat.renderableType() == QSurfaceFormat::OpenGLES; if (caps.gles) @@ -552,43 +552,6 @@ int QRhiGles2::effectiveSampleCount(int sampleCount) const return s; } -static inline bool isPowerOfTwo(int x) -{ - // Assumption: x >= 1 - return x == (x & -x); -} - -QSize QRhiGles2::safeTextureSize(const QSize &pixelSize) const -{ - QSize size = pixelSize.isEmpty() ? QSize(1, 1) : pixelSize; - - if (!caps.npotTexture) { - if (!isPowerOfTwo(size.width())) { - qWarning("Texture width %d is not a power of two, adjusting", - size.width()); - size.setWidth(qNextPowerOfTwo(size.width())); - } - if (!isPowerOfTwo(size.height())) { - qWarning("Texture height %d is not a power of two, adjusting", - size.height()); - size.setHeight(qNextPowerOfTwo(size.height())); - } - } - - if (size.width() > caps.maxTextureSize) { - qWarning("Texture width %d exceeds maximum width %d, adjusting", - size.width(), caps.maxTextureSize); - size.setWidth(caps.maxTextureSize); - } - if (size.height() > caps.maxTextureSize) { - qWarning("Texture height %d exceeds maximum height %d, adjusting", - size.height(), caps.maxTextureSize); - size.setHeight(caps.maxTextureSize); - } - - return size; -} - QRhiSwapChain *QRhiGles2::createSwapChain() { return new QGles2SwapChain(this); @@ -730,7 +693,7 @@ bool QRhiGles2::isFeatureSupported(QRhi::Feature feature) const case QRhi::NonFourAlignedEffectiveIndexBufferOffset: return true; case QRhi::NPOTTextureRepeat: - return caps.npotTextureRepeat; + return caps.npotTextureFull; case QRhi::RedOrAlpha8IsRed: return caps.coreProfile; case QRhi::ElementIndexUint: @@ -2942,7 +2905,7 @@ bool QGles2RenderBuffer::build() rhiD->f->glGenRenderbuffers(1, &renderbuffer); rhiD->f->glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer); - const QSize size = rhiD->safeTextureSize(m_pixelSize); + const QSize size = m_pixelSize.isEmpty() ? QSize(1, 1) : m_pixelSize; switch (m_type) { case QRhiRenderBuffer::DepthStencil: @@ -3039,7 +3002,7 @@ bool QGles2Texture::prepareBuild(QSize *adjustedSize) if (!rhiD->ensureContext()) return false; - const QSize size = rhiD->safeTextureSize(m_pixelSize); + const QSize size = m_pixelSize.isEmpty() ? QSize(1, 1) : m_pixelSize; const bool isCube = m_flags.testFlag(CubeMap); const bool hasMipMaps = m_flags.testFlag(MipMapped); diff --git a/src/gui/rhi/qrhigles2_p_p.h b/src/gui/rhi/qrhigles2_p_p.h index 259d16ca5e..462ce8032c 100644 --- a/src/gui/rhi/qrhigles2_p_p.h +++ b/src/gui/rhi/qrhigles2_p_p.h @@ -693,7 +693,6 @@ public: QGles2RenderTargetData *enqueueBindFramebuffer(QRhiRenderTarget *rt, QGles2CommandBuffer *cbD, bool *wantsColorClear = nullptr, bool *wantsDsClear = nullptr); int effectiveSampleCount(int sampleCount) const; - QSize safeTextureSize(const QSize &size) const; bool compileShader(GLuint program, const QRhiShaderStage &shaderStage, QShaderDescription *desc, int *glslVersionUsed); bool linkProgram(GLuint program); @@ -717,8 +716,7 @@ public: maxTextureSize(2048), maxDrawBuffers(4), msaaRenderBuffer(false), - npotTexture(true), - npotTextureRepeat(true), + npotTextureFull(true), gles(false), fixedIndexPrimitiveRestart(false), bgraExternalFormat(false), @@ -747,8 +745,7 @@ public: // Multisample fb and blit are supported (GLES 3.0 or OpenGL 3.x). Not // the same as multisample textures! uint msaaRenderBuffer : 1; - uint npotTexture : 1; - uint npotTextureRepeat : 1; + uint npotTextureFull : 1; uint gles : 1; uint fixedIndexPrimitiveRestart : 1; uint bgraExternalFormat : 1; -- cgit v1.2.3 From 959ff0d378c8d31216a70bf38726deac3c7051ff Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Wed, 7 Aug 2019 20:22:51 +0200 Subject: rhi: gl: Fix broken bgra textures on GLES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Switching TexImage2D to the sized internal format was a bad idea. Go with what we do without the RHI in QtGui and elsewhere, and just pass the unsized GL_RGBA or GL_BGRA. Change-Id: I8216c0e49813355fa5e2594b24f06c64bc8e3873 Reviewed-by: Christian Strømme --- src/gui/rhi/qrhigles2.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 0d7f8224af..eabc550447 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -3115,18 +3115,19 @@ bool QGles2Texture::build() for (int layer = 0, layerCount = isCube ? 6 : 1; layer != layerCount; ++layer) { for (int level = 0; level != mipLevelCount; ++level) { const QSize mipSize = rhiD->q->sizeForMipLevel(level, size); - rhiD->f->glTexImage2D(faceTargetBase + layer, level, glsizedintformat, + rhiD->f->glTexImage2D(faceTargetBase + layer, level, glintformat, mipSize.width(), mipSize.height(), 0, glformat, gltype, nullptr); } } } else { - rhiD->f->glTexImage2D(target, 0, glsizedintformat, size.width(), size.height(), + rhiD->f->glTexImage2D(target, 0, glintformat, size.width(), size.height(), 0, glformat, gltype, nullptr); } } else { // Must be specified with immutable storage functions otherwise - // bindImageTexture may fail. + // bindImageTexture may fail. Also, the internal format must be a + // sized format here. rhiD->f->glTexStorage2D(target, mipLevelCount, glsizedintformat, size.width(), size.height()); } specified = true; -- cgit v1.2.3 From cbd695a295e2e12fce2ce2dda86df977bc345a51 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 12 Aug 2019 10:15:59 +0200 Subject: rhi: gl: also enable point sprites on non-ES MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With GLES both point sprites and gl_PointSize in the vertex shader are implcitly enabled, but OpenGL has these as optional and must be enabled explicitly. Change-Id: I48cf6134f6bbd721cb938e2cad82d255cf4fb2cd Reviewed-by: Christian Strømme --- src/gui/rhi/qrhigles2.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index eabc550447..4ad68d6cd0 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -268,6 +268,10 @@ QT_BEGIN_NAMESPACE #define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 #endif +#ifndef GL_POINT_SPRITE +#define GL_POINT_SPRITE 0x8861 +#endif + /*! Constructs a new QRhiGles2InitParams. @@ -477,9 +481,10 @@ bool QRhiGles2::create(QRhi::Flags flags) else caps.textureCompareMode = true; - if (!caps.gles) + if (!caps.gles) { f->glEnable(GL_VERTEX_PROGRAM_POINT_SIZE); - // else (with gles) this is always on + f->glEnable(GL_POINT_SPRITE); + } // else (with gles) these are always on nativeHandlesStruct.context = ctx; -- cgit v1.2.3 From 4bab72368f84840134bebcb1f19fb7c8299ef7ba Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Thu, 8 Aug 2019 15:02:08 +0200 Subject: glx: Do not flood with warnings when reducing during config lookup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With things like sample count reducing a format (16 -> 8 -> 4 -> ...) and trying again is perfectly fine. There is no need to show warnings in this case. Even some of our own examples in qtdeclarative do a setSamples(16) which is rarely supported. These all show warnings since 8ec98fc2dc40237730f99af099dffe2920ef5bcc. Avoid this. Change-Id: Ice83d5720b02e92f77cfd63918c98ad222513b6a Reviewed-by: Christian Strømme --- src/platformsupport/glxconvenience/qglxconvenience.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/platformsupport/glxconvenience/qglxconvenience.cpp b/src/platformsupport/glxconvenience/qglxconvenience.cpp index 6bd73de8f3..ef413ba98d 100644 --- a/src/platformsupport/glxconvenience/qglxconvenience.cpp +++ b/src/platformsupport/glxconvenience/qglxconvenience.cpp @@ -258,9 +258,11 @@ GLXFBConfig qglx_findConfig(Display *display, int screen , QSurfaceFormat format qCDebug(lcGlx) << "qglx_findConfig: Found non-matching but compatible FBConfig"; return compatibleCandidate; } - qCWarning(lcGlx, "qglx_findConfig: Failed to finding matching FBConfig (%d %d %d %d)", requestedRed, requestedGreen, requestedBlue, requestedAlpha); } while (qglx_reduceFormat(&format)); + if (!config) + qCWarning(lcGlx) << "qglx_findConfig: Failed to finding matching FBConfig for" << format; + return config; } -- cgit v1.2.3 From 6b9d319b26da2e4b6f939ee92a176f8604c1c539 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Tue, 9 Jul 2019 11:52:28 +0200 Subject: QFileSystemModel: Add options Add Options flags similar to QFileDialog: - DontWatch: Do not use file system watchers for simple use cases like line edit completion. This brings it closer to QDirModel, which then can be deprecated. - DontResolveSymlinks: Similar to QFileDialog::DontResolveSymlinks. - DontUseCustomDirectoryIcons: matching QFileIconProvider::DontUseCustomDirectoryIcons for convenience. Task-number: QTBUG-76493 Change-Id: I09d3cb73ef902a700e6ebfba427e2d990fce4b4c Reviewed-by: Qt CI Bot Reviewed-by: Volker Hilsheimer --- examples/widgets/itemviews/dirview/main.cpp | 8 ++- src/widgets/dialogs/qfilesystemmodel.cpp | 103 ++++++++++++++++++++++++++++ src/widgets/dialogs/qfilesystemmodel.h | 17 +++++ 3 files changed, 126 insertions(+), 2 deletions(-) diff --git a/examples/widgets/itemviews/dirview/main.cpp b/examples/widgets/itemviews/dirview/main.cpp index eefea657f6..bf485e6c3c 100644 --- a/examples/widgets/itemviews/dirview/main.cpp +++ b/examples/widgets/itemviews/dirview/main.cpp @@ -65,8 +65,10 @@ int main(int argc, char *argv[]) parser.setApplicationDescription("Qt Dir View Example"); parser.addHelpOption(); parser.addVersionOption(); - QCommandLineOption dontUseCustomDirectoryIconsOption("c", "Set QFileIconProvider::DontUseCustomDirectoryIcons"); + QCommandLineOption dontUseCustomDirectoryIconsOption("c", "Set QFileSystemModel::DontUseCustomDirectoryIcons"); parser.addOption(dontUseCustomDirectoryIconsOption); + QCommandLineOption dontWatchOption("w", "Set QFileSystemModel::DontWatch"); + parser.addOption(dontWatchOption); parser.addPositionalArgument("directory", "The directory to start in."); parser.process(app); const QString rootPath = parser.positionalArguments().isEmpty() @@ -75,7 +77,9 @@ int main(int argc, char *argv[]) QFileSystemModel model; model.setRootPath(""); if (parser.isSet(dontUseCustomDirectoryIconsOption)) - model.iconProvider()->setOptions(QFileIconProvider::DontUseCustomDirectoryIcons); + model.setOption(QFileSystemModel::DontUseCustomDirectoryIcons); + if (parser.isSet(dontWatchOption)) + model.setOption(QFileSystemModel::DontWatch); QTreeView tree; tree.setModel(&model); if (!rootPath.isEmpty()) { diff --git a/src/widgets/dialogs/qfilesystemmodel.cpp b/src/widgets/dialogs/qfilesystemmodel.cpp index 820fc6e220..212223359a 100644 --- a/src/widgets/dialogs/qfilesystemmodel.cpp +++ b/src/widgets/dialogs/qfilesystemmodel.cpp @@ -1263,6 +1263,107 @@ Qt::DropActions QFileSystemModel::supportedDropActions() const return Qt::CopyAction | Qt::MoveAction | Qt::LinkAction; } +/*! + \enum QFileSystemModel::Option + \since 5.14 + + \value DontWatch Do not add file watchers to the paths. + This reduces overhead when using the model for simple tasks + like line edit completion. + + \value DontResolveSymlinks Don't resolve symlinks in the file + system model. By default, symlinks are resolved. + + \value DontUseCustomDirectoryIcons Always use the default directory icon. + Some platforms allow the user to set a different icon. Custom icon lookup + causes a big performance impact over network or removable drives. + This sets the QFileIconProvider::DontUseCustomDirectoryIcons + option in the icon provider accordingly. + + \sa resolveSymlinks +*/ + +/*! + \since 5.14 + Sets the given \a option to be enabled if \a on is true; otherwise, + clears the given \a option. + + Options should be set before changing properties. + + \sa options, testOption() +*/ +void QFileSystemModel::setOption(Option option, bool on) +{ + QFileSystemModel::Options previousOptions = options(); + setOptions(previousOptions.setFlag(option, on)); +} + +/*! + \since 5.14 + + Returns \c true if the given \a option is enabled; otherwise, returns + false. + + \sa options, setOption() +*/ +bool QFileSystemModel::testOption(Option option) const +{ + return options().testFlag(option); +} + +/*! + \property QFileSystemModel::options + \brief the various options that affect the model + \since 5.14 + + By default, all options are disabled. + + Options should be set before changing properties. + + \sa setOption(), testOption() +*/ +void QFileSystemModel::setOptions(Options options) +{ + const Options changed = (options ^ QFileSystemModel::options()); + + if (changed.testFlag(DontResolveSymlinks)) + setResolveSymlinks(!options.testFlag(DontResolveSymlinks)); + +#if QT_CONFIG(filesystemwatcher) + Q_D(QFileSystemModel); + if (changed.testFlag(DontWatch)) + d->fileInfoGatherer.setWatching(!options.testFlag(DontWatch)); +#endif + + if (changed.testFlag(DontUseCustomDirectoryIcons)) { + if (auto provider = iconProvider()) { + QFileIconProvider::Options providerOptions = provider->options(); + providerOptions.setFlag(QFileIconProvider::DontUseCustomDirectoryIcons, + options.testFlag(QFileSystemModel::DontUseCustomDirectoryIcons)); + provider->setOptions(providerOptions); + } else { + qWarning("Setting QFileSystemModel::DontUseCustomDirectoryIcons has no effect when no provider is used"); + } + } +} + +QFileSystemModel::Options QFileSystemModel::options() const +{ + QFileSystemModel::Options result; + result.setFlag(DontResolveSymlinks, !resolveSymlinks()); +#if QT_CONFIG(filesystemwatcher) + Q_D(const QFileSystemModel); + result.setFlag(DontWatch, !d->fileInfoGatherer.isWatching()); +#else + result.setFlag(DontWatch); +#endif + if (auto provider = iconProvider()) { + result.setFlag(DontUseCustomDirectoryIcons, + provider->options().testFlag(QFileIconProvider::DontUseCustomDirectoryIcons)); + } + return result; +} + /*! Returns the path of the item stored in the model under the \a index given. @@ -1509,6 +1610,8 @@ QDir::Filters QFileSystemModel::filter() const This is only relevant on Windows. By default, this property is \c true. + + \sa QFileSystemModel::Options */ void QFileSystemModel::setResolveSymlinks(bool enable) { diff --git a/src/widgets/dialogs/qfilesystemmodel.h b/src/widgets/dialogs/qfilesystemmodel.h index c2c8b8818e..877b7891d4 100644 --- a/src/widgets/dialogs/qfilesystemmodel.h +++ b/src/widgets/dialogs/qfilesystemmodel.h @@ -61,6 +61,7 @@ class Q_WIDGETS_EXPORT QFileSystemModel : public QAbstractItemModel Q_PROPERTY(bool resolveSymlinks READ resolveSymlinks WRITE setResolveSymlinks) Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly) Q_PROPERTY(bool nameFilterDisables READ nameFilterDisables WRITE setNameFilterDisables) + Q_PROPERTY(Options options READ options WRITE setOptions) Q_SIGNALS: void rootPathChanged(const QString &newPath); @@ -75,6 +76,15 @@ public: FilePermissions = Qt::UserRole + 3 }; + enum Option + { + DontWatch = 0x00000001, + DontResolveSymlinks = 0x00000002, + DontUseCustomDirectoryIcons = 0x00000004 + }; + Q_ENUM(Option) + Q_DECLARE_FLAGS(Options, Option) + explicit QFileSystemModel(QObject *parent = nullptr); ~QFileSystemModel(); @@ -129,6 +139,11 @@ public: void setNameFilters(const QStringList &filters); QStringList nameFilters() const; + void setOption(Option option, bool on = true); + bool testOption(Option option) const; + void setOptions(Options options); + Options options() const; + QString filePath(const QModelIndex &index) const; bool isDir(const QModelIndex &index) const; qint64 size(const QModelIndex &index) const; @@ -165,6 +180,8 @@ inline QString QFileSystemModel::fileName(const QModelIndex &aindex) const inline QIcon QFileSystemModel::fileIcon(const QModelIndex &aindex) const { return qvariant_cast(aindex.data(Qt::DecorationRole)); } +Q_DECLARE_OPERATORS_FOR_FLAGS(QFileSystemModel::Options) + QT_END_NAMESPACE #endif // QFILESYSTEMMODEL_H -- cgit v1.2.3 From 3d56572fe7c5111aa984e358d3c9a8c41ae87e56 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 2 Nov 2018 12:40:26 +0100 Subject: Include buildAbi() in the shader cache directory name Task-number: QTBUG-64697 Change-Id: I8b81bce94c50464105a9a43086b06b841e4b8551 Reviewed-by: Friedemann Kleint --- src/gui/opengl/qopenglprogrambinarycache.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/opengl/qopenglprogrambinarycache.cpp b/src/gui/opengl/qopenglprogrambinarycache.cpp index 7029cd5455..af48cdacc7 100644 --- a/src/gui/opengl/qopenglprogrambinarycache.cpp +++ b/src/gui/opengl/qopenglprogrambinarycache.cpp @@ -40,6 +40,7 @@ #include "qopenglprogrambinarycache_p.h" #include #include +#include #include #include #include @@ -102,7 +103,7 @@ static inline bool qt_ensureWritableDir(const QString &name) QOpenGLProgramBinaryCache::QOpenGLProgramBinaryCache() : m_cacheWritable(false) { - const QString subPath = QLatin1String("/qtshadercache/"); + const QString subPath = QLatin1String("/qtshadercache-") + QSysInfo::buildAbi() + QLatin1Char('/'); const QString sharedCachePath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation); if (!sharedCachePath.isEmpty()) { m_cacheDir = sharedCachePath + subPath; -- cgit v1.2.3 From 1be4f6c32c9846a2343f94628ba9704cf22ec5b1 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 5 Nov 2018 15:57:22 +0100 Subject: Avoid querying unknown RESET_NOTIFICATION_STRATEGY value on GL < 4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: QTBUG-55759 Change-Id: Ie2758859a6862a214691a5011761bf549a31a93e Reviewed-by: Christian Strømme --- src/plugins/platforms/windows/qwindowsglcontext.cpp | 11 +++++++---- .../xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 12 +++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsglcontext.cpp b/src/plugins/platforms/windows/qwindowsglcontext.cpp index e95eaef420..1063432dcc 100644 --- a/src/plugins/platforms/windows/qwindowsglcontext.cpp +++ b/src/plugins/platforms/windows/qwindowsglcontext.cpp @@ -876,10 +876,6 @@ QWindowsOpenGLContextFormat QWindowsOpenGLContextFormat::current() result.options |= QSurfaceFormat::DeprecatedFunctions; if (value & GL_CONTEXT_FLAG_DEBUG_BIT) result.options |= QSurfaceFormat::DebugContext; - value = 0; - QOpenGLStaticContext::opengl32.glGetIntegerv(RESET_NOTIFICATION_STRATEGY_ARB, &value); - if (value == LOSE_CONTEXT_ON_RESET_ARB) - result.options |= QSurfaceFormat::ResetNotification; if (result.version < 0x0302) return result; // v3.2 onwards: Profiles @@ -889,6 +885,13 @@ QWindowsOpenGLContextFormat QWindowsOpenGLContextFormat::current() result.profile = QSurfaceFormat::CoreProfile; else if (value & GL_CONTEXT_COMPATIBILITY_PROFILE_BIT) result.profile = QSurfaceFormat::CompatibilityProfile; + if (result.version < 0x0400) + return result; + // v4.0 onwards + value = 0; + QOpenGLStaticContext::opengl32.glGetIntegerv(RESET_NOTIFICATION_STRATEGY_ARB, &value); + if (value == LOSE_CONTEXT_ON_RESET_ARB) + result.options |= QSurfaceFormat::ResetNotification; return result; } diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp index f26f698e76..5e5fefca90 100644 --- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp +++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp @@ -163,10 +163,12 @@ static void updateFormatFromContext(QSurfaceFormat &format) format.setOption(QSurfaceFormat::StereoBuffers); if (format.renderableType() == QSurfaceFormat::OpenGL) { - GLint value = 0; - glGetIntegerv(GL_RESET_NOTIFICATION_STRATEGY_ARB, &value); - if (value == GL_LOSE_CONTEXT_ON_RESET_ARB) - format.setOption(QSurfaceFormat::ResetNotification); + if (format.version() >= qMakePair(4, 0)) { + GLint value = 0; + glGetIntegerv(GL_RESET_NOTIFICATION_STRATEGY_ARB, &value); + if (value == GL_LOSE_CONTEXT_ON_RESET_ARB) + format.setOption(QSurfaceFormat::ResetNotification); + } if (format.version() < qMakePair(3, 0)) { format.setOption(QSurfaceFormat::DeprecatedFunctions); @@ -175,7 +177,7 @@ static void updateFormatFromContext(QSurfaceFormat &format) // Version 3.0 onwards - check if it includes deprecated functionality or is // a debug context - value = 0; + GLint value = 0; glGetIntegerv(GL_CONTEXT_FLAGS, &value); if (!(value & GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT)) format.setOption(QSurfaceFormat::DeprecatedFunctions); -- cgit v1.2.3 From 08192d609755db662bfbcf708b1847d734e11713 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 6 Aug 2019 09:53:54 +0200 Subject: Add tst_qmake::qinstall ...with a failing test case for QTBUG-77299. Task-number: QTBUG-77299 Change-Id: I42c4fc4bb96f8660f8ff9bea97e6096ca6cec972 Reviewed-by: Edward Welbourne --- tests/auto/tools/qmake/testcompiler.cpp | 7 +++ tests/auto/tools/qmake/testcompiler.h | 2 + tests/auto/tools/qmake/tst_qmake.cpp | 99 +++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) diff --git a/tests/auto/tools/qmake/testcompiler.cpp b/tests/auto/tools/qmake/testcompiler.cpp index 0a7ba3b40b..e769f955c4 100644 --- a/tests/auto/tools/qmake/testcompiler.cpp +++ b/tests/auto/tools/qmake/testcompiler.cpp @@ -279,6 +279,13 @@ bool TestCompiler::qmake(const QString &workDir, const QString &proName, const Q << additionalArguments); } +bool TestCompiler::qmake(const QString &workDir, const QStringList &arguments) +{ + QDir d; + d.setCurrent(workDir); // ### runCommand should take a workingDir argument instead + return runCommand(qmakeCmd_, arguments); +} + bool TestCompiler::make( const QString &workPath, const QString &target, bool expectFail ) { QDir D; diff --git a/tests/auto/tools/qmake/testcompiler.h b/tests/auto/tools/qmake/testcompiler.h index 50232669c0..e22a2c6c3d 100644 --- a/tests/auto/tools/qmake/testcompiler.h +++ b/tests/auto/tools/qmake/testcompiler.h @@ -60,6 +60,8 @@ public: // executes a qmake on proName in the specified workDir, output goes to buildDir or workDir if it's null bool qmake(const QString &workDir, const QString &proName, const QString &buildDir = QString(), const QStringList &additionalArguments = QStringList()); + // executes qmake in workDir with the specified arguments + bool qmake(const QString &workDir, const QStringList &arguments); // executes a make in the specified workPath, with an optional target (eg. install) bool make( const QString &workPath, const QString &target = QString(), bool expectFail = false ); // checks if the executable exists in destDir diff --git a/tests/auto/tools/qmake/tst_qmake.cpp b/tests/auto/tools/qmake/tst_qmake.cpp index cacee30c86..8ca367773d 100644 --- a/tests/auto/tools/qmake/tst_qmake.cpp +++ b/tests/auto/tools/qmake/tst_qmake.cpp @@ -81,6 +81,7 @@ private slots: void substitutes(); void project(); void proFileCache(); + void qinstall(); void resources(); private: @@ -588,6 +589,104 @@ void tst_qmake::proFileCache() QVERIFY( test_compiler.qmake( workDir, "pro_file_cache" )); } +void tst_qmake::qinstall() +{ + const QString testName = "qinstall"; + QDir testDataDir = base_path + "/testdata"; + if (testDataDir.exists(testName)) + testDataDir.rmdir(testName); + QVERIFY(testDataDir.mkdir(testName)); + const QString workDir = testDataDir.filePath(testName); + auto qinstall = [&](const QString &src, const QString &dst, bool executable = false) { + QStringList args = {"-install", "qinstall"}; + if (executable) + args << "-exe"; + args << src << dst; + return test_compiler.qmake(workDir, args); + }; + const QFileDevice::Permissions readFlags + = QFileDevice::ReadOwner | QFileDevice::ReadUser + | QFileDevice::ReadGroup | QFileDevice::ReadOther; + const QFileDevice::Permissions writeFlags + = QFileDevice::WriteOwner | QFileDevice::WriteUser + | QFileDevice::WriteGroup | QFileDevice::WriteOther; + const QFileDevice::Permissions exeFlags + = QFileDevice::ExeOwner | QFileDevice::ExeUser + | QFileDevice::ExeGroup | QFileDevice::ExeOther; + + // install a regular file + { + QFileInfo src(testDataDir.filePath("project/main.cpp")); + QFileInfo dst("foo.cpp"); + QVERIFY(qinstall(src.filePath(), dst.filePath())); + QVERIFY(dst.exists()); + QCOMPARE(src.size(), dst.size()); + QVERIFY(dst.permissions() & readFlags); + QVERIFY(dst.permissions() & writeFlags); + QVERIFY(!(dst.permissions() & exeFlags)); + test_compiler.clearCommandOutput(); + } + + // install an executable file + { + const QString mocFilePath = QLibraryInfo::location(QLibraryInfo::BinariesPath) + + "/moc" +#ifdef Q_OS_WIN + + ".exe" +#endif + ; + QFileInfo src(mocFilePath); + QVERIFY(src.exists()); + QVERIFY(src.permissions() & exeFlags); + QFileInfo dst("copied_" + src.fileName()); + QVERIFY(qinstall(src.filePath(), dst.filePath(), true)); + QVERIFY(dst.exists()); + QCOMPARE(src.size(), dst.size()); + QVERIFY(dst.permissions() & readFlags); + QVERIFY(dst.permissions() & writeFlags); + QVERIFY(dst.permissions() & exeFlags); + test_compiler.clearCommandOutput(); + } + + // install a read-only file + { + QFile srcfile("foo.cpp"); + QVERIFY(srcfile.setPermissions(srcfile.permissions() & ~writeFlags)); + QFileInfo src(srcfile); + QFileInfo dst("bar.cpp"); + QVERIFY(qinstall(src.filePath(), dst.filePath())); + QVERIFY(dst.exists()); + QCOMPARE(src.size(), dst.size()); + QVERIFY(dst.permissions() & readFlags); + QVERIFY(dst.permissions() & writeFlags); + QVERIFY(!(dst.permissions() & exeFlags)); + test_compiler.clearCommandOutput(); + } + + // install a directory + { + QDir src = testDataDir; + src.cd("project"); + QDir dst("narf"); + QVERIFY(qinstall(src.absolutePath(), dst.absolutePath())); + QCOMPARE(src.entryList(QDir::Files, QDir::Name), dst.entryList(QDir::Files, QDir::Name)); + test_compiler.clearCommandOutput(); + } + + // install a directory with a read-only file + { + QDir src("narf"); + QFile srcfile(src.filePath("main.cpp")); + QVERIFY(srcfile.setPermissions(srcfile.permissions() & ~writeFlags)); + QDir dst("zort"); +#ifdef Q_OS_WIN + QEXPECT_FAIL("", "QTBUG-77299", Abort); +#endif + QVERIFY(qinstall(src.absolutePath(), dst.absolutePath())); + QCOMPARE(src.entryList(QDir::Files, QDir::Name), dst.entryList(QDir::Files, QDir::Name)); + } +} + void tst_qmake::resources() { QString workDir = base_path + "/testdata/resources"; -- cgit v1.2.3 From 052ea993ad499c9065ac1180b706337ff8a0a2c7 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 14 Aug 2019 15:13:01 +0200 Subject: Add the detection of MSVC 2019 for QLibraryInfo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie3ea1cdae60bf0d7dd89a0ab84146c8370559a29 Reviewed-by: Jörg Bornemann --- src/corelib/global/qlibraryinfo.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index d19e54154e..c0a5369cdd 100644 --- a/src/corelib/global/qlibraryinfo.cpp +++ b/src/corelib/global/qlibraryinfo.cpp @@ -322,8 +322,10 @@ QLibraryInfo::buildDate() #elif defined(Q_CC_MSVC) # if _MSC_VER < 1910 # define COMPILER_STRING "MSVC 2015" -# elif _MSC_VER < 2000 +# elif _MSC_VER < 1917 # define COMPILER_STRING "MSVC 2017" +# elif _MSC_VER < 2000 +# define COMPILER_STRING "MSVC 2019" # else # define COMPILER_STRING "MSVC _MSC_VER " QT_STRINGIFY(_MSC_VER) # endif -- cgit v1.2.3 From 0d024bd0a63fa7a741f4f118a3b48806b695594f Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 23 Apr 2019 22:08:30 -0700 Subject: QSysInfo: Use the Apple IOKit API to get the machine's UUID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Turns out that kern.uuid is not as unique as we thought. Googling for mine finds other instances of the same being used. Fixes: QTBUG-75371 Change-Id: I95ecabe2f50e450c991afffd159850cc975ec0da Reviewed-by: Tor Arne Vestbø --- src/corelib/global/qglobal.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 555b04dcd5..01f534cc0f 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -88,6 +88,11 @@ # include #endif +#if defined(Q_OS_DARWIN) && QT_HAS_INCLUDE() +# include +# include +#endif + #ifdef Q_OS_UNIX #include #include @@ -2907,20 +2912,19 @@ enum { */ QByteArray QSysInfo::machineUniqueId() { -#ifdef Q_OS_BSD4 +#if defined(Q_OS_DARWIN) && QT_HAS_INCLUDE() + char uuid[UuidStringLen + 1]; + io_service_t service = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPlatformExpertDevice")); + QCFString stringRef = (CFStringRef)IORegistryEntryCreateCFProperty(service, CFSTR(kIOPlatformUUIDKey), kCFAllocatorDefault, 0); + CFStringGetCString(stringRef, uuid, sizeof(uuid), kCFStringEncodingMacRoman); + return QByteArray(uuid); +#elif defined(Q_OS_BSD4) && defined(KERN_HOSTUUID) char uuid[UuidStringLen + 1]; size_t uuidlen = sizeof(uuid); -# ifdef KERN_HOSTUUID int name[] = { CTL_KERN, KERN_HOSTUUID }; if (sysctl(name, sizeof name / sizeof name[0], &uuid, &uuidlen, nullptr, 0) == 0 && uuidlen == sizeof(uuid)) return QByteArray(uuid, uuidlen - 1); - -# else - // Darwin: no fixed value, we need to search by name - if (sysctlbyname("kern.uuid", uuid, &uuidlen, nullptr, 0) == 0 && uuidlen == sizeof(uuid)) - return QByteArray(uuid, uuidlen - 1); -# endif #elif defined(Q_OS_UNIX) // The modern name on Linux is /etc/machine-id, but that path is // unlikely to exist on non-Linux (non-systemd) systems. The old -- cgit v1.2.3 From 1d496a4a1085e6a3ebaa0448b8d6c4da6f8f50d6 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Thu, 15 Aug 2019 00:57:25 +0900 Subject: Fix build without features.groupbox Change-Id: Ic040d0ba69620cf49700d83e45ccd9b8c363e587 Reviewed-by: Shawn Rutledge --- src/widgets/styles/qfusionstyle.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index e21ff4bec8..aa9f18d15e 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -465,6 +465,7 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem, switch (elem) { +#if QT_CONFIG(groupbox) // No frame drawn case PE_FrameGroupBox: { @@ -481,6 +482,7 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem, qDrawBorderPixmap(painter, frame, QMargins(6, 6, 6, 6), pixmap); break; } +#endif // QT_CONFIG(groupbox) case PE_IndicatorBranch: { if (!(option->state & State_Children)) break; -- cgit v1.2.3 From 94d7603d5114eacaf648e0b0d2dcae5e161e0217 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [1/N]: widgetTextures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use a vector (QVector cannot hold move-only classes), adapt to different API. Change-Id: Iece4b1bfcb35a02aac05935963e1e7f8c986b18d Reviewed-by: Mårten Nordheim --- src/widgets/kernel/qwidget.cpp | 1 - src/widgets/kernel/qwidget_p.h | 5 ++++- src/widgets/kernel/qwidgetbackingstore.cpp | 25 +++++++++++++------------ 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index cdea0a570c..c63bf26b26 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1902,7 +1902,6 @@ void QWidgetPrivate::deleteTLSysExtra() extra->topextra->backingStoreTracker.destroy(); deleteBackingStore(this); #ifndef QT_NO_OPENGL - qDeleteAll(extra->topextra->widgetTextures); extra->topextra->widgetTextures.clear(); delete extra->topextra->shareContext; extra->topextra->shareContext = 0; diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 7cb9a3895a..8fb325c763 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -75,6 +75,9 @@ #include #include +#include +#include + QT_BEGIN_NAMESPACE // Extra QWidget data @@ -184,7 +187,7 @@ struct QTLWExtra { // ### TODO replace initialScreenIndex with QScreen *, in case the screens change at runtime int initialScreenIndex; // Screen number when passing a QDesktop[Screen]Widget as parent. - QVector widgetTextures; + std::vector> widgetTextures; // *************************** Cross-platform bit fields **************************** uint opacity : 8; diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index ee54d9dce3..8b0094a93c 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -68,6 +68,8 @@ # include #endif +#include + QT_BEGIN_NAMESPACE extern QRegion qt_dirtyRegion(QWidget *); @@ -963,15 +965,15 @@ static void findAllTextureWidgetsRecursively(QWidget *tlw, QWidget *widget) // textureChildSeen does not take native child widgets into account and that's good. if (QWidgetPrivate::get(widget)->textureChildSeen) { QVector nativeChildren; - QScopedPointer tl(new QPlatformTextureList); + auto tl = qt_make_unique(); // Look for texture widgets (incl. widget itself) from 'widget' down, // but skip subtrees with a parent of a native child widget. - findTextureWidgetsRecursively(tlw, widget, tl.data(), &nativeChildren); + findTextureWidgetsRecursively(tlw, widget, tl.get(), &nativeChildren); // tl may be empty regardless of textureChildSeen if we have native or hidden children. if (!tl->isEmpty()) - QWidgetPrivate::get(tlw)->topData()->widgetTextures.append(tl.take()); + QWidgetPrivate::get(tlw)->topData()->widgetTextures.push_back(std::move(tl)); // Native child widgets, if there was any, get their own separate QPlatformTextureList. - foreach (QWidget *ncw, nativeChildren) { + for (QWidget *ncw : qAsConst(nativeChildren)) { if (QWidgetPrivate::get(ncw)->textureChildSeen) findAllTextureWidgetsRecursively(tlw, ncw); } @@ -980,12 +982,12 @@ static void findAllTextureWidgetsRecursively(QWidget *tlw, QWidget *widget) static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) { - foreach (QPlatformTextureList *tl, QWidgetPrivate::get(tlw)->topData()->widgetTextures) { + for (const auto &tl : QWidgetPrivate::get(tlw)->topData()->widgetTextures) { Q_ASSERT(!tl->isEmpty()); for (int i = 0; i < tl->count(); ++i) { QWidget *w = static_cast(tl->source(i)); if ((hasPlatformWindow(w) && w == widget) || (!hasPlatformWindow(w) && w->nativeParentWidget() == widget)) - return tl; + return tl.get(); } } @@ -1064,14 +1066,14 @@ bool QWidgetBackingStore::syncAllowed() if (textureListWatcher && !textureListWatcher->isLocked()) { textureListWatcher->deleteLater(); textureListWatcher = 0; - } else if (!tlwExtra->widgetTextures.isEmpty()) { + } else if (!tlwExtra->widgetTextures.empty()) { bool skipSync = false; - foreach (QPlatformTextureList *tl, tlwExtra->widgetTextures) { + for (const auto &tl : tlwExtra->widgetTextures) { if (tl->isLocked()) { if (!textureListWatcher) textureListWatcher = new QPlatformTextureListWatcher(this); if (!textureListWatcher->isLocked()) - textureListWatcher->watch(tl); + textureListWatcher->watch(tl.get()); skipSync = true; } } @@ -1243,7 +1245,6 @@ void QWidgetBackingStore::doSync() // The search is cut at native widget boundaries, meaning that each native child widget // has its own list for the subtree below it. QTLWExtra *tlwExtra = tlw->d_func()->topData(); - qDeleteAll(tlwExtra->widgetTextures); tlwExtra->widgetTextures.clear(); findAllTextureWidgetsRecursively(tlw, tlw); qt_window_private(tlw->windowHandle())->compositing = false; // will get updated in qt_flush() @@ -1289,7 +1290,7 @@ void QWidgetBackingStore::doSync() } #ifndef QT_NO_OPENGL - foreach (QPlatformTextureList *tl, tlwExtra->widgetTextures) { + for (const auto &tl : tlwExtra->widgetTextures) { for (int i = 0; i < tl->count(); ++i) { QWidget *w = static_cast(tl->source(i)); if (dirtyRenderToTextureWidgets.contains(w)) { @@ -1386,7 +1387,7 @@ void QWidgetBackingStore::flush(QWidget *widget) // Render-to-texture widgets are not in dirtyOnScreen so flush if we have not done it above. if (!flushed && !hasDirtyOnScreenWidgets) { #ifndef QT_NO_OPENGL - if (!tlw->d_func()->topData()->widgetTextures.isEmpty()) { + if (!tlw->d_func()->topData()->widgetTextures.empty()) { QPlatformTextureList *tl = widgetTexturesFor(tlw, tlw); if (tl) { QWidget *target = widget ? widget : tlw; -- cgit v1.2.3 From d473f216b9a34a0e6272533dc11e885eebfe4191 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [2/N]: topextra->icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I wonder whether a QIcon could be aggregated here by value, as it has a null state and its default ctor sets d = nullptr. Change-Id: I7a0f46e9fdd51a93afb5db768d46d93b08f307ec Reviewed-by: Edward Welbourne Reviewed-by: Mårten Nordheim --- src/widgets/kernel/qwidget.cpp | 9 +++++---- src/widgets/kernel/qwidget_p.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index c63bf26b26..68ce8d5d15 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -121,6 +121,8 @@ #include +#include + // widget/widget data creation count //#define QWIDGET_EXTRA_DEBUG //#define ALIEN_DEBUG @@ -1784,7 +1786,6 @@ void QWidgetPrivate::createTLExtra() createExtra(); if (!extra->topextra) { QTLWExtra* x = extra->topextra = new QTLWExtra; - x->icon = 0; x->backingStore = 0; x->sharedPainter = 0; x->incw = x->inch = 0; @@ -1872,7 +1873,6 @@ void QWidgetPrivate::deleteExtra() if (extra->topextra) { deleteTLSysExtra(); // extra->topextra->backingStore destroyed in QWidgetPrivate::deleteTLSysExtra() - delete extra->topextra->icon; delete extra->topextra; } delete extra; @@ -6265,8 +6265,9 @@ void QWidget::setWindowIcon(const QIcon &icon) d->createTLExtra(); if (!d->extra->topextra->icon) - d->extra->topextra->icon = new QIcon(); - *d->extra->topextra->icon = icon; + d->extra->topextra->icon = qt_make_unique(icon); + else + *d->extra->topextra->icon = icon; d->setWindowIcon_sys(); d->setWindowIcon_helper(); diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 8fb325c763..435aae2950 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -164,7 +164,7 @@ struct QTLWExtra { // *************************** Cross-platform variables ***************************** // Regular pointers (keep them together to avoid gaps on 64 bits architectures). - QIcon *icon; // widget icon + std::unique_ptr icon; // widget icon QWidgetBackingStoreTracker backingStoreTracker; QBackingStore *backingStore; QPainter *sharedPainter; -- cgit v1.2.3 From b03ee91ebf31bf317e49cb1295a923bd7ed0d958 Mon Sep 17 00:00:00 2001 From: Terunao HIROTA Date: Thu, 8 Aug 2019 11:57:08 +0900 Subject: syncqt: Fix to work correctly when the line endings are LF in Win-msys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Windows-msys syncqt.pl expects CRLF line endings, and does not work correctly with LF. syncqt.pl was fixed to be line-ending-agnostic. Task-number: QTBUG-77192 Change-Id: Ie8029238bdd580bcf042ede0d0f64d5f01488406 Reviewed-by: Jörg Bornemann --- bin/syncqt.pl | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 8226edfb76..43ecff53dd 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -79,9 +79,6 @@ normalizePath(\$out_basedir); our $build_basedir; our $basedir; -# Make sure we use Windows line endings for chomp and friends on Windows. -$INPUT_RECORD_SEPARATOR = "\r\n" if ($^O eq "msys"); - # will be defined based on the modules sync.profile our (%modules, %moduleheaders, @allmoduleheadersprivate, %classnames, %deprecatedheaders); our (@qpa_headers, @private_headers); @@ -182,10 +179,10 @@ sub shouldMasterInclude { my ($iheader) = @_; return 0 if (basename($iheader) =~ /_/); return 0 if (basename($iheader) =~ /qconfig/); + local $/ = "\x0a"; if (open(F, "<$iheader")) { while () { - chomp; - chop if /\r$/; + s/\x0d?\x0a//; return 0 if (/^\#pragma qt_no_master_include$/); } close(F); @@ -215,11 +212,11 @@ sub classNames { my $ihdrbase = basename($iheader); my $parsable = ""; + local $/ = "\x0a"; if(open(F, "<$iheader")) { while() { + s/\x0d?\x0a//; my $line = $_; - chomp $line; - chop $line if ($line =~ /\r$/); if($line =~ /^\#/) { $$clean = 0 if ($line =~ m/^#pragma qt_sync_skip_header_check/); return @ret if($line =~ m/^#pragma qt_sync_stop_processing/); @@ -336,6 +333,7 @@ sub check_header { $header_skip_qt_begin_namespace_test = 1 if ($ignore_for_qt_begin_namespace_check{$header}); } + local $/ = "\x0a"; open(F, "<$iheader") or return; my $qt_begin_namespace_found = 0; my $qt_end_namespace_found = 0; @@ -344,7 +342,7 @@ sub check_header { my $stop_processing = 0; my $we_mean_it = 0; while ($line = ) { - chomp $line; + $line =~ s/\x0d?\x0a//; my $output_line = 1; if ($line =~ /^ *\# *pragma (qt_no_included_check|qt_sync_stop_processing)/) { $stop_processing = 1; @@ -965,9 +963,10 @@ foreach my $lib (@modules_to_sync) { #push @files, "$out_basedir/include/Qt/$t" if(-e "$out_basedir/include/Qt/$t"); foreach my $file (@files) { my $remove_file = 0; + local $/ = "\x0a"; if(open(F, "<$file")) { while(my $line = ) { - chomp $line; + $line =~ s/\x0d?\x0a//; if($line =~ /^\#include \"([^\"]*)\"$/) { my $include = $1; $include = $subdir . "/" . $include unless(substr($include, 0, 1) eq "/"); -- cgit v1.2.3 From d0e7be8b1c77dea752193dfb6df8bf8b467c6560 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Thu, 15 Aug 2019 14:36:33 +0900 Subject: Fix build without features.shortcut Change-Id: I56ccf104c57e24824e8d09951bb27415307d5abc Reviewed-by: Volker Hilsheimer --- src/widgets/widgets/qabstractspinbox.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widgets/widgets/qabstractspinbox.cpp b/src/widgets/widgets/qabstractspinbox.cpp index f5708788b8..d49d9dbd66 100644 --- a/src/widgets/widgets/qabstractspinbox.cpp +++ b/src/widgets/widgets/qabstractspinbox.cpp @@ -1321,7 +1321,9 @@ void QAbstractSpinBox::contextMenuEvent(QContextMenuEvent *event) d->reset(); QAction *selAll = new QAction(tr("&Select All"), menu); +#if QT_CONFIG(shortcut) selAll->setShortcut(QKeySequence::SelectAll); +#endif menu->insertAction(d->edit->d_func()->selectAllAction, selAll); menu->removeAction(d->edit->d_func()->selectAllAction); -- cgit v1.2.3 From 37bae591b7829cd8ac6a9c8556bbe6b96b365bc3 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Tue, 16 Jul 2019 10:31:18 +0900 Subject: Introduce a new feature called easingcurve MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit features.animation and features.scroller depend on the feature. In total, this saves around 180KB from QtCore and 75KB from QtWidgets. Change-Id: I65aac3ec4d50d62424ee33f44b99f3cfb91121d6 Reviewed-by: Thomas Hartmann Reviewed-by: Jan Arve Sæther Reviewed-by: Edward Welbourne --- src/corelib/configure.json | 8 +++++++- src/corelib/global/qconfig-bootstrapped.h | 1 + src/corelib/kernel/qmetatype.cpp | 2 ++ src/corelib/kernel/qmetatype.h | 9 ++++++++- src/corelib/kernel/qmetatype_p.h | 2 ++ src/corelib/kernel/qvariant.cpp | 8 ++++++-- src/corelib/kernel/qvariant.h | 8 ++++++++ src/corelib/tools/qeasingcurve.h | 3 +++ src/corelib/tools/qtimeline.h | 4 ++++ src/corelib/tools/tools.pri | 14 ++++++++++---- src/gui/kernel/qguivariant.cpp | 1 - src/widgets/configure.json | 1 + src/widgets/graphicsview/graphicsview.pri | 7 +++++-- 13 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 83c30fb47b..b2f032a667 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -1009,11 +1009,17 @@ "condition": "features.textcodec", "output": [ "publicFeature", "feature" ] }, + "easingcurve": { + "label": "Easing curve", + "purpose": "Provides easing curve.", + "section": "Utilities", + "output": [ "publicFeature" ] + }, "animation": { "label": "Animation", "purpose": "Provides a framework for animations.", "section": "Utilities", - "condition": "features.properties", + "condition": "features.properties && features.easingcurve", "output": [ "publicFeature", "feature" ] }, "statemachine": { diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h index 10458e41d7..ce3b672637 100644 --- a/src/corelib/global/qconfig-bootstrapped.h +++ b/src/corelib/global/qconfig-bootstrapped.h @@ -79,6 +79,7 @@ #define QT_NO_DATASTREAM #define QT_FEATURE_datestring 1 #define QT_FEATURE_datetimeparser -1 +#define QT_FEATURE_easingcurve -1 #define QT_FEATURE_etw -1 #define QT_FEATURE_getauxval (QT_HAS_INCLUDE() ? 1 : -1) #define QT_FEATURE_getentropy -1 diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 754f5a13e4..356a675517 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -47,7 +47,9 @@ #include "qstringlist.h" #include "qvector.h" #include "qlocale.h" +#if QT_CONFIG(easingcurve) #include "qeasingcurve.h" +#endif #include "quuid.h" #include "qvariant.h" #include "qdatastream.h" diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h index a6c90fc3ed..d41f7ee80e 100644 --- a/src/corelib/kernel/qmetatype.h +++ b/src/corelib/kernel/qmetatype.h @@ -94,6 +94,13 @@ inline Q_DECL_CONSTEXPR int qMetaTypeId(); #define QT_FOR_EACH_STATIC_PRIMITIVE_POINTER(F)\ F(VoidStar, 31, void*) \ +#if QT_CONFIG(easingcurve) +#define QT_FOR_EACH_STATIC_EASINGCURVE(F)\ + F(QEasingCurve, 29, QEasingCurve) +#else +#define QT_FOR_EACH_STATIC_EASINGCURVE(F) +#endif + #if QT_CONFIG(itemmodel) #define QT_FOR_EACH_STATIC_ITEMMODEL_CLASS(F)\ F(QModelIndex, 42, QModelIndex) \ @@ -122,7 +129,7 @@ inline Q_DECL_CONSTEXPR int qMetaTypeId(); F(QPoint, 25, QPoint) \ F(QPointF, 26, QPointF) \ F(QRegExp, 27, QRegExp) \ - F(QEasingCurve, 29, QEasingCurve) \ + QT_FOR_EACH_STATIC_EASINGCURVE(F) \ F(QUuid, 30, QUuid) \ F(QVariant, 41, QVariant) \ F(QRegularExpression, 44, QRegularExpression) \ diff --git a/src/corelib/kernel/qmetatype_p.h b/src/corelib/kernel/qmetatype_p.h index fa7208369a..d743d5a5c7 100644 --- a/src/corelib/kernel/qmetatype_p.h +++ b/src/corelib/kernel/qmetatype_p.h @@ -206,7 +206,9 @@ template<> struct TypeDefinition { static const bool IsAvailable = f template<> struct TypeDefinition { static const bool IsAvailable = false; }; template<> struct TypeDefinition { static const bool IsAvailable = false; }; template<> struct TypeDefinition { static const bool IsAvailable = false; }; +#if QT_CONFIG(easingcurve) template<> struct TypeDefinition { static const bool IsAvailable = false; }; +#endif template<> struct TypeDefinition { static const bool IsAvailable = false; }; template<> struct TypeDefinition { static const bool IsAvailable = false; }; template<> struct TypeDefinition { static const bool IsAvailable = false; }; diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp index 511dc3c81c..43a3fb1db0 100644 --- a/src/corelib/kernel/qvariant.cpp +++ b/src/corelib/kernel/qvariant.cpp @@ -46,7 +46,9 @@ #include "qdebug.h" #include "qmap.h" #include "qdatetime.h" +#if QT_CONFIG(easingcurve) #include "qeasingcurve.h" +#endif #include "qlist.h" #if QT_CONFIG(regularexpression) #include "qregularexpression.h" @@ -2194,7 +2196,7 @@ QVariant::QVariant(const QTime &val) QVariant::QVariant(const QDateTime &val) : d(DateTime) { v_construct(&d, val); } -#ifndef QT_BOOTSTRAPPED +#if QT_CONFIG(easingcurve) QVariant::QVariant(const QEasingCurve &val) : d(EasingCurve) { v_construct(&d, val); } @@ -2471,7 +2473,9 @@ static const ushort mapIdFromQt3ToCurrent[MapFromThreeCount] = QVariant::Pen, QVariant::LongLong, QVariant::ULongLong, +#if QT_CONFIG(easingcurve) QVariant::EasingCurve +#endif }; /*! @@ -2788,7 +2792,7 @@ QDateTime QVariant::toDateTime() const \sa canConvert(int targetTypeId), convert() */ -#ifndef QT_BOOTSTRAPPED +#if QT_CONFIG(easingcurve) QEasingCurve QVariant::toEasingCurve() const { return qVariantToHelper(d, handlerManager); diff --git a/src/corelib/kernel/qvariant.h b/src/corelib/kernel/qvariant.h index 39b7e4c0ce..e7d3d9c835 100644 --- a/src/corelib/kernel/qvariant.h +++ b/src/corelib/kernel/qvariant.h @@ -66,7 +66,9 @@ class QBitArray; class QDataStream; class QDate; class QDateTime; +#if QT_CONFIG(easingcurve) class QEasingCurve; +#endif class QLine; class QLineF; class QLocale; @@ -162,7 +164,9 @@ class Q_CORE_EXPORT QVariant RegExp = QMetaType::QRegExp, RegularExpression = QMetaType::QRegularExpression, Hash = QMetaType::QVariantHash, +#if QT_CONFIG(easingcurve) EasingCurve = QMetaType::QEasingCurve, +#endif Uuid = QMetaType::QUuid, #if QT_CONFIG(itemmodel) ModelIndex = QMetaType::QModelIndex, @@ -254,7 +258,9 @@ class Q_CORE_EXPORT QVariant #endif // QT_CONFIG(regularexpression) #ifndef QT_BOOTSTRAPPED QVariant(const QUrl &url); +#if QT_CONFIG(easingcurve) QVariant(const QEasingCurve &easing); +#endif QVariant(const QUuid &uuid); QVariant(const QJsonValue &jsonValue); QVariant(const QJsonObject &jsonObject); @@ -328,7 +334,9 @@ class Q_CORE_EXPORT QVariant #endif // QT_CONFIG(regularexpression) #ifndef QT_BOOTSTRAPPED QUrl toUrl() const; +#if QT_CONFIG(easingcurve) QEasingCurve toEasingCurve() const; +#endif QUuid toUuid() const; QJsonValue toJsonValue() const; QJsonObject toJsonObject() const; diff --git a/src/corelib/tools/qeasingcurve.h b/src/corelib/tools/qeasingcurve.h index 725ddd5dcc..d3a468bb22 100644 --- a/src/corelib/tools/qeasingcurve.h +++ b/src/corelib/tools/qeasingcurve.h @@ -41,6 +41,9 @@ #define QEASINGCURVE_H #include + +QT_REQUIRE_CONFIG(easingcurve); + #include #include #if QT_DEPRECATED_SINCE(5, 0) diff --git a/src/corelib/tools/qtimeline.h b/src/corelib/tools/qtimeline.h index d9982bdb58..9a60cd679f 100644 --- a/src/corelib/tools/qtimeline.h +++ b/src/corelib/tools/qtimeline.h @@ -40,6 +40,10 @@ #ifndef QTIMELINE_H #define QTIMELINE_H +#include + +QT_REQUIRE_CONFIG(easingcurve); + #include #include diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri index a2236f90f2..40c84157cd 100644 --- a/src/corelib/tools/tools.pri +++ b/src/corelib/tools/tools.pri @@ -12,7 +12,6 @@ HEADERS += \ tools/qcontainerfwd.h \ tools/qcontainertools_impl.h \ tools/qcryptographichash.h \ - tools/qeasingcurve.h \ tools/qfreelist_p.h \ tools/qhash.h \ tools/qhashfunctions.h \ @@ -43,7 +42,6 @@ HEADERS += \ tools/qsimd_p.h \ tools/qsize.h \ tools/qstack.h \ - tools/qtimeline.h \ tools/qtools_p.h \ tools/qvarlengtharray.h \ tools/qvector.h \ @@ -54,7 +52,6 @@ SOURCES += \ tools/qarraydata.cpp \ tools/qbitarray.cpp \ tools/qcryptographichash.cpp \ - tools/qeasingcurve.cpp \ tools/qfreelist.cpp \ tools/qhash.cpp \ tools/qline.cpp \ @@ -72,7 +69,6 @@ SOURCES += \ tools/qsharedpointer.cpp \ tools/qsimd.cpp \ tools/qsize.cpp \ - tools/qtimeline.cpp \ tools/qversionnumber.cpp msvc: NO_PCH_SOURCES += tools/qvector_msvc.cpp @@ -104,6 +100,16 @@ qtConfig(system-doubleconversion) { include($$PWD/../../3rdparty/double-conversion/double-conversion.pri) } +qtConfig(easingcurve) { + HEADERS += \ + tools/qeasingcurve.h \ + tools/qtimeline.h + + SOURCES += \ + tools/qeasingcurve.cpp \ + tools/qtimeline.cpp +} + # Note: libm should be present by default becaue this is C++ unix:!macx-icc:!vxworks:!haiku:!integrity:!wasm: LIBS_PRIVATE += -lm diff --git a/src/gui/kernel/qguivariant.cpp b/src/gui/kernel/qguivariant.cpp index 090217187e..edca8d9423 100644 --- a/src/gui/kernel/qguivariant.cpp +++ b/src/gui/kernel/qguivariant.cpp @@ -68,7 +68,6 @@ #include "qdebug.h" #include "qmap.h" #include "qdatetime.h" -#include "qeasingcurve.h" #include "qlist.h" #include "qstring.h" #include "qstringlist.h" diff --git a/src/widgets/configure.json b/src/widgets/configure.json index cc9019dfdd..e8aa4c6cf9 100644 --- a/src/widgets/configure.json +++ b/src/widgets/configure.json @@ -378,6 +378,7 @@ "label": "QScroller", "purpose": "Enables kinetic scrolling for any scrolling widget or graphics item.", "section": "Widgets", + "condition": "features.easingcurve", "output": [ "publicFeature" ] }, "graphicsview": { diff --git a/src/widgets/graphicsview/graphicsview.pri b/src/widgets/graphicsview/graphicsview.pri index 7d10244634..d69a6f5c3f 100644 --- a/src/widgets/graphicsview/graphicsview.pri +++ b/src/widgets/graphicsview/graphicsview.pri @@ -4,7 +4,6 @@ qtConfig(graphicsview) { HEADERS += graphicsview/qgraphicsgridlayout.h \ graphicsview/qgraphicsitem.h \ graphicsview/qgraphicsitem_p.h \ - graphicsview/qgraphicsitemanimation.h \ graphicsview/qgraphicslayout.h \ graphicsview/qgraphicslayout_p.h \ graphicsview/qgraphicslayoutitem.h \ @@ -34,7 +33,6 @@ HEADERS += graphicsview/qgraphicsgridlayout.h \ SOURCES += graphicsview/qgraphicsgridlayout.cpp \ graphicsview/qgraphicsitem.cpp \ - graphicsview/qgraphicsitemanimation.cpp \ graphicsview/qgraphicslayout.cpp \ graphicsview/qgraphicslayout_p.cpp \ graphicsview/qgraphicslayoutitem.cpp \ @@ -55,4 +53,9 @@ SOURCES += graphicsview/qgraphicsgridlayout.cpp \ graphicsview/qsimplex_p.cpp \ graphicsview/qgraphicsanchorlayout_p.cpp \ graphicsview/qgraphicsanchorlayout.cpp + + qtConfig(easingcurve) { + HEADERS += graphicsview/qgraphicsitemanimation.h + SOURCES += graphicsview/qgraphicsitemanimation.cpp + } } -- cgit v1.2.3 From 19ccbdabfe889fccd67ab162bbb144846ab098fb Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [3/N]: topextra->shareContext MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Despite the name, it's fully owned by an individual QWidget object. Also make the member mutable, so we can remove the const_cast hack in QWidgetPrivate::shareContext(), and protect QT_NO_OPENGL builds, since the naked pointer compiled by chance due to some unguarded forward declarations while a unique_ptr will somewhere want to call the dtor, which doesn't compile on an object of merely forward-declared type. Change-Id: If8027b55d303822236fcdc1a79e4f3010967b4d2 Reviewed-by: Mårten Nordheim --- src/widgets/kernel/qwidget.cpp | 11 ++++------- src/widgets/kernel/qwidget_p.h | 4 +++- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 68ce8d5d15..78a8af62df 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1799,7 +1799,6 @@ void QWidgetPrivate::createTLExtra() x->inTopLevelResize = false; x->embedded = 0; x->window = 0; - x->shareContext = 0; x->initialScreenIndex = -1; #if 0 // Used to be included in Qt4 for Q_WS_MAC x->wasMaximized = false; @@ -1903,8 +1902,7 @@ void QWidgetPrivate::deleteTLSysExtra() deleteBackingStore(this); #ifndef QT_NO_OPENGL extra->topextra->widgetTextures.clear(); - delete extra->topextra->shareContext; - extra->topextra->shareContext = 0; + extra->topextra->shareContext.reset(); #endif //the toplevel might have a context with a "qglcontext associated with it. We need to @@ -12413,16 +12411,15 @@ QOpenGLContext *QWidgetPrivate::shareContext() const if (Q_UNLIKELY(!extra || !extra->topextra || !extra->topextra->window)) return 0; - QWidgetPrivate *that = const_cast(this); if (!extra->topextra->shareContext) { - QOpenGLContext *ctx = new QOpenGLContext; + auto ctx = qt_make_unique(); ctx->setShareContext(qt_gl_global_share_context()); ctx->setFormat(extra->topextra->window->format()); ctx->setScreen(extra->topextra->window->screen()); ctx->create(); - that->extra->topextra->shareContext = ctx; + extra->topextra->shareContext = std::move(ctx); } - return that->extra->topextra->shareContext; + return extra->topextra->shareContext.get(); #endif // QT_NO_OPENGL } diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 435aae2950..b43489a98f 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -169,7 +169,9 @@ struct QTLWExtra { QBackingStore *backingStore; QPainter *sharedPainter; QWidgetWindow *window; - QOpenGLContext *shareContext; +#ifndef QT_NO_OPENGL + mutable std::unique_ptr shareContext; +#endif // Implicit pointers (shared_null). QString caption; // widget caption -- cgit v1.2.3 From 45c5cc619933d1283da27a15d5d7ab3d2e8e5329 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [4/N]: extra->curs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Id65ead5563321b8edbe0055ad1531c2442d4d597 Reviewed-by: Friedemann Kleint Reviewed-by: Edward Welbourne Reviewed-by: Mårten Nordheim --- src/widgets/kernel/qwidget.cpp | 16 +++------------- src/widgets/kernel/qwidget_p.h | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 78a8af62df..aa93ee6be2 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1823,9 +1823,6 @@ void QWidgetPrivate::createExtra() extra->topextra = 0; #if QT_CONFIG(graphicsview) extra->proxyWidget = 0; -#endif -#ifndef QT_NO_CURSOR - extra->curs = 0; #endif extra->minw = 0; extra->minh = 0; @@ -1860,9 +1857,6 @@ void QWidgetPrivate::createSysExtra() void QWidgetPrivate::deleteExtra() { if (extra) { // if exists -#ifndef QT_NO_CURSOR - delete extra->curs; -#endif deleteSysExtra(); #ifndef QT_NO_STYLE_STYLESHEET // dereference the stylesheet style @@ -5019,9 +5013,7 @@ void QWidget::setCursor(const QCursor &cursor) #endif { d->createExtra(); - QCursor *newCursor = new QCursor(cursor); - delete d->extra->curs; - d->extra->curs = newCursor; + d->extra->curs = qt_make_unique(cursor); } setAttribute(Qt::WA_SetCursor); d->setCursor_sys(cursor); @@ -5040,10 +5032,8 @@ void QWidgetPrivate::setCursor_sys(const QCursor &cursor) void QWidget::unsetCursor() { Q_D(QWidget); - if (d->extra) { - delete d->extra->curs; - d->extra->curs = 0; - } + if (d->extra) + d->extra->curs.reset(); if (!isWindow()) setAttribute(Qt::WA_SetCursor, false); d->unsetCursor_sys(); diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index b43489a98f..03b09f2ca8 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -244,7 +244,7 @@ struct QWExtra { QGraphicsProxyWidget *proxyWidget; // if the widget is embedded #endif #ifndef QT_NO_CURSOR - QCursor *curs; + std::unique_ptr curs; #endif QPointer style; QPointer focus_proxy; -- cgit v1.2.3 From 70c624d93ee040e8aa4ab576be008f07bbfb8a2e Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [5/N]: extra->topextra MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is a bit frustrating that all the initialization and cleanup code are not in the QTLWExtra ctor and dtor. But that is for another patch. Change-Id: I0e45f89c1a53eb2f9a5699d3fbbef1a628b55432 Reviewed-by: Friedemann Kleint Reviewed-by: Edward Welbourne Reviewed-by: Mårten Nordheim --- src/widgets/kernel/qwidget.cpp | 5 ++--- src/widgets/kernel/qwidget_p.h | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index aa93ee6be2..ba9b2a0487 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1785,7 +1785,8 @@ void QWidgetPrivate::createTLExtra() if (!extra) createExtra(); if (!extra->topextra) { - QTLWExtra* x = extra->topextra = new QTLWExtra; + extra->topextra = qt_make_unique(); + QTLWExtra* x = extra->topextra.get(); x->backingStore = 0; x->sharedPainter = 0; x->incw = x->inch = 0; @@ -1820,7 +1821,6 @@ void QWidgetPrivate::createExtra() if (!extra) { // if not exists extra = new QWExtra; extra->glContext = 0; - extra->topextra = 0; #if QT_CONFIG(graphicsview) extra->proxyWidget = 0; #endif @@ -1866,7 +1866,6 @@ void QWidgetPrivate::deleteExtra() if (extra->topextra) { deleteTLSysExtra(); // extra->topextra->backingStore destroyed in QWidgetPrivate::deleteTLSysExtra() - delete extra->topextra; } delete extra; // extra->xic destroyed in QWidget::destroy() diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 03b09f2ca8..c851072c11 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -239,7 +239,7 @@ struct QWExtra { // Regular pointers (keep them together to avoid gaps on 64 bits architectures). void *glContext; // if the widget is hijacked by QGLWindowSurface - QTLWExtra *topextra; // only useful for TLWs + std::unique_ptr topextra; // only useful for TLWs #if QT_CONFIG(graphicsview) QGraphicsProxyWidget *proxyWidget; // if the widget is embedded #endif @@ -993,12 +993,12 @@ inline QWExtra *QWidgetPrivate::extraData() const inline QTLWExtra *QWidgetPrivate::topData() const { const_cast(this)->createTLExtra(); - return extra->topextra; + return extra->topextra.get(); } inline QTLWExtra *QWidgetPrivate::maybeTopData() const { - return extra ? extra->topextra : nullptr; + return extra ? extra->topextra.get() : nullptr; } inline QPainter *QWidgetPrivate::sharedPainter() const -- cgit v1.2.3 From 7ac6cefd8affc1f3bf963035c4ce4184a6023c5a Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 15 Aug 2019 12:13:49 +0200 Subject: QWidget: unbreak QT_NO_OPENGL builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Amends 94d7603d5114eacaf648e0b0d2dcae5e161e0217. The port from QVector to a container of unique_ptr uncovered that QPlatformTextureList isn't defined for QT_NO_OPENGL builds. Some unguarded forward-declarations made the old declaration compile by accident. The new code caught this, so add the #ifdef that had been missing all along. Change-Id: If3b14fc24007b1c917a41ab83343c2e5e65fc643 Reviewed-by: Martin Storsjö Reviewed-by: Mårten Nordheim Reviewed-by: Tasuku Suzuki --- src/widgets/kernel/qwidget_p.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index c851072c11..970f5c0378 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -189,7 +189,9 @@ struct QTLWExtra { // ### TODO replace initialScreenIndex with QScreen *, in case the screens change at runtime int initialScreenIndex; // Screen number when passing a QDesktop[Screen]Widget as parent. +#ifndef QT_NO_OPENGL std::vector> widgetTextures; +#endif // *************************** Cross-platform bit fields **************************** uint opacity : 8; -- cgit v1.2.3 From 7a4e5e7433afe7150cdf40025d4525277809c412 Mon Sep 17 00:00:00 2001 From: Ryan Chu Date: Thu, 11 Jul 2019 13:23:59 +0200 Subject: Make Qt aware of symlinks and shortcuts on Windows Qt has traditionally considered Windows shortcut files equivalent to symlinks on Unix file systems. Because of NTFS symlinks, the interpretation of shotcut files as symlinks is confusing. In this change, QFileInfo treats shortcut (.lnk) files as regular files but can follow the pointed object. In addition, QFileInfo introduces a more comprehensive file type. So that applications can make well-informed decisions about how to treat a file system entry. Based on the implementation of QFileInfo::type(), two inline helper functions are introduced to QFileInfo. 1. isSymbolicLink, returns true if it points to a symbolic link. 2. isShortcut, returns true if it points to a shortcut. [ChangeLog][QtCore][QFileInfo] Introduce QFileInfo::type() to replace the isSymLink method. Task-number: QTBUG-75869 Change-Id: Icc0dd52f9ad0ea50b0265d77ee0d0a3d25054e39 Reviewed-by: Volker Hilsheimer --- src/corelib/io/qfileinfo.cpp | 123 ++++++++++++++-- src/corelib/io/qfileinfo.h | 17 +++ tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp | 166 +++++++++++++++++++++- 3 files changed, 287 insertions(+), 19 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index a5a3bc8b3e..b720966d8f 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -256,10 +256,9 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) \snippet code/src_corelib_io_qfileinfo.cpp 0 - On Windows, symlinks (shortcuts) are \c .lnk files. The reported - size() is that of the symlink (not the link's target), and - opening a symlink using QFile opens the \c .lnk file. For - example: + On Windows, shortcuts are \c .lnk files. The reported size() is that of + the shortcut (not the link's target), and opening a shortcut using QFile + opens the \c .lnk file. For example: \snippet code/src_corelib_io_qfileinfo.cpp 1 @@ -311,6 +310,19 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) \sa QDir, QFile */ +/*! + \enum QFileInfo::FileType + + This enum is returned by type() to describe the type of the file system + entity described by the QFileInfo object. + + \value Unknown The object refers to an unknown item. + \value Regular The object refers to a regular file. + \value Directory The object refers to a directory. + \value SymbolicLink The object refers to a symbolic link. + \value Shortcut The object refers to a shortcut. +*/ + /*! \fn QFileInfo &QFileInfo::operator=(QFileInfo &&other) @@ -996,11 +1008,7 @@ bool QFileInfo::isNativePath() const */ bool QFileInfo::isFile() const { - Q_D(const QFileInfo); - return d->checkAttribute( - QFileSystemMetaData::FileType, - [d]() { return d->metaData.isFile(); }, - [d]() { return d->getFileFlags(QAbstractFileEngine::FileType); }); + return (type() & FileTypeMask) == Regular; } /*! @@ -1011,11 +1019,7 @@ bool QFileInfo::isFile() const */ bool QFileInfo::isDir() const { - Q_D(const QFileInfo); - return d->checkAttribute( - QFileSystemMetaData::DirectoryType, - [d]() { return d->metaData.isDirectory(); }, - [d]() { return d->getFileFlags(QAbstractFileEngine::DirectoryType); }); + return (type() & FileTypeMask) == Directory; } @@ -1036,7 +1040,7 @@ bool QFileInfo::isBundle() const } /*! - Returns \c true if this object points to a symbolic link; + Returns \c true if this object points to a symbolic link or shortcut; otherwise returns \c false. Symbolic links exist on Unix (including \macos and iOS) and Windows @@ -1065,6 +1069,48 @@ bool QFileInfo::isSymLink() const [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); }); } +/*! + \fn bool QFileInfo::isSymbolicLink() const + + Returns \c true if this object points to a symbolic link; + otherwise returns \c false. + + Symbolic links exist on Unix (including \macos and iOS) and Windows + (NTFS-symlink) and are typically created by the \c{ln -s} or \c{mklink} + commands, respectively. + + Unix handles symlinks transparently. Opening a symbolic link effectively + opens the \l{symLinkTarget()}{link's target}. + + In contrast to isSymLink(), false will be returned for shortcuts + (\c *.lnk files) on Windows. Use QFileInfo::isShortcut() instead. + + \note If the symlink points to a non existing file, exists() returns + false. + + \sa isFile(), isDir(), isShortcut(), symLinkTarget() +*/ + +/*! + \fn bool QFileInfo::isShortcut() const + + Returns \c true if this object points to a shortcut; + otherwise returns \c false. + + Shortcuts only exist on Windows and are typically \c .lnk files. + For instance, true will be returned for shortcuts (\c *.lnk files) on + Windows, but false will be returned on Unix (including \macos and iOS). + + The shortcut (.lnk) files are treated as regular files. Opening those will + open the \c .lnk file itself. In order to open the file a shortcut + references to, it must uses symLinkTarget() on a shortcut. + + \note Even if a shortcut (broken shortcut) points to a non existing file, + isShortcut() returns true. + + \sa isFile(), isDir(), isSymbolicLink(), symLinkTarget() +*/ + /*! Returns \c true if the object points to a directory or to a symbolic link to a directory, and that directory is the root directory; otherwise @@ -1268,6 +1314,53 @@ qint64 QFileInfo::size() const }); } +/*! + Returns the QFileInfo::FileTypes. + + QFileInfo::FileTypes combines with an indirection flag (link type) and a + base type it refers to. + + For example, \c SymbolicLink combines with \c Regular meaning a symlink to + a regular file. + + In addition, FileTypeMask and LinkTypeMask are used to extract the base + type and link type respectively. + + \sa isFile(), isDir(), isShortcut(), isSymbolicLink() +*/ +QFileInfo::FileTypes QFileInfo::type() const +{ + Q_D(const QFileInfo); + + QFileInfo::FileTypes type = QFileInfo::Unknown; + if (d->checkAttribute( + QFileSystemMetaData::LegacyLinkType, + [d]() { return d->metaData.isLnkFile(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); })) { + type = QFileInfo::Shortcut; + } else if (d->checkAttribute( + QFileSystemMetaData::LegacyLinkType, + [d]() { return d->metaData.isLink(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); })) { + type = QFileInfo::SymbolicLink; + } + + if (d->checkAttribute( + QFileSystemMetaData::DirectoryType, + [d]() { return d->metaData.isDirectory(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::DirectoryType); })) { + return type | QFileInfo::Directory; + } + + if (d->checkAttribute( + QFileSystemMetaData::FileType, + [d]() { return d->metaData.isFile(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::FileType); })) { + return type | QFileInfo::Regular; + } + return type; +} + #if QT_DEPRECATED_SINCE(5, 10) /*! \deprecated diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h index 111517325d..1cbeafdd4a 100644 --- a/src/corelib/io/qfileinfo.h +++ b/src/corelib/io/qfileinfo.h @@ -66,6 +66,20 @@ public: QFileInfo(const QFileInfo &fileinfo); ~QFileInfo(); + enum FileType { + Unknown, + // base type + Regular, + Directory, + // indirection flag + SymbolicLink = 0x10, + Shortcut = 0x20, + // mask + FileTypeMask = 0x0f, + LinkTypeMask = 0xf0 + }; + Q_DECLARE_FLAGS(FileTypes, FileType) + QFileInfo &operator=(const QFileInfo &fileinfo); QFileInfo &operator=(QFileInfo &&other) noexcept { swap(other); return *this; } @@ -111,6 +125,8 @@ public: bool isFile() const; bool isDir() const; bool isSymLink() const; + inline bool isSymbolicLink() const { return type() & SymbolicLink; } + inline bool isShortcut() const { return type() & Shortcut; } bool isRoot() const; bool isBundle() const; @@ -129,6 +145,7 @@ public: QFile::Permissions permissions() const; qint64 size() const; + FileTypes type() const; // ### Qt6: inline these functions #if QT_DEPRECATED_SINCE(5, 10) diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp index 60e320c44d..6fcfe87c83 100644 --- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp @@ -236,6 +236,8 @@ private slots: void isSymLink_data(); void isSymLink(); + void link_data(); + void link(); void isHidden_data(); void isHidden(); @@ -277,6 +279,9 @@ private slots: void invalidState(); void nonExistingFile(); + void type_data(); + void type(); + private: const QString m_currentDir; QString m_sourceFile; @@ -1337,6 +1342,88 @@ void tst_QFileInfo::isSymLink() #endif } +Q_DECLARE_METATYPE(QFileInfo::FileType) + +void tst_QFileInfo::link_data() +{ + QFile::remove("link"); + QFile::remove("link.lnk"); + QFile::remove("brokenlink"); + QFile::remove("brokenlink.lnk"); + QFile::remove("dummyfile"); + QFile::remove("relative/link"); + + QTest::addColumn("path"); + QTest::addColumn("linkType"); + QTest::addColumn("linkTarget"); + + QFile file1(m_sourceFile); + QFile file2("dummyfile"); + file2.open(QIODevice::WriteOnly); + + QTest::newRow("existent file") << m_sourceFile << QFileInfo::Unknown << ""; +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + // windows shortcuts + QVERIFY(file1.link("link.lnk")); + QTest::newRow("link.lnk") + << "link.lnk" << QFileInfo::Shortcut << QFileInfo(m_sourceFile).absoluteFilePath(); + + QVERIFY(file2.link("brokenlink.lnk")); + QTest::newRow("broken link.lnk") + << "brokenlink.lnk" << QFileInfo::Shortcut << QFileInfo("dummyfile").absoluteFilePath(); +#endif + +#ifndef Q_NO_SYMLINKS +#if defined(Q_OS_WIN) +#if !defined(Q_OS_WINRT) + QString errorMessage; + DWORD creationResult = createSymbolicLink("link", m_sourceFile, &errorMessage); + if (creationResult == ERROR_PRIVILEGE_NOT_HELD) { + QWARN(msgInsufficientPrivileges(errorMessage)); + } else { + QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); + QTest::newRow("link") + << "link" << QFileInfo::SymbolicLink << QFileInfo(m_sourceFile).absoluteFilePath(); + } + + creationResult = createSymbolicLink("brokenlink", "dummyfile", &errorMessage); + if (creationResult == ERROR_PRIVILEGE_NOT_HELD) { + QWARN(msgInsufficientPrivileges(errorMessage)); + } else { + QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); + QTest::newRow("broken link") + << "brokenlink" << QFileInfo::SymbolicLink << QFileInfo("dummyfile").absoluteFilePath(); + } +#endif // !Q_OS_WINRT +#else // Unix: + QVERIFY(file1.link("link")); + QTest::newRow("link") + << "link" << QFileInfo::SymbolicLink << QFileInfo(m_sourceFile).absoluteFilePath(); + + QVERIFY(file2.link("brokenlink")); + QTest::newRow("broken link") + << "brokenlink" << QFileInfo::SymbolicLink << QFileInfo("dummyfile").absoluteFilePath(); + + QDir::current().mkdir("relative"); + QFile::link("../dummyfile", "relative/link"); + QTest::newRow("relative link") + << "relative/link" << QFileInfo::SymbolicLink << QFileInfo("dummyfile").absoluteFilePath(); +#endif +#endif // !Q_NO_SYMLINKS + file2.remove(); +} + +void tst_QFileInfo::link() +{ + QFETCH(QString, path); + QFETCH(QFileInfo::FileType, linkType); + QFETCH(QString, linkTarget); + + QFileInfo fi(path); + QCOMPARE(fi.type() & QFileInfo::LinkTypeMask, linkType); + QCOMPARE(fi.symLinkTarget(), linkTarget); +} + void tst_QFileInfo::isHidden_data() { QTest::addColumn("path"); @@ -1638,7 +1725,7 @@ void tst_QFileInfo::ntfsJunctionPointsAndSymlinks() QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); QFileInfo fi(path); - const bool actualIsSymLink = fi.isSymLink(); + const bool actualIsSymLink = fi.isSymbolicLink(); const QString actualSymLinkTarget = isSymLink ? fi.symLinkTarget() : QString(); const QString actualCanonicalFilePath = isSymLink ? fi.canonicalFilePath() : QString(); // Ensure that junctions, mountpoints are removed. If this fails, do not remove @@ -1667,14 +1754,16 @@ void tst_QFileInfo::brokenShortcut() file.close(); QFileInfo info(linkName); - QVERIFY(info.isSymLink()); + QVERIFY(!info.isSymbolicLink()); + QVERIFY(info.isShortcut()); QVERIFY(!info.exists()); QFile::remove(linkName); QDir current; // QTBUG-21863 QVERIFY(current.mkdir(linkName)); QFileInfo dirInfo(linkName); - QVERIFY(!dirInfo.isSymLink()); + QVERIFY(!dirInfo.isSymbolicLink()); + QVERIFY(!dirInfo.isShortcut()); QVERIFY(dirInfo.isDir()); current.rmdir(linkName); } @@ -2032,7 +2121,8 @@ static void stateCheck(const QFileInfo &info, const QString &dirname, const QStr QVERIFY(!info.isHidden()); QVERIFY(!info.isFile()); QVERIFY(!info.isDir()); - QVERIFY(!info.isSymLink()); + QVERIFY(!info.isSymbolicLink()); + QVERIFY(!info.isShortcut()); QVERIFY(!info.isBundle()); QVERIFY(!info.isRoot()); QCOMPARE(info.isNativePath(), !filename.isEmpty()); @@ -2089,5 +2179,73 @@ void tst_QFileInfo::nonExistingFile() stateCheck(info, dirname, filename); } +Q_DECLARE_METATYPE(QFileInfo::FileTypes) + +void tst_QFileInfo::type_data() +{ + QFile::remove("link.lnk"); + QFile::remove("symlink.lnk"); + QFile::remove("link"); + QFile::remove("symlink"); + QFile::remove("directory.lnk"); + QFile::remove("directory"); + + QTest::addColumn("path"); + QTest::addColumn("type"); + + QFile regularFile(m_sourceFile); + QTest::newRow("regular") + << regularFile.fileName() << QFileInfo::FileTypes(QFileInfo::Regular); + QTest::newRow("directory") + << QDir::currentPath() << QFileInfo::FileTypes(QFileInfo::Directory); +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + // windows shortcuts + QVERIFY(regularFile.link("link.lnk")); + QTest::newRow("shortcut") + << "link.lnk" << QFileInfo::FileTypes(QFileInfo::Shortcut | QFileInfo::Regular); + QVERIFY(regularFile.link("link")); + QTest::newRow("invalid-shortcut") + << "link" << QFileInfo::FileTypes(QFileInfo::Regular); + QVERIFY(QFile::link(QDir::currentPath(), "directory.lnk")); + QTest::newRow("directory-shortcut") + << "directory.lnk" << QFileInfo::FileTypes(QFileInfo::Shortcut | QFileInfo::Directory); +#endif + +#ifndef Q_NO_SYMLINKS +#if defined(Q_OS_WIN) +#if !defined(Q_OS_WINRT) + QString errorMessage; + const DWORD creationResult = createSymbolicLink("symlink", m_sourceFile, &errorMessage); + if (creationResult == ERROR_PRIVILEGE_NOT_HELD) { + QWARN(msgInsufficientPrivileges(errorMessage)); + } else { + QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); + QTest::newRow("NTFS-symlink") + << "symlink" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Regular); + } +#endif // !Q_OS_WINRT +#else // Unix: + QVERIFY(regularFile.link("symlink.lnk")); + QTest::newRow("symlink.lnk") + << "symlink.lnk" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Regular); + QVERIFY(regularFile.link("symlink")); + QTest::newRow("symlink") + << "symlink" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Regular); + QVERIFY(QFile::link(QDir::currentPath(), "directory")); + QTest::newRow("directory-symlink") + << "directory" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Directory); +#endif +#endif // !Q_NO_SYMLINKS +} + +void tst_QFileInfo::type() +{ + QFETCH(QString, path); + QFETCH(QFileInfo::FileTypes, type); + + QFileInfo info(path); + QCOMPARE(info.type(), type); +} + QTEST_MAIN(tst_QFileInfo) #include "tst_qfileinfo.moc" -- cgit v1.2.3 From 22b3486f82fab7aff08dabafca582ce2e248e302 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Thu, 15 Aug 2019 03:17:51 +0900 Subject: Fix build without features.proxymodel Change-Id: I9e51ed78d783da999187e7df58ddb83d76e3c7b7 Reviewed-by: Shawn Rutledge --- src/widgets/widgets/qcombobox.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 8b54d61e8e..68f19cc334 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -64,7 +64,9 @@ #include #include #include +#if QT_CONFIG(proxymodel) #include +#endif #include #include #include @@ -200,6 +202,7 @@ QStyleOptionMenuItem QComboMenuDelegate::getStyleOption(const QStyleOptionViewIt void QComboBoxPrivate::_q_completerActivated(const QModelIndex &index) { Q_Q(QComboBox); +#if QT_CONFIG(proxymodel) if (index.isValid() && q->completer()) { QAbstractProxyModel *proxy = qobject_cast(q->completer()->completionModel()); if (proxy) { @@ -221,6 +224,7 @@ void QComboBoxPrivate::_q_completerActivated(const QModelIndex &index) emitActivated(currentIndex); } } +#endif # ifdef QT_KEYPAD_NAVIGATION if ( QApplicationPrivate::keypadNavigationEnabled() -- cgit v1.2.3 From 3e79151fa2552edd2e58c246d136f1fd0b2a4c86 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 15 Aug 2019 10:55:23 +0200 Subject: QBezier: inline fromPoints() There's really no reason for it to be out-of-line, and we're going to use it in QBezier::split(), which is inline, and we want the optimizer to have a field day with the source, without a compiler firewall in the way. Change-Id: I49ae3a87fcce1e2dc87a9081f567503e5a98ef6b Reviewed-by: Edward Welbourne Reviewed-by: Eirik Aavitsland --- src/gui/painting/qbezier.cpp | 18 ------------------ src/gui/painting/qbezier_p.h | 3 ++- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/src/gui/painting/qbezier.cpp b/src/gui/painting/qbezier.cpp index 8cda4b4072..daf19fffe1 100644 --- a/src/gui/painting/qbezier.cpp +++ b/src/gui/painting/qbezier.cpp @@ -51,24 +51,6 @@ QT_BEGIN_NAMESPACE //#define QDEBUG_BEZIER -/*! - \internal -*/ -QBezier QBezier::fromPoints(const QPointF &p1, const QPointF &p2, - const QPointF &p3, const QPointF &p4) -{ - QBezier b; - b.x1 = p1.x(); - b.y1 = p1.y(); - b.x2 = p2.x(); - b.y2 = p2.y(); - b.x3 = p3.x(); - b.y3 = p3.y(); - b.x4 = p4.x(); - b.y4 = p4.y(); - return b; -} - /*! \internal */ diff --git a/src/gui/painting/qbezier_p.h b/src/gui/painting/qbezier_p.h index f8a91e9ef3..f88e3b35b3 100644 --- a/src/gui/painting/qbezier_p.h +++ b/src/gui/painting/qbezier_p.h @@ -69,7 +69,8 @@ class Q_GUI_EXPORT QBezier { public: static QBezier fromPoints(const QPointF &p1, const QPointF &p2, - const QPointF &p3, const QPointF &p4); + const QPointF &p3, const QPointF &p4) + { return {p1.x(), p1.y(), p2.x(), p2.y(), p3.x(), p3.y(), p4.x(), p4.y()}; } static void coefficients(qreal t, qreal &a, qreal &b, qreal &c, qreal &d); -- cgit v1.2.3 From cb3e1e551f340ce1e6280123d8b5411b3c1c96d8 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 15 Aug 2019 14:42:12 +0200 Subject: QWidgetBackingStore: clean up around dirtyOnScreenWidgets The QVector dirtyOnScreenWidgets was aggregated by pointer, which makes no sense, as a QVector is just as large as a pointer (and even in Qt 6, when it will be larger, it's not going to be horrible). But this complicated the code quite a bit. Aggregate by value instead (it's just one of three such vectors now). Drive-by fixes: - use QVector::removeAll() instead of rolling your own - port two indexed loops to ranged ones. In the first case, it's safe, as the loop body clearly doesn't touch the iteratee (it's just a std::accumulate). In the second, the question no longer applies, as we're now using a consume loop. Change-Id: Icd4ac13bb4a6f9a783f0adf2fb6a5bdfacd1f91a Reviewed-by: Friedemann Kleint Reviewed-by: Volker Hilsheimer --- src/widgets/kernel/qwidgetbackingstore.cpp | 28 +++++++++--------------- src/widgets/kernel/qwidgetbackingstore_p.h | 35 +++--------------------------- 2 files changed, 13 insertions(+), 50 deletions(-) diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index 8b0094a93c..009ffb17a1 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -397,15 +397,12 @@ QRegion QWidgetBackingStore::dirtyRegion(QWidget *widget) const // Append the region that needs flush. r += dirtyOnScreen; - if (dirtyOnScreenWidgets) { // Only in use with native child widgets. - for (int i = 0; i < dirtyOnScreenWidgets->size(); ++i) { - QWidget *w = dirtyOnScreenWidgets->at(i); - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) - continue; - QWidgetPrivate *wd = w->d_func(); - Q_ASSERT(wd->needsFlush); - r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); - } + for (QWidget *w : dirtyOnScreenWidgets) { + if (widgetDirty && w != widget && !widget->isAncestorOf(w)) + continue; + QWidgetPrivate *wd = w->d_func(); + Q_ASSERT(wd->needsFlush); + r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); } if (widgetDirty) { @@ -686,8 +683,8 @@ void QWidgetBackingStore::removeDirtyWidget(QWidget *w) if (!w) return; - dirtyWidgetsRemoveAll(w); - dirtyOnScreenWidgetsRemoveAll(w); + dirtyWidgets.removeAll(w); + dirtyOnScreenWidgets.removeAll(w); dirtyRenderToTextureWidgets.removeAll(w); resetWidget(w); @@ -719,7 +716,6 @@ void QWidgetBackingStore::updateLists(QWidget *cur) QWidgetBackingStore::QWidgetBackingStore(QWidget *topLevel) : tlw(topLevel), - dirtyOnScreenWidgets(0), updateRequestSent(0), textureListWatcher(0), perfFrames(0) @@ -737,8 +733,6 @@ QWidgetBackingStore::~QWidgetBackingStore() resetWidget(dirtyWidgets.at(c)); for (int c = 0; c < dirtyRenderToTextureWidgets.size(); ++c) resetWidget(dirtyRenderToTextureWidgets.at(c)); - - delete dirtyOnScreenWidgets; } static QVector getSortedRectsToScroll(const QRegion ®ion, int dx, int dy) @@ -1373,7 +1367,7 @@ void QWidgetBackingStore::doSync() */ void QWidgetBackingStore::flush(QWidget *widget) { - const bool hasDirtyOnScreenWidgets = dirtyOnScreenWidgets && !dirtyOnScreenWidgets->isEmpty(); + const bool hasDirtyOnScreenWidgets = !dirtyOnScreenWidgets.isEmpty(); bool flushed = false; // Flush the region in dirtyOnScreen. @@ -1400,15 +1394,13 @@ void QWidgetBackingStore::flush(QWidget *widget) if (!hasDirtyOnScreenWidgets) return; - for (int i = 0; i < dirtyOnScreenWidgets->size(); ++i) { - QWidget *w = dirtyOnScreenWidgets->at(i); + for (QWidget *w : qExchange(dirtyOnScreenWidgets, {})) { QWidgetPrivate *wd = w->d_func(); Q_ASSERT(wd->needsFlush); QPlatformTextureList *widgetTexturesForNative = wd->textureChildSeen ? widgetTexturesFor(tlw, w) : 0; qt_flush(w, *wd->needsFlush, store, tlw, widgetTexturesForNative, this); *wd->needsFlush = QRegion(); } - dirtyOnScreenWidgets->clear(); } /*! diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h index 9409ba7832..08042445bf 100644 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ b/src/widgets/kernel/qwidgetbackingstore_p.h @@ -129,7 +129,7 @@ private: QRegion dirtyFromPreviousSync; QVector dirtyWidgets; QVector dirtyRenderToTextureWidgets; - QVector *dirtyOnScreenWidgets; + QVector dirtyOnScreenWidgets; QList staticWidgets; QBackingStore *store; uint updateRequestSent : 1; @@ -190,17 +190,6 @@ private: } } - inline void dirtyWidgetsRemoveAll(QWidget *widget) - { - int i = 0; - while (i < dirtyWidgets.size()) { - if (dirtyWidgets.at(i) == widget) - dirtyWidgets.remove(i); - else - ++i; - } - } - inline void addStaticWidget(QWidget *widget) { if (!widget) @@ -246,26 +235,8 @@ private: if (!widget) return; - if (!dirtyOnScreenWidgets) { - dirtyOnScreenWidgets = new QVector; - dirtyOnScreenWidgets->append(widget); - } else if (!dirtyOnScreenWidgets->contains(widget)) { - dirtyOnScreenWidgets->append(widget); - } - } - - inline void dirtyOnScreenWidgetsRemoveAll(QWidget *widget) - { - if (!widget || !dirtyOnScreenWidgets) - return; - - int i = 0; - while (i < dirtyOnScreenWidgets->size()) { - if (dirtyOnScreenWidgets->at(i) == widget) - dirtyOnScreenWidgets->remove(i); - else - ++i; - } + if (!dirtyOnScreenWidgets.contains(widget)) + dirtyOnScreenWidgets.append(widget); } inline void resetWidget(QWidget *widget) -- cgit v1.2.3 From 13426aff248c25b44ac377f37dc3e3a54ea0ea86 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 13 Jul 2019 20:39:05 +0200 Subject: Cleanup QtWidgets animation examples Cleanup the QtWidgets animation examples: - use nullptr - use normalized includes, remove unused includes - fix style - fix crash of sub-attaq when the game ended (error during range-based for loop porting) - don't use keyword 'final' for a variable name Change-Id: Id23be8ff8b1b310da005d13c052fe547f6a0d63a Reviewed-by: Friedemann Kleint --- examples/widgets/animation/easing/window.cpp | 7 +-- examples/widgets/animation/stickman/animation.cpp | 18 +++--- examples/widgets/animation/stickman/animation.h | 4 +- .../widgets/animation/stickman/graphicsview.cpp | 12 ++-- examples/widgets/animation/stickman/graphicsview.h | 12 ++-- examples/widgets/animation/stickman/lifecycle.cpp | 19 ++++-- examples/widgets/animation/stickman/lifecycle.h | 11 ++-- examples/widgets/animation/stickman/node.h | 4 +- examples/widgets/animation/stickman/rectbutton.cpp | 7 +-- examples/widgets/animation/stickman/rectbutton.h | 8 +-- examples/widgets/animation/stickman/stickman.cpp | 29 +++------ examples/widgets/animation/stickman/stickman.h | 13 ++-- .../animation/sub-attaq/animationmanager.cpp | 17 ++--- .../widgets/animation/sub-attaq/animationmanager.h | 10 +-- examples/widgets/animation/sub-attaq/boat.cpp | 19 +++--- examples/widgets/animation/sub-attaq/boat.h | 7 +-- examples/widgets/animation/sub-attaq/boat_p.h | 20 +++--- examples/widgets/animation/sub-attaq/bomb.cpp | 19 +++--- examples/widgets/animation/sub-attaq/bomb.h | 6 +- .../widgets/animation/sub-attaq/graphicsscene.cpp | 73 ++++++++++++---------- .../widgets/animation/sub-attaq/graphicsscene.h | 21 +++---- .../widgets/animation/sub-attaq/mainwindow.cpp | 7 +-- examples/widgets/animation/sub-attaq/mainwindow.h | 8 +-- .../widgets/animation/sub-attaq/pixmapitem.cpp | 5 +- examples/widgets/animation/sub-attaq/pixmapitem.h | 8 +-- .../widgets/animation/sub-attaq/progressitem.cpp | 7 ++- .../widgets/animation/sub-attaq/progressitem.h | 8 +-- .../animation/sub-attaq/qanimationstate.cpp | 4 +- .../widgets/animation/sub-attaq/qanimationstate.h | 10 +-- examples/widgets/animation/sub-attaq/states.cpp | 28 ++++----- examples/widgets/animation/sub-attaq/states.h | 24 +++---- examples/widgets/animation/sub-attaq/submarine.cpp | 26 ++++---- examples/widgets/animation/sub-attaq/submarine.h | 11 ++-- examples/widgets/animation/sub-attaq/submarine_p.h | 9 ++- .../animation/sub-attaq/textinformationitem.cpp | 9 +-- .../animation/sub-attaq/textinformationitem.h | 6 +- examples/widgets/animation/sub-attaq/torpedo.cpp | 23 ++++--- examples/widgets/animation/sub-attaq/torpedo.h | 6 +- 38 files changed, 244 insertions(+), 291 deletions(-) diff --git a/examples/widgets/animation/easing/window.cpp b/examples/widgets/animation/easing/window.cpp index aa12147388..d1d6348361 100644 --- a/examples/widgets/animation/easing/window.cpp +++ b/examples/widgets/animation/easing/window.cpp @@ -55,11 +55,10 @@ Window::Window(QWidget *parent) m_iconSize(64, 64) { m_ui.setupUi(this); - QButtonGroup *buttonGroup = findChild(); // ### workaround for uic in 4.4 m_ui.easingCurvePicker->setIconSize(m_iconSize); m_ui.easingCurvePicker->setMinimumHeight(m_iconSize.height() + 50); - buttonGroup->setId(m_ui.lineRadio, 0); - buttonGroup->setId(m_ui.circleRadio, 1); + m_ui.buttonGroup->setId(m_ui.lineRadio, 0); + m_ui.buttonGroup->setId(m_ui.circleRadio, 1); QEasingCurve dummy; m_ui.periodSpinBox->setValue(dummy.period()); @@ -68,7 +67,7 @@ Window::Window(QWidget *parent) connect(m_ui.easingCurvePicker, &QListWidget::currentRowChanged, this, &Window::curveChanged); - connect(buttonGroup, QOverload::of(&QButtonGroup::buttonClicked), + connect(m_ui.buttonGroup, QOverload::of(&QButtonGroup::buttonClicked), this, &Window::pathChanged); connect(m_ui.periodSpinBox, QOverload::of(&QDoubleSpinBox::valueChanged), this, &Window::periodChanged); diff --git a/examples/widgets/animation/stickman/animation.cpp b/examples/widgets/animation/stickman/animation.cpp index 5c2d1682af..73d79adc84 100644 --- a/examples/widgets/animation/stickman/animation.cpp +++ b/examples/widgets/animation/stickman/animation.cpp @@ -50,16 +50,13 @@ #include "animation.h" -#include -#include #include #include class Frame { public: - Frame() { - } + Frame() = default; int nodeCount() const { @@ -85,9 +82,8 @@ private: QVector m_nodePositions; }; -Animation::Animation() +Animation::Animation() : m_currentFrame(0) { - m_currentFrame = 0; m_frames.append(new Frame); } @@ -103,6 +99,8 @@ void Animation::setTotalFrames(int totalFrames) while (totalFrames < m_frames.size()) delete m_frames.takeLast(); + + setCurrentFrame(m_currentFrame); } int Animation::totalFrames() const @@ -112,7 +110,7 @@ int Animation::totalFrames() const void Animation::setCurrentFrame(int currentFrame) { - m_currentFrame = qMax(qMin(currentFrame, totalFrames()-1), 0); + m_currentFrame = qBound(0, currentFrame, totalFrames() - 1); } int Animation::currentFrame() const @@ -177,18 +175,16 @@ void Animation::load(QIODevice *device) int frameCount; stream >> frameCount; - for (int i=0; i> nodeCount; Frame *frame = new Frame; frame->setNodeCount(nodeCount); - for (int j=0; j> pos; - frame->setNodePos(j, pos); } diff --git a/examples/widgets/animation/stickman/animation.h b/examples/widgets/animation/stickman/animation.h index e57847aeaa..5cc1133ac0 100644 --- a/examples/widgets/animation/stickman/animation.h +++ b/examples/widgets/animation/stickman/animation.h @@ -52,8 +52,8 @@ #define ANIMATION_H #include -#include #include +#include class Frame; QT_BEGIN_NAMESPACE @@ -85,7 +85,7 @@ public: private: QString m_name; - QList m_frames; + QVector m_frames; int m_currentFrame; }; diff --git a/examples/widgets/animation/stickman/graphicsview.cpp b/examples/widgets/animation/stickman/graphicsview.cpp index 7058e15345..0f5800cff3 100644 --- a/examples/widgets/animation/stickman/graphicsview.cpp +++ b/examples/widgets/animation/stickman/graphicsview.cpp @@ -51,13 +51,8 @@ #include "graphicsview.h" #include "stickman.h" -#include -#include -#include - -GraphicsView::GraphicsView(QWidget *parent) - : QGraphicsView(parent), m_editor(nullptr) -{} +#include +#include void GraphicsView::keyPressEvent(QKeyEvent *e) { @@ -66,7 +61,8 @@ void GraphicsView::keyPressEvent(QKeyEvent *e) emit keyPressed(Qt::Key(e->key())); } -void GraphicsView::resizeEvent(QResizeEvent *) +void GraphicsView::resizeEvent(QResizeEvent *e) { fitInView(scene()->sceneRect()); + QGraphicsView::resizeEvent(e); } diff --git a/examples/widgets/animation/stickman/graphicsview.h b/examples/widgets/animation/stickman/graphicsview.h index 361fee219d..29f4c6237e 100644 --- a/examples/widgets/animation/stickman/graphicsview.h +++ b/examples/widgets/animation/stickman/graphicsview.h @@ -51,24 +51,20 @@ #ifndef GRAPHICSVIEW_H #define GRAPHICSVIEW_H -#include +#include -class MainWindow; class GraphicsView: public QGraphicsView { Q_OBJECT public: - GraphicsView(QWidget *parent = nullptr); + using QGraphicsView::QGraphicsView; protected: - void resizeEvent(QResizeEvent *event) override; - void keyPressEvent(QKeyEvent *) override; + void resizeEvent(QResizeEvent *e) override; + void keyPressEvent(QKeyEvent *e) override; signals: void keyPressed(int key); - -private: - MainWindow *m_editor; }; #endif diff --git a/examples/widgets/animation/stickman/lifecycle.cpp b/examples/widgets/animation/stickman/lifecycle.cpp index 046e3f4cd1..5ad284c590 100644 --- a/examples/widgets/animation/stickman/lifecycle.cpp +++ b/examples/widgets/animation/stickman/lifecycle.cpp @@ -54,8 +54,15 @@ #include "animation.h" #include "graphicsview.h" -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include class KeyPressTransition: public QSignalTransition { @@ -107,7 +114,7 @@ LifeCycle::LifeCycle(StickMan *stickMan, GraphicsView *keyReceiver) // Create animation group to be used for all transitions m_animationGroup = new QParallelAnimationGroup(); const int stickManNodeCount = m_stickMan->nodeCount(); - for (int i=0; inode(i), "pos"); m_animationGroup->addAnimation(pa); } @@ -175,7 +182,7 @@ void LifeCycle::addActivity(const QString &fileName, Qt::Key key, QObject *sende QState *state = makeState(m_alive, fileName); m_alive->addTransition(new KeyPressTransition(m_keyReceiver, key, state)); - if (sender || signal) + if (sender && signal) m_alive->addTransition(sender, signal, state); } @@ -192,13 +199,13 @@ QState *LifeCycle::makeState(QState *parentState, const QString &animationFileNa const int frameCount = animation.totalFrames(); QState *previousState = nullptr; - for (int i=0; iassignProperty(m_stickMan->node(j), "pos", animation.nodePos(j)); //! [1] diff --git a/examples/widgets/animation/stickman/lifecycle.h b/examples/widgets/animation/stickman/lifecycle.h index e3f9876676..21ab99276d 100644 --- a/examples/widgets/animation/stickman/lifecycle.h +++ b/examples/widgets/animation/stickman/lifecycle.h @@ -53,16 +53,16 @@ #include -class StickMan; QT_BEGIN_NAMESPACE -class QStateMachine; -class QAnimationGroup; -class QState; class QAbstractState; class QAbstractTransition; +class QAnimationGroup; class QObject; +class QState; +class QStateMachine; QT_END_NAMESPACE class GraphicsView; +class StickMan; class LifeCycle { public: @@ -70,7 +70,8 @@ public: ~LifeCycle(); void setDeathAnimation(const QString &fileName); - void addActivity(const QString &fileName, Qt::Key key, QObject *sender = NULL, const char *signal = NULL); + void addActivity(const QString &fileName, Qt::Key key, + QObject *sender = nullptr, const char *signal = nullptr); void start(); diff --git a/examples/widgets/animation/stickman/node.h b/examples/widgets/animation/stickman/node.h index 679999b7e8..2b393c60c1 100644 --- a/examples/widgets/animation/stickman/node.h +++ b/examples/widgets/animation/stickman/node.h @@ -51,13 +51,13 @@ #ifndef NODE_H #define NODE_H -#include +#include class Node: public QGraphicsObject { Q_OBJECT public: - explicit Node(const QPointF &pos, QGraphicsItem *parent = 0); + explicit Node(const QPointF &pos, QGraphicsItem *parent = nullptr); ~Node(); QRectF boundingRect() const override; diff --git a/examples/widgets/animation/stickman/rectbutton.cpp b/examples/widgets/animation/stickman/rectbutton.cpp index 7eea94ae6f..5174d0aeaf 100644 --- a/examples/widgets/animation/stickman/rectbutton.cpp +++ b/examples/widgets/animation/stickman/rectbutton.cpp @@ -51,12 +51,7 @@ #include "rectbutton.h" #include -RectButton::RectButton(QString buttonText) : m_ButtonText(buttonText) -{ -} - - -RectButton::~RectButton() +RectButton::RectButton(const QString &buttonText) : m_ButtonText(buttonText) { } diff --git a/examples/widgets/animation/stickman/rectbutton.h b/examples/widgets/animation/stickman/rectbutton.h index ab47bad0f7..ee6cd3f530 100644 --- a/examples/widgets/animation/stickman/rectbutton.h +++ b/examples/widgets/animation/stickman/rectbutton.h @@ -57,19 +57,19 @@ class RectButton : public QGraphicsObject { Q_OBJECT public: - RectButton(QString buttonText); - ~RectButton(); + RectButton(const QString &buttonText); QRectF boundingRect() const override; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; protected: - QString m_ButtonText; - void mousePressEvent (QGraphicsSceneMouseEvent *event) override; signals: void clicked(); + +private: + QString m_ButtonText; }; #endif // RECTBUTTON_H diff --git a/examples/widgets/animation/stickman/stickman.cpp b/examples/widgets/animation/stickman/stickman.cpp index 5725f64eec..3f373b6b52 100644 --- a/examples/widgets/animation/stickman/stickman.cpp +++ b/examples/widgets/animation/stickman/stickman.cpp @@ -52,10 +52,9 @@ #include "node.h" #include -#include -#include +#include -static const qreal Coords[NodeCount * 2] = { +static constexpr qreal Coords[NodeCount * 2] = { 0.0, -150.0, // head, #0 0.0, -100.0, // body pentagon, top->bottom, left->right, #1 - 5 @@ -81,7 +80,7 @@ static const qreal Coords[NodeCount * 2] = { }; -static const int Bones[BoneCount * 2] = { +static constexpr int Bones[BoneCount * 2] = { 0, 1, // neck 1, 2, // body @@ -117,19 +116,13 @@ static const int Bones[BoneCount * 2] = { StickMan::StickMan() { - m_sticks = true; - m_isDead = false; - m_pixmap = QPixmap("images/head.png"); - m_penColor = Qt::white; - m_fillColor = Qt::black; - // Set up start position of limbs - for (int i=0; ipos() - node2->pos(); - m_perfectBoneLengths[i] = sqrt(pow(dist.x(),2) + pow(dist.y(),2)); + m_perfectBoneLengths[i] = sqrt(pow(dist.x(), 2) + pow(dist.y(), 2)); } startTimer(10); } -StickMan::~StickMan() -{ -} - void StickMan::childPositionChanged() { prepareGeometryChange(); @@ -155,7 +144,7 @@ void StickMan::childPositionChanged() void StickMan::setDrawSticks(bool on) { m_sticks = on; - for (int i=0;isetVisible(on); } @@ -188,7 +177,7 @@ void StickMan::stabilize() { static const qreal threshold = 0.001; - for (int i=0; isetPen(Qt::white); - for (int i=0; i -#include - -// the universe's only animation manager -AnimationManager *AnimationManager::instance = nullptr; - -AnimationManager::AnimationManager() -{ -} +#include AnimationManager *AnimationManager::self() { - if (!instance) - instance = new AnimationManager; - return instance; + // the universe's only animation manager + static AnimationManager s_instance; + return &s_instance; } void AnimationManager::registerAnimation(QAbstractAnimation *anim) diff --git a/examples/widgets/animation/sub-attaq/animationmanager.h b/examples/widgets/animation/sub-attaq/animationmanager.h index 9365fa1f1e..5ddea66e80 100644 --- a/examples/widgets/animation/sub-attaq/animationmanager.h +++ b/examples/widgets/animation/sub-attaq/animationmanager.h @@ -51,7 +51,7 @@ #ifndef ANIMATIONMANAGER_H #define ANIMATIONMANAGER_H -#include +#include QT_BEGIN_NAMESPACE class QAbstractAnimation; @@ -59,9 +59,10 @@ QT_END_NAMESPACE class AnimationManager : public QObject { -Q_OBJECT + Q_OBJECT + AnimationManager() = default; + ~AnimationManager() = default; public: - AnimationManager(); void registerAnimation(QAbstractAnimation *anim); void unregisterAnimation(QAbstractAnimation *anim); void unregisterAllAnimations(); @@ -75,8 +76,7 @@ private slots: void unregisterAnimation_helper(QObject *obj); private: - static AnimationManager *instance; - QList animations; + QVector animations; }; #endif // ANIMATIONMANAGER_H diff --git a/examples/widgets/animation/sub-attaq/boat.cpp b/examples/widgets/animation/sub-attaq/boat.cpp index 9037d54878..d5fa314b60 100644 --- a/examples/widgets/animation/sub-attaq/boat.cpp +++ b/examples/widgets/animation/sub-attaq/boat.cpp @@ -52,18 +52,17 @@ #include "boat.h" #include "boat_p.h" #include "bomb.h" -#include "pixmapitem.h" #include "graphicsscene.h" #include "animationmanager.h" #include "qanimationstate.h" //Qt -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include static QAbstractAnimation *setupDestroyAnimation(Boat *boat) { @@ -181,7 +180,7 @@ Boat::Boat() launchStateLeft->addTransition(historyState); launchStateRight->addTransition(historyState); - QFinalState *final = new QFinalState(machine); + QFinalState *finalState = new QFinalState(machine); //This state play the destroyed animation QAnimationState *destroyedState = new QAnimationState(machine); @@ -191,10 +190,10 @@ Boat::Boat() moving->addTransition(this, &Boat::boatDestroyed, destroyedState); //Transition to final state when the destroyed animation is finished - destroyedState->addTransition(destroyedState, &QAnimationState::animationFinished, final); + destroyedState->addTransition(destroyedState, &QAnimationState::animationFinished, finalState); //The machine has finished to be executed, then the boat is dead - connect(machine,&QState::finished, this, &Boat::boatExecutionFinished); + connect(machine, &QState::finished, this, &Boat::boatExecutionFinished); } diff --git a/examples/widgets/animation/sub-attaq/boat.h b/examples/widgets/animation/sub-attaq/boat.h index a75e2b1474..22f2f0f7c1 100644 --- a/examples/widgets/animation/sub-attaq/boat.h +++ b/examples/widgets/animation/sub-attaq/boat.h @@ -48,12 +48,11 @@ ** ****************************************************************************/ -#ifndef __BOAT__H__ -#define __BOAT__H__ +#ifndef BOAT_H +#define BOAT_H #include "pixmapitem.h" -class Bomb; QT_BEGIN_NAMESPACE class QVariantAnimation; class QAbstractAnimation; @@ -101,4 +100,4 @@ private: QStateMachine *machine; }; -#endif //__BOAT__H__ +#endif // BOAT_H diff --git a/examples/widgets/animation/sub-attaq/boat_p.h b/examples/widgets/animation/sub-attaq/boat_p.h index 8ebfeb27f5..bb1a783392 100644 --- a/examples/widgets/animation/sub-attaq/boat_p.h +++ b/examples/widgets/animation/sub-attaq/boat_p.h @@ -67,7 +67,9 @@ #include "graphicsscene.h" // Qt -#include +#include +#include +#include static const int MAX_BOMB = 5; @@ -88,7 +90,7 @@ protected: return (boat->currentSpeed() == 1); } private: - Boat * boat; + Boat *boat; }; //These transtion test if we have to move the boat (i.e current speed was 0 or another value) @@ -118,7 +120,7 @@ protected: boat->updateBoatMovement(); } private: - Boat * boat; + Boat *boat; int key; }; @@ -139,7 +141,7 @@ protected: return (boat->bombsLaunched() < MAX_BOMB); } private: - Boat * boat; + Boat *boat; }; //This state is describing when the boat is moving right @@ -157,7 +159,7 @@ protected: boat->updateBoatMovement(); } private: - Boat * boat; + Boat *boat; }; //This state is describing when the boat is moving left @@ -175,7 +177,7 @@ protected: boat->updateBoatMovement(); } private: - Boat * boat; + Boat *boat; }; //This state is describing when the boat is in a stand by position @@ -194,7 +196,7 @@ protected: boat->updateBoatMovement(); } private: - Boat * boat; + Boat *boat; }; //This state is describing the launch of the torpedo on the right @@ -216,7 +218,7 @@ protected: boat->setBombsLaunched(boat->bombsLaunched() + 1); } private: - Boat * boat; + Boat *boat; }; //This state is describing the launch of the torpedo on the left @@ -238,7 +240,7 @@ protected: boat->setBombsLaunched(boat->bombsLaunched() + 1); } private: - Boat * boat; + Boat *boat; }; #endif // BOAT_P_H diff --git a/examples/widgets/animation/sub-attaq/bomb.cpp b/examples/widgets/animation/sub-attaq/bomb.cpp index 2b865137dd..0b9c365662 100644 --- a/examples/widgets/animation/sub-attaq/bomb.cpp +++ b/examples/widgets/animation/sub-attaq/bomb.cpp @@ -51,15 +51,14 @@ //Own #include "bomb.h" #include "submarine.h" -#include "pixmapitem.h" #include "animationmanager.h" #include "qanimationstate.h" //Qt -#include -#include -#include -#include +#include +#include +#include +#include Bomb::Bomb() : PixmapItem(QString("bomb"), GraphicsScene::Big) { @@ -83,7 +82,7 @@ void Bomb::launch(Bomb::Direction direction) anim->setEndValue(QPointF(x() + delta*2,scene()->height())); anim->setDuration(y()/2*60); launchAnimation->addAnimation(anim); - connect(anim,&QVariantAnimation::valueChanged,this,&Bomb::onAnimationLaunchValueChanged); + connect(anim, &QVariantAnimation::valueChanged, this, &Bomb::onAnimationLaunchValueChanged); connect(this, &Bomb::bombExploded, launchAnimation, &QAbstractAnimation::stop); //We setup the state machine of the bomb QStateMachine *machine = new QStateMachine(this); @@ -93,18 +92,18 @@ void Bomb::launch(Bomb::Direction direction) launched->setAnimation(launchAnimation); //End - QFinalState *final = new QFinalState(machine); + QFinalState *finalState = new QFinalState(machine); machine->setInitialState(launched); //### Add a nice animation when the bomb is destroyed - launched->addTransition(this, &Bomb::bombExploded,final); + launched->addTransition(this, &Bomb::bombExploded, finalState); //If the animation is finished, then we move to the final state - launched->addTransition(launched, &QAnimationState::animationFinished, final); + launched->addTransition(launched, &QAnimationState::animationFinished, finalState); //The machine has finished to be executed, then the boat is dead - connect(machine,&QState::finished,this, &Bomb::bombExecutionFinished); + connect(machine,&QState::finished, this, &Bomb::bombExecutionFinished); machine->start(); diff --git a/examples/widgets/animation/sub-attaq/bomb.h b/examples/widgets/animation/sub-attaq/bomb.h index 8e893f81e3..9ae54b4d81 100644 --- a/examples/widgets/animation/sub-attaq/bomb.h +++ b/examples/widgets/animation/sub-attaq/bomb.h @@ -48,8 +48,8 @@ ** ****************************************************************************/ -#ifndef __BOMB__H__ -#define __BOMB__H__ +#ifndef BOMB_H +#define BOMB_H #include "pixmapitem.h" @@ -73,4 +73,4 @@ private slots: void onAnimationLaunchValueChanged(const QVariant &); }; -#endif //__BOMB__H__ +#endif // BOMB_H diff --git a/examples/widgets/animation/sub-attaq/graphicsscene.cpp b/examples/widgets/animation/sub-attaq/graphicsscene.cpp index 8f0dfc1357..c7e2d269c8 100644 --- a/examples/widgets/animation/sub-attaq/graphicsscene.cpp +++ b/examples/widgets/animation/sub-attaq/graphicsscene.cpp @@ -55,38 +55,33 @@ #include "submarine.h" #include "torpedo.h" #include "bomb.h" -#include "pixmapitem.h" #include "animationmanager.h" #include "qanimationstate.h" #include "progressitem.h" #include "textinformationitem.h" //Qt -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -GraphicsScene::GraphicsScene(int x, int y, int width, int height, Mode mode) - : QGraphicsScene(x , y, width, height), mode(mode), boat(new Boat) +#include +#include +#include +#include +#include +#include +#include +#include +#include + +GraphicsScene::GraphicsScene(int x, int y, int width, int height, Mode mode, QObject *parent) + : QGraphicsScene(x, y, width, height, parent), mode(mode), boat(new Boat) { - PixmapItem *backgroundItem = new PixmapItem(QString("background"),mode); + PixmapItem *backgroundItem = new PixmapItem(QStringLiteral("background"), mode); backgroundItem->setZValue(1); backgroundItem->setPos(0,0); addItem(backgroundItem); - PixmapItem *surfaceItem = new PixmapItem(QString("surface"),mode); + PixmapItem *surfaceItem = new PixmapItem(QStringLiteral("surface"), mode); surfaceItem->setZValue(3); - surfaceItem->setPos(0,sealLevel() - surfaceItem->boundingRect().height()/2); + surfaceItem->setPos(0, sealLevel() - surfaceItem->boundingRect().height() / 2); addItem(surfaceItem); //The item that display score and level @@ -137,8 +132,8 @@ qreal GraphicsScene::sealLevel() const void GraphicsScene::setupScene(QAction *newAction, QAction *quitAction) { - static const int nLetters = 10; - static struct { + static constexpr int nLetters = 10; + static constexpr struct { char const *pix; qreal initX, initY; qreal destX, destY; @@ -154,8 +149,8 @@ void GraphicsScene::setupScene(QAction *newAction, QAction *quitAction) {"q", 200, 2000, 510, 250 }, {"excl", 0, 2000, 570, 220 } }; - QSequentialAnimationGroup * lettersGroupMoving = new QSequentialAnimationGroup(this); - QParallelAnimationGroup * lettersGroupFading = new QParallelAnimationGroup(this); + QSequentialAnimationGroup *lettersGroupMoving = new QSequentialAnimationGroup(this); + QParallelAnimationGroup *lettersGroupFading = new QParallelAnimationGroup(this); for (int i = 0; i < nLetters; ++i) { PixmapItem *logo = new PixmapItem(QLatin1String(":/logo-") + logoData[i].pix, this); @@ -180,7 +175,7 @@ void GraphicsScene::setupScene(QAction *newAction, QAction *quitAction) PlayState *gameState = new PlayState(this, machine); //Final state - QFinalState *final = new QFinalState(machine); + QFinalState *finalState = new QFinalState(machine); //Animation when the player enter in the game QAnimationState *lettersMovingState = new QAnimationState(machine); @@ -198,8 +193,8 @@ void GraphicsScene::setupScene(QAction *newAction, QAction *quitAction) gameState->addTransition(newAction, &QAction::triggered, gameState); //Wanna quit, then connect to CTRL+Q - gameState->addTransition(quitAction, &QAction::triggered, final); - lettersMovingState->addTransition(quitAction, &QAction::triggered, final); + gameState->addTransition(quitAction, &QAction::triggered, finalState); + lettersMovingState->addTransition(quitAction, &QAction::triggered, finalState); //Welcome screen is the initial state machine->setInitialState(lettersMovingState); @@ -213,21 +208,24 @@ void GraphicsScene::setupScene(QAction *newAction, QAction *quitAction) void GraphicsScene::addItem(Bomb *bomb) { bombs.insert(bomb); - connect(bomb,&Bomb::bombExecutionFinished,this, &GraphicsScene::onBombExecutionFinished); + connect(bomb, &Bomb::bombExecutionFinished, + this, &GraphicsScene::onBombExecutionFinished); QGraphicsScene::addItem(bomb); } void GraphicsScene::addItem(Torpedo *torpedo) { torpedos.insert(torpedo); - connect(torpedo,&Torpedo::torpedoExecutionFinished,this, &GraphicsScene::onTorpedoExecutionFinished); + connect(torpedo, &Torpedo::torpedoExecutionFinished, + this, &GraphicsScene::onTorpedoExecutionFinished); QGraphicsScene::addItem(torpedo); } void GraphicsScene::addItem(SubMarine *submarine) { submarines.insert(submarine); - connect(submarine,&SubMarine::subMarineExecutionFinished,this, &GraphicsScene::onSubMarineExecutionFinished); + connect(submarine, &SubMarine::subMarineExecutionFinished, + this, &GraphicsScene::onSubMarineExecutionFinished); QGraphicsScene::addItem(submarine); } @@ -239,15 +237,18 @@ void GraphicsScene::addItem(QGraphicsItem *item) void GraphicsScene::onBombExecutionFinished() { Bomb *bomb = qobject_cast(sender()); + if (!bomb) + return; bombs.remove(bomb); bomb->deleteLater(); - if (boat) - boat->setBombsLaunched(boat->bombsLaunched() - 1); + boat->setBombsLaunched(boat->bombsLaunched() - 1); } void GraphicsScene::onTorpedoExecutionFinished() { Torpedo *torpedo = qobject_cast(sender()); + if (!torpedo) + return; torpedos.remove(torpedo); torpedo->deleteLater(); } @@ -255,6 +256,8 @@ void GraphicsScene::onTorpedoExecutionFinished() void GraphicsScene::onSubMarineExecutionFinished() { SubMarine *submarine = qobject_cast(sender()); + if (!submarine) + return; submarines.remove(submarine); if (submarines.count() == 0) emit allSubMarineDestroyed(submarine->points()); @@ -266,16 +269,22 @@ void GraphicsScene::onSubMarineExecutionFinished() void GraphicsScene::clearScene() { for (SubMarine *sub : qAsConst(submarines)) { + // make sure to not go into onSubMarineExecutionFinished + sub->disconnect(this); sub->destroy(); sub->deleteLater(); } for (Torpedo *torpedo : qAsConst(torpedos)) { + // make sure to not go into onTorpedoExecutionFinished + torpedo->disconnect(this); torpedo->destroy(); torpedo->deleteLater(); } for (Bomb *bomb : qAsConst(bombs)) { + // make sure to not go into onBombExecutionFinished + bomb->disconnect(this); bomb->destroy(); bomb->deleteLater(); } diff --git a/examples/widgets/animation/sub-attaq/graphicsscene.h b/examples/widgets/animation/sub-attaq/graphicsscene.h index 86c3414bbb..dd3719bc10 100644 --- a/examples/widgets/animation/sub-attaq/graphicsscene.h +++ b/examples/widgets/animation/sub-attaq/graphicsscene.h @@ -48,13 +48,12 @@ ** ****************************************************************************/ -#ifndef __GRAPHICSSCENE__H__ -#define __GRAPHICSSCENE__H__ +#ifndef GRAPHICSSCENE_H +#define GRAPHICSSCENE_H //Qt -#include -#include -#include +#include +#include class Boat; @@ -78,18 +77,18 @@ public: }; struct SubmarineDescription { - int type; - int points; + int type = 0; + int points = 0; QString name; }; struct LevelDescription { - int id; + int id = 0; QString name; - QList > submarines; + QVector> submarines; }; - GraphicsScene(int x, int y, int width, int height, Mode mode = Big); + GraphicsScene(int x, int y, int width, int height, Mode mode, QObject *parent = nullptr); qreal sealLevel() const; void setupScene(QAction *newAction, QAction *quitAction); void addItem(Bomb *bomb); @@ -127,5 +126,5 @@ private: friend class UpdateScoreTransition; }; -#endif //__GRAPHICSSCENE__H__ +#endif // GRAPHICSSCENE_H diff --git a/examples/widgets/animation/sub-attaq/mainwindow.cpp b/examples/widgets/animation/sub-attaq/mainwindow.cpp index a4bb15b383..8f545ecebd 100644 --- a/examples/widgets/animation/sub-attaq/mainwindow.cpp +++ b/examples/widgets/animation/sub-attaq/mainwindow.cpp @@ -56,11 +56,10 @@ #include #include #include -#include #include #ifndef QT_NO_OPENGL -# include +# include #endif MainWindow::MainWindow(QWidget *parent) @@ -74,10 +73,10 @@ MainWindow::MainWindow(QWidget *parent) quitAction->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_Q)); if (QApplication::arguments().contains("-fullscreen")) { - scene = new GraphicsScene(0, 0, 750, 400, GraphicsScene::Small); + scene = new GraphicsScene(0, 0, 750, 400, GraphicsScene::Small, this); setWindowState(Qt::WindowFullScreen); } else { - scene = new GraphicsScene(0, 0, 880, 630); + scene = new GraphicsScene(0, 0, 880, 630, GraphicsScene::Big, this); layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/examples/widgets/animation/sub-attaq/mainwindow.h b/examples/widgets/animation/sub-attaq/mainwindow.h index c4fb9d324d..660acfaa0a 100644 --- a/examples/widgets/animation/sub-attaq/mainwindow.h +++ b/examples/widgets/animation/sub-attaq/mainwindow.h @@ -48,11 +48,11 @@ ** ****************************************************************************/ -#ifndef __MAINWINDOW__H__ -#define __MAINWINDOW__H__ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H //Qt -#include +#include class GraphicsScene; QT_BEGIN_NAMESPACE class QGraphicsView; @@ -69,4 +69,4 @@ private: QGraphicsView *view; }; -#endif //__MAINWINDOW__H__ +#endif // MAINWINDOW_H diff --git a/examples/widgets/animation/sub-attaq/pixmapitem.cpp b/examples/widgets/animation/sub-attaq/pixmapitem.cpp index 9475d5c3f8..a8581d881a 100644 --- a/examples/widgets/animation/sub-attaq/pixmapitem.cpp +++ b/examples/widgets/animation/sub-attaq/pixmapitem.cpp @@ -54,7 +54,7 @@ //Qt #include -PixmapItem::PixmapItem(const QString &fileName,GraphicsScene::Mode mode, QGraphicsItem * parent) +PixmapItem::PixmapItem(const QString &fileName, GraphicsScene::Mode mode, QGraphicsItem *parent) : QGraphicsObject(parent) { if (mode == GraphicsScene::Big) @@ -63,7 +63,8 @@ PixmapItem::PixmapItem(const QString &fileName,GraphicsScene::Mode mode, QGraphi pix = QPixmap(QStringLiteral(":/small/") + fileName); } -PixmapItem::PixmapItem(const QString &fileName, QGraphicsScene *scene) : QGraphicsObject(), pix(fileName) +PixmapItem::PixmapItem(const QString &fileName, QGraphicsScene *scene) + : QGraphicsObject(), pix(fileName) { scene->addItem(this); } diff --git a/examples/widgets/animation/sub-attaq/pixmapitem.h b/examples/widgets/animation/sub-attaq/pixmapitem.h index ec5c01857f..45e2ca806f 100644 --- a/examples/widgets/animation/sub-attaq/pixmapitem.h +++ b/examples/widgets/animation/sub-attaq/pixmapitem.h @@ -48,14 +48,14 @@ ** ****************************************************************************/ -#ifndef __PIXMAPITEM__H__ -#define __PIXMAPITEM__H__ +#ifndef PIXMAPITEM_H +#define PIXMAPITEM_H //Own #include "graphicsscene.h" //Qt -#include +#include class PixmapItem : public QGraphicsObject { @@ -69,4 +69,4 @@ private: QPixmap pix; }; -#endif //__PIXMAPITEM__H__ +#endif // PIXMAPITEM_H diff --git a/examples/widgets/animation/sub-attaq/progressitem.cpp b/examples/widgets/animation/sub-attaq/progressitem.cpp index 8b6b367710..350dbb7bbd 100644 --- a/examples/widgets/animation/sub-attaq/progressitem.cpp +++ b/examples/widgets/animation/sub-attaq/progressitem.cpp @@ -49,10 +49,11 @@ ****************************************************************************/ #include "progressitem.h" -#include "pixmapitem.h" -ProgressItem::ProgressItem (QGraphicsItem * parent) - : QGraphicsTextItem(parent), currentLevel(1), currentScore(0) +#include + +ProgressItem::ProgressItem(QGraphicsItem *parent) + : QGraphicsTextItem(parent) { setFont(QFont("Comic Sans MS")); setPos(parentItem()->boundingRect().topRight() - QPointF(180, -5)); diff --git a/examples/widgets/animation/sub-attaq/progressitem.h b/examples/widgets/animation/sub-attaq/progressitem.h index 23f5407978..f76b168151 100644 --- a/examples/widgets/animation/sub-attaq/progressitem.h +++ b/examples/widgets/animation/sub-attaq/progressitem.h @@ -52,19 +52,19 @@ #define PROGRESSITEM_H //Qt -#include +#include class ProgressItem : public QGraphicsTextItem { public: - ProgressItem(QGraphicsItem * parent = 0); + ProgressItem(QGraphicsItem *parent = nullptr); void setLevel(int level); void setScore(int score); private: void updateProgress(); - int currentLevel; - int currentScore; + int currentLevel = 1; + int currentScore = 0; }; #endif // PROGRESSITEM_H diff --git a/examples/widgets/animation/sub-attaq/qanimationstate.cpp b/examples/widgets/animation/sub-attaq/qanimationstate.cpp index ce99f9080d..6da085561b 100644 --- a/examples/widgets/animation/sub-attaq/qanimationstate.cpp +++ b/examples/widgets/animation/sub-attaq/qanimationstate.cpp @@ -50,7 +50,7 @@ #include "qanimationstate.h" -#include +#include QT_BEGIN_NAMESPACE @@ -106,7 +106,7 @@ void QAnimationState::setAnimation(QAbstractAnimation *animation) return; //Disconnect from the previous animation if exist - if(m_animation) + if (m_animation) disconnect(m_animation, &QAbstractAnimation::finished, this, &QAnimationState::animationFinished); m_animation = animation; diff --git a/examples/widgets/animation/sub-attaq/qanimationstate.h b/examples/widgets/animation/sub-attaq/qanimationstate.h index 063b119058..24759851ba 100644 --- a/examples/widgets/animation/sub-attaq/qanimationstate.h +++ b/examples/widgets/animation/sub-attaq/qanimationstate.h @@ -51,13 +51,7 @@ #ifndef QANIMATIONSTATE_H #define QANIMATIONSTATE_H -#ifndef QT_STATEMACHINE_SOLUTION -# include -# include -#else -# include "qstate.h" -# include "qabstractanimation.h" -#endif +#include QT_BEGIN_NAMESPACE @@ -67,7 +61,7 @@ class QAnimationState : public QState { Q_OBJECT public: - QAnimationState(QState *parent = 0); + QAnimationState(QState *parent = nullptr); ~QAnimationState(); void setAnimation(QAbstractAnimation *animation); diff --git a/examples/widgets/animation/sub-attaq/states.cpp b/examples/widgets/animation/sub-attaq/states.cpp index cda10ccdaf..c7e2738aad 100644 --- a/examples/widgets/animation/sub-attaq/states.cpp +++ b/examples/widgets/animation/sub-attaq/states.cpp @@ -59,12 +59,12 @@ #include "textinformationitem.h" //Qt -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include PlayState::PlayState(GraphicsScene *scene, QState *parent) : QState(parent), scene(scene), machine(nullptr), @@ -146,7 +146,7 @@ void PlayState::onEntry(QEvent *) machine->setInitialState(levelState); //Final state - QFinalState *final = new QFinalState(machine); + QFinalState *finalState = new QFinalState(machine); //This transition is triggered when the player press space after completing a level CustomSpaceTransition *spaceTransition = new CustomSpaceTransition(scene->views().at(0), this, QEvent::KeyPress, Qt::Key_Space); @@ -154,7 +154,7 @@ void PlayState::onEntry(QEvent *) winState->addTransition(spaceTransition); //We lost we should reach the final state - lostState->addTransition(lostState, &QState::finished, final); + lostState->addTransition(lostState, &QState::finished, finalState); machine->start(); } @@ -181,11 +181,9 @@ void LevelState::initializeLevel() scene->progressItem->setScore(game->score); scene->progressItem->setLevel(game->currentLevel + 1); - GraphicsScene::LevelDescription currentLevelDescription = scene->levelsData.value(game->currentLevel); + const GraphicsScene::LevelDescription currentLevelDescription = scene->levelsData.value(game->currentLevel); + for (const QPair &subContent : currentLevelDescription.submarines) { - for (int i = 0; i < currentLevelDescription.submarines.size(); ++i ) { - - QPair subContent = currentLevelDescription.submarines.at(i); GraphicsScene::SubmarineDescription submarineDesc = scene->submarinesData.at(subContent.first); for (int j = 0; j < subContent.second; ++j ) { @@ -202,9 +200,10 @@ void LevelState::initializeLevel() } /** Pause State */ -PauseState::PauseState(GraphicsScene *scene, QState *parent) : QState(parent),scene(scene) +PauseState::PauseState(GraphicsScene *scene, QState *parent) : QState(parent), scene(scene) { } + void PauseState::onEntry(QEvent *) { AnimationManager::self()->pauseAll(); @@ -324,8 +323,7 @@ bool WinTransition::eventTest(QEvent *event) /** Space transition */ CustomSpaceTransition::CustomSpaceTransition(QWidget *widget, PlayState *game, QEvent::Type type, int key) - : QKeyEventTransition(widget, type, key), - game(game) + : QKeyEventTransition(widget, type, key), game(game) { } diff --git a/examples/widgets/animation/sub-attaq/states.h b/examples/widgets/animation/sub-attaq/states.h index cd68e319c2..b3651e1c82 100644 --- a/examples/widgets/animation/sub-attaq/states.h +++ b/examples/widgets/animation/sub-attaq/states.h @@ -52,15 +52,11 @@ #define STATES_H //Qt -#include -#include -#include -#include -#include +#include +#include +#include class GraphicsScene; -class Boat; -class SubMarine; QT_BEGIN_NAMESPACE class QStateMachine; QT_END_NAMESPACE @@ -68,7 +64,7 @@ QT_END_NAMESPACE class PlayState : public QState { public: - explicit PlayState(GraphicsScene *scene, QState *parent = 0); + explicit PlayState(GraphicsScene *scene, QState *parent = nullptr); ~PlayState(); protected: @@ -92,7 +88,7 @@ private : class LevelState : public QState { public: - LevelState(GraphicsScene *scene, PlayState *game, QState *parent = 0); + LevelState(GraphicsScene *scene, PlayState *game, QState *parent = nullptr); protected: void onEntry(QEvent *) override; private : @@ -104,7 +100,7 @@ private : class PauseState : public QState { public: - explicit PauseState(GraphicsScene *scene, QState *parent = 0); + explicit PauseState(GraphicsScene *scene, QState *parent = nullptr); protected: void onEntry(QEvent *) override; @@ -116,7 +112,7 @@ private : class LostState : public QState { public: - LostState(GraphicsScene *scene, PlayState *game, QState *parent = 0); + LostState(GraphicsScene *scene, PlayState *game, QState *parent = nullptr); protected: void onEntry(QEvent *) override; @@ -129,7 +125,7 @@ private : class WinState : public QState { public: - WinState(GraphicsScene *scene, PlayState *game, QState *parent = 0); + WinState(GraphicsScene *scene, PlayState *game, QState *parent = nullptr); protected: void onEntry(QEvent *) override; @@ -154,7 +150,7 @@ public: protected: bool eventTest(QEvent *event) override; private: - PlayState * game; + PlayState *game; GraphicsScene *scene; }; @@ -166,7 +162,7 @@ public: protected: bool eventTest(QEvent *event) override; private: - PlayState * game; + PlayState *game; GraphicsScene *scene; }; diff --git a/examples/widgets/animation/sub-attaq/submarine.cpp b/examples/widgets/animation/sub-attaq/submarine.cpp index 775e75ceed..a4ca376045 100644 --- a/examples/widgets/animation/sub-attaq/submarine.cpp +++ b/examples/widgets/animation/sub-attaq/submarine.cpp @@ -52,15 +52,14 @@ #include "submarine.h" #include "submarine_p.h" #include "torpedo.h" -#include "pixmapitem.h" #include "graphicsscene.h" #include "animationmanager.h" #include "qanimationstate.h" -#include -#include -#include -#include +#include +#include +#include +#include static QAbstractAnimation *setupDestroyAnimation(SubMarine *sub) { @@ -86,9 +85,8 @@ SubMarine::SubMarine(int type, const QString &name, int points) : PixmapItem(QSt graphicsRotation = new QGraphicsRotation(this); graphicsRotation->setAxis(Qt::YAxis); - graphicsRotation->setOrigin(QVector3D(size().width()/2, size().height()/2, 0)); - QList r; - r.append(graphicsRotation); + graphicsRotation->setOrigin(QVector3D(size().width() / 2, size().height() / 2, 0)); + QList r({graphicsRotation}); setTransformations(r); //We setup the state machine of the submarine @@ -112,7 +110,7 @@ SubMarine::SubMarine(int type, const QString &name, int points) : PixmapItem(QSt machine->setInitialState(moving); //End - QFinalState *final = new QFinalState(machine); + QFinalState *finalState = new QFinalState(machine); //If the moving animation is finished we move to the return state movement->addTransition(movement, &QAnimationState::animationFinished, rotation); @@ -128,7 +126,7 @@ SubMarine::SubMarine(int type, const QString &name, int points) : PixmapItem(QSt moving->addTransition(this, &SubMarine::subMarineDestroyed, destroyedState); //Transition to final state when the destroyed animation is finished - destroyedState->addTransition(destroyedState, &QAnimationState::animationFinished, final); + destroyedState->addTransition(destroyedState, &QAnimationState::animationFinished, finalState); //The machine has finished to be executed, then the submarine is dead connect(machine,&QState::finished,this, &SubMarine::subMarineExecutionFinished); @@ -145,9 +143,8 @@ void SubMarine::setCurrentDirection(SubMarine::Movement direction) { if (this->direction == direction) return; - if (direction == SubMarine::Right && this->direction == SubMarine::None) { + if (direction == SubMarine::Right && this->direction == SubMarine::None) graphicsRotation->setAngle(180); - } this->direction = direction; } @@ -158,9 +155,8 @@ enum SubMarine::Movement SubMarine::currentDirection() const void SubMarine::setCurrentSpeed(int speed) { - if (speed < 0 || speed > 3) { + if (speed < 0 || speed > 3) qWarning("SubMarine::setCurrentSpeed : The speed is invalid"); - } this->speed = speed; emit subMarineStateChanged(); } @@ -172,7 +168,7 @@ int SubMarine::currentSpeed() const void SubMarine::launchTorpedo(int speed) { - Torpedo * torp = new Torpedo(); + Torpedo *torp = new Torpedo; GraphicsScene *scene = static_cast(this->scene()); scene->addItem(torp); torp->setPos(pos()); diff --git a/examples/widgets/animation/sub-attaq/submarine.h b/examples/widgets/animation/sub-attaq/submarine.h index d145c9cbee..256683ec70 100644 --- a/examples/widgets/animation/sub-attaq/submarine.h +++ b/examples/widgets/animation/sub-attaq/submarine.h @@ -48,15 +48,12 @@ ** ****************************************************************************/ -#ifndef __SUBMARINE__H__ -#define __SUBMARINE__H__ - -//Qt -#include +#ifndef SUBMARINE_H +#define SUBMARINE_H #include "pixmapitem.h" -class Torpedo; +#include class SubMarine : public PixmapItem { @@ -99,4 +96,4 @@ private: QGraphicsRotation *graphicsRotation; }; -#endif //__SUBMARINE__H__ +#endif // SUBMARINE_H diff --git a/examples/widgets/animation/sub-attaq/submarine_p.h b/examples/widgets/animation/sub-attaq/submarine_p.h index 1c2cb7ceac..36807dade3 100644 --- a/examples/widgets/animation/sub-attaq/submarine_p.h +++ b/examples/widgets/animation/sub-attaq/submarine_p.h @@ -68,16 +68,15 @@ #include "qanimationstate.h" //Qt -#include -#include -#include +#include +#include //This state is describing when the boat is moving right class MovementState : public QAnimationState { Q_OBJECT public: - explicit MovementState(SubMarine *submarine, QState *parent = 0) : QAnimationState(parent) + explicit MovementState(SubMarine *submarine, QState *parent = nullptr) : QAnimationState(parent) { movementAnimation = new QPropertyAnimation(submarine, "pos"); connect(movementAnimation, &QPropertyAnimation::valueChanged, @@ -117,7 +116,7 @@ private: class ReturnState : public QAnimationState { public: - explicit ReturnState(SubMarine *submarine, QState *parent = 0) : QAnimationState(parent) + explicit ReturnState(SubMarine *submarine, QState *parent = nullptr) : QAnimationState(parent) { returnAnimation = new QPropertyAnimation(submarine->rotation(), "angle"); returnAnimation->setDuration(500); diff --git a/examples/widgets/animation/sub-attaq/textinformationitem.cpp b/examples/widgets/animation/sub-attaq/textinformationitem.cpp index 16f787125d..4d4934f63d 100644 --- a/examples/widgets/animation/sub-attaq/textinformationitem.cpp +++ b/examples/widgets/animation/sub-attaq/textinformationitem.cpp @@ -50,14 +50,15 @@ #include "textinformationitem.h" #include "pixmapitem.h" -TextInformationItem::TextInformationItem (QGraphicsItem * parent) +TextInformationItem::TextInformationItem (QGraphicsItem *parent) : QGraphicsTextItem(parent) { setFont(QFont("Comic Sans MS", 15)); } -#include -void TextInformationItem::setMessage(const QString& text) + +void TextInformationItem::setMessage(const QString &text) { setHtml(text); - setPos(parentItem()->boundingRect().center().x() - boundingRect().size().width()/2 , parentItem()->boundingRect().center().y()); + setPos(parentItem()->boundingRect().center().x() - boundingRect().size().width() / 2, + parentItem()->boundingRect().center().y()); } diff --git a/examples/widgets/animation/sub-attaq/textinformationitem.h b/examples/widgets/animation/sub-attaq/textinformationitem.h index aa6f913e48..0a0b618460 100644 --- a/examples/widgets/animation/sub-attaq/textinformationitem.h +++ b/examples/widgets/animation/sub-attaq/textinformationitem.h @@ -52,13 +52,13 @@ #define TEXTINFORMATIONITEM_H //Qt -#include +#include class TextInformationItem : public QGraphicsTextItem { public: - TextInformationItem(QGraphicsItem * parent = 0); - void setMessage(const QString& text); + TextInformationItem(QGraphicsItem *parent = nullptr); + void setMessage(const QString &text); }; #endif // TEXTINFORMATIONITEM_H diff --git a/examples/widgets/animation/sub-attaq/torpedo.cpp b/examples/widgets/animation/sub-attaq/torpedo.cpp index 92a3833452..7395aa39ac 100644 --- a/examples/widgets/animation/sub-attaq/torpedo.cpp +++ b/examples/widgets/animation/sub-attaq/torpedo.cpp @@ -50,15 +50,14 @@ //Own #include "torpedo.h" -#include "pixmapitem.h" #include "boat.h" #include "graphicsscene.h" #include "animationmanager.h" #include "qanimationstate.h" -#include -#include -#include +#include +#include +#include Torpedo::Torpedo() : PixmapItem(QString::fromLatin1("torpedo"),GraphicsScene::Big), currentSpeed(0) @@ -70,11 +69,11 @@ void Torpedo::launch() { QPropertyAnimation *launchAnimation = new QPropertyAnimation(this, "pos"); AnimationManager::self()->registerAnimation(launchAnimation); - launchAnimation->setEndValue(QPointF(x(),qobject_cast(scene())->sealLevel() - 15)); + launchAnimation->setEndValue(QPointF(x(), qobject_cast(scene())->sealLevel() - 15)); launchAnimation->setEasingCurve(QEasingCurve::InQuad); - launchAnimation->setDuration(y()/currentSpeed*10); - connect(launchAnimation,&QVariantAnimation::valueChanged,this,&Torpedo::onAnimationLaunchValueChanged); - connect(this,&Torpedo::torpedoExploded, launchAnimation, &QAbstractAnimation::stop); + launchAnimation->setDuration(y() / currentSpeed * 10); + connect(launchAnimation, &QVariantAnimation::valueChanged, this, &Torpedo::onAnimationLaunchValueChanged); + connect(this, &Torpedo::torpedoExploded, launchAnimation, &QAbstractAnimation::stop); //We setup the state machine of the torpedo QStateMachine *machine = new QStateMachine(this); @@ -84,18 +83,18 @@ void Torpedo::launch() launched->setAnimation(launchAnimation); //End - QFinalState *final = new QFinalState(machine); + QFinalState *finalState = new QFinalState(machine); machine->setInitialState(launched); //### Add a nice animation when the torpedo is destroyed - launched->addTransition(this, &Torpedo::torpedoExploded,final); + launched->addTransition(this, &Torpedo::torpedoExploded, finalState); //If the animation is finished, then we move to the final state - launched->addTransition(launched, &QAnimationState::animationFinished, final); + launched->addTransition(launched, &QAnimationState::animationFinished, finalState); //The machine has finished to be executed, then the boat is dead - connect(machine,&QState::finished,this, &Torpedo::torpedoExecutionFinished); + connect(machine, &QState::finished, this, &Torpedo::torpedoExecutionFinished); machine->start(); } diff --git a/examples/widgets/animation/sub-attaq/torpedo.h b/examples/widgets/animation/sub-attaq/torpedo.h index bd04bd79aa..7ac853d4e9 100644 --- a/examples/widgets/animation/sub-attaq/torpedo.h +++ b/examples/widgets/animation/sub-attaq/torpedo.h @@ -48,8 +48,8 @@ ** ****************************************************************************/ -#ifndef __TORPEDO__H__ -#define __TORPEDO__H__ +#ifndef TORPEDO_H +#define TORPEDO_H #include "pixmapitem.h" @@ -73,4 +73,4 @@ private: int currentSpeed; }; -#endif //__TORPEDO__H__ +#endif // TORPEDO_H -- cgit v1.2.3 From 5789ece6d064164efbfcce68a0f7fcc2ff24190c Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Fri, 21 Jun 2019 00:14:22 +0900 Subject: Add pkg-config library source to bcm_host MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Buildroot(buildroot.org) provides bcm_host.pc for Raspberry Pi Change-Id: Ia8b13ded4d48aac53693f5041e7ef5303513f5e9 Reviewed-by: Ulf Hermann Reviewed-by: Jörg Bornemann --- src/gui/configure.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/gui/configure.json b/src/gui/configure.json index 5aac1f221a..81b6ebbb84 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -61,6 +61,7 @@ "export": "", "headers": ["bcm_host.h"], "sources": [ + { "type": "pkgConfig", "args": "bcm_host" }, { "type": "makeSpec", "spec": "BCM_HOST" } ] }, -- cgit v1.2.3 From 82a2c7df3023e68f152e522dacdcbb076cdde701 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 14 Aug 2019 17:06:20 +0200 Subject: CMake: Fix detection of debug_and_release for iOS simulator_and_device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit create_cmake.prf populates the values of CMAKE_RELEASE_TYPE and CMAKE_DEBUG_TYPE depending on if Qt was configured with debug, or release, or the build_all feature was set (which implies debug_and_release). simulator_and_device also implies build_all. This is a problem when configuring a Qt simulator_and_device build with only a "debug" configuration, or only a "release" configuration. In that case we would try to parse prl files for both configurations, even though only one configuration exists. Switch to checking for debug_and_release scope explicitly instead of build_all. This allows configuring and building a Qt iOS device_and_simulator debug configuration which is usable from CMake. Task-number: QTBUG-38913 Change-Id: Ife6d5d34d2b6bb1ac787d901a166e41c6e0c844b Reviewed-by: Jörg Bornemann --- mkspecs/features/create_cmake.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index e88d6175a4..65c637244b 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -138,8 +138,8 @@ CMAKE_RELEASE_TYPE = # the debug libraries at build time. equals(QMAKE_HOST.os, Windows): CMAKE_BIN_SUFFIX = ".exe" -if(build_all|CONFIG(debug, debug|release)): CMAKE_DEBUG_TYPE = debug -if(build_all|CONFIG(release, debug|release)): CMAKE_RELEASE_TYPE = release +debug_and_release|CONFIG(debug, debug|release): CMAKE_DEBUG_TYPE = debug +debug_and_release|CONFIG(release, debug|release): CMAKE_RELEASE_TYPE = release # CMAKE_DEBUG_AND_RELEASE is used to tell the _populate_$${CMAKE_MODULE_NAME}_target_properties # functions whether a Configuration specific generator expression needs to be added to the values -- cgit v1.2.3 From 60599486e81853138b2eb6210e875c214085c377 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 6 Aug 2019 16:47:10 +0200 Subject: rhi: metal: Avoid flicker due to writing an in-use Managed buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Qt Quick apps feature an occasional flicker which seems to be caused by updating the contents of a Static (or Immutable) QRhiBuffer in a frame where the QRhiBuffer in question is read in the previous frame as well. On macOS these types map to a Managed MTLBuffer and only one native buffer object (MTLBuffer). It seems modifying such a buffer is not safe if the previous frame has not completed. (this may be as expected, but hard to tell due to Metal's underdocumented automatic hazard tracking which we rely on atm) So for now switch to having 2 native buffers, like we do for Dynamic (on iOS/tvOS this would be the case anyway since there all buffers are host visible and slotted regardless of the QRhiBuffer type). This seems to solve the issue. To be seen if we want to move to a more Vulkan-like setup where Immutable and Static map to device local (Private). Change-Id: I76013f58a2e183ad8eab0705b28a03b395c4530c Reviewed-by: Christian Strømme --- src/gui/rhi/qrhimetal.mm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm index ffb2283ae7..b7cc1da3fe 100644 --- a/src/gui/rhi/qrhimetal.mm +++ b/src/gui/rhi/qrhimetal.mm @@ -1986,9 +1986,11 @@ bool QMetalBuffer::build() } #endif - // Immutable and Static only has buf[0] and pendingUpdates[0] in use. - // Dynamic uses all. - d->slotted = m_type == Dynamic; + // Have QMTL_FRAMES_IN_FLIGHT versions regardless of the type, for now. + // This is because writing to a Managed buffer (which is what Immutable and + // Static maps to on macOS) is not safe when another frame reading from the + // same buffer is still in flight. + d->slotted = !m_usage.testFlag(QRhiBuffer::StorageBuffer); // except for SSBOs written in the shader QRHI_RES_RHI(QRhiMetal); for (int i = 0; i < QMTL_FRAMES_IN_FLIGHT; ++i) { -- cgit v1.2.3 From 1ae39cc72b7840b383aabbb5fd89fcfa3483d68c Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 12 Aug 2019 16:15:40 +0200 Subject: rhi: d3d11: Rework swapchain effect handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use FLIP_DISCARD swapchains only on Win10, stick with DISCARD otherwise. This may fix the swapchain creation problems on Windows 7. Add a QT_D3D_NO_FLIP env.var. to make it possible to disable using FLIP_DISCARD even on Win10. This is there for troubleshooting purposes. Finally, fix the backbuffer handling. What we originally ported from the D3D12 backend of Qt Quick is not quite how DXGI used to work with D3D11 and earlier. GetBuffer() can only be used to query index 0, and that's the backbuffer, the rest is managed internally. Follow this model. As an added bonus, disable Alt+Enter. Change-Id: Ie5c7a1e813864e7f873d55bc72cb22fc09213a05 Reviewed-by: Friedemann Kleint Reviewed-by: André de la Rocha Reviewed-by: Christian Strømme --- src/gui/rhi/qrhid3d11.cpp | 113 ++++++++++++++++++++++++++++---------------- src/gui/rhi/qrhid3d11_p_p.h | 5 +- 2 files changed, 75 insertions(+), 43 deletions(-) diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp index c0b13f1cc8..ddcc5179d2 100644 --- a/src/gui/rhi/qrhid3d11.cpp +++ b/src/gui/rhi/qrhid3d11.cpp @@ -196,14 +196,22 @@ bool QRhiD3D11::create(QRhi::Flags flags) devFlags |= D3D11_CREATE_DEVICE_DEBUG; dxgiFactory = createDXGIFactory2(); - if (dxgiFactory != nullptr) + if (dxgiFactory != nullptr) { hasDxgi2 = true; - else + supportsFlipDiscardSwapchain = QOperatingSystemVersion::current() >= QOperatingSystemVersion::Windows10 + && !qEnvironmentVariableIntValue("QT_D3D_NO_FLIP"); + } else { dxgiFactory = createDXGIFactory1(); + hasDxgi2 = false; + supportsFlipDiscardSwapchain = false; + } if (dxgiFactory == nullptr) return false; + qCDebug(QRHI_LOG_INFO, "DXGI 1.2 = %s, FLIP_DISCARD swapchain supported = %s", + hasDxgi2 ? "true" : "false", supportsFlipDiscardSwapchain ? "true" : "false"); + if (!importedDevice) { IDXGIAdapter1 *adapterToUse = nullptr; IDXGIAdapter1 *adapter; @@ -916,7 +924,7 @@ QRhi::FrameOpResult QRhiD3D11::beginFrame(QRhiSwapChain *swapChain, QRhi::BeginF swapChainD->cb.resetState(); swapChainD->rt.d.rtv[0] = swapChainD->sampleDesc.Count > 1 ? - swapChainD->msaaRtv[currentFrameSlot] : swapChainD->rtv[currentFrameSlot]; + swapChainD->msaaRtv[currentFrameSlot] : swapChainD->backBufferRtv; swapChainD->rt.d.dsv = swapChainD->ds ? swapChainD->ds->dsv : nullptr; QRHI_PROF_F(beginSwapChainFrame(swapChain)); @@ -945,7 +953,7 @@ QRhi::FrameOpResult QRhiD3D11::endFrame(QRhiSwapChain *swapChain, QRhi::EndFrame executeCommandBuffer(&swapChainD->cb); if (swapChainD->sampleDesc.Count > 1) { - context->ResolveSubresource(swapChainD->tex[currentFrameSlot], 0, + context->ResolveSubresource(swapChainD->backBufferTex, 0, swapChainD->msaaTex[currentFrameSlot], 0, swapChainD->colorFormat); } @@ -1329,14 +1337,14 @@ void QRhiD3D11::enqueueResourceUpdates(QRhiCommandBuffer *cb, QRhiResourceUpdate // has to be supported. Insert a resolve. QD3D11CommandBuffer::Command rcmd; rcmd.cmd = QD3D11CommandBuffer::Command::ResolveSubRes; - rcmd.args.resolveSubRes.dst = swapChainD->tex[swapChainD->currentFrameSlot]; + rcmd.args.resolveSubRes.dst = swapChainD->backBufferTex; rcmd.args.resolveSubRes.dstSubRes = 0; rcmd.args.resolveSubRes.src = swapChainD->msaaTex[swapChainD->currentFrameSlot]; rcmd.args.resolveSubRes.srcSubRes = 0; rcmd.args.resolveSubRes.format = swapChainD->colorFormat; cbD->commands.append(rcmd); } - src = swapChainD->tex[swapChainD->currentFrameSlot]; + src = swapChainD->backBufferTex; dxgiFormat = swapChainD->colorFormat; pixelSize = swapChainD->pixelSize; format = colorTextureFormatFromDxgiFormat(dxgiFormat, nullptr); @@ -3528,9 +3536,9 @@ QD3D11SwapChain::QD3D11SwapChain(QRhiImplementation *rhi) rt(rhi), cb(rhi) { + backBufferTex = nullptr; + backBufferRtv = nullptr; for (int i = 0; i < BUFFER_COUNT; ++i) { - tex[i] = nullptr; - rtv[i] = nullptr; msaaTex[i] = nullptr; msaaRtv[i] = nullptr; timestampActive[i] = false; @@ -3547,15 +3555,15 @@ QD3D11SwapChain::~QD3D11SwapChain() void QD3D11SwapChain::releaseBuffers() { + if (backBufferRtv) { + backBufferRtv->Release(); + backBufferRtv = nullptr; + } + if (backBufferTex) { + backBufferTex->Release(); + backBufferTex = nullptr; + } for (int i = 0; i < BUFFER_COUNT; ++i) { - if (rtv[i]) { - rtv[i]->Release(); - rtv[i] = nullptr; - } - if (tex[i]) { - tex[i]->Release(); - tex[i] = nullptr; - } if (msaaRtv[i]) { msaaRtv[i]->Release(); msaaRtv[i] = nullptr; @@ -3681,18 +3689,19 @@ bool QD3D11SwapChain::buildOrResize() const UINT swapChainFlags = 0; QRHI_RES_RHI(QRhiD3D11); + const bool useFlipDiscard = rhiD->hasDxgi2 && rhiD->supportsFlipDiscardSwapchain; if (!swapChain) { HWND hwnd = reinterpret_cast(window->winId()); sampleDesc = rhiD->effectiveSampleCount(m_sampleCount); - // We use FLIP_DISCARD which implies a buffer count of 2 (as opposed to the - // old DISCARD with back buffer count == 1). This makes no difference for - // the rest of the stuff except that automatic MSAA is unsupported and - // needs to be implemented via a custom multisample render target and an - // explicit resolve. - HRESULT hr; - if (rhiD->hasDxgi2) { + if (useFlipDiscard) { + // We use FLIP_DISCARD which implies a buffer count of 2 (as opposed to the + // old DISCARD with back buffer count == 1). This makes no difference for + // the rest of the stuff except that automatic MSAA is unsupported and + // needs to be implemented via a custom multisample render target and an + // explicit resolve. + DXGI_SWAP_CHAIN_DESC1 desc; memset(&desc, 0, sizeof(desc)); desc.Width = pixelSize.width(); @@ -3715,7 +3724,10 @@ bool QD3D11SwapChain::buildOrResize() if (SUCCEEDED(hr)) swapChain = sc1; } else { - // Windows 7 + // Windows 7 for instance. Use DISCARD mode. Regardless, keep on + // using our manual resolve for symmetry with the FLIP_DISCARD code + // path when MSAA is requested. + DXGI_SWAP_CHAIN_DESC desc; memset(&desc, 0, sizeof(desc)); desc.BufferDesc.Width = pixelSize.width(); @@ -3725,10 +3737,10 @@ bool QD3D11SwapChain::buildOrResize() desc.BufferDesc.Format = colorFormat; desc.SampleDesc.Count = 1; desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - desc.BufferCount = BUFFER_COUNT; + desc.BufferCount = 1; desc.OutputWindow = hwnd; desc.Windowed = true; - desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; + desc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; desc.Flags = swapChainFlags; hr = rhiD->dxgiFactory->CreateSwapChain(rhiD->dev, &desc, &swapChain); @@ -3737,30 +3749,49 @@ bool QD3D11SwapChain::buildOrResize() qWarning("Failed to create D3D11 swapchain: %s", qPrintable(comErrorMessage(hr))); return false; } + rhiD->dxgiFactory->MakeWindowAssociation(hwnd, DXGI_MWA_NO_ALT_ENTER); } else { releaseBuffers(); - HRESULT hr = swapChain->ResizeBuffers(2, pixelSize.width(), pixelSize.height(), colorFormat, swapChainFlags); + const UINT count = useFlipDiscard ? BUFFER_COUNT : 1; + HRESULT hr = swapChain->ResizeBuffers(count, pixelSize.width(), pixelSize.height(), + colorFormat, swapChainFlags); if (FAILED(hr)) { qWarning("Failed to resize D3D11 swapchain: %s", qPrintable(comErrorMessage(hr))); return false; } } + // This looks odd (for FLIP_DISCARD, esp. compared with backends for Vulkan + // & co.) but the backbuffer is always at index 0, with magic underneath. + // Some explanation from + // https://docs.microsoft.com/en-us/windows/win32/direct3ddxgi/dxgi-1-4-improvements + // + // "In Direct3D 11, applications could call GetBuffer( 0, … ) only once. + // Every call to Present implicitly changed the resource identity of the + // returned interface. Direct3D 12 no longer supports that implicit + // resource identity change, due to the CPU overhead required and the + // flexible resource descriptor design. As a result, the application must + // manually call GetBuffer for every each buffer created with the + // swapchain." + + // So just query index 0 once (per resize) and be done with it. + HRESULT hr = swapChain->GetBuffer(0, IID_ID3D11Texture2D, reinterpret_cast(&backBufferTex)); + if (FAILED(hr)) { + qWarning("Failed to query swapchain backbuffer: %s", qPrintable(comErrorMessage(hr))); + return false; + } + D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; + memset(&rtvDesc, 0, sizeof(rtvDesc)); + rtvDesc.Format = srgbAdjustedFormat; + rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; + hr = rhiD->dev->CreateRenderTargetView(backBufferTex, &rtvDesc, &backBufferRtv); + if (FAILED(hr)) { + qWarning("Failed to create rtv for swapchain backbuffer: %s", qPrintable(comErrorMessage(hr))); + return false; + } + + // Try to reduce stalls by having a dedicated MSAA texture per swapchain buffer. for (int i = 0; i < BUFFER_COUNT; ++i) { - HRESULT hr = swapChain->GetBuffer(0, IID_ID3D11Texture2D, reinterpret_cast(&tex[i])); - if (FAILED(hr)) { - qWarning("Failed to query swapchain buffer %d: %s", i, qPrintable(comErrorMessage(hr))); - return false; - } - D3D11_RENDER_TARGET_VIEW_DESC rtvDesc; - memset(&rtvDesc, 0, sizeof(rtvDesc)); - rtvDesc.Format = srgbAdjustedFormat; - rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - hr = rhiD->dev->CreateRenderTargetView(tex[i], &rtvDesc, &rtv[i]); - if (FAILED(hr)) { - qWarning("Failed to create rtv for swapchain buffer %d: %s", i, qPrintable(comErrorMessage(hr))); - return false; - } if (sampleDesc.Count > 1) { if (!newColorBuffer(pixelSize, srgbAdjustedFormat, sampleDesc, &msaaTex[i], &msaaRtv[i])) return false; diff --git a/src/gui/rhi/qrhid3d11_p_p.h b/src/gui/rhi/qrhid3d11_p_p.h index 34c9ff70f8..3ceb055b27 100644 --- a/src/gui/rhi/qrhid3d11_p_p.h +++ b/src/gui/rhi/qrhid3d11_p_p.h @@ -523,8 +523,8 @@ struct QD3D11SwapChain : public QRhiSwapChain DXGI_FORMAT colorFormat; IDXGISwapChain *swapChain = nullptr; static const int BUFFER_COUNT = 2; - ID3D11Texture2D *tex[BUFFER_COUNT]; - ID3D11RenderTargetView *rtv[BUFFER_COUNT]; + ID3D11Texture2D *backBufferTex; + ID3D11RenderTargetView *backBufferRtv; ID3D11Texture2D *msaaTex[BUFFER_COUNT]; ID3D11RenderTargetView *msaaRtv[BUFFER_COUNT]; DXGI_SAMPLE_DESC sampleDesc; @@ -656,6 +656,7 @@ public: ID3DUserDefinedAnnotation *annotations = nullptr; IDXGIFactory1 *dxgiFactory = nullptr; bool hasDxgi2 = false; + bool supportsFlipDiscardSwapchain = false; QRhiD3D11NativeHandles nativeHandlesStruct; struct { -- cgit v1.2.3 From 99749d3b05326f139656e1393cbb227e967b4c54 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Thu, 11 Jul 2019 03:26:41 +0900 Subject: Fix build without features.poll_{ppoll,pollts,poll,select} Change-Id: Idc87521cdf713682ed07eb28b3d3f2f3ca0675ce Reviewed-by: Edward Welbourne Reviewed-by: Volker Hilsheimer --- mkspecs/features/qt_configure.prf | 7 +++++-- src/corelib/configure.json | 11 +++++++++++ src/corelib/kernel/qcore_unix.cpp | 4 +++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 2ac9de266f..2b86caebd0 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -1905,8 +1905,11 @@ defineTest(qtConfCreateReportRecurse) { entry = $${1}.$$n subKeys = $$eval($${entry}._KEYS_) contains(subKeys, condition) { - condition = $$eval($${entry}.condition) - r = $$qtConfEvaluate($$condition) + r = true + for (condition, $$qtConfScalarOrList($${entry}.condition)) { + r = $$qtConfEvaluate($$condition) + !$$r: break() + } !qtConfIsBoolean($$r): \ error("Evaluation of condition '$$condition' in report entry $${entry} yielded non-boolean value '$$r'.") !$$r: next() diff --git a/src/corelib/configure.json b/src/corelib/configure.json index b2f032a667..ac6396de00 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -1116,6 +1116,17 @@ You need to use libdouble-conversion for double/string conversion." "message": "detected a std::atomic implementation that fails for function pointers. Please apply the patch corresponding to your Standard Library vendor, found in qtbase/config.tests/atomicfptr" + }, + { + "type": "error", + "condition": [ + "config.unix || config.integrity", + "!features.poll_ppoll", + "!features.poll_pollts", + "!features.poll_poll", + "!features.poll_select" + ], + "message": "Qt requires poll(), ppoll(), poll_ts() or select() on this platform" } ], diff --git a/src/corelib/kernel/qcore_unix.cpp b/src/corelib/kernel/qcore_unix.cpp index 18c031f137..ff0c957770 100644 --- a/src/corelib/kernel/qcore_unix.cpp +++ b/src/corelib/kernel/qcore_unix.cpp @@ -132,8 +132,10 @@ static inline int qt_ppoll(struct pollfd *fds, nfds_t nfds, const struct timespe return ::ppoll(fds, nfds, timeout_ts, nullptr); #elif QT_CONFIG(poll_poll) return ::poll(fds, nfds, timespecToMillisecs(timeout_ts)); -#else +#elif QT_CONFIG(poll_select) return qt_poll(fds, nfds, timeout_ts); +#else + // configure.json reports an error when everything is not available #endif } -- cgit v1.2.3 From c00487d588f9ae45d8a477a1c436fde69feca782 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Fri, 5 Jul 2019 07:52:08 +0900 Subject: Fix build without features.dlopen Change-Id: I4ad24c241d3c32a5658bf71fa6133181793020d3 Reviewed-by: Volker Hilsheimer --- src/3rdparty/sqlite.pri | 6 +++++- src/gui/configure.json | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/3rdparty/sqlite.pri b/src/3rdparty/sqlite.pri index 6405beb3d0..cc8c12a6da 100644 --- a/src/3rdparty/sqlite.pri +++ b/src/3rdparty/sqlite.pri @@ -9,7 +9,11 @@ winrt { } qnx: DEFINES += _QNX_SOURCE !win32:!winrt:!winphone: DEFINES += HAVE_USLEEP=1 -qtConfig(dlopen): QMAKE_USE += libdl +qtConfig(dlopen) { + QMAKE_USE += libdl +} else { + DEFINES += SQLITE_OMIT_LOAD_EXTENSION +} integrity: QMAKE_CFLAGS += -include qplatformdefs.h INCLUDEPATH += $$PWD/sqlite SOURCES += $$PWD/sqlite/sqlite3.c diff --git a/src/gui/configure.json b/src/gui/configure.json index 81b6ebbb84..c2793bf236 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -1,7 +1,7 @@ { "module": "gui", "depends": [ - "core", + "core-private", "network" ], "testDir": "../../config.tests", @@ -1375,7 +1375,7 @@ }, "egl": { "label": "EGL", - "condition": "(features.opengl || features.openvg) && (features.angle || libs.egl)", + "condition": "(features.opengl || features.openvg) && (features.angle || libs.egl) && (features.dlopen || !config.unix)", "output": [ "privateFeature", "feature" ] }, "egl_x11": { -- cgit v1.2.3 From 77160d29234fe9ea570a515f32f53f864c947e4d Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Thu, 15 Aug 2019 07:37:06 +0300 Subject: Android: Fix env vars parsing env var values might contain '=' char, so we can't use split. Change-Id: Iedf3ea46a847acaaf02f51bc80586a519fe7a310 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/plugins/platforms/android/androidjnimain.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index 70dde46ffa..915f7f0f5b 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -454,9 +454,9 @@ static jboolean startQtAndroidPlugin(JNIEnv *env, jobject /*object*/, jstring pa const QList envVars = QByteArray(nativeString).split('\t'); env->ReleaseStringUTFChars(environmentString, nativeString); for (const QByteArray &envVar : envVars) { - const QList envVarPair = envVar.split('='); - if (envVarPair.size() == 2 && ::setenv(envVarPair[0], envVarPair[1], 1) != 0) - qWarning() << "Can't set environment" << envVarPair; + int pos = envVar.indexOf('='); + if (pos != -1 && ::setenv(envVar.left(pos), envVar.mid(pos + 1), 1) != 0) + qWarning() << "Can't set environment" << envVar; } } -- cgit v1.2.3 From e9eddfd85628f0ec672895652c67443caa160b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Fri, 16 Aug 2019 15:49:42 +0200 Subject: Fix rare double-free in QObject machinery As exposed by tst_QObjectRace::destroyRace we would sometimes end up with a double-free when destroying a QSlotObject in multi-threaded scenarios. One free would be done in ~QObject as the receiver was being destroyed while the other free was done when deleting a QMetaCallEvent object after we realized it was not needed because the receiver was destroyed. Since we can be in a separate thread from the receiver we should lock before referencing the connection object. Amends b7d073e9905bf9812ba96cecdcf6871a95517d30. Change-Id: Icb53862dc880ae9a4e5581a1a9ee693573f7d9c7 Reviewed-by: Volker Hilsheimer --- src/corelib/kernel/qobject.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 82fe546715..4a26e9cdc0 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -3728,6 +3728,15 @@ static void queued_activate(QObject *sender, int signal, QObjectPrivate::Connect while (argumentTypes[nargs-1]) ++nargs; + QBasicMutexLocker locker(signalSlotLock(c->receiver.loadRelaxed())); + if (!c->receiver.loadRelaxed()) { + // the connection has been disconnected before we got the lock + return; + } + if (c->isSlotObject) + c->slotObj->ref(); + locker.unlock(); + QMetaCallEvent *ev = c->isSlotObject ? new QMetaCallEvent(c->slotObj, sender, signal, nargs) : new QMetaCallEvent(c->method_offset, c->method_relative, c->callFunction, sender, signal, nargs); @@ -3746,9 +3755,11 @@ static void queued_activate(QObject *sender, int signal, QObjectPrivate::Connect args[n] = QMetaType::create(types[n], argv[n]); } - QBasicMutexLocker locker(signalSlotLock(c->receiver.loadRelaxed())); + locker.relock(); + if (c->isSlotObject) + c->slotObj->destroyIfLastRef(); if (!c->receiver.loadRelaxed()) { - // the connection has been disconnected before we got the lock + // the connection has been disconnected while we were unlocked locker.unlock(); delete ev; return; -- cgit v1.2.3 From 2e0b0be2ce30394269559590b42c81de27301ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 14 Aug 2019 12:39:27 +0200 Subject: Get rid of QWidgetBackingStoreTracker It was added for Symbian almost 10 years ago (d7057e7c1f1a), for a somewhat dubious use-case. The Symbian code is since long gone (ae30d7141), so the remaining pieces are just adding complexity to the already intricate workings of the QtWidgets backingstore/painting logic. Task-number: QTBUG-8697 Change-Id: I82af610a8ac26719c588ac63f06b4501f59b400d Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 105 ++-------------------- src/widgets/kernel/qwidget_p.h | 48 +--------- src/widgets/kernel/qwidgetbackingstore.cpp | 10 +-- src/widgets/kernel/qwidgetwindow.cpp | 2 +- tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 9 +- 5 files changed, 18 insertions(+), 156 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index ba9b2a0487..066dfaa183 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -146,91 +146,6 @@ static inline bool qRectIntersects(const QRect &r1, const QRect &r2) extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); // qapplication.cpp extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp -/*! - \internal - \class QWidgetBackingStoreTracker - \brief Class which allows tracking of which widgets are using a given backing store - - QWidgetBackingStoreTracker is a thin wrapper around a QWidgetBackingStore pointer, - which maintains a list of the QWidgets which are currently using the backing - store. This list is modified via the registerWidget and unregisterWidget functions. - */ - -QWidgetBackingStoreTracker::QWidgetBackingStoreTracker() - : m_ptr(0) -{ - -} - -QWidgetBackingStoreTracker::~QWidgetBackingStoreTracker() -{ - delete m_ptr; -} - -/*! - \internal - Destroy the contained QWidgetBackingStore, if not null, and clear the list of - widgets using the backing store, then create a new QWidgetBackingStore, providing - the QWidget. - */ -void QWidgetBackingStoreTracker::create(QWidget *widget) -{ - destroy(); - m_ptr = new QWidgetBackingStore(widget); -} - -/*! - \internal - Destroy the contained QWidgetBackingStore, if not null, and clear the list of - widgets using the backing store. - */ -void QWidgetBackingStoreTracker::destroy() -{ - delete m_ptr; - m_ptr = 0; - m_widgets.clear(); -} - -/*! - \internal - Add the widget to the list of widgets currently using the backing store. - If the widget was already in the list, this function is a no-op. - */ -void QWidgetBackingStoreTracker::registerWidget(QWidget *w) -{ - Q_ASSERT(m_ptr); - Q_ASSERT(w->internalWinId()); - Q_ASSERT(qt_widget_private(w)->maybeBackingStore() == m_ptr); - m_widgets.insert(w); -} - -/*! - \internal - Remove the widget from the list of widgets currently using the backing store. - If the widget was in the list, and removing it causes the list to be empty, - the backing store is deleted. - If the widget was not in the list, this function is a no-op. - */ -void QWidgetBackingStoreTracker::unregisterWidget(QWidget *w) -{ - if (m_widgets.remove(w) && m_widgets.isEmpty()) { - delete m_ptr; - m_ptr = 0; - } -} - -/*! - \internal - Recursively remove widget and all of its descendents. - */ -void QWidgetBackingStoreTracker::unregisterWidgetSubtree(QWidget *widget) -{ - unregisterWidget(widget); - foreach (QObject *child, widget->children()) - if (QWidget *childWidget = qobject_cast(child)) - unregisterWidgetSubtree(childWidget); -} - QWidgetPrivate::QWidgetPrivate(int version) : QObjectPrivate(version) , extra(0) @@ -1364,10 +1279,8 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) d->create(); // a real toplevel window needs a backing store - if (isWindow() && windowType() != Qt::Desktop) { - d->topData()->backingStoreTracker.destroy(); - d->topData()->backingStoreTracker.create(this); - } + if (isWindow() && windowType() != Qt::Desktop) + d->topData()->widgetBackingStore.reset(new QWidgetBackingStore(this)); d->setModal_sys(); @@ -1891,7 +1804,7 @@ void QWidgetPrivate::deleteTLSysExtra() //the qplatformbackingstore may hold a reference to the window, so the backingstore //needs to be deleted first. - extra->topextra->backingStoreTracker.destroy(); + extra->topextra->widgetBackingStore.reset(nullptr); deleteBackingStore(this); #ifndef QT_NO_OPENGL extra->topextra->widgetTextures.clear(); @@ -10755,16 +10668,8 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) if (newParent && isAncestorOf(focusWidget())) focusWidget()->clearFocus(); - QTLWExtra *oldTopExtra = window()->d_func()->maybeTopData(); - QWidgetBackingStoreTracker *oldBsTracker = oldTopExtra ? &oldTopExtra->backingStoreTracker : 0; - d->setParent_sys(parent, f); - QTLWExtra *topExtra = window()->d_func()->maybeTopData(); - QWidgetBackingStoreTracker *bsTracker = topExtra ? &topExtra->backingStoreTracker : 0; - if (oldBsTracker && oldBsTracker != bsTracker) - oldBsTracker->unregisterWidgetSubtree(this); - if (desktopWidget) parent = 0; @@ -11134,7 +11039,7 @@ void QWidgetPrivate::repaint(T r) QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->backingStoreTracker->markDirty(r, q, QWidgetBackingStore::UpdateNow); + tlwExtra->widgetBackingStore->markDirty(r, q, QWidgetBackingStore::UpdateNow); } /*! @@ -11209,7 +11114,7 @@ void QWidgetPrivate::update(T r) QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->backingStoreTracker->markDirty(clipped, q); + tlwExtra->widgetBackingStore->markDirty(clipped, q); } /*! diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 970f5c0378..b4a9d283db 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -116,56 +116,12 @@ protected: QRegion m_region; }; - - -class Q_AUTOTEST_EXPORT QWidgetBackingStoreTracker -{ - -public: - QWidgetBackingStoreTracker(); - ~QWidgetBackingStoreTracker(); - - void create(QWidget *tlw); - void destroy(); - - void registerWidget(QWidget *w); - void unregisterWidget(QWidget *w); - void unregisterWidgetSubtree(QWidget *w); - - inline QWidgetBackingStore* data() - { - return m_ptr; - } - - inline QWidgetBackingStore* operator->() - { - return m_ptr; - } - - inline QWidgetBackingStore& operator*() - { - return *m_ptr; - } - - inline operator bool() const - { - return (nullptr != m_ptr); - } - -private: - Q_DISABLE_COPY_MOVE(QWidgetBackingStoreTracker) - -private: - QWidgetBackingStore* m_ptr; - QSet m_widgets; -}; - struct QTLWExtra { // *************************** Cross-platform variables ***************************** // Regular pointers (keep them together to avoid gaps on 64 bits architectures). std::unique_ptr icon; // widget icon - QWidgetBackingStoreTracker backingStoreTracker; + std::unique_ptr widgetBackingStore; QBackingStore *backingStore; QPainter *sharedPainter; QWidgetWindow *window; @@ -1028,7 +984,7 @@ inline QWidgetBackingStore *QWidgetPrivate::maybeBackingStore() const { Q_Q(const QWidget); QTLWExtra *x = q->window()->d_func()->maybeTopData(); - return x ? x->backingStoreTracker.data() : nullptr; + return x ? x->widgetBackingStore.get() : nullptr; } QT_END_NAMESPACE diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index 009ffb17a1..1b963010d1 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -300,7 +300,7 @@ void QWidgetBackingStore::unflushPaint(QWidget *widget, const QRegion &rgn) if (!tlwExtra) return; - qt_flush(widget, rgn, tlwExtra->backingStoreTracker->store, tlw, 0, tlw->d_func()->maybeBackingStore()); + qt_flush(widget, rgn, tlwExtra->widgetBackingStore->store, tlw, 0, tlw->d_func()->maybeBackingStore()); } #endif // QT_NO_PAINT_DEBUG @@ -800,7 +800,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) invalidateBackingStore((newRect & clipR).translated(-data.crect.topLeft())); } else { - QWidgetBackingStore *wbs = x->backingStoreTracker.data(); + QWidgetBackingStore *wbs = x->widgetBackingStore.get(); QRegion childExpose(newRect & clipR); QRegion overlappedExpose; @@ -864,7 +864,7 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) if (x->inTopLevelResize) return; - QWidgetBackingStore *wbs = x->backingStoreTracker.data(); + QWidgetBackingStore *wbs = x->widgetBackingStore.get(); if (!wbs) return; @@ -1528,10 +1528,10 @@ void QWidgetPrivate::invalidateBackingStore(const T &r) if (masked.isEmpty()) return; - tlwExtra->backingStoreTracker->markDirty(masked, q, + tlwExtra->widgetBackingStore->markDirty(masked, q, QWidgetBackingStore::UpdateLater, QWidgetBackingStore::BufferInvalid); } else { - tlwExtra->backingStoreTracker->markDirty(clipped, q, + tlwExtra->widgetBackingStore->markDirty(clipped, q, QWidgetBackingStore::UpdateLater, QWidgetBackingStore::BufferInvalid); } } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 5537ff497a..a01a377956 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -770,7 +770,7 @@ void QWidgetWindow::repaintWindow() QTLWExtra *tlwExtra = m_widget->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->backingStoreTracker->markDirty(m_widget->rect(), m_widget, + tlwExtra->widgetBackingStore->markDirty(m_widget->rect(), m_widget, QWidgetBackingStore::UpdateNow, QWidgetBackingStore::BufferInvalid); } diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index bfc2631842..715bbbec0f 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -9564,7 +9565,7 @@ void tst_QWidget::destroyBackingStore() QTRY_VERIFY(w.numPaintEvents > 0); w.reset(); w.update(); - qt_widget_private(&w)->topData()->backingStoreTracker.create(&w); + qt_widget_private(&w)->topData()->widgetBackingStore.reset(new QWidgetBackingStore(&w)); w.update(); QApplication::processEvents(); @@ -9584,7 +9585,7 @@ QWidgetBackingStore* backingStore(QWidget &widget) QWidgetBackingStore *backingStore = nullptr; #ifdef QT_BUILD_INTERNAL if (QTLWExtra *topExtra = qt_widget_private(&widget)->maybeTopData()) - backingStore = topExtra->backingStoreTracker.data(); + backingStore = topExtra->widgetBackingStore.get(); #endif return backingStore; } @@ -9784,12 +9785,12 @@ class scrollWidgetWBS : public QWidget public: void deleteBackingStore() { - static_cast(d_ptr.data())->topData()->backingStoreTracker.destroy(); + static_cast(d_ptr.data())->topData()->widgetBackingStore.reset(nullptr); } void enableBackingStore() { if (!static_cast(d_ptr.data())->maybeBackingStore()) { - static_cast(d_ptr.data())->topData()->backingStoreTracker.create(this); + static_cast(d_ptr.data())->topData()->widgetBackingStore.reset(new QWidgetBackingStore(this)); static_cast(d_ptr.data())->invalidateBackingStore(this->rect()); repaint(); } -- cgit v1.2.3 From 662fec6f0db32fb58b91357aa11c9d3be94f0c55 Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Fri, 9 Aug 2019 11:04:27 +0200 Subject: Update for failures only on dev branch. Use general platform names This patch was generated with tooling from patchset 31 of https://codereview.qt-project.org/c/qt/qtqa/+/267034 in interactive mode. General platform names were chosen if greater than 60% of the currently active platforms of a given type in COIN recently failed. Change-Id: Ia4bde7f0ec422bbb727dc9d7151295159094f146 Reviewed-by: Eskil Abrahamsen Blomfeldt --- .../corelib/animation/qpauseanimation/BLACKLIST | 8 +- tests/auto/corelib/io/qfilesystemwatcher/BLACKLIST | 4 +- tests/auto/corelib/io/qprocess/BLACKLIST | 1 - tests/auto/corelib/kernel/qelapsedtimer/BLACKLIST | 3 +- .../auto/corelib/kernel/qsocketnotifier/BLACKLIST | 3 +- tests/auto/corelib/kernel/qtimer/BLACKLIST | 9 - .../corelib/serialization/qtextstream/BLACKLIST | 3 +- tests/auto/corelib/thread/qsemaphore/BLACKLIST | 3 +- tests/auto/corelib/thread/qthread/BLACKLIST | 4 +- tests/auto/corelib/thread/qthreadpool/BLACKLIST | 7 +- tests/auto/corelib/tools/qtimeline/BLACKLIST | 4 +- tests/auto/gui/kernel/qguitimer/BLACKLIST | 8 - tests/auto/gui/kernel/qwindow/BLACKLIST | 15 +- .../network/access/qabstractnetworkcache/BLACKLIST | 2 - tests/auto/network/access/qftp/BLACKLIST | 9 +- tests/auto/network/access/qnetworkreply/BLACKLIST | 191 ++++----------------- tests/auto/network/access/spdy/BLACKLIST | 3 - tests/auto/network/kernel/qdnslookup/BLACKLIST | 12 +- .../network/socket/qsocks5socketengine/BLACKLIST | 3 +- tests/auto/network/socket/qtcpserver/BLACKLIST | 14 +- tests/auto/network/socket/qtcpsocket/BLACKLIST | 3 - tests/auto/network/socket/qudpsocket/BLACKLIST | 6 - tests/auto/network/ssl/qsslkey/BLACKLIST | 17 +- tests/auto/network/ssl/qsslsocket/BLACKLIST | 4 - tests/auto/other/networkselftest/BLACKLIST | 3 +- tests/auto/other/qfocusevent/BLACKLIST | 3 - .../BLACKLIST | 3 +- .../widgets/dialogs/qfilesystemmodel/BLACKLIST | 11 +- tests/auto/widgets/dialogs/qmessagebox/BLACKLIST | 6 +- .../widgets/graphicsview/qgraphicsscene/BLACKLIST | 2 - .../widgets/graphicsview/qgraphicsview/BLACKLIST | 12 +- tests/auto/widgets/itemviews/qheaderview/BLACKLIST | 1 - tests/auto/widgets/kernel/qapplication/BLACKLIST | 3 +- tests/auto/widgets/kernel/qwidget/BLACKLIST | 10 +- 34 files changed, 74 insertions(+), 316 deletions(-) delete mode 100644 tests/auto/corelib/kernel/qtimer/BLACKLIST delete mode 100644 tests/auto/gui/kernel/qguitimer/BLACKLIST delete mode 100644 tests/auto/network/access/qabstractnetworkcache/BLACKLIST delete mode 100644 tests/auto/other/qfocusevent/BLACKLIST diff --git a/tests/auto/corelib/animation/qpauseanimation/BLACKLIST b/tests/auto/corelib/animation/qpauseanimation/BLACKLIST index 53372ce9ae..33cd53d788 100644 --- a/tests/auto/corelib/animation/qpauseanimation/BLACKLIST +++ b/tests/auto/corelib/animation/qpauseanimation/BLACKLIST @@ -1,9 +1,5 @@ [pauseAndPropertyAnimations] -osx-10.12 -osx-10.14 -osx-10.13 +osx [multipleSequentialGroups] -osx-10.12 -osx-10.14 -osx-10.13 +osx diff --git a/tests/auto/corelib/io/qfilesystemwatcher/BLACKLIST b/tests/auto/corelib/io/qfilesystemwatcher/BLACKLIST index 9b210b0d5f..457499591d 100644 --- a/tests/auto/corelib/io/qfilesystemwatcher/BLACKLIST +++ b/tests/auto/corelib/io/qfilesystemwatcher/BLACKLIST @@ -1,9 +1,7 @@ # QTBUG-33574 QTBUG-30943 [signalsEmittedAfterFileMoved] -windows-10 msvc-2017 -windows-10 msvc-2019 -windows-10 msvc-2015 windows-7sp1 +windows-10 [watchFileAndItsDirectory:native backend-testfile] osx windows diff --git a/tests/auto/corelib/io/qprocess/BLACKLIST b/tests/auto/corelib/io/qprocess/BLACKLIST index aa9fdab64d..682bcbc60c 100644 --- a/tests/auto/corelib/io/qprocess/BLACKLIST +++ b/tests/auto/corelib/io/qprocess/BLACKLIST @@ -2,6 +2,5 @@ redhatenterpriselinuxworkstation-6.6 # QTBUG-48455 [fileWriterProcess] -windows-10 msvc-2015 windows-10 msvc-2017 diff --git a/tests/auto/corelib/kernel/qelapsedtimer/BLACKLIST b/tests/auto/corelib/kernel/qelapsedtimer/BLACKLIST index 4c9fe53c14..569880e1db 100644 --- a/tests/auto/corelib/kernel/qelapsedtimer/BLACKLIST +++ b/tests/auto/corelib/kernel/qelapsedtimer/BLACKLIST @@ -1,4 +1,3 @@ [elapsed] -windows-10 msvc-2015 osx-10.13 -windows-10 msvc-2017 +windows-10 diff --git a/tests/auto/corelib/kernel/qsocketnotifier/BLACKLIST b/tests/auto/corelib/kernel/qsocketnotifier/BLACKLIST index f3b7fc97b1..f2e5e78592 100644 --- a/tests/auto/corelib/kernel/qsocketnotifier/BLACKLIST +++ b/tests/auto/corelib/kernel/qsocketnotifier/BLACKLIST @@ -1,4 +1,3 @@ [unexpectedDisconnection] -osx-10.12 -windows-10 msvc-2015 windows-7sp1 +windows-10 msvc-2015 diff --git a/tests/auto/corelib/kernel/qtimer/BLACKLIST b/tests/auto/corelib/kernel/qtimer/BLACKLIST deleted file mode 100644 index dc8b8987e5..0000000000 --- a/tests/auto/corelib/kernel/qtimer/BLACKLIST +++ /dev/null @@ -1,9 +0,0 @@ -[remainingTime] -osx-10.12 -osx-10.14 -osx-10.13 -windows-10 msvc-2017 -[basic_chrono] -osx-10.14 -osx-10.13 - diff --git a/tests/auto/corelib/serialization/qtextstream/BLACKLIST b/tests/auto/corelib/serialization/qtextstream/BLACKLIST index b8c1b742f4..674569e204 100644 --- a/tests/auto/corelib/serialization/qtextstream/BLACKLIST +++ b/tests/auto/corelib/serialization/qtextstream/BLACKLIST @@ -1,4 +1,3 @@ [stillOpenWhenAtEnd] -windows-10 msvc-2017 -winrt windows-7sp1 +winrt diff --git a/tests/auto/corelib/thread/qsemaphore/BLACKLIST b/tests/auto/corelib/thread/qsemaphore/BLACKLIST index f61f4c1a3b..d7af5c420b 100644 --- a/tests/auto/corelib/thread/qsemaphore/BLACKLIST +++ b/tests/auto/corelib/thread/qsemaphore/BLACKLIST @@ -1,6 +1,5 @@ [tryAcquireWithTimeout] -osx-10.12 -osx-10.13 +osx [tryAcquireWithTimeout:0.2s] windows osx-10.12 diff --git a/tests/auto/corelib/thread/qthread/BLACKLIST b/tests/auto/corelib/thread/qthread/BLACKLIST index 87538a1048..c683154da1 100644 --- a/tests/auto/corelib/thread/qthread/BLACKLIST +++ b/tests/auto/corelib/thread/qthread/BLACKLIST @@ -1,7 +1,5 @@ [wait3_slowDestructor] -windows-10 msvc-2015 -windows-7sp1 -windows-10 msvc-2017 +windows-10 [sleep] windows-7sp1 diff --git a/tests/auto/corelib/thread/qthreadpool/BLACKLIST b/tests/auto/corelib/thread/qthreadpool/BLACKLIST index e4f2fcd822..b8c1f3bf3f 100644 --- a/tests/auto/corelib/thread/qthreadpool/BLACKLIST +++ b/tests/auto/corelib/thread/qthreadpool/BLACKLIST @@ -1,7 +1,4 @@ [expiryTimeoutRace] -rhel-7.6 opensuse-leap -osx-10.13 -ubuntu-18.04 -osx-10.12 -opensuse-42.3 +ubuntu +rhel diff --git a/tests/auto/corelib/tools/qtimeline/BLACKLIST b/tests/auto/corelib/tools/qtimeline/BLACKLIST index b60cab31fa..9794b0059f 100644 --- a/tests/auto/corelib/tools/qtimeline/BLACKLIST +++ b/tests/auto/corelib/tools/qtimeline/BLACKLIST @@ -1,8 +1,6 @@ [interpolation] -osx-10.12 windows-10 msvc-2015 -osx-10.13 -windows-7sp1 +osx [frameRate] osx-10.12 osx-10.13 diff --git a/tests/auto/gui/kernel/qguitimer/BLACKLIST b/tests/auto/gui/kernel/qguitimer/BLACKLIST deleted file mode 100644 index 6ab715b922..0000000000 --- a/tests/auto/gui/kernel/qguitimer/BLACKLIST +++ /dev/null @@ -1,8 +0,0 @@ -[basic_chrono] -osx-10.13 -[remainingTime] -osx-10.12 -windows-10 msvc-2015 -osx-10.14 -osx-10.13 - diff --git a/tests/auto/gui/kernel/qwindow/BLACKLIST b/tests/auto/gui/kernel/qwindow/BLACKLIST index 1bb3917948..27463adf99 100644 --- a/tests/auto/gui/kernel/qwindow/BLACKLIST +++ b/tests/auto/gui/kernel/qwindow/BLACKLIST @@ -1,7 +1,5 @@ [positioning] opensuse-leap -ubuntu-16.04 -opensuse-42.3 [positioning:default] linux osx-10.12 ci @@ -9,24 +7,17 @@ winrt [positioning:fake] osx-10.12 ci [modalWithChildWindow] -ubuntu-16.04 -opensuse-leap # QTBUG-66851 # QTBUG-69160 -opensuse-42.3 +opensuse-leap [setVisible] # QTBUG-69154 android [modalWindowEnterEventOnHide_QTBUG35109] -ubuntu-16.04 -osx-10.11 -osx-10.13 -osx-10.14 -osx-10.12 +osx [spuriousMouseMove] # QTBUG-69162 -windows-10 msvc-2015 -windows-10 msvc-2017 +windows-10 [testInputEvents] rhel-7.4 [exposeEventOnShrink_QTBUG54040] diff --git a/tests/auto/network/access/qabstractnetworkcache/BLACKLIST b/tests/auto/network/access/qabstractnetworkcache/BLACKLIST deleted file mode 100644 index 12f45f0e12..0000000000 --- a/tests/auto/network/access/qabstractnetworkcache/BLACKLIST +++ /dev/null @@ -1,2 +0,0 @@ -[cacheControl] -windows-10 msvc-2015 diff --git a/tests/auto/network/access/qftp/BLACKLIST b/tests/auto/network/access/qftp/BLACKLIST index 463030a089..0a99f3eb00 100644 --- a/tests/auto/network/access/qftp/BLACKLIST +++ b/tests/auto/network/access/qftp/BLACKLIST @@ -7,15 +7,10 @@ redhatenterpriselinuxworkstation-6.6 redhatenterpriselinuxworkstation-6.6 [list] -ubuntu-16.04 opensuse-leap -osx-10.11 windows-7sp1 -ubuntu-18.04 -osx-10.14 -b2qt -osx-10.12 windows-10 msvc-2015 -opensuse-42.3 +ubuntu +osx [list:epsvNotSupported] * diff --git a/tests/auto/network/access/qnetworkreply/BLACKLIST b/tests/auto/network/access/qnetworkreply/BLACKLIST index f9bbdd96c3..2a0651f96f 100644 --- a/tests/auto/network/access/qnetworkreply/BLACKLIST +++ b/tests/auto/network/access/qnetworkreply/BLACKLIST @@ -1,106 +1,53 @@ # See qtbase/src/testlib/qtestblacklist.cpp for format [authenticationCacheAfterCancel] -windows-10 msvc-2017 -windows-10 msvc-2015 -osx-10.13 windows-7sp1 -[httpAbort] -ubuntu-16.04 -rhel-7.6 +windows-10 msvc-2015 [backgroundRequestInterruption] -ubuntu-16.04 opensuse-leap -ubuntu-18.04 -b2qt -osx-10.12 windows-10 msvc-2015 -opensuse-42.3 +b2qt +ubuntu +osx [backgroundRequestInterruption:ftp, bg, nobg] * -[getErrors] -osx-10.13 -# QTBUG-71953 [getErrors:ftp-host] linux # QTBUG-71953 [getFromHttp] -rhel-6.6 -ubuntu-16.04 -rhel-7.6 -opensuse-leap -osx-10.11 -osx-10.13 -windows-7sp1 -ubuntu-18.04 -osx-10.14 -rhel-7.4 -b2qt -windows-10 msvc-2017 -osx-10.12 -windows-10 msvc-2015 -opensuse-42.3 +* !android !winrt [getFromHttp:success-external] * [getFromHttpIntoBuffer] -osx-10.12 -osx-10.13 +osx [getFromHttpIntoBuffer2] -windows-10 msvc-2015 -windows-10 msvc-2017 +windows-10 [headFromHttp] -osx-10.13 windows-10 msvc-2017 -[ioGetFromHttpWithSocksProxy] -osx-10.12 [ioPostToHttpFromSocket] # QTBUG-66247 -osx-10.13 windows-7sp1 windows-10 msvc-2017 -osx-10.12 -windows-10 msvc-2015 +osx [ioHttpRedirect] -windows-10 msvc-2015 # QTBUG-66602 -windows-10 msvc-2017 +windows-10 [ioHttpRedirectMultipartPost] -ubuntu-16.04 -rhel-7.6 # QTBUG-66247 -opensuse-leap -osx-10.13 -ubuntu-18.04 -rhel-7.4 b2qt -osx-10.12 windows-10 msvc-2015 -opensuse-42.3 +ubuntu +rhel [ioHttpRedirectPolicy] -ubuntu-16.04 opensuse-leap -windows-7sp1 -ubuntu-18.04 b2qt -windows-10 msvc-2017 -windows-10 msvc-2015 -opensuse-42.3 -[ioHttpRedirectPostPut] -osx-10.12 -windows-10 msvc-2015 +ubuntu +windows-10 [putToFtp] -windows-10 msvc-2017 +windows-10 [putWithServerClosingConnectionImmediately] -osx-10.11 -osx-10.13 -windows-7sp1 -windows-10 msvc-2017 -osx-10.12 -windows-10 msvc-2015 -[qtbug28035browserDoesNotLoadQtProjectOrgCorrectly] -windows-10 msvc-2015 windows-7sp1 -[authenticationWithDifferentRealm] -osx-10.13 +windows-10 +osx [backgroundRequest] osx-10.12 [connectToIPv6Address] @@ -109,141 +56,73 @@ osx-10.12 osx-10.12 [downloadProgress] osx-10.12 -[emitErrorForAllReplies] -osx-10.12 [encrypted] osx-10.13 -[ftpAuthentication] -osx-10.13 [httpCanReadLine] osx-10.12 -osx-10.13 [httpRecursiveCreation] -osx-10.12 -osx-10.13 +osx [httpWithNoCredentialUsage] osx-10.12 [ignoreSslErrorsList] -osx-10.12 -osx-10.13 +osx [ignoreSslErrorsListWithSlot] -osx-10.12 -osx-10.13 +osx [ioGetFromBuiltinHttp] -osx-10.12 -osx-10.11 -osx-10.14 -osx-10.13 +osx [ioGetFromHttp] osx-10.12 -[ioGetFromHttpWithAuth] -osx-10.12 -osx-10.13 -[ioGetFromHttpWithAuthSynchronous] -osx-10.12 -[ioGetFromHttpWithProxyAuth] -osx-10.12 -[ioGetFromHttpWithReuseParallel] -osx-10.12 -osx-10.13 -[ioGetFromHttpWithReuseSequential] -osx-10.12 -osx-10.13 -[ioGetFromHttpsWithIgnoreSslErrors] -osx-10.12 -[ioGetFromHttpsWithSslErrors] -osx-10.12 -[ioGetFromHttpsWithSslHandshakeError] -osx-10.12 -[ioGetWithManyProxies] -osx-10.12 [ioPostToHttpFromFile] osx-10.13 -[ioPostToHttpFromMiddleOfFileFiveBytes] -osx-10.13 -[ioPostToHttpFromMiddleOfFileToEnd] -osx-10.13 -[ioPostToHttpFromMiddleOfQBufferFiveBytes] -osx-10.13 [ioPostToHttpFromSocketSynchronous] -osx-10.12 -osx-10.13 -[ioPostToHttpNoBufferFlag] -osx-10.13 +osx [ioPostToHttpUploadProgress] -osx-10.12 -osx-10.11 -osx-10.13 +osx [ioPutToHttpFromFile] osx-10.13 [lastModifiedHeaderForHttp] osx-10.12 -osx-10.13 [multipartSkipIndices] osx-10.12 -osx-10.13 [nestedEventLoops] -osx-10.12 -osx-10.13 -[pipelining] -osx-10.13 +osx [postToHttp] osx-10.12 -osx-10.13 [postToHttpMultipart] osx-10.12 -osx-10.13 [postToHttpSynchronous] osx-10.12 -osx-10.13 [postToHttps] -osx-10.12 -osx-10.13 +osx [postToHttpsMultipart] -osx-10.12 -osx-10.13 +osx [postToHttpsSynchronous] -osx-10.12 -osx-10.13 +osx [putGetDeleteGetFromHttp] osx-10.12 -[putToHttp] -osx-10.12 -osx-10.13 [putToHttpSynchronous] osx-10.12 -osx-10.13 [putToHttps] -osx-10.12 -osx-10.13 +osx [putToHttpsSynchronous] -osx-10.12 -osx-10.13 +osx [putWithRateLimiting] -osx-10.12 osx-10.13 [qtbug13431replyThrottling] osx-10.12 [receiveCookiesFromHttp] -osx-10.12 -osx-10.13 +osx [receiveCookiesFromHttpSynchronous] -osx-10.12 -osx-10.13 +osx [sendCookies] -osx-10.12 -osx-10.13 +osx [sendCookiesSynchronous] -osx-10.12 -osx-10.13 +osx [sendCustomRequestToHttp] osx-10.12 [sslConfiguration] -osx-10.12 -osx-10.13 +osx [synchronousRequest] -osx-10.12 -osx-10.13 +osx [backgroundRequestConnectInBackground] -osx-10.12 -osx-10.13 +osx diff --git a/tests/auto/network/access/spdy/BLACKLIST b/tests/auto/network/access/spdy/BLACKLIST index ce2f7f383f..5cf79327be 100644 --- a/tests/auto/network/access/spdy/BLACKLIST +++ b/tests/auto/network/access/spdy/BLACKLIST @@ -1,8 +1,5 @@ [download] opensuse-leap -ubuntu-18.04 -ubuntu-16.04 -b2qt [upload] opensuse-leap ubuntu-18.04 diff --git a/tests/auto/network/kernel/qdnslookup/BLACKLIST b/tests/auto/network/kernel/qdnslookup/BLACKLIST index 4461d8b5f7..f07a8ce9a3 100644 --- a/tests/auto/network/kernel/qdnslookup/BLACKLIST +++ b/tests/auto/network/kernel/qdnslookup/BLACKLIST @@ -1,12 +1,2 @@ [lookup] -rhel-7.6 -opensuse-leap -osx-10.13 -windows-7sp1 -ubuntu-18.04 -rhel-7.4 -b2qt -windows-10 msvc-2017 -osx-10.12 -windows-10 msvc-2015 -opensuse-42.3 +* diff --git a/tests/auto/network/socket/qsocks5socketengine/BLACKLIST b/tests/auto/network/socket/qsocks5socketengine/BLACKLIST index f769aafbdd..61fff6ee00 100644 --- a/tests/auto/network/socket/qsocks5socketengine/BLACKLIST +++ b/tests/auto/network/socket/qsocks5socketengine/BLACKLIST @@ -4,8 +4,7 @@ ubuntu-18.04 # QTBUG-74162 [passwordAuth2] -osx-10.12 -ubuntu-18.04 +ubuntu [downloadBigFile] windows-10 msvc-2015 windows-7sp1 diff --git a/tests/auto/network/socket/qtcpserver/BLACKLIST b/tests/auto/network/socket/qtcpserver/BLACKLIST index ad0edf0af1..e268468bdb 100644 --- a/tests/auto/network/socket/qtcpserver/BLACKLIST +++ b/tests/auto/network/socket/qtcpserver/BLACKLIST @@ -1,24 +1,16 @@ -[listenWhileListening] -windows-10 msvc-2015 [listenWhileListening:WithSocks5Proxy] linux windows [ipv6Server] -windows-10 msvc-2015 windows-7sp1 windows-10 msvc-2017 [ipv6Server:WithoutProxy] windows osx -[addressReusable] -windows-10 msvc-2015 [eagainBlockingAccept] -windows-10 msvc-2015 -windows-7sp1 -windows-10 msvc-2017 -[proxyFactory] windows-7sp1 +windows-10 [serverAddress] -windows-10 msvc-2017 -windows-10 msvc-2015 windows-7sp1 +windows-10 + diff --git a/tests/auto/network/socket/qtcpsocket/BLACKLIST b/tests/auto/network/socket/qtcpsocket/BLACKLIST index 8c2f8d2638..07532710b3 100644 --- a/tests/auto/network/socket/qtcpsocket/BLACKLIST +++ b/tests/auto/network/socket/qtcpsocket/BLACKLIST @@ -5,9 +5,6 @@ windows-7sp1 windows [bind:[::]:randomport] windows -[timeoutConnect] -windows-10 msvc-2015 -# QTBUG-66247 [timeoutConnect:ip] windows # QTBUG-66247 diff --git a/tests/auto/network/socket/qudpsocket/BLACKLIST b/tests/auto/network/socket/qudpsocket/BLACKLIST index 9b5aa8a3fc..bc6068d695 100644 --- a/tests/auto/network/socket/qudpsocket/BLACKLIST +++ b/tests/auto/network/socket/qudpsocket/BLACKLIST @@ -2,15 +2,9 @@ windows-10 msvc-2017 windows-10 msvc-2015 windows-7sp1 -[multicastLeaveAfterClose] -osx-10.12 -osx-10.11 [readyReadForEmptyDatagram] opensuse-leap -ubuntu-16.04 [echo] opensuse-42.3 -[ipv6Loop] -osx-10.12 [readyReadForEmptyDatagram] linux diff --git a/tests/auto/network/ssl/qsslkey/BLACKLIST b/tests/auto/network/ssl/qsslkey/BLACKLIST index e9723001f5..19fb15cd1f 100644 --- a/tests/auto/network/ssl/qsslkey/BLACKLIST +++ b/tests/auto/network/ssl/qsslkey/BLACKLIST @@ -1,16 +1,9 @@ [constructor] -rhel-6.6 -rhel-7.4 -rhel-7.6 +rhel [length] -rhel-6.6 -rhel-7.4 -rhel-7.6 +rhel [toEncryptedPemOrDer] -rhel-6.6 -rhel-7.4 -rhel-7.6 +rhel [toPemOrDer] -rhel-6.6 -rhel-7.4 -rhel-7.6 +rhel + diff --git a/tests/auto/network/ssl/qsslsocket/BLACKLIST b/tests/auto/network/ssl/qsslsocket/BLACKLIST index 36143691c9..7b4a29f463 100644 --- a/tests/auto/network/ssl/qsslsocket/BLACKLIST +++ b/tests/auto/network/ssl/qsslsocket/BLACKLIST @@ -1,11 +1,7 @@ -[abortOnSslErrors] -windows-10 msvc-2015 [deprecatedProtocols] windows [spontaneousWrite] windows-7sp1 -[sslErrors] -windows-7sp1 [connectToHostEncrypted] osx-10.13 [setSslConfiguration] diff --git a/tests/auto/other/networkselftest/BLACKLIST b/tests/auto/other/networkselftest/BLACKLIST index 948081eb78..55ebad985d 100644 --- a/tests/auto/other/networkselftest/BLACKLIST +++ b/tests/auto/other/networkselftest/BLACKLIST @@ -1,6 +1,5 @@ # QTBUG-27571 [ftpProxyServer] -windows-10 msvc-2017 -windows-10 msvc-2015 windows-7sp1 +windows-10 diff --git a/tests/auto/other/qfocusevent/BLACKLIST b/tests/auto/other/qfocusevent/BLACKLIST deleted file mode 100644 index 5af8be91a0..0000000000 --- a/tests/auto/other/qfocusevent/BLACKLIST +++ /dev/null @@ -1,3 +0,0 @@ -[checkReason_ActiveWindow] -winrt - diff --git a/tests/auto/other/qnetworkaccessmanager_and_qprogressdialog/BLACKLIST b/tests/auto/other/qnetworkaccessmanager_and_qprogressdialog/BLACKLIST index 65a939cdcb..6173488c00 100644 --- a/tests/auto/other/qnetworkaccessmanager_and_qprogressdialog/BLACKLIST +++ b/tests/auto/other/qnetworkaccessmanager_and_qprogressdialog/BLACKLIST @@ -1,5 +1,4 @@ [downloadCheck] -windows-10 msvc-2015 -windows-10 msvc-2017 +windows-10 [downloadCheck:with-zeroCopy] windows diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/BLACKLIST b/tests/auto/widgets/dialogs/qfilesystemmodel/BLACKLIST index f2f0f8d26e..aae2cacc3b 100644 --- a/tests/auto/widgets/dialogs/qfilesystemmodel/BLACKLIST +++ b/tests/auto/widgets/dialogs/qfilesystemmodel/BLACKLIST @@ -7,13 +7,10 @@ b2qt [specialFiles] b2qt [dirsBeforeFiles] -ubuntu-16.04 -rhel-7.6 -windows-10 msvc-2017 -ubuntu-18.04 -b2qt winrt -windows-10 msvc-2015 - +b2qt +ubuntu +windows-10 +rhel [drives] winrt diff --git a/tests/auto/widgets/dialogs/qmessagebox/BLACKLIST b/tests/auto/widgets/dialogs/qmessagebox/BLACKLIST index e633e7c0a3..8d8a7c2105 100644 --- a/tests/auto/widgets/dialogs/qmessagebox/BLACKLIST +++ b/tests/auto/widgets/dialogs/qmessagebox/BLACKLIST @@ -1,6 +1,4 @@ [defaultButton] -ubuntu-16.04 -rhel-7.6 opensuse-leap -ubuntu-18.04 -rhel-7.4 +rhel-7.6 +ubuntu diff --git a/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST index a3c9e2e421..c3797c9d57 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST +++ b/tests/auto/widgets/graphicsview/qgraphicsscene/BLACKLIST @@ -1,7 +1,5 @@ [isActive] opensuse-42.3 ci -[removeFullyTransparentItem] -osx-10.12 [tabFocus_sceneWithNestedFocusWidgets] opensuse-42.3 diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST b/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST index 22fce8620b..9b76ea02ff 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST +++ b/tests/auto/widgets/graphicsview/qgraphicsview/BLACKLIST @@ -1,24 +1,16 @@ [task255529_transformationAnchorMouseAndViewportMargins] opensuse-leap -rhel-7.4 -ubuntu-16.04 -opensuse-42.3 [cursor] opensuse-leap -ubuntu-16.04 -opensuse-42.3 [cursor2] ubuntu-16.04 [sendEvent] ubuntu-16.04 opensuse-42.3 [resizeAnchor] -ubuntu-16.04 -rhel-7.6 opensuse-leap -ubuntu-18.04 -rhel-7.4 -opensuse-42.3 +rhel-7.6 +ubuntu [update2] opensuse-42.3 [itemsInRect_cosmeticAdjust] diff --git a/tests/auto/widgets/itemviews/qheaderview/BLACKLIST b/tests/auto/widgets/itemviews/qheaderview/BLACKLIST index 297a6fe7b7..4eceaae0d3 100644 --- a/tests/auto/widgets/itemviews/qheaderview/BLACKLIST +++ b/tests/auto/widgets/itemviews/qheaderview/BLACKLIST @@ -1,3 +1,2 @@ [stretchAndRestoreLastSection] opensuse-leap -opensuse-42.3 diff --git a/tests/auto/widgets/kernel/qapplication/BLACKLIST b/tests/auto/widgets/kernel/qapplication/BLACKLIST index ac65a97c40..c68c7d6b14 100644 --- a/tests/auto/widgets/kernel/qapplication/BLACKLIST +++ b/tests/auto/widgets/kernel/qapplication/BLACKLIST @@ -1,4 +1,3 @@ [touchEventPropagation] -opensuse-leap # QTBUG-66745 -opensuse-42.3 +opensuse-leap diff --git a/tests/auto/widgets/kernel/qwidget/BLACKLIST b/tests/auto/widgets/kernel/qwidget/BLACKLIST index 02e97e4b4e..26f9ce1b85 100644 --- a/tests/auto/widgets/kernel/qwidget/BLACKLIST +++ b/tests/auto/widgets/kernel/qwidget/BLACKLIST @@ -14,12 +14,9 @@ rhel-7.4 ubuntu-16.04 rhel-7.6 [focusProxyAndInputMethods] -ubuntu-16.04 rhel-7.6 opensuse-leap -ubuntu-18.04 -rhel-7.4 -opensuse-42.3 +ubuntu [raise] opensuse-leap # QTBUG-68175 @@ -45,12 +42,9 @@ opensuse-leap [moveInResizeEvent] ubuntu-16.04 [multipleToplevelFocusCheck] -ubuntu-16.04 rhel-7.6 opensuse-leap -ubuntu-18.04 -rhel-7.4 -opensuse-42.3 +ubuntu [windowState] # QTBUG-75270 winrt -- cgit v1.2.3 From f5c118b6b8397c70e875f98cac745c3325c1167f Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Mon, 15 Jul 2019 12:49:30 +0200 Subject: Fix escaping of additional app parameters in adb shell command Change-Id: I80e5b98efbc9654c684b3d78ba0d6688c21bd0f3 Reviewed-by: BogDan Vatra --- src/tools/androidtestrunner/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp index e6d6f72354..a035e068bc 100644 --- a/src/tools/androidtestrunner/main.cpp +++ b/src/tools/androidtestrunner/main.cpp @@ -362,7 +362,7 @@ static bool parseTestArgs() g_options.testArgs += QStringLiteral(" -o output.%1,%1").arg(format); g_options.testArgs += unhandledArgs; - g_options.testArgs = QStringLiteral("shell am start -e applicationArguments \"'%1'\" -n %2/%3").arg(shellQuote(g_options.testArgs.trimmed()), + g_options.testArgs = QStringLiteral("shell am start -e applicationArguments \\\"%1\\\" -n %2/%3").arg(shellQuote(g_options.testArgs.trimmed()), g_options.package, g_options.activity); return true; -- cgit v1.2.3 From 427995a518310c0e3bf956d558a41f18fadeab68 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sun, 18 Aug 2019 10:53:01 +0200 Subject: Itemmodel tests: remove foreach usage Replace foreach with range-based for loop, replace some int values with the correct Qt flag enum as drive-by. Change-Id: I41c52f6ae6c537fa9ad4f9e169485533936952d1 Reviewed-by: Marc Mutz Reviewed-by: Volker Hilsheimer --- .../qabstractitemmodel/tst_qabstractitemmodel.cpp | 2 +- .../tst_qitemselectionmodel.cpp | 83 ++++++++++++---------- .../tst_qsortfilterproxymodel.cpp | 30 ++++---- 3 files changed, 60 insertions(+), 55 deletions(-) diff --git a/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp b/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp index 3a4493474b..f305edb2c5 100644 --- a/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp +++ b/tests/auto/corelib/itemmodels/qabstractitemmodel/tst_qabstractitemmodel.cpp @@ -1830,7 +1830,7 @@ void ListenerObject::slotAboutToBeReset() void ListenerObject::slotReset() { - foreach (const QModelIndex &idx, m_persistentIndexes) { + for (const auto &idx : qAsConst(m_persistentIndexes)) { QVERIFY(!idx.isValid()); } } diff --git a/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp b/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp index f78f5bc138..c74101928a 100644 --- a/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp +++ b/tests/auto/corelib/itemmodels/qitemselectionmodel/tst_qitemselectionmodel.cpp @@ -32,6 +32,9 @@ #include +Q_DECLARE_METATYPE(QItemSelectionModel::SelectionFlag) +Q_DECLARE_METATYPE(Qt::SortOrder) + class tst_QItemSelectionModel : public QObject { Q_OBJECT @@ -1463,7 +1466,7 @@ void tst_QItemSelectionModel::persistentselections() QFETCH(IntList, insertColumns); QFETCH(IntList, deleteRows); QFETCH(IntList, deleteColumns); - QFETCH(PairList, expectedList); + QFETCH(const PairList, expectedList); // make sure the model is sane (5x5) QCOMPARE(model->rowCount(QModelIndex()), 5); @@ -1504,7 +1507,7 @@ void tst_QItemSelectionModel::persistentselections() // check that the selected items are the correct number and indexes QModelIndexList selectedList = selection->selectedIndexes(); QCOMPARE(selectedList.count(), expectedList.count()); - foreach(IntPair pair, expectedList) { + for (const auto &pair : expectedList) { QModelIndex index = model->index(pair.first, pair.second, QModelIndex()); QVERIFY(selectedList.contains(index)); } @@ -1679,7 +1682,7 @@ void tst_QItemSelectionModel::modelLayoutChanged_data() { QTest::addColumn("items"); QTest::addColumn("initialSelectedRanges"); - QTest::addColumn("sortOrder"); + QTest::addColumn("sortOrder"); QTest::addColumn("sortColumn"); QTest::addColumn("expectedSelectedRanges"); @@ -1689,7 +1692,7 @@ void tst_QItemSelectionModel::modelLayoutChanged_data() << (IntList() << 3 << 2 << 1 << 0)) << (IntPairPairList() << IntPairPair(IntPair(0, 0), IntPair(3, 1))) - << int(Qt::DescendingOrder) + << Qt::DescendingOrder << 0 << (IntPairPairList() << IntPairPair(IntPair(0, 0), IntPair(3, 1))); @@ -1699,7 +1702,7 @@ void tst_QItemSelectionModel::modelLayoutChanged_data() << (IntList() << 3 << 2 << 1 << 0)) << (IntPairPairList() << IntPairPair(IntPair(0, 0), IntPair(1, 1))) - << int(Qt::DescendingOrder) + << Qt::DescendingOrder << 0 << (IntPairPairList() << IntPairPair(IntPair(2, 0), IntPair(3, 1))); @@ -1709,7 +1712,7 @@ void tst_QItemSelectionModel::modelLayoutChanged_data() << (IntList() << 3 << 2 << 1 << 0)) << (IntPairPairList() << IntPairPair(IntPair(1, 0), IntPair(2, 1))) - << int(Qt::DescendingOrder) + << Qt::DescendingOrder << 0 << (IntPairPairList() << IntPairPair(IntPair(1, 0), IntPair(2, 1))); @@ -1720,7 +1723,7 @@ void tst_QItemSelectionModel::modelLayoutChanged_data() << (IntPairPairList() << IntPairPair(IntPair(1, 0), IntPair(1, 1)) << IntPairPair(IntPair(3, 0), IntPair(3, 1))) - << int(Qt::AscendingOrder) + << Qt::AscendingOrder << 0 << (IntPairPairList() << IntPairPair(IntPair(0, 0), IntPair(0, 1)) @@ -1730,8 +1733,8 @@ void tst_QItemSelectionModel::modelLayoutChanged_data() void tst_QItemSelectionModel::modelLayoutChanged() { QFETCH(IntListList, items); - QFETCH(IntPairPairList, initialSelectedRanges); - QFETCH(int, sortOrder); + QFETCH(const IntPairPairList, initialSelectedRanges); + QFETCH(Qt::SortOrder, sortOrder); QFETCH(int, sortColumn); QFETCH(IntPairPairList, expectedSelectedRanges); @@ -1746,9 +1749,9 @@ void tst_QItemSelectionModel::modelLayoutChanged() // select initial ranges QItemSelectionModel selectionModel(&model); - foreach (IntPairPair range, initialSelectedRanges) { - IntPair tl = range.first; - IntPair br = range.second; + for (const auto &range : initialSelectedRanges) { + const auto &tl = range.first; + const auto &br = range.second; QItemSelection selection( model.index(tl.first, tl.second), model.index(br.first, br.second)); @@ -1756,7 +1759,7 @@ void tst_QItemSelectionModel::modelLayoutChanged() } // sort the model - model.sort(sortColumn, Qt::SortOrder(sortOrder)); + model.sort(sortColumn, sortOrder); // verify that selection is as expected QItemSelection selection = selectionModel.selection(); @@ -2126,43 +2129,43 @@ void tst_QItemSelectionModel::merge_data() { QTest::addColumn("init"); QTest::addColumn("other"); - QTest::addColumn("command"); + QTest::addColumn("command"); QTest::addColumn("result"); QTest::newRow("Simple select") << QItemSelection() << QItemSelection(model->index(2, 1) , model->index(3, 4)) - << int(QItemSelectionModel::Select) + << QItemSelectionModel::Select << QItemSelection(model->index(2, 1) , model->index(3, 4)); QTest::newRow("Simple deselect") << QItemSelection(model->index(2, 1) , model->index(3, 4)) << QItemSelection(model->index(2, 1) , model->index(3, 4)) - << int(QItemSelectionModel::Deselect) + << QItemSelectionModel::Deselect << QItemSelection(); QTest::newRow("Simple Toggle deselect") << QItemSelection(model->index(2, 1) , model->index(3, 4)) << QItemSelection(model->index(2, 1) , model->index(3, 4)) - << int(QItemSelectionModel::Toggle) + << QItemSelectionModel::Toggle << QItemSelection(); QTest::newRow("Simple Toggle select") << QItemSelection() << QItemSelection(model->index(2, 1) , model->index(3, 4)) - << int(QItemSelectionModel::Toggle) + << QItemSelectionModel::Toggle << QItemSelection(model->index(2, 1) , model->index(3, 4)); QTest::newRow("Add select") << QItemSelection(model->index(2, 1) , model->index(3, 3)) << QItemSelection(model->index(2, 2) , model->index(3, 4)) - << int(QItemSelectionModel::Select) + << QItemSelectionModel::Select << QItemSelection(model->index(2, 1) , model->index(3, 4)); QTest::newRow("Deselect") << QItemSelection(model->index(2, 1) , model->index(3, 4)) << QItemSelection(model->index(2, 2) , model->index(3, 4)) - << int(QItemSelectionModel::Deselect) + << QItemSelectionModel::Deselect << QItemSelection(model->index(2, 1) , model->index(3, 1)); QItemSelection r1(model->index(2, 1) , model->index(3, 1)); @@ -2170,7 +2173,7 @@ void tst_QItemSelectionModel::merge_data() QTest::newRow("Toggle") << QItemSelection(model->index(2, 1) , model->index(3, 3)) << QItemSelection(model->index(2, 2) , model->index(3, 4)) - << int(QItemSelectionModel::Toggle) + << QItemSelectionModel::Toggle << r1; } @@ -2178,15 +2181,18 @@ void tst_QItemSelectionModel::merge() { QFETCH(QItemSelection, init); QFETCH(QItemSelection, other); - QFETCH(int, command); + QFETCH(QItemSelectionModel::SelectionFlag, command); QFETCH(QItemSelection, result); - init.merge(other, QItemSelectionModel::SelectionFlags(command)); + init.merge(other, command); - foreach(const QModelIndex &idx, init.indexes()) - QVERIFY(result.contains(idx)); - foreach(const QModelIndex &idx, result.indexes()) - QVERIFY(init.contains(idx)); + auto verify = [](const QModelIndexList &a, const QItemSelection &b) + { + for (const QModelIndex &idx : a) + QVERIFY(b.contains(idx)); + }; + verify(init.indexes(), result); + verify(result.indexes(), init); } void tst_QItemSelectionModel::isRowSelected() @@ -2267,13 +2273,12 @@ void tst_QItemSelectionModel::layoutChangedWithAllSelected1() proxy.setFilterRegularExpression(QRegularExpression("f")); QCOMPARE(proxy.rowCount(), 2); - QList indexList; - indexList << proxy.index(0,0) << proxy.index(1,0); - selection.select( QItemSelection(indexList.first(), indexList.last()), QItemSelectionModel::Select); + const QList indexList({proxy.index(0,0), proxy.index(1,0)}); + selection.select(QItemSelection(indexList.first(), indexList.last()), QItemSelectionModel::Select); //let's check the selection hasn't changed QCOMPARE(selection.selectedIndexes().count(), indexList.count()); - foreach(QPersistentModelIndex index, indexList) + for (const auto &index : indexList) QVERIFY(selection.isSelected(index)); proxy.setFilterRegularExpression(QRegularExpression()); @@ -2281,7 +2286,7 @@ void tst_QItemSelectionModel::layoutChangedWithAllSelected1() //let's check the selection hasn't changed QCOMPARE(selection.selectedIndexes().count(), indexList.count()); - foreach(QPersistentModelIndex index, indexList) + for (const auto &index : indexList) QVERIFY(selection.isSelected(index)); } @@ -2321,9 +2326,8 @@ void tst_QItemSelectionModel::layoutChangedWithAllSelected2() selection.select( QItemSelection(proxy.index(0,0), proxy.index(proxy.rowCount() - 1, proxy.columnCount() - 1)), QItemSelectionModel::Select); - QList indexList; - foreach(const QModelIndex &id, selection.selectedIndexes()) - indexList << id; + const auto selIndexes = selection.selectedIndexes(); + const QList indexList(selIndexes.begin(), selIndexes.end()); proxy.filtering = false; proxy.invalidate(); @@ -2331,7 +2335,7 @@ void tst_QItemSelectionModel::layoutChangedWithAllSelected2() //let's check the selection hasn't changed QCOMPARE(selection.selectedIndexes().count(), indexList.count()); - foreach(QPersistentModelIndex index, indexList) + for (const auto &index : indexList) QVERIFY(selection.isSelected(index)); } @@ -2375,7 +2379,8 @@ public: public slots: void selectionChanged(const QItemSelection & /* selected */, const QItemSelection &deselected) { - foreach(const QModelIndex &index, deselected.indexes()) { + const auto deselIndexes = deselected.indexes(); + for (const auto &index : deselIndexes) { QVERIFY(!m_itemSelectionModel->selection().contains(index)); } QCOMPARE(m_itemSelectionModel->selection().size(), 2); @@ -2633,9 +2638,9 @@ private slots: void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) { - foreach(const QItemSelectionRange &range, selected) + for (const auto &range : selected) QVERIFY(range.isValid()); - foreach(const QItemSelectionRange &range, deselected) + for (const auto &range : deselected) QVERIFY(range.isValid()); } diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp index 0f7588a71a..624187349b 100644 --- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp +++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp @@ -829,7 +829,7 @@ void tst_QSortFilterProxyModel::removeRows_data() void tst_QSortFilterProxyModel::removeRows() { - QFETCH(QStringList, initial); + QFETCH(const QStringList, initial); QFETCH(int, sortOrder); QFETCH(QString, filter); QFETCH(int, position); @@ -843,7 +843,7 @@ void tst_QSortFilterProxyModel::removeRows() proxy.setSourceModel(&model); // prepare model - foreach (QString s, initial) + for (const auto &s : initial) model.appendRow(new QStandardItem(s)); if (sortOrder != -1) @@ -3035,15 +3035,15 @@ void tst_QSortFilterProxyModel::removeRowsRecursive() QList sourceIndexes; QList proxyIndexes; - foreach (QStandardItem *item, items) { + for (const auto item : qAsConst(items)) { QModelIndex idx = item->index(); sourceIndexes << idx; proxyIndexes << proxy.mapFromSource(idx); } - foreach (const QPersistentModelIndex &pidx, sourceIndexes) + for (const auto &pidx : qAsConst(sourceIndexes)) QVERIFY(pidx.isValid()); - foreach (const QPersistentModelIndex &pidx, proxyIndexes) + for (const auto &pidx : qAsConst(proxyIndexes)) QVERIFY(pidx.isValid()); QList itemRow = pItem1->takeRow(0); @@ -3051,9 +3051,9 @@ void tst_QSortFilterProxyModel::removeRowsRecursive() QCOMPARE(itemRow.count(), 1); QCOMPARE(itemRow.first(), pItem11); - foreach (const QPersistentModelIndex &pidx, sourceIndexes) + for (const auto &pidx : qAsConst(sourceIndexes)) QVERIFY(!pidx.isValid()); - foreach (const QPersistentModelIndex &pidx, proxyIndexes) + for (const auto &pidx : qAsConst(proxyIndexes)) QVERIFY(!pidx.isValid()); delete pItem11; @@ -3280,10 +3280,8 @@ void tst_QSortFilterProxyModel::testMultipleProxiesWithSelection() static bool isValid(const QItemSelection &selection) { - foreach (const QItemSelectionRange &range, selection) - if (!range.isValid()) - return false; - return true; + return std::all_of(selection.begin(), selection.end(), + [](const QItemSelectionRange &range) { return range.isValid(); }); } void tst_QSortFilterProxyModel::mapSelectionFromSource() @@ -3737,14 +3735,16 @@ void tst_QSortFilterProxyModel::testParentLayoutChanged() QVERIFY(beforeParents.first() == proxy.mapFromSource(model.indexFromItem(model.invisibleRootItem()->child(1)))); - QList proxy2BeforeList = proxy2ParentsAboutToBeChangedSpy.first().first().value >(); - QList proxy2AfterList = proxy2ParentsChangedSpy.first().first().value >(); + const QList proxy2BeforeList = + proxy2ParentsAboutToBeChangedSpy.first().first().value >(); + const QList proxy2AfterList = + proxy2ParentsChangedSpy.first().first().value >(); QCOMPARE(proxy2BeforeList.size(), beforeParents.size()); QCOMPARE(proxy2AfterList.size(), afterParents.size()); - foreach (const QPersistentModelIndex &idx, proxy2BeforeList) + for (const QPersistentModelIndex &idx : proxy2BeforeList) QVERIFY(beforeParents.contains(proxy2.mapToSource(idx))); - foreach (const QPersistentModelIndex &idx, proxy2AfterList) + for (const QPersistentModelIndex &idx : proxy2AfterList) QVERIFY(afterParents.contains(proxy2.mapToSource(idx))); } -- cgit v1.2.3 From 8240c24866550c4c083a7c1020d0b1b1bb7c8329 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Sat, 1 Jun 2019 12:30:12 +0900 Subject: Fix build without feature.codecs Change-Id: I7113928c686319f132e6306f6925da009e8f41b1 Reviewed-by: Ulf Hermann --- src/corelib/codecs/qicucodec.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/codecs/qicucodec.cpp b/src/corelib/codecs/qicucodec.cpp index 101c3a3278..b9f1a814fa 100644 --- a/src/corelib/codecs/qicucodec.cpp +++ b/src/corelib/codecs/qicucodec.cpp @@ -42,8 +42,10 @@ #include "qtextcodec_p.h" #include "qutfcodec_p.h" #include "qlatincodec_p.h" +#if QT_CONFIG(codecs) #include "qtsciicodec_p.h" #include "qisciicodec_p.h" +#endif #include "qsimplecodec_p.h" #include "private/qcoreglobaldata_p.h" #include "qdebug.h" -- cgit v1.2.3 From d8a9bec35fb0c60a0e5990c1a12ffe6f39fdbf2d Mon Sep 17 00:00:00 2001 From: Nils Jeisecke Date: Thu, 17 Dec 2015 16:38:15 +0100 Subject: QTextDocument: add css-styling of table cell borders to HTML import/export Supported style attributes: style: supports "border-collapse: collapse" and "border-color". border: width of the outer border bordercolor: basic color for all borders style: not supported
/ style: supports the "border", "border-[top|left|bottom|right]]" shorthand styles and the "border-width", "border-color" and "border-style" (and the top/left/bottom/right variants) attributes will render a simple 1px table grid. Notes: The QTextDocument table model is much simpler than the HTML table model. It basically only has
and and
support. So the HTML parser is forced to map markup and styling to the QTextDocument model which is not without loss. In other words: While QTextDocument -> HTML -> QTextDocument should preserve the QTextDocument structure, HTML -> QTextDocument -> HTML does not preserve the HTML DOM at all. So for now the HTML importer and writer only support border styles on the and nodes. In future updates, the HTML parser might be enhanced to map
CSS styles to the cells. Change-Id: If9e7312fa6cbf270cf8f7b3c72ba1fa094107517 Reviewed-by: Shawn Rutledge --- src/gui/text/qcssparser.cpp | 9 ++ src/gui/text/qcssparser_p.h | 2 + src/gui/text/qtextdocument.cpp | 80 +++++++----- src/gui/text/qtextdocumentfragment.cpp | 26 ++++ src/gui/text/qtexthtmlparser.cpp | 34 ++++++ src/gui/text/qtexthtmlparser_p.h | 8 ++ .../gui/text/qtextdocument/tst_qtextdocument.cpp | 29 +++++ .../tst_qtextdocumentfragment.cpp | 134 +++++++++++++++++++++ tests/auto/gui/text/qtexttable/tst_qtexttable.cpp | 108 +++++++++++++++++ 9 files changed, 401 insertions(+), 29 deletions(-) diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index 45f1ca596e..0b2dedf5dc 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -92,6 +92,7 @@ static const QCssKnownValue properties[NumProperties - 1] = { { "border-bottom-right-radius", BorderBottomRightRadius }, { "border-bottom-style", BorderBottomStyle }, { "border-bottom-width", BorderBottomWidth }, + { "border-collapse", BorderCollapse }, { "border-color", BorderColor }, { "border-image", BorderImage }, { "border-left", BorderLeft }, @@ -1732,6 +1733,14 @@ void Declaration::borderImageValue(QString *image, int *cuts, *h = *v; } +bool Declaration::borderCollapseValue() const +{ + if (d->values.count() != 1) + return false; + else + return d->values.at(0).toString() == QLatin1String("collapse"); +} + QIcon Declaration::iconValue() const { if (d->parsed.isValid()) diff --git a/src/gui/text/qcssparser_p.h b/src/gui/text/qcssparser_p.h index ddc46803ae..ab85e76cf3 100644 --- a/src/gui/text/qcssparser_p.h +++ b/src/gui/text/qcssparser_p.h @@ -122,6 +122,7 @@ enum Property { BorderRight, BorderTop, BorderBottom, + BorderCollapse, Padding, PaddingLeft, PaddingRight, @@ -478,6 +479,7 @@ struct Q_GUI_EXPORT Declaration QIcon iconValue() const; void borderImageValue(QString *image, int *cuts, TileMode *h, TileMode *v) const; + bool borderCollapseValue() const; }; QT_CSS_DECLARE_TYPEINFO(Declaration, Q_MOVABLE_TYPE) diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp index dc34a96918..c80617f929 100644 --- a/src/gui/text/qtextdocument.cpp +++ b/src/gui/text/qtextdocument.cpp @@ -2593,51 +2593,43 @@ void QTextHtmlExporter::emitFloatStyle(QTextFrameFormat::Position pos, StyleMode html += QLatin1Char('\"'); } -void QTextHtmlExporter::emitBorderStyle(QTextFrameFormat::BorderStyle style) +static QLatin1String richtextBorderStyleToHtmlBorderStyle(QTextFrameFormat::BorderStyle style) { - Q_ASSERT(style <= QTextFrameFormat::BorderStyle_Outset); - - html += QLatin1String(" border-style:"); - switch (style) { case QTextFrameFormat::BorderStyle_None: - html += QLatin1String("none"); - break; + return QLatin1String("none"); case QTextFrameFormat::BorderStyle_Dotted: - html += QLatin1String("dotted"); - break; + return QLatin1String("dotted"); case QTextFrameFormat::BorderStyle_Dashed: - html += QLatin1String("dashed"); - break; + return QLatin1String("dashed"); case QTextFrameFormat::BorderStyle_Solid: - html += QLatin1String("solid"); - break; + return QLatin1String("solid"); case QTextFrameFormat::BorderStyle_Double: - html += QLatin1String("double"); - break; + return QLatin1String("double"); case QTextFrameFormat::BorderStyle_DotDash: - html += QLatin1String("dot-dash"); - break; + return QLatin1String("dot-dash"); case QTextFrameFormat::BorderStyle_DotDotDash: - html += QLatin1String("dot-dot-dash"); - break; + return QLatin1String("dot-dot-dash"); case QTextFrameFormat::BorderStyle_Groove: - html += QLatin1String("groove"); - break; + return QLatin1String("groove"); case QTextFrameFormat::BorderStyle_Ridge: - html += QLatin1String("ridge"); - break; + return QLatin1String("ridge"); case QTextFrameFormat::BorderStyle_Inset: - html += QLatin1String("inset"); - break; + return QLatin1String("inset"); case QTextFrameFormat::BorderStyle_Outset: - html += QLatin1String("outset"); - break; + return QLatin1String("outset"); default: - Q_ASSERT(false); - break; + Q_UNREACHABLE(); }; + return QLatin1String(""); +} + +void QTextHtmlExporter::emitBorderStyle(QTextFrameFormat::BorderStyle style) +{ + Q_ASSERT(style <= QTextFrameFormat::BorderStyle_Outset); + html += QLatin1String(" border-style:"); + html += richtextBorderStyleToHtmlBorderStyle(style); html += QLatin1Char(';'); } @@ -3204,6 +3196,33 @@ void QTextHtmlExporter::emitTable(const QTextTable *table) if (cellFormat.hasProperty(QTextFormat::TableCellBottomPadding)) styleString += QLatin1String(" padding-bottom:") + QString::number(cellFormat.bottomPadding()) + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellTopBorder)) + styleString += QLatin1String(" border-top:") + QString::number(cellFormat.topBorder()) + QLatin1String("px;"); + if (cellFormat.hasProperty(QTextFormat::TableCellRightBorder)) + styleString += QLatin1String(" border-right:") + QString::number(cellFormat.rightBorder()) + QLatin1String("px;"); + if (cellFormat.hasProperty(QTextFormat::TableCellBottomBorder)) + styleString += QLatin1String(" border-bottom:") + QString::number(cellFormat.bottomBorder()) + QLatin1String("px;"); + if (cellFormat.hasProperty(QTextFormat::TableCellLeftBorder)) + styleString += QLatin1String(" border-left:") + QString::number(cellFormat.leftBorder()) + QLatin1String("px;"); + + if (cellFormat.hasProperty(QTextFormat::TableCellTopBorderBrush)) + styleString += QLatin1String(" border-top-color:") + cellFormat.topBorderBrush().color().name() + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellRightBorderBrush)) + styleString += QLatin1String(" border-right-color:") + cellFormat.rightBorderBrush().color().name() + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellBottomBorderBrush)) + styleString += QLatin1String(" border-bottom-color:") + cellFormat.bottomBorderBrush().color().name() + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellLeftBorderBrush)) + styleString += QLatin1String(" border-left-color:") + cellFormat.leftBorderBrush().color().name() + QLatin1Char(';'); + + if (cellFormat.hasProperty(QTextFormat::TableCellTopBorderStyle)) + styleString += QLatin1String(" border-top-style:") + richtextBorderStyleToHtmlBorderStyle(cellFormat.topBorderStyle()) + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellRightBorderStyle)) + styleString += QLatin1String(" border-right-style:") + richtextBorderStyleToHtmlBorderStyle(cellFormat.rightBorderStyle()) + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellBottomBorderStyle)) + styleString += QLatin1String(" border-bottom-style:") + richtextBorderStyleToHtmlBorderStyle(cellFormat.bottomBorderStyle()) + QLatin1Char(';'); + if (cellFormat.hasProperty(QTextFormat::TableCellLeftBorderStyle)) + styleString += QLatin1String(" border-left-style:") + richtextBorderStyleToHtmlBorderStyle(cellFormat.leftBorderStyle()) + QLatin1Char(';'); + if (!styleString.isEmpty()) html += QLatin1String(" style=\"") + styleString + QLatin1Char('\"'); @@ -3310,6 +3329,9 @@ void QTextHtmlExporter::emitFrameStyle(const QTextFrameFormat &format, FrameType QString::number(format.leftMargin()), QString::number(format.rightMargin())); + if (format.property(QTextFormat::TableBorderCollapse).toBool()) + html += QLatin1String(" border-collapse:collapse;"); + if (html.length() == originalHtmlLength) // nothing emitted? html.chop(styleAttribute.size()); else diff --git a/src/gui/text/qtextdocumentfragment.cpp b/src/gui/text/qtextdocumentfragment.cpp index 8ad1300e6c..778493d4bc 100644 --- a/src/gui/text/qtextdocumentfragment.cpp +++ b/src/gui/text/qtextdocumentfragment.cpp @@ -986,6 +986,7 @@ QTextHtmlImporter::Table QTextHtmlImporter::scanTable(int tableNodeIdx) tableFmt.setColumns(table.columns); tableFmt.setColumnWidthConstraints(columnWidths); tableFmt.setHeaderRowCount(tableHeaderRowCount); + tableFmt.setBorderCollapse(node.borderCollapse); fmt = tableFmt; } @@ -1061,6 +1062,31 @@ QTextHtmlImporter::ProcessNodeResult QTextHtmlImporter::processBlockNode() fmt.setLeftPadding(leftPadding(currentNodeIdx)); if (rightPadding(currentNodeIdx) >= 0) fmt.setRightPadding(rightPadding(currentNodeIdx)); + if (tableCellBorder(currentNodeIdx, QCss::TopEdge) > 0) + fmt.setTopBorder(tableCellBorder(currentNodeIdx, QCss::TopEdge)); + if (tableCellBorder(currentNodeIdx, QCss::RightEdge) > 0) + fmt.setRightBorder(tableCellBorder(currentNodeIdx, QCss::RightEdge)); + if (tableCellBorder(currentNodeIdx, QCss::BottomEdge) > 0) + fmt.setBottomBorder(tableCellBorder(currentNodeIdx, QCss::BottomEdge)); + if (tableCellBorder(currentNodeIdx, QCss::LeftEdge) > 0) + fmt.setLeftBorder(tableCellBorder(currentNodeIdx, QCss::LeftEdge)); + if (tableCellBorderStyle(currentNodeIdx, QCss::TopEdge) != QTextFrameFormat::BorderStyle_None) + fmt.setTopBorderStyle(tableCellBorderStyle(currentNodeIdx, QCss::TopEdge)); + if (tableCellBorderStyle(currentNodeIdx, QCss::RightEdge) != QTextFrameFormat::BorderStyle_None) + fmt.setRightBorderStyle(tableCellBorderStyle(currentNodeIdx, QCss::RightEdge)); + if (tableCellBorderStyle(currentNodeIdx, QCss::BottomEdge) != QTextFrameFormat::BorderStyle_None) + fmt.setBottomBorderStyle(tableCellBorderStyle(currentNodeIdx, QCss::BottomEdge)); + if (tableCellBorderStyle(currentNodeIdx, QCss::LeftEdge) != QTextFrameFormat::BorderStyle_None) + fmt.setLeftBorderStyle(tableCellBorderStyle(currentNodeIdx, QCss::LeftEdge)); + if (tableCellBorderBrush(currentNodeIdx, QCss::TopEdge) != Qt::NoBrush) + fmt.setTopBorderBrush(tableCellBorderBrush(currentNodeIdx, QCss::TopEdge)); + if (tableCellBorderBrush(currentNodeIdx, QCss::RightEdge) != Qt::NoBrush) + fmt.setRightBorderBrush(tableCellBorderBrush(currentNodeIdx, QCss::RightEdge)); + if (tableCellBorderBrush(currentNodeIdx, QCss::BottomEdge) != Qt::NoBrush) + fmt.setBottomBorderBrush(tableCellBorderBrush(currentNodeIdx, QCss::BottomEdge)); + if (tableCellBorderBrush(currentNodeIdx, QCss::LeftEdge) != Qt::NoBrush) + fmt.setLeftBorderBrush(tableCellBorderBrush(currentNodeIdx, QCss::LeftEdge)); + cell.setFormat(fmt); cursor.setPosition(cell.firstPosition()); diff --git a/src/gui/text/qtexthtmlparser.cpp b/src/gui/text/qtexthtmlparser.cpp index 43b32e7e2c..5d37982a8b 100644 --- a/src/gui/text/qtexthtmlparser.cpp +++ b/src/gui/text/qtexthtmlparser.cpp @@ -491,12 +491,19 @@ QTextHtmlParserNode::QTextHtmlParserNode() listStyle(QTextListFormat::ListStyleUndefined), imageWidth(-1), imageHeight(-1), tableBorder(0), tableCellRowSpan(1), tableCellColSpan(1), tableCellSpacing(2), tableCellPadding(0), borderBrush(Qt::darkGray), borderStyle(QTextFrameFormat::BorderStyle_Outset), + borderCollapse(false), userState(-1), cssListIndent(0), wsm(WhiteSpaceModeUndefined) { margin[QTextHtmlParser::MarginLeft] = 0; margin[QTextHtmlParser::MarginRight] = 0; margin[QTextHtmlParser::MarginTop] = 0; margin[QTextHtmlParser::MarginBottom] = 0; + + for (int i = 0; i < 4; ++i) { + tableCellBorderStyle[i] = QTextFrameFormat::BorderStyle_None; + tableCellBorder[i] = 0; + tableCellBorderBrush[i] = Qt::NoBrush; + } } void QTextHtmlParser::dumpHtml() @@ -1169,6 +1176,25 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector QCss::ValueExtractor extractor(declarations); extractor.extractBox(margin, padding); + if (id == Html_td || id == Html_th) { + QCss::BorderStyle cssStyles[4]; + int cssBorder[4]; + QSize cssRadii[4]; // unused + for (int i = 0; i < 4; ++i) { + cssStyles[i] = QCss::BorderStyle_None; + cssBorder[i] = 0; + } + // this will parse (and cache) "border-width" as a list so the + // QCss::BorderWidth parsing below which expects a single value + // will not work as expected - which in this case does not matter + // because tableBorder is not relevant for cells. + extractor.extractBorder(cssBorder, tableCellBorderBrush, cssStyles, cssRadii); + for (int i = 0; i < 4; ++i) { + tableCellBorderStyle[i] = static_cast(cssStyles[i] - 1); + tableCellBorder[i] = static_cast(cssBorder[i]); + } + } + for (int i = 0; i < declarations.count(); ++i) { const QCss::Declaration &decl = declarations.at(i); if (decl.d->values.isEmpty()) continue; @@ -1186,6 +1212,9 @@ void QTextHtmlParserNode::applyCssDeclarations(const QVector case QCss::BorderWidth: tableBorder = extractor.lengthValue(decl); break; + case QCss::BorderCollapse: + borderCollapse = decl.borderCollapseValue(); + break; case QCss::Color: charFormat.setForeground(decl.colorValue()); break; case QCss::Float: cssFloat = QTextFrameFormat::InFlow; @@ -1654,6 +1683,11 @@ void QTextHtmlParser::applyAttributes(const QStringList &attributes) if (!c.isValid()) qWarning("QTextHtmlParser::applyAttributes: Unknown color name '%s'",value.toLatin1().constData()); node->charFormat.setBackground(c); + } else if (key == QLatin1String("bordercolor")) { + QColor c; c.setNamedColor(value); + if (!c.isValid()) + qWarning("QTextHtmlParser::applyAttributes: Unknown color name '%s'",value.toLatin1().constData()); + node->borderBrush = c; } else if (key == QLatin1String("background")) { node->applyBackgroundImage(value, resourceProvider); } else if (key == QLatin1String("cellspacing")) { diff --git a/src/gui/text/qtexthtmlparser_p.h b/src/gui/text/qtexthtmlparser_p.h index ff5f5b4c35..31f558709f 100644 --- a/src/gui/text/qtexthtmlparser_p.h +++ b/src/gui/text/qtexthtmlparser_p.h @@ -195,8 +195,12 @@ struct QTextHtmlParserNode { int tableCellColSpan; qreal tableCellSpacing; qreal tableCellPadding; + qreal tableCellBorder[4]; + QBrush tableCellBorderBrush[4]; + QTextFrameFormat::BorderStyle tableCellBorderStyle[4]; QBrush borderBrush; QTextFrameFormat::BorderStyle borderStyle; + bool borderCollapse; int userState; int cssListIndent; @@ -290,6 +294,10 @@ public: inline int leftPadding(int i) const { return at(i).padding[MarginLeft]; } inline int rightPadding(int i) const { return at(i).padding[MarginRight]; } + inline qreal tableCellBorder(int i, int edge) const { return at(i).tableCellBorder[edge]; } + inline QTextFrameFormat::BorderStyle tableCellBorderStyle(int i, int edge) const { return at(i).tableCellBorderStyle[edge]; } + inline QBrush tableCellBorderBrush(int i, int edge) const { return at(i).tableCellBorderBrush[edge]; } + void dumpHtml(); void parse(const QString &text, const QTextDocument *resourceProvider); diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp index 58810f73c1..52e56feb5a 100644 --- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp +++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp @@ -50,6 +50,7 @@ #include #include "common.h" +// #define DEBUG_WRITE_OUTPUT QT_FORWARD_DECLARE_CLASS(QTextDocument) @@ -196,6 +197,7 @@ private: void backgroundImage_checkExpectedHtml(const QTextDocument &doc); void buildRegExpData(); static QString cssFontSizeString(const QFont &font); + void writeActualAndExpected(const char* testTag, const QString &actual, const QString &expected); QTextDocument *doc; QTextCursor cursor; @@ -224,6 +226,27 @@ QString tst_QTextDocument::cssFontSizeString(const QFont &font) : QString::number(font.pixelSize()) + QStringLiteral("px"); } +void tst_QTextDocument::writeActualAndExpected(const char *testTag, const QString &actual, const QString &expected) +{ +#ifdef DEBUG_WRITE_OUTPUT + { + QFile out(QDir::temp().absoluteFilePath(QLatin1String(testTag) + QLatin1String("-actual.html"))); + out.open(QFile::WriteOnly); + out.write(actual.toUtf8()); + out.close(); + } { + QFile out(QDir::temp().absoluteFilePath(QLatin1String(testTag) + QLatin1String("-expected.html"))); + out.open(QFile::WriteOnly); + out.write(expected.toUtf8()); + out.close(); + } +#else + Q_UNUSED(testTag) + Q_UNUSED(actual) + Q_UNUSED(expected) +#endif +} + // Testing get/set functions void tst_QTextDocument::getSetCheck() { @@ -1765,6 +1788,8 @@ void tst_QTextDocument::toHtml() QString output = doc->toHtml(); + writeActualAndExpected(QTest::currentDataTag(), output, expectedOutput); + QCOMPARE(output, expectedOutput); QDomDocument document; @@ -1962,6 +1987,8 @@ void tst_QTextDocument::toHtmlRootFrameProperties() expectedOutput.replace("DEFAULTBLOCKSTYLE", "style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\""); expectedOutput.append(htmlTail); + writeActualAndExpected(QTest::currentTestFunction(), doc.toHtml(), expectedOutput); + QCOMPARE(doc.toHtml(), expectedOutput); } @@ -2734,6 +2761,8 @@ void tst_QTextDocument::backgroundImage_checkExpectedHtml(const QTextDocument &d .arg(defaultFont.weight() * 8) .arg((defaultFont.italic() ? "italic" : "normal")); + writeActualAndExpected(QTest::currentTestFunction(), doc.toHtml(), expectedHtml); + QCOMPARE(doc.toHtml(), expectedHtml); } diff --git a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp index c5243d1535..b6917f1208 100644 --- a/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp +++ b/tests/auto/gui/text/qtextdocumentfragment/tst_qtextdocumentfragment.cpp @@ -181,6 +181,11 @@ private slots: void html_tableCellBackground(); void css_bodyBackground(); void css_tableCellBackground(); + void css_tableCellBorder(); + void css_tableCellBorderShorthand(); + void css_tableCellAllBordersShorthand(); + void css_tableCellOverrideOneBorder(); + void css_tableBorderCollapse(); void css_fontWeight(); void css_float(); void css_textIndent(); @@ -1753,6 +1758,135 @@ void tst_QTextDocumentFragment::css_tableCellBackground() QCOMPARE(cell.format().background().style(), Qt::TexturePattern); } +void tst_QTextDocumentFragment::css_tableCellBorder() +{ + const char html[] = "
Foo
"; + doc->setHtml(html); + + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::NextBlock); + QTextTable *table = cursor.currentTable(); + QVERIFY(table); + + QTextTableCell cell = table->cellAt(0, 0); + QTextTableCellFormat cellFormat = cell.format().toTableCellFormat(); + QCOMPARE(cellFormat.leftBorder(), qreal(4)); + QCOMPARE(cellFormat.leftBorderBrush(), QBrush(QColor("red"))); + QCOMPARE(cellFormat.leftBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.rightBorder(), qreal(8)); + QCOMPARE(cellFormat.rightBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.rightBorderStyle(), QTextFrameFormat::BorderStyle_Groove); + + QCOMPARE(cellFormat.bottomBorder(), qreal(8)); + QCOMPARE(cellFormat.bottomBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.bottomBorderStyle(), QTextFrameFormat::BorderStyle_Groove); + + QCOMPARE(cellFormat.topBorder(), qreal(8)); + QCOMPARE(cellFormat.topBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.topBorderStyle(), QTextFrameFormat::BorderStyle_Groove); +} + +void tst_QTextDocumentFragment::css_tableCellBorderShorthand() +{ + const char html[] = "
Foo
"; + doc->setHtml(html); + + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::NextBlock); + QTextTable *table = cursor.currentTable(); + QVERIFY(table); + + QTextTableCell cell = table->cellAt(0, 0); + QTextTableCellFormat cellFormat = cell.format().toTableCellFormat(); + QCOMPARE(cellFormat.leftBorder(), qreal(1)); + QCOMPARE(cellFormat.leftBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.leftBorderStyle(), QTextFrameFormat::BorderStyle_Solid); + + QCOMPARE(cellFormat.rightBorder(), qreal(2)); + QCOMPARE(cellFormat.rightBorderBrush(), QBrush(QColor("red"))); + QCOMPARE(cellFormat.rightBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.bottomBorder(), qreal(3)); + QCOMPARE(cellFormat.bottomBorderBrush(), QBrush(QColor("yellow"))); + QCOMPARE(cellFormat.bottomBorderStyle(), QTextFrameFormat::BorderStyle_Dotted); + + QCOMPARE(cellFormat.topBorder(), qreal(4)); + QCOMPARE(cellFormat.topBorderBrush(), QBrush(QColor("blue"))); + QCOMPARE(cellFormat.topBorderStyle(), QTextFrameFormat::BorderStyle_DotDash); +} + +void tst_QTextDocumentFragment::css_tableCellAllBordersShorthand() +{ + const char html[] = "
Foo
"; + doc->setHtml(html); + + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::NextBlock); + QTextTable *table = cursor.currentTable(); + QVERIFY(table); + + QTextTableCell cell = table->cellAt(0, 0); + QTextTableCellFormat cellFormat = cell.format().toTableCellFormat(); + QCOMPARE(cellFormat.leftBorder(), qreal(2)); + QCOMPARE(cellFormat.leftBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.leftBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.rightBorder(), qreal(2)); + QCOMPARE(cellFormat.rightBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.rightBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.bottomBorder(), qreal(2)); + QCOMPARE(cellFormat.bottomBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.bottomBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.topBorder(), qreal(2)); + QCOMPARE(cellFormat.topBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.topBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); +} + +void tst_QTextDocumentFragment::css_tableCellOverrideOneBorder() +{ + const char html[] = "
Foo
"; + doc->setHtml(html); + + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::NextBlock); + QTextTable *table = cursor.currentTable(); + QVERIFY(table); + + QTextTableCell cell = table->cellAt(0, 0); + QTextTableCellFormat cellFormat = cell.format().toTableCellFormat(); + QCOMPARE(cellFormat.leftBorder(), qreal(4)); + QCOMPARE(cellFormat.leftBorderBrush(), QBrush(QColor("red"))); + QCOMPARE(cellFormat.leftBorderStyle(), QTextFrameFormat::BorderStyle_Solid); + + QCOMPARE(cellFormat.rightBorder(), qreal(2)); + QCOMPARE(cellFormat.rightBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.rightBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.bottomBorder(), qreal(2)); + QCOMPARE(cellFormat.bottomBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.bottomBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); + + QCOMPARE(cellFormat.topBorder(), qreal(2)); + QCOMPARE(cellFormat.topBorderBrush(), QBrush(QColor("green"))); + QCOMPARE(cellFormat.topBorderStyle(), QTextFrameFormat::BorderStyle_Dashed); +} + +void tst_QTextDocumentFragment::css_tableBorderCollapse() +{ + const char html[] = "
Foo
"; + doc->setHtml(html); + + cursor.movePosition(QTextCursor::Start); + cursor.movePosition(QTextCursor::NextBlock); + QTextTable *table = cursor.currentTable(); + QVERIFY(table); + + QCOMPARE(table->format().borderCollapse(), true); +} + void tst_QTextDocumentFragment::css_cellPaddings() { const char html[] = "" diff --git a/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp b/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp index f21b969aa7..7b2ff4cc10 100644 --- a/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp +++ b/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp @@ -50,6 +50,8 @@ typedef QList IntList; QT_FORWARD_DECLARE_CLASS(QTextDocument) +Q_DECLARE_METATYPE(QTextFrameFormat::BorderStyle); + class tst_QTextTable : public QObject { Q_OBJECT @@ -95,6 +97,8 @@ private slots: #if !defined(QT_NO_PRINTER) && defined(QT_BUILD_INTERNAL) void QTBUG31330_renderBackground(); #endif + void checkBorderAttributes_data(); + void checkBorderAttributes(); private: QTextTable *create2x2Table(); @@ -1170,5 +1174,109 @@ void tst_QTextTable::QTBUG31330_renderBackground() } #endif +void tst_QTextTable::checkBorderAttributes_data() +{ + QTest::addColumn("html"); + QTest::addColumn("topBorderWidth"); + QTest::addColumn("bottomBorderWidth"); + QTest::addColumn("leftBorderWidth"); + QTest::addColumn("rightBorderWidth"); + QTest::addColumn("topBorderStyle"); + QTest::addColumn("bottomBorderStyle"); + QTest::addColumn("leftBorderStyle"); + QTest::addColumn("rightBorderStyle"); + QTest::addColumn("topBorderBrush"); + QTest::addColumn("bottomBorderBrush"); + QTest::addColumn("leftBorderBrush"); + QTest::addColumn("rightBorderBrush"); + + const QString tableHtmlStart = QStringLiteral("" + "
Foo
" + "
OneTwo
ThreeFour
"); + QTest::newRow("1px-solid-colors") + << QString("%1" + "td {" + "border-top: 1px solid red;" + "border-bottom: 1px solid blue;" + "border-left: 1px solid green;" + "border-right: 1px solid yellow;" + "}" + "%2").arg(tableHtmlStart).arg(tableHtmlEnd) + << 1.0 << 1.0 << 1.0 << 1.0 + << QTextFrameFormat::BorderStyle_Solid << QTextFrameFormat::BorderStyle_Solid + << QTextFrameFormat::BorderStyle_Solid << QTextFrameFormat::BorderStyle_Solid + << QBrush(Qt::red) << QBrush(Qt::blue) << QBrush(Qt::darkGreen) << QBrush(Qt::yellow); + QTest::newRow("MixedWidth-solid-colors") + << QString("%1" + "td {" + "border-top: 1px solid red;" + "border-bottom: 2px solid blue;" + "border-left: 3px solid green;" + "border-right: 4px solid yellow;" + "}" + "%2").arg(tableHtmlStart).arg(tableHtmlEnd) + << 1.0 << 2.0 << 3.0 << 4.0 + << QTextFrameFormat::BorderStyle_Solid << QTextFrameFormat::BorderStyle_Solid + << QTextFrameFormat::BorderStyle_Solid << QTextFrameFormat::BorderStyle_Solid + << QBrush(Qt::red) << QBrush(Qt::blue) << QBrush(Qt::darkGreen) << QBrush(Qt::yellow); + QTest::newRow("MixedWidth-MixedStyle-colors") + << QString("%1" + "td {" + "border-top: 1px solid red;" + "border-bottom: 2px dotted blue;" + "border-left: 3px dashed green;" + "border-right: 4px inset yellow;" + "}" + "%2").arg(tableHtmlStart).arg(tableHtmlEnd) + << 1.0 << 2.0 << 3.0 << 4.0 + << QTextFrameFormat::BorderStyle_Solid << QTextFrameFormat::BorderStyle_Dotted + << QTextFrameFormat::BorderStyle_Dashed << QTextFrameFormat::BorderStyle_Inset + << QBrush(Qt::red) << QBrush(Qt::blue) << QBrush(Qt::darkGreen) << QBrush(Qt::yellow); +} + +void tst_QTextTable::checkBorderAttributes() +{ + QFETCH(QString, html); + QFETCH(qreal, topBorderWidth); + QFETCH(qreal, bottomBorderWidth); + QFETCH(qreal, leftBorderWidth); + QFETCH(qreal, rightBorderWidth); + QFETCH(QTextFrameFormat::BorderStyle, topBorderStyle); + QFETCH(QTextFrameFormat::BorderStyle, bottomBorderStyle); + QFETCH(QTextFrameFormat::BorderStyle, leftBorderStyle); + QFETCH(QTextFrameFormat::BorderStyle, rightBorderStyle); + QFETCH(QBrush, topBorderBrush); + QFETCH(QBrush, bottomBorderBrush); + QFETCH(QBrush, leftBorderBrush); + QFETCH(QBrush, rightBorderBrush); + + QTextDocument doc; + doc.setHtml(html); + QTextCursor cursor(doc.firstBlock()); + cursor.movePosition(QTextCursor::Right); + + QTextTable *currentTable = cursor.currentTable(); + QVERIFY(currentTable); + for (int row = 0; row < 2; row++) { + for (int column = 0; column < 2; column++) { + QTextTableCell cell = currentTable->cellAt(row, column); + QTextCharFormat cellFormat = cell.format(); + QCOMPARE(cellFormat.doubleProperty(QTextFormat::TableCellTopBorder), topBorderWidth); + QCOMPARE(cellFormat.doubleProperty(QTextFormat::TableCellBottomBorder), bottomBorderWidth); + QCOMPARE(cellFormat.doubleProperty(QTextFormat::TableCellLeftBorder), leftBorderWidth); + QCOMPARE(cellFormat.doubleProperty(QTextFormat::TableCellRightBorder), rightBorderWidth); + QCOMPARE(cellFormat.property(QTextFormat::TableCellTopBorderStyle), topBorderStyle); + QCOMPARE(cellFormat.property(QTextFormat::TableCellBottomBorderStyle), bottomBorderStyle); + QCOMPARE(cellFormat.property(QTextFormat::TableCellLeftBorderStyle), leftBorderStyle); + QCOMPARE(cellFormat.property(QTextFormat::TableCellRightBorderStyle), rightBorderStyle); + QCOMPARE(cellFormat.brushProperty(QTextFormat::TableCellTopBorderBrush), topBorderBrush); + QCOMPARE(cellFormat.brushProperty(QTextFormat::TableCellBottomBorderBrush), bottomBorderBrush); + QCOMPARE(cellFormat.brushProperty(QTextFormat::TableCellLeftBorderBrush), leftBorderBrush); + QCOMPARE(cellFormat.brushProperty(QTextFormat::TableCellRightBorderBrush), rightBorderBrush); + } + } +} + QTEST_MAIN(tst_QTextTable) #include "tst_qtexttable.moc" -- cgit v1.2.3 From f4db3811694fe032b9fbf237b869fa842e094883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 14 Aug 2019 12:39:27 +0200 Subject: Get rid of QWidgetBackingStoreTracker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It was added for Symbian almost 10 years ago (d7057e7c1f1a), for a somewhat dubious use-case. The Symbian code is since long gone (ae30d7141), so the remaining pieces are just adding complexity to the already intricate workings of the QtWidgets backingstore/painting logic. Task-number: QTBUG-8697 Change-Id: I82af610a8ac26719c588ac63f06b4501f59b400d Reviewed-by: Paul Olav Tvete (cherry picked from commit 2e0b0be2ce30394269559590b42c81de27301ee6) Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qwidget.cpp | 105 ++-------------------- src/widgets/kernel/qwidget_p.h | 48 +--------- src/widgets/kernel/qwidgetbackingstore.cpp | 10 +-- src/widgets/kernel/qwidgetwindow.cpp | 2 +- tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 9 +- 5 files changed, 18 insertions(+), 156 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index ba9b2a0487..066dfaa183 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -146,91 +146,6 @@ static inline bool qRectIntersects(const QRect &r1, const QRect &r2) extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); // qapplication.cpp extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp -/*! - \internal - \class QWidgetBackingStoreTracker - \brief Class which allows tracking of which widgets are using a given backing store - - QWidgetBackingStoreTracker is a thin wrapper around a QWidgetBackingStore pointer, - which maintains a list of the QWidgets which are currently using the backing - store. This list is modified via the registerWidget and unregisterWidget functions. - */ - -QWidgetBackingStoreTracker::QWidgetBackingStoreTracker() - : m_ptr(0) -{ - -} - -QWidgetBackingStoreTracker::~QWidgetBackingStoreTracker() -{ - delete m_ptr; -} - -/*! - \internal - Destroy the contained QWidgetBackingStore, if not null, and clear the list of - widgets using the backing store, then create a new QWidgetBackingStore, providing - the QWidget. - */ -void QWidgetBackingStoreTracker::create(QWidget *widget) -{ - destroy(); - m_ptr = new QWidgetBackingStore(widget); -} - -/*! - \internal - Destroy the contained QWidgetBackingStore, if not null, and clear the list of - widgets using the backing store. - */ -void QWidgetBackingStoreTracker::destroy() -{ - delete m_ptr; - m_ptr = 0; - m_widgets.clear(); -} - -/*! - \internal - Add the widget to the list of widgets currently using the backing store. - If the widget was already in the list, this function is a no-op. - */ -void QWidgetBackingStoreTracker::registerWidget(QWidget *w) -{ - Q_ASSERT(m_ptr); - Q_ASSERT(w->internalWinId()); - Q_ASSERT(qt_widget_private(w)->maybeBackingStore() == m_ptr); - m_widgets.insert(w); -} - -/*! - \internal - Remove the widget from the list of widgets currently using the backing store. - If the widget was in the list, and removing it causes the list to be empty, - the backing store is deleted. - If the widget was not in the list, this function is a no-op. - */ -void QWidgetBackingStoreTracker::unregisterWidget(QWidget *w) -{ - if (m_widgets.remove(w) && m_widgets.isEmpty()) { - delete m_ptr; - m_ptr = 0; - } -} - -/*! - \internal - Recursively remove widget and all of its descendents. - */ -void QWidgetBackingStoreTracker::unregisterWidgetSubtree(QWidget *widget) -{ - unregisterWidget(widget); - foreach (QObject *child, widget->children()) - if (QWidget *childWidget = qobject_cast(child)) - unregisterWidgetSubtree(childWidget); -} - QWidgetPrivate::QWidgetPrivate(int version) : QObjectPrivate(version) , extra(0) @@ -1364,10 +1279,8 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) d->create(); // a real toplevel window needs a backing store - if (isWindow() && windowType() != Qt::Desktop) { - d->topData()->backingStoreTracker.destroy(); - d->topData()->backingStoreTracker.create(this); - } + if (isWindow() && windowType() != Qt::Desktop) + d->topData()->widgetBackingStore.reset(new QWidgetBackingStore(this)); d->setModal_sys(); @@ -1891,7 +1804,7 @@ void QWidgetPrivate::deleteTLSysExtra() //the qplatformbackingstore may hold a reference to the window, so the backingstore //needs to be deleted first. - extra->topextra->backingStoreTracker.destroy(); + extra->topextra->widgetBackingStore.reset(nullptr); deleteBackingStore(this); #ifndef QT_NO_OPENGL extra->topextra->widgetTextures.clear(); @@ -10755,16 +10668,8 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) if (newParent && isAncestorOf(focusWidget())) focusWidget()->clearFocus(); - QTLWExtra *oldTopExtra = window()->d_func()->maybeTopData(); - QWidgetBackingStoreTracker *oldBsTracker = oldTopExtra ? &oldTopExtra->backingStoreTracker : 0; - d->setParent_sys(parent, f); - QTLWExtra *topExtra = window()->d_func()->maybeTopData(); - QWidgetBackingStoreTracker *bsTracker = topExtra ? &topExtra->backingStoreTracker : 0; - if (oldBsTracker && oldBsTracker != bsTracker) - oldBsTracker->unregisterWidgetSubtree(this); - if (desktopWidget) parent = 0; @@ -11134,7 +11039,7 @@ void QWidgetPrivate::repaint(T r) QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->backingStoreTracker->markDirty(r, q, QWidgetBackingStore::UpdateNow); + tlwExtra->widgetBackingStore->markDirty(r, q, QWidgetBackingStore::UpdateNow); } /*! @@ -11209,7 +11114,7 @@ void QWidgetPrivate::update(T r) QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->backingStoreTracker->markDirty(clipped, q); + tlwExtra->widgetBackingStore->markDirty(clipped, q); } /*! diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 970f5c0378..b4a9d283db 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -116,56 +116,12 @@ protected: QRegion m_region; }; - - -class Q_AUTOTEST_EXPORT QWidgetBackingStoreTracker -{ - -public: - QWidgetBackingStoreTracker(); - ~QWidgetBackingStoreTracker(); - - void create(QWidget *tlw); - void destroy(); - - void registerWidget(QWidget *w); - void unregisterWidget(QWidget *w); - void unregisterWidgetSubtree(QWidget *w); - - inline QWidgetBackingStore* data() - { - return m_ptr; - } - - inline QWidgetBackingStore* operator->() - { - return m_ptr; - } - - inline QWidgetBackingStore& operator*() - { - return *m_ptr; - } - - inline operator bool() const - { - return (nullptr != m_ptr); - } - -private: - Q_DISABLE_COPY_MOVE(QWidgetBackingStoreTracker) - -private: - QWidgetBackingStore* m_ptr; - QSet m_widgets; -}; - struct QTLWExtra { // *************************** Cross-platform variables ***************************** // Regular pointers (keep them together to avoid gaps on 64 bits architectures). std::unique_ptr icon; // widget icon - QWidgetBackingStoreTracker backingStoreTracker; + std::unique_ptr widgetBackingStore; QBackingStore *backingStore; QPainter *sharedPainter; QWidgetWindow *window; @@ -1028,7 +984,7 @@ inline QWidgetBackingStore *QWidgetPrivate::maybeBackingStore() const { Q_Q(const QWidget); QTLWExtra *x = q->window()->d_func()->maybeTopData(); - return x ? x->backingStoreTracker.data() : nullptr; + return x ? x->widgetBackingStore.get() : nullptr; } QT_END_NAMESPACE diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index 009ffb17a1..1b963010d1 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -300,7 +300,7 @@ void QWidgetBackingStore::unflushPaint(QWidget *widget, const QRegion &rgn) if (!tlwExtra) return; - qt_flush(widget, rgn, tlwExtra->backingStoreTracker->store, tlw, 0, tlw->d_func()->maybeBackingStore()); + qt_flush(widget, rgn, tlwExtra->widgetBackingStore->store, tlw, 0, tlw->d_func()->maybeBackingStore()); } #endif // QT_NO_PAINT_DEBUG @@ -800,7 +800,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) invalidateBackingStore((newRect & clipR).translated(-data.crect.topLeft())); } else { - QWidgetBackingStore *wbs = x->backingStoreTracker.data(); + QWidgetBackingStore *wbs = x->widgetBackingStore.get(); QRegion childExpose(newRect & clipR); QRegion overlappedExpose; @@ -864,7 +864,7 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) if (x->inTopLevelResize) return; - QWidgetBackingStore *wbs = x->backingStoreTracker.data(); + QWidgetBackingStore *wbs = x->widgetBackingStore.get(); if (!wbs) return; @@ -1528,10 +1528,10 @@ void QWidgetPrivate::invalidateBackingStore(const T &r) if (masked.isEmpty()) return; - tlwExtra->backingStoreTracker->markDirty(masked, q, + tlwExtra->widgetBackingStore->markDirty(masked, q, QWidgetBackingStore::UpdateLater, QWidgetBackingStore::BufferInvalid); } else { - tlwExtra->backingStoreTracker->markDirty(clipped, q, + tlwExtra->widgetBackingStore->markDirty(clipped, q, QWidgetBackingStore::UpdateLater, QWidgetBackingStore::BufferInvalid); } } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 5537ff497a..a01a377956 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -770,7 +770,7 @@ void QWidgetWindow::repaintWindow() QTLWExtra *tlwExtra = m_widget->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->backingStoreTracker->markDirty(m_widget->rect(), m_widget, + tlwExtra->widgetBackingStore->markDirty(m_widget->rect(), m_widget, QWidgetBackingStore::UpdateNow, QWidgetBackingStore::BufferInvalid); } diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index bfc2631842..715bbbec0f 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -9564,7 +9565,7 @@ void tst_QWidget::destroyBackingStore() QTRY_VERIFY(w.numPaintEvents > 0); w.reset(); w.update(); - qt_widget_private(&w)->topData()->backingStoreTracker.create(&w); + qt_widget_private(&w)->topData()->widgetBackingStore.reset(new QWidgetBackingStore(&w)); w.update(); QApplication::processEvents(); @@ -9584,7 +9585,7 @@ QWidgetBackingStore* backingStore(QWidget &widget) QWidgetBackingStore *backingStore = nullptr; #ifdef QT_BUILD_INTERNAL if (QTLWExtra *topExtra = qt_widget_private(&widget)->maybeTopData()) - backingStore = topExtra->backingStoreTracker.data(); + backingStore = topExtra->widgetBackingStore.get(); #endif return backingStore; } @@ -9784,12 +9785,12 @@ class scrollWidgetWBS : public QWidget public: void deleteBackingStore() { - static_cast(d_ptr.data())->topData()->backingStoreTracker.destroy(); + static_cast(d_ptr.data())->topData()->widgetBackingStore.reset(nullptr); } void enableBackingStore() { if (!static_cast(d_ptr.data())->maybeBackingStore()) { - static_cast(d_ptr.data())->topData()->backingStoreTracker.create(this); + static_cast(d_ptr.data())->topData()->widgetBackingStore.reset(new QWidgetBackingStore(this)); static_cast(d_ptr.data())->invalidateBackingStore(this->rect()); repaint(); } -- cgit v1.2.3 From dcdfb6908db0f83cbc4e550859f56ee58a6b3420 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Wed, 14 Aug 2019 08:05:53 +0200 Subject: Remove workaround for compilers not supporting thread_local With C++11, all compilers support thread_local, which replaces the non- standardized __thread attribute as a storage class. The storage class was specifically introduced so that applications do not have to deal with pthread APIs for TLS key management. We still need to have some of that logic for adopting foreign threads, but we can rely on thread_local so that we get a fast implementation of QThread::currentThread() on all platforms. Change-Id: Iba2b35d014044c4ab317a0e127c5d1f1fa4ecd4a Reviewed-by: Marc Mutz Reviewed-by: Lars Knoll --- src/corelib/thread/qthread_unix.cpp | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp index 38e9c1c3ec..cb3c0d6bb1 100644 --- a/src/corelib/thread/qthread_unix.cpp +++ b/src/corelib/thread/qthread_unix.cpp @@ -108,20 +108,8 @@ Q_STATIC_ASSERT(sizeof(pthread_t) <= sizeof(Qt::HANDLE)); enum { ThreadPriorityResetFlag = 0x80000000 }; -#if defined(Q_OS_LINUX) && defined(__GLIBC__) && (defined(Q_CC_GNU) || defined(Q_CC_INTEL)) && !defined(QT_LINUXBASE) -/* LSB doesn't have __thread, https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=993 */ -#define HAVE_TLS -#endif -#if defined(Q_CC_XLC) || defined (Q_CC_SUN) -#define HAVE_TLS -#endif -#if defined(Q_OS_RTEMS) -#define HAVE_TLS -#endif -#ifdef HAVE_TLS -static __thread QThreadData *currentThreadData = 0; -#endif +static thread_local QThreadData *currentThreadData = 0; static pthread_once_t current_thread_data_once = PTHREAD_ONCE_INIT; static pthread_key_t current_thread_data_key; @@ -182,28 +170,19 @@ Q_DESTRUCTOR_FUNCTION(destroy_current_thread_data_key) // Utility functions for getting, setting and clearing thread specific data. static QThreadData *get_thread_data() { -#ifdef HAVE_TLS return currentThreadData; -#else - pthread_once(¤t_thread_data_once, create_current_thread_data_key); - return reinterpret_cast(pthread_getspecific(current_thread_data_key)); -#endif } static void set_thread_data(QThreadData *data) { -#ifdef HAVE_TLS currentThreadData = data; -#endif pthread_once(¤t_thread_data_once, create_current_thread_data_key); pthread_setspecific(current_thread_data_key, data); } static void clear_thread_data() { -#ifdef HAVE_TLS currentThreadData = 0; -#endif pthread_setspecific(current_thread_data_key, 0); } -- cgit v1.2.3 From 8052755fd7581d70802f651d88b7af8447432d75 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 8 Aug 2019 16:12:46 +0200 Subject: Add means to configure HTTP/2 protocol handler Similar to TLS configuration that we can use on QNetworkRequest, we can configure different options in our HTTP/2 handling by providing QNetworkAccessManager with h2 configuration. Previously, it was only possible internally in our auto-test - a hack with QObject's properties and a private class. Now it's time to provide a public API for this. [ChangeLog][QtNetwork][QNetworkRequest] Add an ability to configure HTTP/2 protocol Change-Id: I80266a74f6dcdfabb7fc05ed1dce17897bcda886 Reviewed-by: Timur Pocheptsov --- src/network/access/access.pri | 6 +- src/network/access/http2/http2frames.cpp | 4 +- src/network/access/http2/http2protocol.cpp | 114 ++----- src/network/access/http2/http2protocol_p.h | 64 +--- src/network/access/qhttp2configuration.cpp | 343 +++++++++++++++++++++ src/network/access/qhttp2configuration.h | 99 ++++++ src/network/access/qhttp2protocolhandler.cpp | 44 +-- src/network/access/qhttp2protocolhandler_p.h | 25 +- src/network/access/qhttpnetworkconnection.cpp | 11 +- src/network/access/qhttpnetworkconnection_p.h | 8 +- .../access/qhttpnetworkconnectionchannel.cpp | 6 +- src/network/access/qhttpthreaddelegate.cpp | 4 +- src/network/access/qhttpthreaddelegate_p.h | 3 +- src/network/access/qnetworkaccessmanager.cpp | 3 +- src/network/access/qnetworkreplyhttpimpl.cpp | 6 +- src/network/access/qnetworkrequest.cpp | 58 +++- src/network/access/qnetworkrequest.h | 4 + tests/auto/network/access/http2/http2srv.cpp | 6 +- tests/auto/network/access/http2/http2srv.h | 11 +- tests/auto/network/access/http2/tst_http2.cpp | 68 ++-- 20 files changed, 644 insertions(+), 243 deletions(-) create mode 100644 src/network/access/qhttp2configuration.cpp create mode 100644 src/network/access/qhttp2configuration.h diff --git a/src/network/access/access.pri b/src/network/access/access.pri index 8a92308f12..87fb82b1a7 100644 --- a/src/network/access/access.pri +++ b/src/network/access/access.pri @@ -24,7 +24,8 @@ HEADERS += \ access/qabstractnetworkcache.h \ access/qnetworkfile_p.h \ access/qhsts_p.h \ - access/qhstspolicy.h + access/qhstspolicy.h \ + access/qhttp2configuration.h SOURCES += \ access/qnetworkaccessauthenticationmanager.cpp \ @@ -44,7 +45,8 @@ SOURCES += \ access/qabstractnetworkcache.cpp \ access/qnetworkfile.cpp \ access/qhsts.cpp \ - access/qhstspolicy.cpp + access/qhstspolicy.cpp \ + access/qhttp2configuration.cpp qtConfig(ftp) { HEADERS += \ diff --git a/src/network/access/http2/http2frames.cpp b/src/network/access/http2/http2frames.cpp index e695b4dd9e..ce33505683 100644 --- a/src/network/access/http2/http2frames.cpp +++ b/src/network/access/http2/http2frames.cpp @@ -305,7 +305,7 @@ FrameStatus FrameReader::read(QAbstractSocket &socket) return status; } - if (Http2PredefinedParameters::maxFrameSize < frame.payloadSize()) + if (Http2PredefinedParameters::maxPayloadSize < frame.payloadSize()) return FrameStatus::sizeError; frame.buffer.resize(frame.payloadSize() + frameHeaderSize); @@ -388,7 +388,7 @@ void FrameWriter::setPayloadSize(quint32 size) auto &buffer = frame.buffer; Q_ASSERT(buffer.size() >= frameHeaderSize); - Q_ASSERT(size < maxPayloadSize); + Q_ASSERT(size <= maxPayloadSize); buffer[0] = size >> 16; buffer[1] = size >> 8; diff --git a/src/network/access/http2/http2protocol.cpp b/src/network/access/http2/http2protocol.cpp index 0be72042c6..0290f9ac00 100644 --- a/src/network/access/http2/http2protocol.cpp +++ b/src/network/access/http2/http2protocol.cpp @@ -43,6 +43,8 @@ #include "private/qhttpnetworkrequest_p.h" #include "private/qhttpnetworkreply_p.h" +#include + #include #include @@ -62,88 +64,25 @@ const char Http2clientPreface[clientPrefaceLength] = 0x2e, 0x30, 0x0d, 0x0a, 0x0d, 0x0a, 0x53, 0x4d, 0x0d, 0x0a, 0x0d, 0x0a}; -// TODO: (in 5.11) - remove it! -const char *http2ParametersPropertyName = "QT_HTTP2_PARAMETERS_PROPERTY"; - -ProtocolParameters::ProtocolParameters() -{ - settingsFrameData[Settings::INITIAL_WINDOW_SIZE_ID] = qtDefaultStreamReceiveWindowSize; - settingsFrameData[Settings::ENABLE_PUSH_ID] = 0; -} - -bool ProtocolParameters::validate() const +Frame configurationToSettingsFrame(const QHttp2Configuration &config) { - // 0. Huffman/indexing: any values are valid and allowed. - - // 1. Session receive window size (client side): HTTP/2 starts from the - // default value of 64Kb, if a client code tries to set lesser value, - // the delta would become negative, but this is not allowed. - if (maxSessionReceiveWindowSize < qint32(defaultSessionWindowSize)) { - qCWarning(QT_HTTP2, "Session receive window must be at least 65535 bytes"); - return false; - } - - // 2. HEADER_TABLE_SIZE: we do not validate HEADER_TABLE_SIZE, considering - // all values as valid. RFC 7540 and 7541 do not provide any lower/upper - // limits. If it's 0 - we do not index anything, if it's too huge - a user - // who provided such a value can potentially have a huge memory footprint, - // up to them to decide. - - // 3. SETTINGS_ENABLE_PUSH: RFC 7540, 6.5.2, a value other than 0 or 1 will - // be treated by our peer as a PROTOCOL_ERROR. - if (settingsFrameData.contains(Settings::ENABLE_PUSH_ID) - && settingsFrameData[Settings::ENABLE_PUSH_ID] > 1) { - qCWarning(QT_HTTP2, "SETTINGS_ENABLE_PUSH can be only 0 or 1"); - return false; - } - - // 4. SETTINGS_MAX_CONCURRENT_STREAMS : RFC 7540 recommends 100 as the lower - // limit, says nothing about the upper limit. The RFC allows 0, but this makes - // no sense to us at all: there is no way a user can change this later and - // we'll not be able to get any responses on such a connection. - if (settingsFrameData.contains(Settings::MAX_CONCURRENT_STREAMS_ID) - && !settingsFrameData[Settings::MAX_CONCURRENT_STREAMS_ID]) { - qCWarning(QT_HTTP2, "MAX_CONCURRENT_STREAMS must be a positive number"); - return false; - } - - // 5. SETTINGS_INITIAL_WINDOW_SIZE. - if (settingsFrameData.contains(Settings::INITIAL_WINDOW_SIZE_ID)) { - const quint32 value = settingsFrameData[Settings::INITIAL_WINDOW_SIZE_ID]; - // RFC 7540, 6.5.2 (the upper limit). The lower limit is our own - we send - // SETTINGS frame only once and will not be able to change this 0, thus - // we'll suspend all streams. - if (!value || value > quint32(maxSessionReceiveWindowSize)) { - qCWarning(QT_HTTP2, "INITIAL_WINDOW_SIZE must be in the range " - "(0, 2^31-1]"); - return false; - } - } - - // 6. SETTINGS_MAX_FRAME_SIZE: RFC 7540, 6.5.2, a value outside of the range - // [2^14-1, 2^24-1] will be treated by our peer as a PROTOCOL_ERROR. - if (settingsFrameData.contains(Settings::MAX_FRAME_SIZE_ID)) { - const quint32 value = settingsFrameData[Settings::INITIAL_WINDOW_SIZE_ID]; - if (value < maxFrameSize || value > maxPayloadSize) { - qCWarning(QT_HTTP2, "MAX_FRAME_SIZE must be in the range [2^14, 2^24-1]"); - return false; - } - } - - // For SETTINGS_MAX_HEADER_LIST_SIZE RFC 7540 does not provide any specific - // numbers. It's clear, if a value is too small, no header can ever be sent - // by our peer at all. The default value is unlimited and we normally do not - // change this. - // - // Note: the size is calculated as the length of uncompressed (no HPACK) - // name + value + 32 bytes. - - return true; + // 6.5 SETTINGS + FrameWriter builder(FrameType::SETTINGS, FrameFlag::EMPTY, connectionStreamID); + // Server push: + builder.append(Settings::ENABLE_PUSH_ID); + builder.append(int(config.serverPushEnabled())); + // Stream receive window size: + builder.append(Settings::INITIAL_WINDOW_SIZE_ID); + builder.append(config.streamReceiveWindowSize()); + + // TODO: Max frame size; in future, if the need + // is proven, we can also set decoding table size + // and header list size. For now, defaults suffice. + return builder.outboundFrame(); } -QByteArray ProtocolParameters::settingsFrameToBase64() const +QByteArray settingsFrameToBase64(const Frame &frame) { - Frame frame(settingsFrame()); // SETTINGS frame's payload consists of pairs: // 2-byte-identifier | 4-byte-value == multiple of 6. Q_ASSERT(frame.payloadSize() && !(frame.payloadSize() % 6)); @@ -157,20 +96,7 @@ QByteArray ProtocolParameters::settingsFrameToBase64() const return wrapper.toBase64(QByteArray::Base64UrlEncoding | QByteArray::OmitTrailingEquals); } -Frame ProtocolParameters::settingsFrame() const -{ - // 6.5 SETTINGS - FrameWriter builder(FrameType::SETTINGS, FrameFlag::EMPTY, connectionStreamID); - for (auto it = settingsFrameData.cbegin(), end = settingsFrameData.cend(); - it != end; ++it) { - builder.append(it.key()); - builder.append(it.value()); - } - - return builder.outboundFrame(); -} - -void ProtocolParameters::addProtocolUpgradeHeaders(QHttpNetworkRequest *request) const +void appendProtocolUpgradeHeaders(const QHttp2Configuration &config, QHttpNetworkRequest *request) { Q_ASSERT(request); // RFC 2616, 14.10 @@ -184,8 +110,10 @@ void ProtocolParameters::addProtocolUpgradeHeaders(QHttpNetworkRequest *request) request->setHeaderField("Connection", value); // This we just (re)write. request->setHeaderField("Upgrade", "h2c"); + + const Frame frame(configurationToSettingsFrame(config)); // This we just (re)write. - request->setHeaderField("HTTP2-Settings", settingsFrameToBase64()); + request->setHeaderField("HTTP2-Settings", settingsFrameToBase64(frame)); } void qt_error(quint32 errorCode, QNetworkReply::NetworkError &error, diff --git a/src/network/access/http2/http2protocol_p.h b/src/network/access/http2/http2protocol_p.h index 7142d6f1fa..b0af5aa919 100644 --- a/src/network/access/http2/http2protocol_p.h +++ b/src/network/access/http2/http2protocol_p.h @@ -55,12 +55,14 @@ #include #include #include +#include // Different HTTP/2 constants/values as defined by RFC 7540. QT_BEGIN_NAMESPACE class QHttpNetworkRequest; +class QHttp2Configuration; class QHttpNetworkReply; class QByteArray; class QString; @@ -118,13 +120,19 @@ enum Http2PredefinedParameters connectionStreamID = 0, // HTTP/2, 5.1.1 frameHeaderSize = 9, // HTTP/2, 4.1 - // It's our max frame size we send in SETTINGS frame, - // it's also the default one and we also use it to later - // validate incoming frames: - maxFrameSize = 16384, // HTTP/2 6.5.2 + // The initial allowed payload size. We would use it as an + // upper limit for a frame payload we send, until our peer + // updates us with a larger SETTINGS_MAX_FRAME_SIZE. - defaultSessionWindowSize = 65535, // HTTP/2 6.5.2 + // The initial maximum payload size that an HTTP/2 frame + // can contain is 16384. It's also the minimal size that + // can be advertised via 'SETTINGS' frames. A real frame + // can have a payload smaller than 16384. + minPayloadLimit = 16384, // HTTP/2 6.5.2 + // The maximum allowed payload size. maxPayloadSize = (1 << 24) - 1, // HTTP/2 6.5.2 + + defaultSessionWindowSize = 65535, // HTTP/2 6.5.2 // Using 1000 (rather arbitrarily), just to // impose *some* upper limit: maxPeerConcurrentStreams = 1000, @@ -145,48 +153,9 @@ const quint32 lastValidStreamID((quint32(1) << 31) - 1); // HTTP/2, 5.1.1 const qint32 maxSessionReceiveWindowSize((quint32(1) << 31) - 1); const qint32 qtDefaultStreamReceiveWindowSize = maxSessionReceiveWindowSize / maxConcurrentStreams; -// The class ProtocolParameters allows client code to customize HTTP/2 protocol -// handler, if needed. Normally, we use our own default parameters (see below). -// In 5.10 we can also use setProperty/property on a QNAM object to pass the -// non-default values to the protocol handler. In 5.11 this will probably become -// a public API. - -using RawSettings = QMap; - -struct Q_AUTOTEST_EXPORT ProtocolParameters -{ - ProtocolParameters(); - - bool validate() const; - QByteArray settingsFrameToBase64() const; - struct Frame settingsFrame() const; - void addProtocolUpgradeHeaders(QHttpNetworkRequest *request) const; - - // HPACK: - // TODO: for now we ignore them (fix it for 5.11, would require changes in HPACK) - bool useHuffman = true; - bool indexStrings = true; - - // This parameter is not negotiated via SETTINGS frames, so we have it - // as a member and will convey it to our peer as a WINDOW_UPDATE frame. - // Note, some servers do not accept our WINDOW_UPDATE from the default - // 64 KB to the possible maximum. Let's use a half of it: - qint32 maxSessionReceiveWindowSize = Http2::maxSessionReceiveWindowSize / 2; - - // This is our default SETTINGS frame: - // - // SETTINGS_INITIAL_WINDOW_SIZE: (2^31 - 1) / 100 - // SETTINGS_ENABLE_PUSH: 0. - // - // Note, whenever we skip some value in our SETTINGS frame, our peer - // will assume the defaults recommended by RFC 7540, which in general - // are good enough, although we (and most browsers) prefer to work - // with larger window sizes. - RawSettings settingsFrameData; -}; - -// TODO: remove in 5.11 -extern const Q_AUTOTEST_EXPORT char *http2ParametersPropertyName; +struct Frame configurationToSettingsFrame(const QHttp2Configuration &configuration); +QByteArray settingsFrameToBase64(const Frame &settingsFrame); +void appendProtocolUpgradeHeaders(const QHttp2Configuration &configuration, QHttpNetworkRequest *request); extern const Q_AUTOTEST_EXPORT char Http2clientPreface[clientPrefaceLength]; @@ -235,6 +204,5 @@ Q_DECLARE_LOGGING_CATEGORY(QT_HTTP2) QT_END_NAMESPACE Q_DECLARE_METATYPE(Http2::Settings) -Q_DECLARE_METATYPE(Http2::ProtocolParameters) #endif diff --git a/src/network/access/qhttp2configuration.cpp b/src/network/access/qhttp2configuration.cpp new file mode 100644 index 0000000000..14c9d6dc29 --- /dev/null +++ b/src/network/access/qhttp2configuration.cpp @@ -0,0 +1,343 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qhttp2configuration.h" + +#include "private/http2protocol_p.h" +#include "private/hpack_p.h" + +#include "qdebug.h" + +QT_BEGIN_NAMESPACE + +/*! + \class QHttp2Configuration + \brief The QHttp2Configuration class controls HTTP/2 parameters and settings + \since 5.14 + + \reentrant + \inmodule QtNetwork + \ingroup network + \ingroup shared + + QHttp2Configuration controls HTTP/2 parameters and settings that + QNetworkAccessManager will use to send requests and process responses + when the HTTP/2 protocol is enabled. + + The HTTP/2 parameters that QHttp2Configuration currently supports include: + + \list + \li The session window size for connection-level flow control. + Will be sent to a remote peer when needed as 'WINDOW_UPDATE' + frames on the stream with an identifier 0. + \li The stream receiving window size for stream-level flow control. + Sent as 'SETTINGS_INITIAL_WINDOW_SIZE' parameter in the initial + SETTINGS frame and, when needed, 'WINDOW_UPDATE' frames will be + sent on streams that QNetworkAccessManager opens. + \li The maximum frame size. This parameter limits the maximum payload + a frame coming from the remote peer can have. Sent by QNetworkAccessManager + as 'SETTINGS_MAX_FRAME_SIZE' parameter in the initial 'SETTINGS' + frame. + \li The server push. Allows to enable or disable server push. Sent + as 'SETTINGS_ENABLE_PUSH' parameter in the initial 'SETTINGS' + frame. + \endlist + + The QHttp2Configuration class also controls some of the parameters + affecting the header compression algorithm (HPACK). They include: + + \list + \li Huffman string compression. + \li Indexing strings. + \endlist + + \note The configuration must be set before the first request + was sent to a given host (and thus an HTTP/2 session established). + + \note Details about flow control, server push and 'SETTINGS' + can be found in \l {https://httpwg.org/specs/rfc7540.html}{RFC 7540}. + Different modes and parameters of the HPACK compression algorithm + are described in \l {https://httpwg.org/specs/rfc7541.html}{RFC 7541}. + + \sa QNetworkRequest::setHttp2Configuration(), QNetworkRequest::http2Configuration(), QNetworkAccessManager +*/ + +class QHttp2ConfigurationPrivate : public QSharedData +{ +public: + unsigned sessionWindowSize = Http2::defaultSessionWindowSize; + // The size below is quite a limiting default value, QNetworkRequest + // by default sets a larger number, an application can change this using + // QNetworkRequest::setHttp2Configuration. + unsigned streamWindowSize = Http2::defaultSessionWindowSize; + + unsigned maxFrameSize = Http2::minPayloadLimit; // Initial (default) value of 16Kb. + + bool pushEnabled = false; + // TODO: for now those two below are noop. + bool huffmanCompressionEnabled = true; + bool indexingEnabled = true; +}; + +/*! + Default constructs a QHttp2Configuration object. + + Such a configuration has the following values: + \list + \li Server push is disabled + \li Huffman string compression is enabled + \li String indexing is enabled + \li Window size for connection-level flow control is 65535 octets + \li Window size for stream-level flow control is 65535 octets + \li Frame size is 16384 octets + \endlist +*/ +QHttp2Configuration::QHttp2Configuration() + : d(new QHttp2ConfigurationPrivate) +{ +} + +/*! + Copy-constructs this QHttp2Configuration. +*/ +QHttp2Configuration::QHttp2Configuration(const QHttp2Configuration &) = default; + +/*! + Move-constructs this QHttp2Configuration from \a other +*/ +QHttp2Configuration::QHttp2Configuration(QHttp2Configuration &&other) noexcept +{ + swap(other); +} + +/*! + Copy-assigns to this QHttp2Configuration. +*/ +QHttp2Configuration &QHttp2Configuration::operator=(const QHttp2Configuration &) = default; + +/*! + Move-assigns to this QHttp2Configuration. +*/ +QHttp2Configuration &QHttp2Configuration::operator=(QHttp2Configuration &&) noexcept = default; + +/*! + Destructor. +*/ +QHttp2Configuration::~QHttp2Configuration() +{ +} + +/*! + If \a enable is \c true, a remote server can potentially + use server push to send reponses in advance. + + \sa serverPushEnabled +*/ +void QHttp2Configuration::setServerPushEnabled(bool enable) +{ + d->pushEnabled = enable; +} + +/*! + Returns true if server push was enabled. + + \note By default, QNetworkAccessManager disables server + push via the 'SETTINGS' frame. + + \sa setServerPushEnabled +*/ +bool QHttp2Configuration::serverPushEnabled() const +{ + return d->pushEnabled; +} + +/*! + If \a enable is \c true, HPACK compression will additionally + compress string using the Huffman coding. Enabled by default. + + \note This parameter only affects 'HEADERS' frames that + QNetworkAccessManager is sending. + + \sa huffmanCompressionEnabled +*/ +void QHttp2Configuration::setHuffmanCompressionEnabled(bool enable) +{ + d->huffmanCompressionEnabled = enable; +} + +/*! + Returns \c true if the Huffman coding in HPACK is enabled. + + \sa setHuffmanCompressionEnabled +*/ +bool QHttp2Configuration::huffmanCompressionEnabled() const +{ + return d->huffmanCompressionEnabled; +} + +/*! + If \a enable is \c true, HPACK compression will index strings + in its dynamic compression table. Enabled by default. + + \note This setting only has an affect on how QNetworkAccessManager + sending 'HEADERS' frames. + + \sa stringIndexingEnabled +*/ +void QHttp2Configuration::setStringIndexingEnabled(bool enable) +{ + d->indexingEnabled = enable; +} + +/*! + Returns \true if HPACK compression is indexing strings. + + \sa setStringIndexingEnabled +*/ +bool QHttp2Configuration::stringIndexingEnabled() const +{ + return d->indexingEnabled; +} + +/*! + Sets the window size for connection-level flow control. + \a size cannot be 0 and must not exceed 2147483647 octets. + + \sa sessionReceiveWindowSize +*/ +bool QHttp2Configuration::setSessionReceiveWindowSize(unsigned size) +{ + if (!size || size > Http2::maxSessionReceiveWindowSize) { // RFC-7540, 6.9 + qCWarning(QT_HTTP2) << "Invalid session window size"; + return false; + } + + d->sessionWindowSize = size; + return true; +} + +/*! + Returns the window size for connection-level flow control. + The default value QNetworkAccessManager will be using is + 2147483647 octets. +*/ +unsigned QHttp2Configuration::sessionReceiveWindowSize() const +{ + return d->sessionWindowSize; +} + +/*! + Sets the window size for stream-level flow control. + \a size cannot be 0 and must not exceed 2147483647 octets. + + \sa streamReceiveWindowSize + */ +bool QHttp2Configuration::setStreamReceiveWindowSize(unsigned size) +{ + if (!size || size > Http2::maxSessionReceiveWindowSize) { // RFC-7540, 6.9 + qCWarning(QT_HTTP2) << "Invalid stream window size"; + return false; + } + + d->streamWindowSize = size; + return true; +} + +/*! + Returns the window size for stream-level flow control. + The default value QNetworkAccessManager will be using is + 21474836 octets. +*/ +unsigned QHttp2Configuration::streamReceiveWindowSize() const +{ + return d->streamWindowSize; +} + +/*! + Sets the maximum frame size that QNetworkAccessManager + will advertise to the server when sending its initial SETTINGS frame. + \note While this \a size is required to be within a range between + 16384 and 16777215 inclusive, the actual payload size in frames + that carry payload maybe be less than 16384. +*/ +bool QHttp2Configuration::setMaxFrameSize(unsigned size) +{ + if (size < Http2::minPayloadLimit || size > Http2::maxPayloadSize) { + qCWarning(QT_HTTP2) << "Maximum frame size to advertise is invalid"; + return false; + } + + d->maxFrameSize = size; + return true; +} + +/*! + The maximum payload size that HTTP/2 frames can + have. The default (initial) value is 16384 octets. +*/ +unsigned QHttp2Configuration::maxFrameSize() const +{ + return d->maxFrameSize; +} + +/*! + Swaps this configuration with the \a other configuration. +*/ +void QHttp2Configuration::swap(QHttp2Configuration &other) noexcept +{ + d.swap(other.d); +} + +/*! + Returns \c true if \a lhs and \a rhs have the same set of HTTP/2 + parameters. +*/ +bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs) +{ + if (lhs.d == rhs.d) + return true; + + return lhs.d->pushEnabled == rhs.d->pushEnabled + && lhs.d->huffmanCompressionEnabled == rhs.d->huffmanCompressionEnabled + && lhs.d->indexingEnabled == rhs.d->indexingEnabled + && lhs.d->sessionWindowSize == rhs.d->sessionWindowSize + && lhs.d->streamWindowSize == rhs.d->streamWindowSize; +} + +QT_END_NAMESPACE diff --git a/src/network/access/qhttp2configuration.h b/src/network/access/qhttp2configuration.h new file mode 100644 index 0000000000..2a5e8c9341 --- /dev/null +++ b/src/network/access/qhttp2configuration.h @@ -0,0 +1,99 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QHTTP2CONFIGURATION_H +#define QHTTP2CONFIGURATION_H + +#include + +#include + +QT_BEGIN_NAMESPACE + +class QHttp2ConfigurationPrivate; +class Q_NETWORK_EXPORT QHttp2Configuration +{ + friend Q_NETWORK_EXPORT bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs); + +public: + QHttp2Configuration(); + QHttp2Configuration(const QHttp2Configuration &other); + QHttp2Configuration(QHttp2Configuration &&other) noexcept; + QHttp2Configuration &operator = (const QHttp2Configuration &other); + QHttp2Configuration &operator = (QHttp2Configuration &&other) noexcept; + + ~QHttp2Configuration(); + + void setServerPushEnabled(bool enable); + bool serverPushEnabled() const; + + void setHuffmanCompressionEnabled(bool enable); + bool huffmanCompressionEnabled() const; + + void setStringIndexingEnabled(bool enable); + bool stringIndexingEnabled() const; + + bool setSessionReceiveWindowSize(unsigned size); + unsigned sessionReceiveWindowSize() const; + + bool setStreamReceiveWindowSize(unsigned size); + unsigned streamReceiveWindowSize() const; + + bool setMaxFrameSize(unsigned size); + unsigned maxFrameSize() const; + + void swap(QHttp2Configuration &other) noexcept; + +private: + + QSharedDataPointer d; +}; + +Q_DECLARE_SHARED(QHttp2Configuration) + +Q_NETWORK_EXPORT bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs); + +inline bool operator!=(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs) +{ + return !(lhs == rhs); +} + +QT_END_NAMESPACE + +#endif // QHTTP2CONFIGURATION_H diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp index 0ece5b7179..b8a415000a 100644 --- a/src/network/access/qhttp2protocolhandler.cpp +++ b/src/network/access/qhttp2protocolhandler.cpp @@ -40,6 +40,7 @@ #include "qhttpnetworkconnection_p.h" #include "qhttp2protocolhandler_p.h" +#include "http2/http2frames_p.h" #include "http2/bitstreams_p.h" #include @@ -51,6 +52,8 @@ #include #include +#include + #ifndef QT_NO_NETWORKPROXY #include #endif @@ -172,30 +175,10 @@ QHttp2ProtocolHandler::QHttp2ProtocolHandler(QHttpNetworkConnectionChannel *chan Q_ASSERT(channel && m_connection); continuedFrames.reserve(20); - const ProtocolParameters params(m_connection->http2Parameters()); - Q_ASSERT(params.validate()); - - maxSessionReceiveWindowSize = params.maxSessionReceiveWindowSize; - - const RawSettings &data = params.settingsFrameData; - for (auto param = data.cbegin(), end = data.cend(); param != end; ++param) { - switch (param.key()) { - case Settings::INITIAL_WINDOW_SIZE_ID: - streamInitialReceiveWindowSize = param.value(); - break; - case Settings::ENABLE_PUSH_ID: - pushPromiseEnabled = param.value(); - break; - case Settings::HEADER_TABLE_SIZE_ID: - case Settings::MAX_CONCURRENT_STREAMS_ID: - case Settings::MAX_FRAME_SIZE_ID: - case Settings::MAX_HEADER_LIST_SIZE_ID: - // These other settings are just recommendations to our peer. We - // only check they are not crazy in ProtocolParameters::validate(). - default: - break; - } - } + const auto h2Config = m_connection->http2Parameters(); + maxSessionReceiveWindowSize = h2Config.sessionReceiveWindowSize(); + pushPromiseEnabled = h2Config.serverPushEnabled(); + streamInitialReceiveWindowSize = h2Config.streamReceiveWindowSize(); if (!channel->ssl && m_connection->connectionType() != QHttpNetworkConnection::ConnectionTypeHTTP2Direct) { // We upgraded from HTTP/1.1 to HTTP/2. channel->request was already sent @@ -422,20 +405,17 @@ bool QHttp2ProtocolHandler::sendClientPreface() return false; // 6.5 SETTINGS - const ProtocolParameters params(m_connection->http2Parameters()); - Q_ASSERT(params.validate()); - frameWriter.setOutboundFrame(params.settingsFrame()); + frameWriter.setOutboundFrame(Http2::configurationToSettingsFrame(m_connection->http2Parameters())); Q_ASSERT(frameWriter.outboundFrame().payloadSize()); if (!frameWriter.write(*m_socket)) return false; sessionReceiveWindowSize = maxSessionReceiveWindowSize; - // ProtocolParameters::validate does not allow maxSessionReceiveWindowSize - // to be smaller than defaultSessionWindowSize, so everything is OK here with - // 'delta': + // We only send WINDOW_UPDATE for the connection if the size differs from the + // default 64 KB: const auto delta = maxSessionReceiveWindowSize - Http2::defaultSessionWindowSize; - if (!sendWINDOW_UPDATE(Http2::connectionStreamID, delta)) + if (delta && !sendWINDOW_UPDATE(Http2::connectionStreamID, delta)) return false; prefaceSent = true; @@ -1069,7 +1049,7 @@ bool QHttp2ProtocolHandler::acceptSetting(Http2::Settings identifier, quint32 ne } if (identifier == Settings::MAX_FRAME_SIZE_ID) { - if (newValue < Http2::maxFrameSize || newValue > Http2::maxPayloadSize) { + if (newValue < Http2::minPayloadLimit || newValue > Http2::maxPayloadSize) { connectionError(PROTOCOL_ERROR, "SETTGINGS max frame size is out of range"); return false; } diff --git a/src/network/access/qhttp2protocolhandler_p.h b/src/network/access/qhttp2protocolhandler_p.h index b582123961..1943827e23 100644 --- a/src/network/access/qhttp2protocolhandler_p.h +++ b/src/network/access/qhttp2protocolhandler_p.h @@ -55,6 +55,8 @@ #include #include +#include + #include #include #include @@ -163,8 +165,9 @@ private: static const std::deque::size_type maxRecycledStreams; std::deque recycledStreams; - // Peer's max frame size. - quint32 maxFrameSize = Http2::maxFrameSize; + // Peer's max frame size (this min is the default value + // we start with, that can be updated by SETTINGS frame): + quint32 maxFrameSize = Http2::minPayloadLimit; Http2::FrameReader frameReader; Http2::Frame inboundFrame; @@ -176,28 +179,28 @@ private: // Control flow: - // This is how many concurrent streams our peer expects from us: - // 100 is the default value, can be updated by the server's SETTINGS - // frame(s): + // This is how many concurrent streams our peer allows us, 100 is the + // initial value, can be updated by the server's SETTINGS frame(s): quint32 maxConcurrentStreams = Http2::maxConcurrentStreams; // While we allow sending SETTTINGS_MAX_CONCURRENT_STREAMS to limit our peer, // it's just a hint and we do not actually enforce it (and we can continue // sending requests and creating streams while maxConcurrentStreams allows). - // This is the max value, we set it in a ctor from Http2::ProtocolParameters, - // it does not change after that. + // This is our (client-side) maximum possible receive window size, we set + // it in a ctor from QHttp2Configuration, it does not change after that. + // The default is 64Kb: qint32 maxSessionReceiveWindowSize = Http2::defaultSessionWindowSize; - // Our session receive window size, default is 64Kb. We'll update it from QNAM's - // Http2::ProtocolParameters. Signed integer since it can become negative + // Our session current receive window size, updated in a ctor from + // QHttp2Configuration. Signed integer since it can become negative // (it's still a valid window size). qint32 sessionReceiveWindowSize = Http2::defaultSessionWindowSize; // Our per-stream receive window size, default is 64 Kb, will be updated - // from QNAM's Http2::ProtocolParameters. Again, signed - can become negative. + // from QHttp2Configuration. Again, signed - can become negative. qint32 streamInitialReceiveWindowSize = Http2::defaultSessionWindowSize; // These are our peer's receive window sizes, they will be updated by the - // peer's SETTINGS and WINDOW_UPDATE frames. + // peer's SETTINGS and WINDOW_UPDATE frames, defaults presumed to be 64Kb. qint32 sessionSendWindowSize = Http2::defaultSessionWindowSize; qint32 streamInitialSendWindowSize = Http2::defaultSessionWindowSize; diff --git a/src/network/access/qhttpnetworkconnection.cpp b/src/network/access/qhttpnetworkconnection.cpp index 1f1de478ea..13be1aa6b5 100644 --- a/src/network/access/qhttpnetworkconnection.cpp +++ b/src/network/access/qhttpnetworkconnection.cpp @@ -1456,21 +1456,16 @@ void QHttpNetworkConnection::setConnectionType(ConnectionType type) d->connectionType = type; } -Http2::ProtocolParameters QHttpNetworkConnection::http2Parameters() const +QHttp2Configuration QHttpNetworkConnection::http2Parameters() const { Q_D(const QHttpNetworkConnection); return d->http2Parameters; } -void QHttpNetworkConnection::setHttp2Parameters(const Http2::ProtocolParameters ¶ms) +void QHttpNetworkConnection::setHttp2Parameters(const QHttp2Configuration ¶ms) { Q_D(QHttpNetworkConnection); - if (params.validate()) { - d->http2Parameters = params; - } else { - qCWarning(QT_HTTP2) - << "invalid HTTP/2 parameters, falling back to defaults instead"; - } + d->http2Parameters = params; } // SSL support below diff --git a/src/network/access/qhttpnetworkconnection_p.h b/src/network/access/qhttpnetworkconnection_p.h index 85d89f20c2..6808a0c0ac 100644 --- a/src/network/access/qhttpnetworkconnection_p.h +++ b/src/network/access/qhttpnetworkconnection_p.h @@ -57,6 +57,8 @@ #include #include +#include + #include #include #include @@ -142,8 +144,8 @@ public: ConnectionType connectionType(); void setConnectionType(ConnectionType type); - Http2::ProtocolParameters http2Parameters() const; - void setHttp2Parameters(const Http2::ProtocolParameters ¶ms); + QHttp2Configuration http2Parameters() const; + void setHttp2Parameters(const QHttp2Configuration ¶ms); #ifndef QT_NO_SSL void setSslConfiguration(const QSslConfiguration &config); @@ -294,7 +296,7 @@ public: QSharedPointer networkSession; #endif - Http2::ProtocolParameters http2Parameters; + QHttp2Configuration http2Parameters; QString peerVerifyName; // If network status monitoring is enabled, we activate connectionMonitor diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp index 3c9d53c5b5..716ea6c8b2 100644 --- a/src/network/access/qhttpnetworkconnectionchannel.cpp +++ b/src/network/access/qhttpnetworkconnectionchannel.cpp @@ -40,6 +40,7 @@ #include "qhttpnetworkconnectionchannel_p.h" #include "qhttpnetworkconnection_p.h" +#include "qhttp2configuration.h" #include "private/qnoncontiguousbytedevice_p.h" #include @@ -48,6 +49,7 @@ #include #include #include +#include #ifndef QT_NO_SSL # include @@ -947,9 +949,7 @@ void QHttpNetworkConnectionChannel::_q_connected() if (tryProtocolUpgrade) { // Let's augment our request with some magic headers and try to // switch to HTTP/2. - const Http2::ProtocolParameters params(connection->http2Parameters()); - Q_ASSERT(params.validate()); - params.addProtocolUpgradeHeaders(&request); + Http2::appendProtocolUpgradeHeaders(connection->http2Parameters(), &request); } sendRequest(); } diff --git a/src/network/access/qhttpthreaddelegate.cpp b/src/network/access/qhttpthreaddelegate.cpp index acc551a7c9..1900397eab 100644 --- a/src/network/access/qhttpthreaddelegate.cpp +++ b/src/network/access/qhttpthreaddelegate.cpp @@ -352,9 +352,9 @@ void QHttpThreadDelegate::startRequest() networkSession); #endif // QT_NO_BEARERMANAGEMENT if (connectionType == QHttpNetworkConnection::ConnectionTypeHTTP2 - && http2Parameters.validate()) { + || connectionType == QHttpNetworkConnection::ConnectionTypeHTTP2Direct) { httpConnection->setHttp2Parameters(http2Parameters); - } // else we ignore invalid parameters and use our own defaults. + } #ifndef QT_NO_SSL // Set the QSslConfiguration from this QNetworkRequest. if (ssl) diff --git a/src/network/access/qhttpthreaddelegate_p.h b/src/network/access/qhttpthreaddelegate_p.h index 6184b39b30..355d1afc30 100644 --- a/src/network/access/qhttpthreaddelegate_p.h +++ b/src/network/access/qhttpthreaddelegate_p.h @@ -62,6 +62,7 @@ #include #include "qhttpnetworkrequest_p.h" #include "qhttpnetworkconnection_p.h" +#include "qhttp2configuration.h" #include #include #include "private/qnoncontiguousbytedevice_p.h" @@ -116,7 +117,7 @@ public: qint64 removedContentLength; QNetworkReply::NetworkError incomingErrorCode; QString incomingErrorDetail; - Http2::ProtocolParameters http2Parameters; + QHttp2Configuration http2Parameters; #ifndef QT_NO_BEARERMANAGEMENT QSharedPointer networkSession; #endif diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index 29192ae7b0..fdc3cd3b3a 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -70,6 +70,7 @@ #include "QtNetwork/private/qauthenticator_p.h" #include "QtNetwork/qsslconfiguration.h" #include "QtNetwork/qnetworkconfigmanager.h" +#include "QtNetwork/private/http2protocol_p.h" #if QT_CONFIG(http) #include "qhttpmultipart.h" @@ -489,6 +490,7 @@ QNetworkAccessManager::QNetworkAccessManager(QObject *parent) qRegisterMetaType >(); Q_D(QNetworkAccessManager); + if (QNetworkStatusMonitor::isEnabled()) { connect(&d->statusMonitor, SIGNAL(onlineStateChanged(bool)), SLOT(_q_onlineStateChanged(bool))); @@ -1178,7 +1180,6 @@ QSharedPointer QNetworkAccessManagerPrivate::getNetworkSession( #endif // QT_NO_BEARERMANAGEMENT - #ifndef QT_NO_SSL /*! \since 5.2 diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index b9651b35d2..12dfb1c269 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -797,10 +797,8 @@ void QNetworkReplyHttpImplPrivate::postRequest(const QNetworkRequest &newHttpReq // Create the HTTP thread delegate QHttpThreadDelegate *delegate = new QHttpThreadDelegate; - // Propagate Http/2 settings if any - const QVariant blob(manager->property(Http2::http2ParametersPropertyName)); - if (blob.isValid() && blob.canConvert()) - delegate->http2Parameters = blob.value(); + // Propagate Http/2 settings: + delegate->http2Parameters = request.http2Configuration(); #ifndef QT_NO_BEARERMANAGEMENT if (!QNetworkStatusMonitor::isEnabled()) delegate->networkSession = managerPrivate->getNetworkSession(); diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index 37f64c3f52..e3976db642 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -42,6 +42,8 @@ #include "qplatformdefs.h" #include "qnetworkcookie.h" #include "qsslconfiguration.h" +#include "qhttp2configuration.h" +#include "private/http2protocol_p.h" #include "QtCore/qshareddata.h" #include "QtCore/qlocale.h" #include "QtCore/qdatetime.h" @@ -445,6 +447,7 @@ public: sslConfiguration = new QSslConfiguration(*other.sslConfiguration); #endif peerVerifyName = other.peerVerifyName; + h2Configuration = other.h2Configuration; } inline bool operator==(const QNetworkRequestPrivate &other) const @@ -454,7 +457,8 @@ public: rawHeaders == other.rawHeaders && attributes == other.attributes && maxRedirectsAllowed == other.maxRedirectsAllowed && - peerVerifyName == other.peerVerifyName; + peerVerifyName == other.peerVerifyName && + h2Configuration == other.h2Configuration; // don't compare cookedHeaders } @@ -465,6 +469,7 @@ public: #endif int maxRedirectsAllowed; QString peerVerifyName; + QHttp2Configuration h2Configuration; }; /*! @@ -476,6 +481,13 @@ public: QNetworkRequest::QNetworkRequest() : d(new QNetworkRequestPrivate) { + // Initial values proposed by RFC 7540 are quite draconian, + // so unless an application will set its own parameters, we + // make stream window size larger and increase (via WINDOW_UPDATE) + // the session window size. These are our 'defaults': + d->h2Configuration.setStreamReceiveWindowSize(Http2::qtDefaultStreamReceiveWindowSize); + d->h2Configuration.setSessionReceiveWindowSize(Http2::maxSessionReceiveWindowSize); + d->h2Configuration.setServerPushEnabled(false); } /*! @@ -835,6 +847,50 @@ void QNetworkRequest::setPeerVerifyName(const QString &peerName) d->peerVerifyName = peerName; } +/*! + \since 5.14 + + Returns the current parameters that QNetworkAccessManager is + using for this request and its underlying HTTP/2 connection. + This is either a configuration previously set by an application + or a default configuration. + + The default values that QNetworkAccessManager is using are: + + \list + \li Window size for connection-level flowcontrol is 2147483647 octets + \li Window size for stream-level flowcontrol is 21474836 octets + \li Max frame size is 16384 + \endlist + + By default, server push is disabled, Huffman compression and + string indexing are enabled. + + \sa setHttp2Configuration +*/ +QHttp2Configuration QNetworkRequest::http2Configuration() const +{ + return d->h2Configuration; +} + +/*! + \since 5.14 + + Sets request's HTTP/2 parameters from \a configuration. + + \note The configuration must be set prior to making a request. + \note HTTP/2 multiplexes several streams in a single HTTP/2 + connection. This implies that QNetworkAccessManager will use + the configuration found in the first request from a series + of requests sent to the same host. + + \sa http2Configuration, QNetworkAccessManager, QHttp2Configuration +*/ +void QNetworkRequest::setHttp2Configuration(const QHttp2Configuration &configuration) +{ + d->h2Configuration = configuration; +} + static QByteArray headerName(QNetworkRequest::KnownHeaders header) { switch (header) { diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h index 8ad4ab41c0..463dabef83 100644 --- a/src/network/access/qnetworkrequest.h +++ b/src/network/access/qnetworkrequest.h @@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE class QSslConfiguration; +class QHttp2Configuration; class QNetworkRequestPrivate; class Q_NETWORK_EXPORT QNetworkRequest @@ -175,6 +176,9 @@ public: QString peerVerifyName() const; void setPeerVerifyName(const QString &peerName); + + QHttp2Configuration http2Configuration() const; + void setHttp2Configuration(const QHttp2Configuration &configuration); private: QSharedDataPointer d; friend class QNetworkRequestPrivate; diff --git a/tests/auto/network/access/http2/http2srv.cpp b/tests/auto/network/access/http2/http2srv.cpp index 5a99d4e50c..1ddb6aa77d 100644 --- a/tests/auto/network/access/http2/http2srv.cpp +++ b/tests/auto/network/access/http2/http2srv.cpp @@ -76,7 +76,7 @@ void fill_push_header(const HttpHeader &originalRequest, HttpHeader &promisedReq } -Http2Server::Http2Server(H2Type type, const Http2::RawSettings &ss, const Http2::RawSettings &cs) +Http2Server::Http2Server(H2Type type, const RawSettings &ss, const RawSettings &cs) : connectionType(type), serverSettings(ss), expectedClientSettings(cs) @@ -218,7 +218,7 @@ void Http2Server::sendDATA(quint32 streamID, quint32 windowSize) quint32 bytesToSend = std::min(windowSize, responseBody.size() - offset); quint32 bytesSent = 0; - const quint32 frameSizeLimit(clientSetting(Settings::MAX_FRAME_SIZE_ID, Http2::maxFrameSize)); + const quint32 frameSizeLimit(clientSetting(Settings::MAX_FRAME_SIZE_ID, Http2::maxPayloadSize)); const uchar *src = reinterpret_cast(responseBody.constData() + offset); const bool last = offset + bytesToSend == quint32(responseBody.size()); @@ -767,7 +767,7 @@ void Http2Server::sendResponse(quint32 streamID, bool emptyBody) Q_ASSERT(activeRequests.find(streamID) != activeRequests.end()); const quint32 maxFrameSize(clientSetting(Settings::MAX_FRAME_SIZE_ID, - Http2::maxFrameSize)); + Http2::maxPayloadSize)); if (pushPromiseEnabled) { // A real server supporting PUSH_PROMISE will probably first send diff --git a/tests/auto/network/access/http2/http2srv.h b/tests/auto/network/access/http2/http2srv.h index 4ef4b25101..9cb846b0b3 100644 --- a/tests/auto/network/access/http2/http2srv.h +++ b/tests/auto/network/access/http2/http2srv.h @@ -42,6 +42,7 @@ #include #include #include +#include #include #include @@ -69,13 +70,15 @@ enum class H2Type { h2cDirect, // Clear text direct }; +using RawSettings = QMap; + class Http2Server : public QTcpServer { Q_OBJECT public: - Http2Server(H2Type type, const Http2::RawSettings &serverSettings, - const Http2::RawSettings &clientSettings); + Http2Server(H2Type type, const RawSettings &serverSettings, + const RawSettings &clientSettings); ~Http2Server(); @@ -147,8 +150,8 @@ private: bool settingsSent = false; bool waitingClientAck = false; - Http2::RawSettings serverSettings; - Http2::RawSettings expectedClientSettings; + RawSettings serverSettings; + RawSettings expectedClientSettings; bool connectionError = false; diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 945ea1b448..6a0dc6db02 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -32,8 +32,10 @@ #include #include +#include #include #include + #include #include #include @@ -66,6 +68,24 @@ Q_DECLARE_METATYPE(QNetworkRequest::Attribute) QT_BEGIN_NAMESPACE +QHttp2Configuration qt_defaultH2Configuration() +{ + QHttp2Configuration config; + config.setStreamReceiveWindowSize(Http2::qtDefaultStreamReceiveWindowSize); + config.setSessionReceiveWindowSize(Http2::maxSessionReceiveWindowSize); + config.setServerPushEnabled(false); + return config; +} + +RawSettings qt_H2ConfigurationToSettings(const QHttp2Configuration &config = qt_defaultH2Configuration()) +{ + RawSettings settings; + settings[Http2::Settings::ENABLE_PUSH_ID] = config.serverPushEnabled(); + settings[Http2::Settings::INITIAL_WINDOW_SIZE_ID] = config.streamReceiveWindowSize(); + return settings; +} + + class tst_Http2 : public QObject { Q_OBJECT @@ -110,12 +130,13 @@ private: // small payload. void runEventLoop(int ms = 5000); void stopEventLoop(); - Http2Server *newServer(const Http2::RawSettings &serverSettings, H2Type connectionType, - const Http2::ProtocolParameters &clientSettings = {}); + Http2Server *newServer(const RawSettings &serverSettings, H2Type connectionType, + const RawSettings &clientSettings = qt_H2ConfigurationToSettings()); // Send a get or post request, depending on a payload (empty or not). void sendRequest(int streamNumber, QNetworkRequest::Priority priority = QNetworkRequest::NormalPriority, - const QByteArray &payload = QByteArray()); + const QByteArray &payload = QByteArray(), + const QHttp2Configuration &clientConfiguration = qt_defaultH2Configuration()); QUrl requestUrl(H2Type connnectionType) const; quint16 serverPort = 0; @@ -131,14 +152,14 @@ private: bool prefaceOK = false; bool serverGotSettingsACK = false; - static const Http2::RawSettings defaultServerSettings; + static const RawSettings defaultServerSettings; }; #define STOP_ON_FAILURE \ if (QTest::currentTestFailed()) \ return; -const Http2::RawSettings tst_Http2::defaultServerSettings{{Http2::Settings::MAX_CONCURRENT_STREAMS_ID, 100}}; +const RawSettings tst_Http2::defaultServerSettings{{Http2::Settings::MAX_CONCURRENT_STREAMS_ID, 100}}; namespace { @@ -308,18 +329,15 @@ void tst_Http2::flowControlClientSide() nRequests = 10; windowUpdates = 0; - Http2::ProtocolParameters params; + QHttp2Configuration params; // A small window size for a session, and even a smaller one per stream - // this will result in WINDOW_UPDATE frames both on connection stream and // per stream. - params.maxSessionReceiveWindowSize = Http2::defaultSessionWindowSize * 5; - params.settingsFrameData[Settings::INITIAL_WINDOW_SIZE_ID] = Http2::defaultSessionWindowSize; - // Inform our manager about non-default settings: - manager->setProperty(Http2::http2ParametersPropertyName, QVariant::fromValue(params)); - - const Http2::RawSettings serverSettings = {{Settings::MAX_CONCURRENT_STREAMS_ID, quint32(3)}}; - ServerPtr srv(newServer(serverSettings, defaultConnectionType(), params)); + params.setSessionReceiveWindowSize(Http2::defaultSessionWindowSize * 5); + params.setStreamReceiveWindowSize(Http2::defaultSessionWindowSize); + const RawSettings serverSettings = {{Settings::MAX_CONCURRENT_STREAMS_ID, quint32(3)}}; + ServerPtr srv(newServer(serverSettings, defaultConnectionType(), qt_H2ConfigurationToSettings(params))); const QByteArray respond(int(Http2::defaultSessionWindowSize * 10), 'x'); srv->setResponseBody(respond); @@ -330,7 +348,7 @@ void tst_Http2::flowControlClientSide() QVERIFY(serverPort != 0); for (int i = 0; i < nRequests; ++i) - sendRequest(i); + sendRequest(i, QNetworkRequest::NormalPriority, {}, params); runEventLoop(120000); STOP_ON_FAILURE @@ -359,7 +377,7 @@ void tst_Http2::flowControlServerSide() serverPort = 0; nRequests = 10; - const Http2::RawSettings serverSettings = {{Settings::MAX_CONCURRENT_STREAMS_ID, 7}}; + const RawSettings serverSettings = {{Settings::MAX_CONCURRENT_STREAMS_ID, 7}}; ServerPtr srv(newServer(serverSettings, defaultConnectionType())); @@ -392,12 +410,11 @@ void tst_Http2::pushPromise() serverPort = 0; nRequests = 1; - Http2::ProtocolParameters params; + QHttp2Configuration params; // Defaults are good, except ENABLE_PUSH: - params.settingsFrameData[Settings::ENABLE_PUSH_ID] = 1; - manager->setProperty(Http2::http2ParametersPropertyName, QVariant::fromValue(params)); + params.setServerPushEnabled(true); - ServerPtr srv(newServer(defaultServerSettings, defaultConnectionType(), params)); + ServerPtr srv(newServer(defaultServerSettings, defaultConnectionType(), qt_H2ConfigurationToSettings(params))); srv->enablePushPromise(true, QByteArray("/script.js")); QMetaObject::invokeMethod(srv.data(), "startServer", Qt::QueuedConnection); @@ -410,6 +427,7 @@ void tst_Http2::pushPromise() QNetworkRequest request(url); request.setAttribute(QNetworkRequest::HTTP2AllowedAttribute, QVariant(true)); + request.setHttp2Configuration(params); auto reply = manager->get(request); connect(reply, &QNetworkReply::finished, this, &tst_Http2::replyFinished); @@ -689,7 +707,6 @@ void tst_Http2::clearHTTP2State() windowUpdates = 0; prefaceOK = false; serverGotSettingsACK = false; - manager->setProperty(Http2::http2ParametersPropertyName, QVariant()); } void tst_Http2::runEventLoop(int ms) @@ -702,12 +719,11 @@ void tst_Http2::stopEventLoop() eventLoop.exitLoop(); } -Http2Server *tst_Http2::newServer(const Http2::RawSettings &serverSettings, H2Type connectionType, - const Http2::ProtocolParameters &clientSettings) +Http2Server *tst_Http2::newServer(const RawSettings &serverSettings, H2Type connectionType, + const RawSettings &clientSettings) { using namespace Http2; - auto srv = new Http2Server(connectionType, serverSettings, - clientSettings.settingsFrameData); + auto srv = new Http2Server(connectionType, serverSettings, clientSettings); using Srv = Http2Server; using Cl = tst_Http2; @@ -729,7 +745,8 @@ Http2Server *tst_Http2::newServer(const Http2::RawSettings &serverSettings, H2Ty void tst_Http2::sendRequest(int streamNumber, QNetworkRequest::Priority priority, - const QByteArray &payload) + const QByteArray &payload, + const QHttp2Configuration &h2Config) { auto url = requestUrl(defaultConnectionType()); url.setPath(QString("/stream%1.html").arg(streamNumber)); @@ -739,6 +756,7 @@ void tst_Http2::sendRequest(int streamNumber, request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, QVariant(true)); request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain")); request.setPriority(priority); + request.setHttp2Configuration(h2Config); QNetworkReply *reply = nullptr; if (payload.size()) -- cgit v1.2.3 From 5248e895adc51fa70a59d2f49db6032f320bace9 Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Tue, 20 Aug 2019 12:27:30 +0900 Subject: Fix build without features.mimetype Change-Id: I9d3c20845b9ddecbafd6dfd756c5d17ae0c6b5fc Reviewed-by: Volker Hilsheimer --- src/plugins/printsupport/cups/qppdprintdevice.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/printsupport/cups/qppdprintdevice.cpp b/src/plugins/printsupport/cups/qppdprintdevice.cpp index ea6336c4d1..90411f2a2c 100644 --- a/src/plugins/printsupport/cups/qppdprintdevice.cpp +++ b/src/plugins/printsupport/cups/qppdprintdevice.cpp @@ -41,7 +41,9 @@ #include "qcupsprintersupport_p.h" +#if QT_CONFIG(mimetype) #include +#endif #include #include "private/qcups_p.h" // Only needed for PDPK_* -- cgit v1.2.3 From 6d9d4e6817b116676320a1aba0ea0af1633205bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 14 Aug 2019 14:07:55 +0200 Subject: Rename QWidgetBackingStore to QWidgetRepaintManager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quoting a blog from 2009, "this class is responsible for figuring out which parts of the window surface needs to be updated prior to showing it to screen, so it's really a repaint manager." https://blog.qt.io/blog/2009/12/16/qt-graphics-and-performance-an-overview/ What better time to do the rename than 10 years later! Change-Id: Ibf3c3bc8c7df64ac03d72e1f71d296b62d832fee Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qcocoabackingstore.mm | 2 +- .../platforms/qnx/qqnxscreeneventhandler.cpp | 2 +- src/widgets/kernel/kernel.pri | 4 +- src/widgets/kernel/qwidget.cpp | 97 +- src/widgets/kernel/qwidget.h | 2 +- src/widgets/kernel/qwidget_p.h | 20 +- src/widgets/kernel/qwidgetbackingstore.cpp | 1595 -------------------- src/widgets/kernel/qwidgetbackingstore_p.h | 281 ---- src/widgets/kernel/qwidgetrepaintmanager.cpp | 1595 ++++++++++++++++++++ src/widgets/kernel/qwidgetrepaintmanager_p.h | 281 ++++ src/widgets/kernel/qwidgetwindow.cpp | 6 +- tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 18 +- 12 files changed, 1951 insertions(+), 1952 deletions(-) delete mode 100644 src/widgets/kernel/qwidgetbackingstore.cpp delete mode 100644 src/widgets/kernel/qwidgetbackingstore_p.h create mode 100644 src/widgets/kernel/qwidgetrepaintmanager.cpp create mode 100644 src/widgets/kernel/qwidgetrepaintmanager_p.h diff --git a/src/plugins/platforms/cocoa/qcocoabackingstore.mm b/src/plugins/platforms/cocoa/qcocoabackingstore.mm index 6015257f4e..15e0236107 100644 --- a/src/plugins/platforms/cocoa/qcocoabackingstore.mm +++ b/src/plugins/platforms/cocoa/qcocoabackingstore.mm @@ -153,7 +153,7 @@ void QNSWindowBackingStore::flush(QWindow *window, const QRegion ®ion, const // context is set up correctly (coordinate system, clipping, etc). Outside // of the normal display cycle there is no focused view, as explained above, // so we have to handle it manually. There's also a corner case inside the - // normal display cycle due to way QWidgetBackingStore composits native child + // normal display cycle due to way QWidgetRepaintManager composits native child // widgets, where we'll get a flush of a native child during the drawRect of // its parent/ancestor, and the parent/ancestor being the one locked by AppKit. // In this case we also need to lock and unlock focus manually. diff --git a/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp b/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp index 56131dcc48..a9b5860187 100644 --- a/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp +++ b/src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp @@ -636,7 +636,7 @@ void QQnxScreenEventHandler::handleDisplayEvent(screen_event_t event) // We never remove the primary display, the qpa plugin doesn't support that and it crashes. // To support it, this would be needed: // - Adjust all qnx qpa code which uses screens - // - Make QWidgetBackingStore not dereference a null paint device + // - Make QWidgetRepaintManager not dereference a null paint device // - Create platform resources ( QQnxWindow ) for all QWindow because they would be deleted // when you delete the screen diff --git a/src/widgets/kernel/kernel.pri b/src/widgets/kernel/kernel.pri index a4b81335c5..693af7eb80 100644 --- a/src/widgets/kernel/kernel.pri +++ b/src/widgets/kernel/kernel.pri @@ -12,7 +12,7 @@ HEADERS += \ kernel/qactiongroup.h \ kernel/qapplication.h \ kernel/qapplication_p.h \ - kernel/qwidgetbackingstore_p.h \ + kernel/qwidgetrepaintmanager_p.h \ kernel/qboxlayout.h \ kernel/qdesktopwidget.h \ kernel/qgridlayout.h \ @@ -41,7 +41,7 @@ SOURCES += \ kernel/qaction.cpp \ kernel/qactiongroup.cpp \ kernel/qapplication.cpp \ - kernel/qwidgetbackingstore.cpp \ + kernel/qwidgetrepaintmanager.cpp \ kernel/qboxlayout.cpp \ kernel/qgridlayout.cpp \ kernel/qlayout.cpp \ diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 066dfaa183..d1ad0c0a01 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -90,7 +90,7 @@ #include #endif #include -#include +#include #if 0 // Used to be included in Qt4 for Q_WS_MAC # include #endif @@ -869,11 +869,11 @@ QRegion qt_dirtyRegion(QWidget *widget) if (!widget) return QRegion(); - QWidgetBackingStore *bs = qt_widget_private(widget)->maybeBackingStore(); - if (!bs) + QWidgetRepaintManager *repaintManager = qt_widget_private(widget)->maybeRepaintManager(); + if (!repaintManager) return QRegion(); - return bs->dirtyRegion(widget); + return repaintManager->dirtyRegion(widget); } /***************************************************************************** @@ -1278,9 +1278,9 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) setAttribute(Qt::WA_WState_Created); // set created flag d->create(); - // a real toplevel window needs a backing store + // A real toplevel window needs a paint manager if (isWindow() && windowType() != Qt::Desktop) - d->topData()->widgetBackingStore.reset(new QWidgetBackingStore(this)); + d->topData()->repaintManager.reset(new QWidgetRepaintManager(this)); d->setModal_sys(); @@ -1585,10 +1585,10 @@ QWidget::~QWidget() qApp->d_func()->sendSyntheticEnterLeave(this); } - if (QWidgetBackingStore *bs = d->maybeBackingStore()) { - bs->removeDirtyWidget(this); + if (QWidgetRepaintManager *repaintManager = d->maybeRepaintManager()) { + repaintManager->removeDirtyWidget(this); if (testAttribute(Qt::WA_StaticContents)) - bs->removeStaticWidget(this); + repaintManager->removeStaticWidget(this); } delete d->needsFlush; @@ -1804,7 +1804,7 @@ void QWidgetPrivate::deleteTLSysExtra() //the qplatformbackingstore may hold a reference to the window, so the backingstore //needs to be deleted first. - extra->topextra->widgetBackingStore.reset(nullptr); + extra->topextra->repaintManager.reset(nullptr); deleteBackingStore(this); #ifndef QT_NO_OPENGL extra->topextra->widgetTextures.clear(); @@ -1875,8 +1875,8 @@ void QWidgetPrivate::syncBackingStore() if (paintOnScreen()) { repaint_sys(dirty); dirty = QRegion(); - } else if (QWidgetBackingStore *bs = maybeBackingStore()) { - bs->sync(); + } else if (QWidgetRepaintManager *repaintManager = maybeRepaintManager()) { + repaintManager->sync(); } } @@ -1884,8 +1884,8 @@ void QWidgetPrivate::syncBackingStore(const QRegion ®ion) { if (paintOnScreen()) repaint_sys(region); - else if (QWidgetBackingStore *bs = maybeBackingStore()) { - bs->sync(q_func(), region); + else if (QWidgetRepaintManager *repaintManager = maybeRepaintManager()) { + repaintManager->sync(q_func(), region); } } @@ -5411,7 +5411,7 @@ void QWidgetPrivate::render_helper(QPainter *painter, const QPoint &targetOffset } void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, int flags, - QPainter *sharedPainter, QWidgetBackingStore *backingStore) + QPainter *sharedPainter, QWidgetRepaintManager *repaintManager) { if (rgn.isEmpty()) return; @@ -5426,7 +5426,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP QWidgetEffectSourcePrivate *sourced = static_cast (source->d_func()); if (!sourced->context) { - QWidgetPaintContext context(pdev, rgn, offset, flags, sharedPainter, backingStore); + QWidgetPaintContext context(pdev, rgn, offset, flags, sharedPainter, repaintManager); sourced->context = &context; if (!sharedPainter) { setSystemClip(pdev->paintEngine(), pdev->devicePixelRatioF(), rgn.translated(offset)); @@ -5452,8 +5452,8 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP // Native widgets need to be marked dirty on screen so painting will be done in correct context // Same check as in the no effects case below. - if (backingStore && !onScreen && !asRoot && (q->internalWinId() || !q->nativeParentWidget()->isWindow())) - backingStore->markDirtyOnScreen(rgn, q, offset); + if (repaintManager && !onScreen && !asRoot && (q->internalWinId() || !q->nativeParentWidget()->isWindow())) + repaintManager->markDirtyOnScreen(rgn, q, offset); return; } @@ -5481,7 +5481,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP //clip away the new area #ifndef QT_NO_PAINT_DEBUG - bool flushed = QWidgetBackingStore::flushPaint(q, toBePainted); + bool flushed = QWidgetRepaintManager::flushPaint(q, toBePainted); #endif QPaintEngine *paintEngine = pdev->paintEngine(); if (paintEngine) { @@ -5543,11 +5543,11 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP // This widget renders into a texture which is composed later. We just need to // punch a hole in the backingstore, so the texture will be visible. beginBackingStorePainting(); - if (!q->testAttribute(Qt::WA_AlwaysStackOnTop) && backingStore) { + if (!q->testAttribute(Qt::WA_AlwaysStackOnTop) && repaintManager) { QPainter p(q); p.setCompositionMode(QPainter::CompositionMode_Source); p.fillRect(q->rect(), Qt::transparent); - } else if (!backingStore) { + } else if (!repaintManager) { // We are not drawing to a backingstore: fall back to QImage QImage img = grabFramebuffer(); // grabFramebuffer() always sets the format to RGB32 @@ -5572,8 +5572,8 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP } // Native widgets need to be marked dirty on screen so painting will be done in correct context - if (backingStore && !onScreen && !asRoot && (q->internalWinId() || (q->nativeParentWidget() && !q->nativeParentWidget()->isWindow()))) - backingStore->markDirtyOnScreen(toBePainted, q, offset); + if (repaintManager && !onScreen && !asRoot && (q->internalWinId() || (q->nativeParentWidget() && !q->nativeParentWidget()->isWindow()))) + repaintManager->markDirtyOnScreen(toBePainted, q, offset); //restore if (paintEngine) { @@ -5599,7 +5599,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP #ifndef QT_NO_PAINT_DEBUG if (flushed) - QWidgetBackingStore::unflushPaint(q, toBePainted); + QWidgetRepaintManager::unflushPaint(q, toBePainted); #endif } else if (q->isWindow()) { QPaintEngine *engine = pdev->paintEngine(); @@ -5619,8 +5619,8 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP } if (recursive && !children.isEmpty()) { - paintSiblingsRecursive(pdev, children, children.size() - 1, rgn, offset, flags & ~DrawAsRoot - , sharedPainter, backingStore); + paintSiblingsRecursive(pdev, children, children.size() - 1, rgn, offset, flags & ~DrawAsRoot, + sharedPainter, repaintManager); } } @@ -5712,7 +5712,7 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectList& siblings, int index, const QRegion &rgn, const QPoint &offset, int flags - , QPainter *sharedPainter, QWidgetBackingStore *backingStore) + , QPainter *sharedPainter, QWidgetRepaintManager *repaintManager) { QWidget *w = 0; QRect boundingRect; @@ -5747,8 +5747,8 @@ void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectLis QRegion wr(rgn); if (wd->isOpaque) wr -= hasMask ? wd->extra->mask.translated(widgetPos) : w->data->crect; - paintSiblingsRecursive(pdev, siblings, --index, wr, offset, flags - , sharedPainter, backingStore); + paintSiblingsRecursive(pdev, siblings, --index, wr, offset, flags, + sharedPainter, repaintManager); } if (w->updatesEnabled() @@ -5761,7 +5761,7 @@ void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectLis wRegion.translate(-widgetPos); if (hasMask) wRegion &= wd->extra->mask; - wd->drawWidget(pdev, wRegion, offset + widgetPos, flags, sharedPainter, backingStore); + wd->drawWidget(pdev, wRegion, offset + widgetPos, flags, sharedPainter, repaintManager); } } @@ -5796,7 +5796,7 @@ void QWidgetEffectSourcePrivate::draw(QPainter *painter) toBePainted &= wd->extra->mask; wd->drawWidget(context->pdev, toBePainted, context->offset, context->flags, - context->sharedPainter, context->backingStore); + context->sharedPainter, context->repaintManager); } QPixmap QWidgetEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint *offset, @@ -8173,8 +8173,8 @@ void QWidgetPrivate::hide_helper() } } - if (QWidgetBackingStore *bs = maybeBackingStore()) - bs->removeDirtyWidget(q); + if (QWidgetRepaintManager *repaintManager = maybeRepaintManager()) + repaintManager->removeDirtyWidget(q); #ifndef QT_NO_ACCESSIBILITY if (wasVisible) { @@ -10680,12 +10680,12 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) } #endif - if (QWidgetBackingStore *oldBs = oldtlw->d_func()->maybeBackingStore()) { + if (QWidgetRepaintManager *oldPaintManager = oldtlw->d_func()->maybeRepaintManager()) { if (newParent) - oldBs->removeDirtyWidget(this); + oldPaintManager->removeDirtyWidget(this); // Move the widget and all its static children from // the old backing store to the new one. - oldBs->moveStaticWidgets(this); + oldPaintManager->moveStaticWidgets(this); } // ### fixme: Qt 6: Remove AA_ImmediateWidgetCreation. @@ -11039,7 +11039,7 @@ void QWidgetPrivate::repaint(T r) QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->widgetBackingStore->markDirty(r, q, QWidgetBackingStore::UpdateNow); + tlwExtra->repaintManager->markDirty(r, q, QWidgetRepaintManager::UpdateNow); } /*! @@ -11114,7 +11114,7 @@ void QWidgetPrivate::update(T r) QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->widgetBackingStore->markDirty(clipped, q); + tlwExtra->repaintManager->markDirty(clipped, q); } /*! @@ -11395,11 +11395,11 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) break; case Qt::WA_StaticContents: - if (QWidgetBackingStore *bs = d->maybeBackingStore()) { + if (QWidgetRepaintManager *repaintManager = d->maybeRepaintManager()) { if (on) - bs->addStaticWidget(this); + repaintManager->addStaticWidget(this); else - bs->removeStaticWidget(this); + repaintManager->removeStaticWidget(this); } break; case Qt::WA_TranslucentBackground: @@ -12204,14 +12204,14 @@ void QWidget::setBackingStore(QBackingStore *store) deleteBackingStore(d); topData->backingStore = store; - QWidgetBackingStore *bs = d->maybeBackingStore(); - if (!bs) + QWidgetRepaintManager *repaintManager = d->maybeRepaintManager(); + if (!repaintManager) return; if (isTopLevel()) { - if (bs->store != oldStore && bs->store != store) - delete bs->store; - bs->store = store; + if (repaintManager->store != oldStore && repaintManager->store != store) + delete repaintManager->store; + repaintManager->store = store; } } @@ -12227,9 +12227,8 @@ QBackingStore *QWidget::backingStore() const if (extra && extra->backingStore) return extra->backingStore; - QWidgetBackingStore *bs = d->maybeBackingStore(); - - return bs ? bs->store : 0; + QWidgetRepaintManager *repaintManager = d->maybeRepaintManager(); + return repaintManager ? repaintManager->store : nullptr; } void QWidgetPrivate::getLayoutItemMargins(int *left, int *top, int *right, int *bottom) const diff --git a/src/widgets/kernel/qwidget.h b/src/widgets/kernel/qwidget.h index 0777bed65c..f7ec7f9cf1 100644 --- a/src/widgets/kernel/qwidget.h +++ b/src/widgets/kernel/qwidget.h @@ -697,7 +697,7 @@ private: QLayout *takeLayout(); friend class QBackingStoreDevice; - friend class QWidgetBackingStore; + friend class QWidgetRepaintManager; friend class QApplication; friend class QApplicationPrivate; friend class QGuiApplication; diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index b4a9d283db..c3b3a2ed93 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -86,7 +86,7 @@ QT_BEGIN_NAMESPACE class QWidgetWindow; class QPaintEngine; class QPixmap; -class QWidgetBackingStore; +class QWidgetRepaintManager; class QGraphicsProxyWidget; class QWidgetItemV2; class QOpenGLContext; @@ -121,7 +121,7 @@ struct QTLWExtra { // Regular pointers (keep them together to avoid gaps on 64 bits architectures). std::unique_ptr icon; // widget icon - std::unique_ptr widgetBackingStore; + std::unique_ptr repaintManager; QBackingStore *backingStore; QPainter *sharedPainter; QWidgetWindow *window; @@ -305,7 +305,7 @@ public: QTLWExtra *maybeTopData() const; QPainter *sharedPainter() const; void setSharedPainter(QPainter *painter); - QWidgetBackingStore *maybeBackingStore() const; + QWidgetRepaintManager *maybeRepaintManager() const; enum class WindowHandleMode { Direct, @@ -384,13 +384,13 @@ public: void render(QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, QWidget::RenderFlags renderFlags); void drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, int flags, - QPainter *sharedPainter = nullptr, QWidgetBackingStore *backingStore = nullptr); + QPainter *sharedPainter = nullptr, QWidgetRepaintManager *repaintManager = nullptr); void sendPaintEvent(const QRegion &toBePainted); void paintSiblingsRecursive(QPaintDevice *pdev, const QObjectList& children, int index, const QRegion &rgn, const QPoint &offset, int flags, - QPainter *sharedPainter, QWidgetBackingStore *backingStore); + QPainter *sharedPainter, QWidgetRepaintManager *repaintManager); #if QT_CONFIG(graphicsview) static QGraphicsProxyWidget * nearestGraphicsProxyWidget(const QWidget *origin); @@ -876,15 +876,15 @@ public: struct QWidgetPaintContext { inline QWidgetPaintContext(QPaintDevice *d, const QRegion &r, const QPoint &o, int f, - QPainter *p, QWidgetBackingStore *b) - : pdev(d), rgn(r), offset(o), flags(f), sharedPainter(p), backingStore(b), painter(nullptr) {} + QPainter *p, QWidgetRepaintManager *rpm) + : pdev(d), rgn(r), offset(o), flags(f), sharedPainter(p), repaintManager(rpm), painter(nullptr) {} QPaintDevice *pdev; QRegion rgn; QPoint offset; int flags; QPainter *sharedPainter; - QWidgetBackingStore *backingStore; + QWidgetRepaintManager *repaintManager; QPainter *painter; }; @@ -980,11 +980,11 @@ inline bool QWidgetPrivate::pointInsideRectAndMask(const QPoint &p) const || extra->mask.contains(p)); } -inline QWidgetBackingStore *QWidgetPrivate::maybeBackingStore() const +inline QWidgetRepaintManager *QWidgetPrivate::maybeRepaintManager() const { Q_Q(const QWidget); QTLWExtra *x = q->window()->d_func()->maybeTopData(); - return x ? x->widgetBackingStore.get() : nullptr; + return x ? x->repaintManager.get() : nullptr; } QT_END_NAMESPACE diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp deleted file mode 100644 index 1b963010d1..0000000000 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ /dev/null @@ -1,1595 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include "qplatformdefs.h" - -#include "qwidgetbackingstore_p.h" - -#include -#include -#include -#include -#include -#include -#if QT_CONFIG(graphicsview) -#include -#endif - -#include -#include -#include -#if QT_CONFIG(graphicseffect) -#include -#endif -#include -#include - -#include - -#if defined(Q_OS_WIN) && !defined(QT_NO_PAINT_DEBUG) -# include -# include -#endif - -#include - -QT_BEGIN_NAMESPACE - -extern QRegion qt_dirtyRegion(QWidget *); - -#ifndef QT_NO_OPENGL -Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) -#endif - -static bool hasPlatformWindow(QWidget *widget) -{ - return widget && widget->windowHandle() && widget->windowHandle()->handle(); -} - -/** - * Flushes the contents of the \a backingStore into the screen area of \a widget. - * \a region is the region to be updated in \a widget coordinates. - */ -void QWidgetBackingStore::qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, - QWidget *tlw, QPlatformTextureList *widgetTextures, - QWidgetBackingStore *widgetBackingStore) -{ -#ifdef QT_NO_OPENGL - Q_UNUSED(widgetTextures); - Q_ASSERT(!region.isEmpty()); -#else - Q_ASSERT(!region.isEmpty() || widgetTextures); -#endif - Q_ASSERT(widget); - Q_ASSERT(backingStore); - Q_ASSERT(tlw); -#if !defined(QT_NO_PAINT_DEBUG) - static int flushUpdate = qEnvironmentVariableIntValue("QT_FLUSH_UPDATE"); - if (flushUpdate > 0) - QWidgetBackingStore::showYellowThing(widget, region, flushUpdate * 10, false); -#endif - - if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen)) - return; - - // Foreign Windows do not have backing store content and must not be flushed - if (QWindow *widgetWindow = widget->windowHandle()) { - if (widgetWindow->type() == Qt::ForeignWindow) - return; - } - - static bool fpsDebug = qEnvironmentVariableIntValue("QT_DEBUG_FPS"); - if (fpsDebug) { - if (!widgetBackingStore->perfFrames++) - widgetBackingStore->perfTime.start(); - if (widgetBackingStore->perfTime.elapsed() > 5000) { - double fps = double(widgetBackingStore->perfFrames * 1000) / widgetBackingStore->perfTime.restart(); - qDebug("FPS: %.1f\n", fps); - widgetBackingStore->perfFrames = 0; - } - } - - QPoint offset; - if (widget != tlw) - offset += widget->mapTo(tlw, QPoint()); - - QRegion effectiveRegion = region; -#ifndef QT_NO_OPENGL - const bool compositionWasActive = widget->d_func()->renderToTextureComposeActive; - if (!widgetTextures) { - widget->d_func()->renderToTextureComposeActive = false; - // Detect the case of falling back to the normal flush path when no - // render-to-texture widgets are visible anymore. We will force one - // last flush to go through the OpenGL-based composition to prevent - // artifacts. The next flush after this one will use the normal path. - if (compositionWasActive) - widgetTextures = qt_dummy_platformTextureList; - } else { - widget->d_func()->renderToTextureComposeActive = true; - } - // When changing the composition status, make sure the dirty region covers - // the entire widget. Just having e.g. the shown/hidden render-to-texture - // widget's area marked as dirty is incorrect when changing flush paths. - if (compositionWasActive != widget->d_func()->renderToTextureComposeActive) - effectiveRegion = widget->rect(); - - // re-test since we may have been forced to this path via the dummy texture list above - if (widgetTextures) { - qt_window_private(tlw->windowHandle())->compositing = true; - widget->window()->d_func()->sendComposeStatus(widget->window(), false); - // A window may have alpha even when the app did not request - // WA_TranslucentBackground. Therefore the compositor needs to know whether the app intends - // to rely on translucency, in order to decide if it should clear to transparent or opaque. - const bool translucentBackground = widget->testAttribute(Qt::WA_TranslucentBackground); - backingStore->handle()->composeAndFlush(widget->windowHandle(), effectiveRegion, offset, - widgetTextures, translucentBackground); - widget->window()->d_func()->sendComposeStatus(widget->window(), true); - } else -#endif - backingStore->flush(effectiveRegion, widget->windowHandle(), offset); -} - -#ifndef QT_NO_PAINT_DEBUG -#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - -static void showYellowThing_win(QWidget *widget, const QRegion ®ion, int msec) -{ - // We expect to be passed a native parent. - QWindow *nativeWindow = widget->windowHandle(); - if (!nativeWindow) - return; - void *hdcV = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("getDC"), nativeWindow); - if (!hdcV) - return; - const HDC hdc = reinterpret_cast(hdcV); - - static const COLORREF colors[] = {RGB(255, 255, 0), RGB(255, 200, 55), RGB(200, 255, 55), RGB(200, 200, 0)}; - - static size_t i = 0; - const HBRUSH brush = CreateSolidBrush(colors[i]); - i = (i + 1) % (sizeof(colors) / sizeof(colors[0])); - - for (const QRect &rect : region) { - RECT winRect; - SetRect(&winRect, rect.left(), rect.top(), rect.right(), rect.bottom()); - FillRect(hdc, &winRect, brush); - } - DeleteObject(brush); - QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("releaseDC"), nativeWindow); - ::Sleep(msec); -} -#endif // defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - -void QWidgetBackingStore::showYellowThing(QWidget *widget, const QRegion &toBePainted, int msec, bool unclipped) -{ -#ifdef Q_OS_WINRT - Q_UNUSED(msec) -#endif - QRegion paintRegion = toBePainted; - QRect widgetRect = widget->rect(); - - if (!hasPlatformWindow(widget)) { - QWidget *nativeParent = widget->nativeParentWidget(); - const QPoint offset = widget->mapTo(nativeParent, QPoint(0, 0)); - paintRegion.translate(offset); - widgetRect.translate(offset); - widget = nativeParent; - } - -#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - Q_UNUSED(unclipped); - showYellowThing_win(widget, paintRegion, msec); -#else - //flags to fool painter - bool paintUnclipped = widget->testAttribute(Qt::WA_PaintUnclipped); - if (unclipped && !widget->d_func()->paintOnScreen()) - widget->setAttribute(Qt::WA_PaintUnclipped); - - const bool setFlag = !widget->testAttribute(Qt::WA_WState_InPaintEvent); - if (setFlag) - widget->setAttribute(Qt::WA_WState_InPaintEvent); - - //setup the engine - QPaintEngine *pe = widget->paintEngine(); - if (pe) { - pe->setSystemClip(paintRegion); - { - QPainter p(widget); - p.setClipRegion(paintRegion); - static int i = 0; - switch (i) { - case 0: - p.fillRect(widgetRect, QColor(255,255,0)); - break; - case 1: - p.fillRect(widgetRect, QColor(255,200,55)); - break; - case 2: - p.fillRect(widgetRect, QColor(200,255,55)); - break; - case 3: - p.fillRect(widgetRect, QColor(200,200,0)); - break; - } - i = (i+1) & 3; - p.end(); - } - } - - if (setFlag) - widget->setAttribute(Qt::WA_WState_InPaintEvent, false); - - //restore - widget->setAttribute(Qt::WA_PaintUnclipped, paintUnclipped); - - if (pe) - pe->setSystemClip(QRegion()); - -#if defined(Q_OS_UNIX) - ::usleep(1000 * msec); -#endif -#endif // !Q_OS_WIN -} - -bool QWidgetBackingStore::flushPaint(QWidget *widget, const QRegion &rgn) -{ - if (!widget) - return false; - - int delay = 0; - if (widget->testAttribute(Qt::WA_WState_InPaintEvent)) { - static int flushPaintEvent = qEnvironmentVariableIntValue("QT_FLUSH_PAINT_EVENT"); - if (!flushPaintEvent) - return false; - delay = flushPaintEvent; - } else { - static int flushPaint = qEnvironmentVariableIntValue("QT_FLUSH_PAINT"); - if (!flushPaint) - return false; - delay = flushPaint; - } - - QWidgetBackingStore::showYellowThing(widget, rgn, delay * 10, true); - return true; -} - -void QWidgetBackingStore::unflushPaint(QWidget *widget, const QRegion &rgn) -{ - if (widget->d_func()->paintOnScreen() || rgn.isEmpty()) - return; - - QWidget *tlw = widget->window(); - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (!tlwExtra) - return; - - qt_flush(widget, rgn, tlwExtra->widgetBackingStore->store, tlw, 0, tlw->d_func()->maybeBackingStore()); -} -#endif // QT_NO_PAINT_DEBUG - -/* - Moves the whole rect by (dx, dy) in widget's coordinate system. - Doesn't generate any updates. -*/ -bool QWidgetBackingStore::bltRect(const QRect &rect, int dx, int dy, QWidget *widget) -{ - const QPoint pos(widget->mapTo(tlw, rect.topLeft())); - const QRect tlwRect(QRect(pos, rect.size())); - if (dirty.intersects(tlwRect)) - return false; // We don't want to scroll junk. - return store->scroll(tlwRect, dx, dy); -} - -/*! - Prepares the window surface to paint a\ toClean region of the \a widget and - updates the BeginPaintInfo struct accordingly. - - The \a toClean region might be clipped by the window surface. -*/ -void QWidgetBackingStore::beginPaint(QRegion &toClean, QWidget *widget, QBackingStore *backingStore, - BeginPaintInfo *returnInfo, bool toCleanIsInTopLevelCoordinates) -{ - Q_UNUSED(widget); - Q_UNUSED(toCleanIsInTopLevelCoordinates); - - // Always flush repainted areas. - dirtyOnScreen += toClean; - -#ifdef QT_NO_PAINT_DEBUG - backingStore->beginPaint(toClean); -#else - returnInfo->wasFlushed = QWidgetBackingStore::flushPaint(tlw, toClean); - // Avoid deadlock with QT_FLUSH_PAINT: the server will wait for - // the BackingStore lock, so if we hold that, the server will - // never release the Communication lock that we are waiting for in - // sendSynchronousCommand - if (!returnInfo->wasFlushed) - backingStore->beginPaint(toClean); -#endif - - Q_UNUSED(returnInfo); -} - -void QWidgetBackingStore::endPaint(const QRegion &cleaned, QBackingStore *backingStore, - BeginPaintInfo *beginPaintInfo) -{ -#ifndef QT_NO_PAINT_DEBUG - if (!beginPaintInfo->wasFlushed) - backingStore->endPaint(); - else - QWidgetBackingStore::unflushPaint(tlw, cleaned); -#else - Q_UNUSED(beginPaintInfo); - Q_UNUSED(cleaned); - backingStore->endPaint(); -#endif - - flush(); -} - -/*! - Returns the region (in top-level coordinates) that needs repaint and/or flush. - - If the widget is non-zero, only the dirty region for the widget is returned - and the region will be in widget coordinates. -*/ -QRegion QWidgetBackingStore::dirtyRegion(QWidget *widget) const -{ - const bool widgetDirty = widget && widget != tlw; - const QRect tlwRect(topLevelRect()); - const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); - if (surfaceGeometry != tlwRect && surfaceGeometry.size() != tlwRect.size()) { - if (widgetDirty) { - const QRect dirtyTlwRect = QRect(QPoint(), tlwRect.size()); - const QPoint offset(widget->mapTo(tlw, QPoint())); - const QRect dirtyWidgetRect(dirtyTlwRect & widget->rect().translated(offset)); - return dirtyWidgetRect.translated(-offset); - } - return QRect(QPoint(), tlwRect.size()); - } - - // Calculate the region that needs repaint. - QRegion r(dirty); - for (int i = 0; i < dirtyWidgets.size(); ++i) { - QWidget *w = dirtyWidgets.at(i); - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) - continue; - r += w->d_func()->dirty.translated(w->mapTo(tlw, QPoint())); - } - - // Append the region that needs flush. - r += dirtyOnScreen; - - for (QWidget *w : dirtyOnScreenWidgets) { - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) - continue; - QWidgetPrivate *wd = w->d_func(); - Q_ASSERT(wd->needsFlush); - r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); - } - - if (widgetDirty) { - // Intersect with the widget geometry and translate to its coordinates. - const QPoint offset(widget->mapTo(tlw, QPoint())); - r &= widget->rect().translated(offset); - r.translate(-offset); - } - return r; -} - -/*! - Returns the static content inside the \a parent if non-zero; otherwise the static content - for the entire backing store is returned. The content will be clipped to \a withinClipRect - if non-empty. -*/ -QRegion QWidgetBackingStore::staticContents(QWidget *parent, const QRect &withinClipRect) const -{ - if (!parent && tlw->testAttribute(Qt::WA_StaticContents)) { - const QSize surfaceGeometry(store->size()); - QRect surfaceRect(0, 0, surfaceGeometry.width(), surfaceGeometry.height()); - if (!withinClipRect.isEmpty()) - surfaceRect &= withinClipRect; - return QRegion(surfaceRect); - } - - QRegion region; - if (parent && parent->d_func()->children.isEmpty()) - return region; - - const bool clipToRect = !withinClipRect.isEmpty(); - const int count = staticWidgets.count(); - for (int i = 0; i < count; ++i) { - QWidget *w = staticWidgets.at(i); - QWidgetPrivate *wd = w->d_func(); - if (!wd->isOpaque || !wd->extra || wd->extra->staticContentsSize.isEmpty() - || !w->isVisible() || (parent && !parent->isAncestorOf(w))) { - continue; - } - - QRect rect(0, 0, wd->extra->staticContentsSize.width(), wd->extra->staticContentsSize.height()); - const QPoint offset = w->mapTo(parent ? parent : tlw, QPoint()); - if (clipToRect) - rect &= withinClipRect.translated(-offset); - if (rect.isEmpty()) - continue; - - rect &= wd->clipRect(); - if (rect.isEmpty()) - continue; - - QRegion visible(rect); - wd->clipToEffectiveMask(visible); - if (visible.isEmpty()) - continue; - wd->subtractOpaqueSiblings(visible, 0, /*alsoNonOpaque=*/true); - - visible.translate(offset); - region += visible; - } - - return region; -} - -void QWidgetBackingStore::sendUpdateRequest(QWidget *widget, UpdateTime updateTime) -{ - if (!widget) - return; - -#ifndef QT_NO_OPENGL - // Having every repaint() leading to a sync/flush is bad as it causes - // compositing and waiting for vsync each and every time. Change to - // UpdateLater, except for approx. once per frame to prevent starvation in - // case the control does not get back to the event loop. - QWidget *w = widget->window(); - if (updateTime == UpdateNow && w && w->windowHandle() && QWindowPrivate::get(w->windowHandle())->compositing) { - int refresh = 60; - QScreen *ws = w->windowHandle()->screen(); - if (ws) - refresh = ws->refreshRate(); - QWindowPrivate *wd = QWindowPrivate::get(w->windowHandle()); - if (wd->lastComposeTime.isValid()) { - const qint64 elapsed = wd->lastComposeTime.elapsed(); - if (elapsed <= qint64(1000.0f / refresh)) - updateTime = UpdateLater; - } - } -#endif - - switch (updateTime) { - case UpdateLater: - updateRequestSent = true; - QCoreApplication::postEvent(widget, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority); - break; - case UpdateNow: { - QEvent event(QEvent::UpdateRequest); - QCoreApplication::sendEvent(widget, &event); - break; - } - } -} - -static inline QRect widgetRectFor(QWidget *, const QRect &r) { return r; } -static inline QRect widgetRectFor(QWidget *widget, const QRegion &) { return widget->rect(); } - -/*! - Marks the region of the widget as dirty (if not already marked as dirty) and - posts an UpdateRequest event to the top-level widget (if not already posted). - - If updateTime is UpdateNow, the event is sent immediately instead of posted. - - If bufferState is BufferInvalid, all widgets intersecting with the region will be dirty. - - If the widget paints directly on screen, the event is sent to the widget - instead of the top-level widget, and bufferState is completely ignored. -*/ -template -void QWidgetBackingStore::markDirty(const T &r, QWidget *widget, UpdateTime updateTime, BufferState bufferState) -{ - Q_ASSERT(tlw->d_func()->extra); - Q_ASSERT(tlw->d_func()->extra->topextra); - Q_ASSERT(!tlw->d_func()->extra->topextra->inTopLevelResize); - Q_ASSERT(widget->isVisible() && widget->updatesEnabled()); - Q_ASSERT(widget->window() == tlw); - Q_ASSERT(!r.isEmpty()); - -#if QT_CONFIG(graphicseffect) - widget->d_func()->invalidateGraphicsEffectsRecursively(); -#endif - - QRect widgetRect = widgetRectFor(widget, r); - - // --------------------------------------------------------------------------- - - if (widget->d_func()->paintOnScreen()) { - if (widget->d_func()->dirty.isEmpty()) { - widget->d_func()->dirty = r; - sendUpdateRequest(widget, updateTime); - return; - } else if (qt_region_strictContains(widget->d_func()->dirty, widgetRect)) { - if (updateTime == UpdateNow) - sendUpdateRequest(widget, updateTime); - return; // Already dirty - } - - const bool eventAlreadyPosted = !widget->d_func()->dirty.isEmpty(); - widget->d_func()->dirty += r; - if (!eventAlreadyPosted || updateTime == UpdateNow) - sendUpdateRequest(widget, updateTime); - return; - } - - // --------------------------------------------------------------------------- - - if (QWidgetPrivate::get(widget)->renderToTexture) { - if (!widget->d_func()->inDirtyList) - addDirtyRenderToTextureWidget(widget); - if (!updateRequestSent || updateTime == UpdateNow) - sendUpdateRequest(tlw, updateTime); - return; - } - - // --------------------------------------------------------------------------- - - QRect effectiveWidgetRect = widget->d_func()->effectiveRectFor(widgetRect); - const QPoint offset = widget->mapTo(tlw, QPoint()); - QRect translatedRect = effectiveWidgetRect.translated(offset); -#if QT_CONFIG(graphicseffect) - // Graphics effects may exceed window size, clamp - translatedRect = translatedRect.intersected(QRect(QPoint(), tlw->size())); -#endif - if (qt_region_strictContains(dirty, translatedRect)) { - if (updateTime == UpdateNow) - sendUpdateRequest(tlw, updateTime); - return; // Already dirty - } - - // --------------------------------------------------------------------------- - - if (bufferState == BufferInvalid) { - const bool eventAlreadyPosted = !dirty.isEmpty() || updateRequestSent; -#if QT_CONFIG(graphicseffect) - if (widget->d_func()->graphicsEffect) - dirty += widget->d_func()->effectiveRectFor(r).translated(offset); - else -#endif - dirty += r.translated(offset); - - if (!eventAlreadyPosted || updateTime == UpdateNow) - sendUpdateRequest(tlw, updateTime); - return; - } - - // --------------------------------------------------------------------------- - - if (dirtyWidgets.isEmpty()) { - addDirtyWidget(widget, r); - sendUpdateRequest(tlw, updateTime); - return; - } - - // --------------------------------------------------------------------------- - - if (widget->d_func()->inDirtyList) { - if (!qt_region_strictContains(widget->d_func()->dirty, effectiveWidgetRect)) { -#if QT_CONFIG(graphicseffect) - if (widget->d_func()->graphicsEffect) - widget->d_func()->dirty += widget->d_func()->effectiveRectFor(r); - else -#endif - widget->d_func()->dirty += r; - } - } else { - addDirtyWidget(widget, r); - } - - // --------------------------------------------------------------------------- - - if (updateTime == UpdateNow) - sendUpdateRequest(tlw, updateTime); -} -template void QWidgetBackingStore::markDirty(const QRect &, QWidget *, UpdateTime, BufferState); -template void QWidgetBackingStore::markDirty(const QRegion &, QWidget *, UpdateTime, BufferState); - -/*! - Marks the \a region of the \a widget as dirty on screen. The \a region will be copied from - the backing store to the \a widget's native parent next time flush() is called. - - Paint on screen widgets are ignored. -*/ -void QWidgetBackingStore::markDirtyOnScreen(const QRegion ®ion, QWidget *widget, const QPoint &topLevelOffset) -{ - if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) - return; - -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region.translated(topLevelOffset); - return; -#endif - - // Top-level. - if (widget == tlw) { - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region; - return; - } - - // Alien widgets. - if (!hasPlatformWindow(widget) && !widget->isWindow()) { - QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). - if (nativeParent == tlw) { - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region.translated(topLevelOffset); - return; - } - - // Alien widgets with native parent != tlw. - QWidgetPrivate *nativeParentPrivate = nativeParent->d_func(); - if (!nativeParentPrivate->needsFlush) - nativeParentPrivate->needsFlush = new QRegion; - const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); - *nativeParentPrivate->needsFlush += region.translated(nativeParentOffset); - appendDirtyOnScreenWidget(nativeParent); - return; - } - - // Native child widgets. - QWidgetPrivate *widgetPrivate = widget->d_func(); - if (!widgetPrivate->needsFlush) - widgetPrivate->needsFlush = new QRegion; - *widgetPrivate->needsFlush += region; - appendDirtyOnScreenWidget(widget); -} - -void QWidgetBackingStore::removeDirtyWidget(QWidget *w) -{ - if (!w) - return; - - dirtyWidgets.removeAll(w); - dirtyOnScreenWidgets.removeAll(w); - dirtyRenderToTextureWidgets.removeAll(w); - resetWidget(w); - - QWidgetPrivate *wd = w->d_func(); - const int n = wd->children.count(); - for (int i = 0; i < n; ++i) { - if (QWidget *child = qobject_cast(wd->children.at(i))) - removeDirtyWidget(child); - } -} - -void QWidgetBackingStore::updateLists(QWidget *cur) -{ - if (!cur) - return; - - QList children = cur->children(); - for (int i = 0; i < children.size(); ++i) { - QWidget *child = qobject_cast(children.at(i)); - if (!child || child->isWindow()) - continue; - - updateLists(child); - } - - if (cur->testAttribute(Qt::WA_StaticContents)) - addStaticWidget(cur); -} - -QWidgetBackingStore::QWidgetBackingStore(QWidget *topLevel) - : tlw(topLevel), - updateRequestSent(0), - textureListWatcher(0), - perfFrames(0) -{ - store = tlw->backingStore(); - Q_ASSERT(store); - - // Ensure all existing subsurfaces and static widgets are added to their respective lists. - updateLists(topLevel); -} - -QWidgetBackingStore::~QWidgetBackingStore() -{ - for (int c = 0; c < dirtyWidgets.size(); ++c) - resetWidget(dirtyWidgets.at(c)); - for (int c = 0; c < dirtyRenderToTextureWidgets.size(); ++c) - resetWidget(dirtyRenderToTextureWidgets.at(c)); -} - -static QVector getSortedRectsToScroll(const QRegion ®ion, int dx, int dy) -{ - QVector rects; - std::copy(region.begin(), region.end(), std::back_inserter(rects)); - if (rects.count() > 1) { - std::sort(rects.begin(), rects.end(), [=](const QRect &r1, const QRect &r2) { - if (r1.y() == r2.y()) { - if (dx > 0) - return r1.x() > r2.x(); - return r1.x() < r2.x(); - } - if (dy > 0) - return r1.y() > r2.y(); - return r1.y() < r2.y(); - }); - } - return rects; -} - -//parent's coordinates; move whole rect; update parent and widget -//assume the screen blt has already been done, so we don't need to refresh that part -void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) -{ - Q_Q(QWidget); - if (!q->isVisible() || (dx == 0 && dy == 0)) - return; - - QWidget *tlw = q->window(); - QTLWExtra* x = tlw->d_func()->topData(); - if (x->inTopLevelResize) - return; - - static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_MOVE") == 0; - - QWidget *pw = q->parentWidget(); - QPoint toplevelOffset = pw->mapTo(tlw, QPoint()); - QWidgetPrivate *pd = pw->d_func(); - QRect clipR(pd->clipRect()); - const QRect newRect(rect.translated(dx, dy)); - QRect destRect = rect.intersected(clipR); - if (destRect.isValid()) - destRect = destRect.translated(dx, dy).intersected(clipR); - const QRect sourceRect(destRect.translated(-dx, -dy)); - const QRect parentRect(rect & clipR); - const bool nativeWithTextureChild = textureChildSeen && hasPlatformWindow(q); - - const bool accelerateMove = accelEnv && isOpaque && !nativeWithTextureChild -#if QT_CONFIG(graphicsview) - // No accelerate move for proxy widgets. - && !tlw->d_func()->extra->proxyWidget -#endif - ; - - if (!accelerateMove) { - QRegion parentR(effectiveRectFor(parentRect)); - if (!extra || !extra->hasMask) { - parentR -= newRect; - } else { - // invalidateBackingStore() excludes anything outside the mask - parentR += newRect & clipR; - } - pd->invalidateBackingStore(parentR); - invalidateBackingStore((newRect & clipR).translated(-data.crect.topLeft())); - } else { - - QWidgetBackingStore *wbs = x->widgetBackingStore.get(); - QRegion childExpose(newRect & clipR); - QRegion overlappedExpose; - - if (sourceRect.isValid()) { - overlappedExpose = (overlappedRegion(sourceRect) | overlappedRegion(destRect)) & clipR; - - const qreal factor = QHighDpiScaling::factor(q->windowHandle()); - if (overlappedExpose.isEmpty() || qFloor(factor) == factor) { - const QVector rectsToScroll - = getSortedRectsToScroll(QRegion(sourceRect) - overlappedExpose, dx, dy); - for (QRect rect : rectsToScroll) { - if (wbs->bltRect(rect, dx, dy, pw)) { - childExpose -= rect.translated(dx, dy); - } - } - } - - childExpose -= overlappedExpose; - } - - if (!pw->updatesEnabled()) - return; - - const bool childUpdatesEnabled = q->updatesEnabled(); - if (childUpdatesEnabled) { - if (!overlappedExpose.isEmpty()) { - overlappedExpose.translate(-data.crect.topLeft()); - invalidateBackingStore(overlappedExpose); - } - if (!childExpose.isEmpty()) { - childExpose.translate(-data.crect.topLeft()); - wbs->markDirty(childExpose, q); - isMoved = true; - } - } - - QRegion parentExpose(parentRect); - parentExpose -= newRect; - if (extra && extra->hasMask) - parentExpose += QRegion(newRect) - extra->mask.translated(data.crect.topLeft()); - - if (!parentExpose.isEmpty()) { - wbs->markDirty(parentExpose, pw); - pd->isMoved = true; - } - - if (childUpdatesEnabled) { - QRegion needsFlush(sourceRect); - needsFlush += destRect; - wbs->markDirtyOnScreen(needsFlush, pw, toplevelOffset); - } - } -} - -//widget's coordinates; scroll within rect; only update widget -void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) -{ - Q_Q(QWidget); - QWidget *tlw = q->window(); - QTLWExtra* x = tlw->d_func()->topData(); - if (x->inTopLevelResize) - return; - - QWidgetBackingStore *wbs = x->widgetBackingStore.get(); - if (!wbs) - return; - - static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_SCROLL") == 0; - - const QRect clipR = clipRect(); - const QRect scrollRect = rect & clipR; - const bool accelerateScroll = accelEnv && isOpaque && !q_func()->testAttribute(Qt::WA_WState_InPaintEvent); - - if (!accelerateScroll) { - if (!overlappedRegion(scrollRect.translated(data.crect.topLeft()), true).isEmpty()) { - QRegion region(scrollRect); - subtractOpaqueSiblings(region); - invalidateBackingStore(region); - }else { - invalidateBackingStore(scrollRect); - } - } else { - const QPoint toplevelOffset = q->mapTo(tlw, QPoint()); - const QRect destRect = scrollRect.translated(dx, dy) & scrollRect; - const QRect sourceRect = destRect.translated(-dx, -dy); - - const QRegion overlappedExpose = (overlappedRegion(scrollRect.translated(data.crect.topLeft()))) - .translated(-data.crect.topLeft()) & clipR; - QRegion childExpose(scrollRect); - - const qreal factor = QHighDpiScaling::factor(q->windowHandle()); - if (overlappedExpose.isEmpty() || qFloor(factor) == factor) { - const QVector rectsToScroll - = getSortedRectsToScroll(QRegion(sourceRect) - overlappedExpose, dx, dy); - for (const QRect &rect : rectsToScroll) { - if (wbs->bltRect(rect, dx, dy, q)) { - childExpose -= rect.translated(dx, dy); - } - } - } - - childExpose -= overlappedExpose; - - if (inDirtyList) { - if (rect == q->rect()) { - dirty.translate(dx, dy); - } else { - QRegion dirtyScrollRegion = dirty.intersected(scrollRect); - if (!dirtyScrollRegion.isEmpty()) { - dirty -= dirtyScrollRegion; - dirtyScrollRegion.translate(dx, dy); - dirty += dirtyScrollRegion; - } - } - } - - if (!q->updatesEnabled()) - return; - - if (!overlappedExpose.isEmpty()) - invalidateBackingStore(overlappedExpose); - if (!childExpose.isEmpty()) { - wbs->markDirty(childExpose, q); - isScrolled = true; - } - - // Instead of using native scroll-on-screen, we copy from - // backingstore, giving only one screen update for each - // scroll, and a solid appearance - wbs->markDirtyOnScreen(destRect, q, toplevelOffset); - } -} - -#ifndef QT_NO_OPENGL -static void findTextureWidgetsRecursively(QWidget *tlw, QWidget *widget, QPlatformTextureList *widgetTextures, QVector *nativeChildren) -{ - QWidgetPrivate *wd = QWidgetPrivate::get(widget); - if (wd->renderToTexture) { - QPlatformTextureList::Flags flags = wd->textureListFlags(); - const QRect rect(widget->mapTo(tlw, QPoint()), widget->size()); - widgetTextures->appendTexture(widget, wd->textureId(), rect, wd->clipRect(), flags); - } - - for (int i = 0; i < wd->children.size(); ++i) { - QWidget *w = qobject_cast(wd->children.at(i)); - // Stop at native widgets but store them. Stop at hidden widgets too. - if (w && !w->isWindow() && hasPlatformWindow(w)) - nativeChildren->append(w); - if (w && !w->isWindow() && !hasPlatformWindow(w) && !w->isHidden() && QWidgetPrivate::get(w)->textureChildSeen) - findTextureWidgetsRecursively(tlw, w, widgetTextures, nativeChildren); - } -} - -static void findAllTextureWidgetsRecursively(QWidget *tlw, QWidget *widget) -{ - // textureChildSeen does not take native child widgets into account and that's good. - if (QWidgetPrivate::get(widget)->textureChildSeen) { - QVector nativeChildren; - auto tl = qt_make_unique(); - // Look for texture widgets (incl. widget itself) from 'widget' down, - // but skip subtrees with a parent of a native child widget. - findTextureWidgetsRecursively(tlw, widget, tl.get(), &nativeChildren); - // tl may be empty regardless of textureChildSeen if we have native or hidden children. - if (!tl->isEmpty()) - QWidgetPrivate::get(tlw)->topData()->widgetTextures.push_back(std::move(tl)); - // Native child widgets, if there was any, get their own separate QPlatformTextureList. - for (QWidget *ncw : qAsConst(nativeChildren)) { - if (QWidgetPrivate::get(ncw)->textureChildSeen) - findAllTextureWidgetsRecursively(tlw, ncw); - } - } -} - -static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) -{ - for (const auto &tl : QWidgetPrivate::get(tlw)->topData()->widgetTextures) { - Q_ASSERT(!tl->isEmpty()); - for (int i = 0; i < tl->count(); ++i) { - QWidget *w = static_cast(tl->source(i)); - if ((hasPlatformWindow(w) && w == widget) || (!hasPlatformWindow(w) && w->nativeParentWidget() == widget)) - return tl.get(); - } - } - - if (QWidgetPrivate::get(widget)->textureChildSeen) { - // No render-to-texture widgets in the (sub-)tree due to hidden or native - // children. Returning null results in using the normal backingstore flush path - // without OpenGL-based compositing. This is very desirable normally. However, - // some platforms cannot handle switching between the non-GL and GL paths for - // their windows so it has to be opt-in. - static bool switchableWidgetComposition = - QGuiApplicationPrivate::instance()->platformIntegration() - ->hasCapability(QPlatformIntegration::SwitchableWidgetComposition); - if (!switchableWidgetComposition) - return qt_dummy_platformTextureList(); - } - - return 0; -} - -// Watches one or more QPlatformTextureLists for changes in the lock state and -// triggers a backingstore sync when all the registered lists turn into -// unlocked state. This is essential when a custom composeAndFlush() -// implementation in a platform plugin is not synchronous and keeps -// holding on to the textures for some time even after returning from there. -QPlatformTextureListWatcher::QPlatformTextureListWatcher(QWidgetBackingStore *backingStore) - : m_backingStore(backingStore) -{ -} - -void QPlatformTextureListWatcher::watch(QPlatformTextureList *textureList) -{ - connect(textureList, SIGNAL(locked(bool)), SLOT(onLockStatusChanged(bool))); - m_locked[textureList] = textureList->isLocked(); -} - -bool QPlatformTextureListWatcher::isLocked() const -{ - foreach (bool v, m_locked) { - if (v) - return true; - } - return false; -} - -void QPlatformTextureListWatcher::onLockStatusChanged(bool locked) -{ - QPlatformTextureList *tl = static_cast(sender()); - m_locked[tl] = locked; - if (!isLocked()) - m_backingStore->sync(); -} - -#else - -static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) -{ - Q_UNUSED(tlw); - Q_UNUSED(widget); - return nullptr; -} - -#endif // QT_NO_OPENGL - -static inline bool discardSyncRequest(QWidget *tlw, QTLWExtra *tlwExtra) -{ - if (!tlw || !tlwExtra || !tlw->testAttribute(Qt::WA_Mapped) || !tlw->isVisible()) - return true; - - return false; -} - -bool QWidgetBackingStore::syncAllowed() -{ -#ifndef QT_NO_OPENGL - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (textureListWatcher && !textureListWatcher->isLocked()) { - textureListWatcher->deleteLater(); - textureListWatcher = 0; - } else if (!tlwExtra->widgetTextures.empty()) { - bool skipSync = false; - for (const auto &tl : tlwExtra->widgetTextures) { - if (tl->isLocked()) { - if (!textureListWatcher) - textureListWatcher = new QPlatformTextureListWatcher(this); - if (!textureListWatcher->isLocked()) - textureListWatcher->watch(tl.get()); - skipSync = true; - } - } - if (skipSync) // cannot compose due to widget textures being in use - return false; - } -#endif - return true; -} - -/*! - Synchronizes the \a exposedRegion of the \a exposedWidget with the backing store. - - If there's nothing to repaint, the area is flushed and painting does not occur; - otherwise the area is marked as dirty on screen and will be flushed right after - we are done with all painting. -*/ -void QWidgetBackingStore::sync(QWidget *exposedWidget, const QRegion &exposedRegion) -{ - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (!tlw->isVisible() || !tlwExtra || tlwExtra->inTopLevelResize) - return; - - if (!exposedWidget || !hasPlatformWindow(exposedWidget) - || !exposedWidget->isVisible() || !exposedWidget->testAttribute(Qt::WA_Mapped) - || !exposedWidget->updatesEnabled() || exposedRegion.isEmpty()) { - return; - } - - // Nothing to repaint. - if (!isDirty() && store->size().isValid()) { - QPlatformTextureList *tl = widgetTexturesFor(tlw, exposedWidget); - qt_flush(exposedWidget, tl ? QRegion() : exposedRegion, store, tlw, tl, this); - return; - } - - if (exposedWidget != tlw) - markDirtyOnScreen(exposedRegion, exposedWidget, exposedWidget->mapTo(tlw, QPoint())); - else - markDirtyOnScreen(exposedRegion, exposedWidget, QPoint()); - - if (syncAllowed()) - doSync(); -} - -/*! - Synchronizes the backing store, i.e. dirty areas are repainted and flushed. -*/ -void QWidgetBackingStore::sync() -{ - updateRequestSent = false; - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (discardSyncRequest(tlw, tlwExtra)) { - // If the top-level is minimized, it's not visible on the screen so we can delay the - // update until it's shown again. In order to do that we must keep the dirty states. - // These will be cleared when we receive the first expose after showNormal(). - // However, if the widget is not visible (isVisible() returns false), everything will - // be invalidated once the widget is shown again, so clear all dirty states. - if (!tlw->isVisible()) { - dirty = QRegion(); - for (int i = 0; i < dirtyWidgets.size(); ++i) - resetWidget(dirtyWidgets.at(i)); - dirtyWidgets.clear(); - } - return; - } - - if (syncAllowed()) - doSync(); -} - -void QWidgetBackingStore::doSync() -{ - const bool updatesDisabled = !tlw->updatesEnabled(); - bool repaintAllWidgets = false; - - const bool inTopLevelResize = tlw->d_func()->maybeTopData()->inTopLevelResize; - const QRect tlwRect(topLevelRect()); - const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); - if ((inTopLevelResize || surfaceGeometry.size() != tlwRect.size()) && !updatesDisabled) { - if (hasStaticContents() && !store->size().isEmpty() ) { - // Repaint existing dirty area and newly visible area. - const QRect clipRect(0, 0, surfaceGeometry.width(), surfaceGeometry.height()); - const QRegion staticRegion(staticContents(0, clipRect)); - QRegion newVisible(0, 0, tlwRect.width(), tlwRect.height()); - newVisible -= staticRegion; - dirty += newVisible; - store->setStaticContents(staticRegion); - } else { - // Repaint everything. - dirty = QRegion(0, 0, tlwRect.width(), tlwRect.height()); - for (int i = 0; i < dirtyWidgets.size(); ++i) - resetWidget(dirtyWidgets.at(i)); - dirtyWidgets.clear(); - repaintAllWidgets = true; - } - } - - if (inTopLevelResize || surfaceGeometry.size() != tlwRect.size()) - store->resize(tlwRect.size()); - - if (updatesDisabled) - return; - - // Contains everything that needs repaint. - QRegion toClean(dirty); - - // Loop through all update() widgets and remove them from the list before they are - // painted (in case someone calls update() in paintEvent). If the widget is opaque - // and does not have transparent overlapping siblings, append it to the - // opaqueNonOverlappedWidgets list and paint it directly without composition. - QVarLengthArray opaqueNonOverlappedWidgets; - for (int i = 0; i < dirtyWidgets.size(); ++i) { - QWidget *w = dirtyWidgets.at(i); - QWidgetPrivate *wd = w->d_func(); - if (wd->data.in_destructor) - continue; - - // Clip with mask() and clipRect(). - wd->dirty &= wd->clipRect(); - wd->clipToEffectiveMask(wd->dirty); - - // Subtract opaque siblings and children. - bool hasDirtySiblingsAbove = false; - // We know for sure that the widget isn't overlapped if 'isMoved' is true. - if (!wd->isMoved) - wd->subtractOpaqueSiblings(wd->dirty, &hasDirtySiblingsAbove); - - // Make a copy of the widget's dirty region, to restore it in case there is an opaque - // render-to-texture child that completely covers the widget, because otherwise the - // render-to-texture child won't be visible, due to its parent widget not being redrawn - // with a proper blending mask. - const QRegion dirtyBeforeSubtractedOpaqueChildren = wd->dirty; - - // Scrolled and moved widgets must draw all children. - if (!wd->isScrolled && !wd->isMoved) - wd->subtractOpaqueChildren(wd->dirty, w->rect()); - - if (wd->dirty.isEmpty() && wd->textureChildSeen) - wd->dirty = dirtyBeforeSubtractedOpaqueChildren; - - if (wd->dirty.isEmpty()) { - resetWidget(w); - continue; - } - - const QRegion widgetDirty(w != tlw ? wd->dirty.translated(w->mapTo(tlw, QPoint())) - : wd->dirty); - toClean += widgetDirty; - -#if QT_CONFIG(graphicsview) - if (tlw->d_func()->extra->proxyWidget) { - resetWidget(w); - continue; - } -#endif - - if (!hasDirtySiblingsAbove && wd->isOpaque && !dirty.intersects(widgetDirty.boundingRect())) { - opaqueNonOverlappedWidgets.append(w); - } else { - resetWidget(w); - dirty += widgetDirty; - } - } - dirtyWidgets.clear(); - -#ifndef QT_NO_OPENGL - // Find all render-to-texture child widgets (including self). - // The search is cut at native widget boundaries, meaning that each native child widget - // has its own list for the subtree below it. - QTLWExtra *tlwExtra = tlw->d_func()->topData(); - tlwExtra->widgetTextures.clear(); - findAllTextureWidgetsRecursively(tlw, tlw); - qt_window_private(tlw->windowHandle())->compositing = false; // will get updated in qt_flush() -#endif - - if (toClean.isEmpty()) { - // Nothing to repaint. However renderToTexture widgets are handled - // specially, they are not in the regular dirty list, in order to - // prevent triggering unnecessary backingstore painting when only the - // OpenGL content changes. Check if we have such widgets in the special - // dirty list. - QVarLengthArray paintPending; - const int numPaintPending = dirtyRenderToTextureWidgets.count(); - paintPending.reserve(numPaintPending); - for (int i = 0; i < numPaintPending; ++i) { - QWidget *w = dirtyRenderToTextureWidgets.at(i); - paintPending << w; - resetWidget(w); - } - dirtyRenderToTextureWidgets.clear(); - for (int i = 0; i < numPaintPending; ++i) { - QWidget *w = paintPending[i]; - w->d_func()->sendPaintEvent(w->rect()); - if (w != tlw) { - QWidget *npw = w->nativeParentWidget(); - if (hasPlatformWindow(w) || (npw && npw != tlw)) { - if (!hasPlatformWindow(w)) - w = npw; - QWidgetPrivate *wPrivate = w->d_func(); - if (!wPrivate->needsFlush) - wPrivate->needsFlush = new QRegion; - appendDirtyOnScreenWidget(w); - } - } - } - - // We might have newly exposed areas on the screen if this function was - // called from sync(QWidget *, QRegion)), so we have to make sure those - // are flushed. We also need to composite the renderToTexture widgets. - flush(); - - return; - } - -#ifndef QT_NO_OPENGL - for (const auto &tl : tlwExtra->widgetTextures) { - for (int i = 0; i < tl->count(); ++i) { - QWidget *w = static_cast(tl->source(i)); - if (dirtyRenderToTextureWidgets.contains(w)) { - const QRect rect = tl->geometry(i); // mapped to the tlw already - // Set a flag to indicate that the paint event for this - // render-to-texture widget must not to be optimized away. - w->d_func()->renderToTextureReallyDirty = 1; - dirty += rect; - toClean += rect; - } - } - } - for (int i = 0; i < dirtyRenderToTextureWidgets.count(); ++i) - resetWidget(dirtyRenderToTextureWidgets.at(i)); - dirtyRenderToTextureWidgets.clear(); -#endif - -#if QT_CONFIG(graphicsview) - if (tlw->d_func()->extra->proxyWidget) { - updateStaticContentsSize(); - dirty = QRegion(); - updateRequestSent = false; - for (const QRect &rect : toClean) - tlw->d_func()->extra->proxyWidget->update(rect); - return; - } -#endif - - BeginPaintInfo beginPaintInfo; - beginPaint(toClean, tlw, store, &beginPaintInfo); - if (beginPaintInfo.nothingToPaint) { - for (int i = 0; i < opaqueNonOverlappedWidgets.size(); ++i) - resetWidget(opaqueNonOverlappedWidgets[i]); - dirty = QRegion(); - updateRequestSent = false; - return; - } - - // Must do this before sending any paint events because - // the size may change in the paint event. - updateStaticContentsSize(); - const QRegion dirtyCopy(dirty); - dirty = QRegion(); - updateRequestSent = false; - - // Paint opaque non overlapped widgets. - for (int i = 0; i < opaqueNonOverlappedWidgets.size(); ++i) { - QWidget *w = opaqueNonOverlappedWidgets[i]; - QWidgetPrivate *wd = w->d_func(); - - int flags = QWidgetPrivate::DrawRecursive; - // Scrolled and moved widgets must draw all children. - if (!wd->isScrolled && !wd->isMoved) - flags |= QWidgetPrivate::DontDrawOpaqueChildren; - if (w == tlw) - flags |= QWidgetPrivate::DrawAsRoot; - - QRegion toBePainted(wd->dirty); - resetWidget(w); - - QPoint offset; - if (w != tlw) - offset += w->mapTo(tlw, QPoint()); - wd->drawWidget(store->paintDevice(), toBePainted, offset, flags, 0, this); - } - - // Paint the rest with composition. - if (repaintAllWidgets || !dirtyCopy.isEmpty()) { - const int flags = QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawRecursive; - tlw->d_func()->drawWidget(store->paintDevice(), dirtyCopy, QPoint(), flags, 0, this); - } - - endPaint(toClean, store, &beginPaintInfo); -} - -/*! - Flushes the contents of the backing store into the top-level widget. - If the \a widget is non-zero, the content is flushed to the \a widget. - If the \a surface is non-zero, the content of the \a surface is flushed. -*/ -void QWidgetBackingStore::flush(QWidget *widget) -{ - const bool hasDirtyOnScreenWidgets = !dirtyOnScreenWidgets.isEmpty(); - bool flushed = false; - - // Flush the region in dirtyOnScreen. - if (!dirtyOnScreen.isEmpty()) { - QWidget *target = widget ? widget : tlw; - qt_flush(target, dirtyOnScreen, store, tlw, widgetTexturesFor(tlw, tlw), this); - dirtyOnScreen = QRegion(); - flushed = true; - } - - // Render-to-texture widgets are not in dirtyOnScreen so flush if we have not done it above. - if (!flushed && !hasDirtyOnScreenWidgets) { -#ifndef QT_NO_OPENGL - if (!tlw->d_func()->topData()->widgetTextures.empty()) { - QPlatformTextureList *tl = widgetTexturesFor(tlw, tlw); - if (tl) { - QWidget *target = widget ? widget : tlw; - qt_flush(target, QRegion(), store, tlw, tl, this); - } - } -#endif - } - - if (!hasDirtyOnScreenWidgets) - return; - - for (QWidget *w : qExchange(dirtyOnScreenWidgets, {})) { - QWidgetPrivate *wd = w->d_func(); - Q_ASSERT(wd->needsFlush); - QPlatformTextureList *widgetTexturesForNative = wd->textureChildSeen ? widgetTexturesFor(tlw, w) : 0; - qt_flush(w, *wd->needsFlush, store, tlw, widgetTexturesForNative, this); - *wd->needsFlush = QRegion(); - } -} - -/*! - Invalidates the backing store when the widget is resized. - Static areas are never invalidated unless absolutely needed. -*/ -void QWidgetPrivate::invalidateBackingStore_resizeHelper(const QPoint &oldPos, const QSize &oldSize) -{ - Q_Q(QWidget); - Q_ASSERT(!q->isWindow()); - Q_ASSERT(q->parentWidget()); - - const bool staticContents = q->testAttribute(Qt::WA_StaticContents); - const bool sizeDecreased = (data.crect.width() < oldSize.width()) - || (data.crect.height() < oldSize.height()); - - const QPoint offset(data.crect.x() - oldPos.x(), data.crect.y() - oldPos.y()); - const bool parentAreaExposed = !offset.isNull() || sizeDecreased; - const QRect newWidgetRect(q->rect()); - const QRect oldWidgetRect(0, 0, oldSize.width(), oldSize.height()); - - if (!staticContents || graphicsEffect) { - QRegion staticChildren; - QWidgetBackingStore *bs = 0; - if (offset.isNull() && (bs = maybeBackingStore())) - staticChildren = bs->staticContents(q, oldWidgetRect); - const bool hasStaticChildren = !staticChildren.isEmpty(); - - if (hasStaticChildren) { - QRegion dirty(newWidgetRect); - dirty -= staticChildren; - invalidateBackingStore(dirty); - } else { - // Entire widget needs repaint. - invalidateBackingStore(newWidgetRect); - } - - if (!parentAreaExposed) - return; - - // Invalidate newly exposed area of the parent. - if (!graphicsEffect && extra && extra->hasMask) { - QRegion parentExpose(extra->mask.translated(oldPos)); - parentExpose &= QRect(oldPos, oldSize); - if (hasStaticChildren) - parentExpose -= data.crect; // Offset is unchanged, safe to do this. - q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); - } else { - if (hasStaticChildren && !graphicsEffect) { - QRegion parentExpose(QRect(oldPos, oldSize)); - parentExpose -= data.crect; // Offset is unchanged, safe to do this. - q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); - } else { - q->parentWidget()->d_func()->invalidateBackingStore(effectiveRectFor(QRect(oldPos, oldSize))); - } - } - return; - } - - // Move static content to its new position. - if (!offset.isNull()) { - if (sizeDecreased) { - const QSize minSize(qMin(oldSize.width(), data.crect.width()), - qMin(oldSize.height(), data.crect.height())); - moveRect(QRect(oldPos, minSize), offset.x(), offset.y()); - } else { - moveRect(QRect(oldPos, oldSize), offset.x(), offset.y()); - } - } - - // Invalidate newly visible area of the widget. - if (!sizeDecreased || !oldWidgetRect.contains(newWidgetRect)) { - QRegion newVisible(newWidgetRect); - newVisible -= oldWidgetRect; - invalidateBackingStore(newVisible); - } - - if (!parentAreaExposed) - return; - - // Invalidate newly exposed area of the parent. - const QRect oldRect(oldPos, oldSize); - if (extra && extra->hasMask) { - QRegion parentExpose(oldRect); - parentExpose &= extra->mask.translated(oldPos); - parentExpose -= (extra->mask.translated(data.crect.topLeft()) & data.crect); - q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); - } else { - QRegion parentExpose(oldRect); - parentExpose -= data.crect; - q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); - } -} - -/*! - Invalidates the \a r (in widget's coordinates) of the backing store, i.e. - all widgets intersecting with the region will be repainted when the backing - store is synced. -*/ -template -void QWidgetPrivate::invalidateBackingStore(const T &r) -{ - if (r.isEmpty()) - return; - - if (QCoreApplication::closingDown()) - return; - - Q_Q(QWidget); - if (!q->isVisible() || !q->updatesEnabled()) - return; - - QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); - if (!tlwExtra || tlwExtra->inTopLevelResize || !tlwExtra->backingStore) - return; - - T clipped(r); - clipped &= clipRect(); - if (clipped.isEmpty()) - return; - - if (!graphicsEffect && extra && extra->hasMask) { - QRegion masked(extra->mask); - masked &= clipped; - if (masked.isEmpty()) - return; - - tlwExtra->widgetBackingStore->markDirty(masked, q, - QWidgetBackingStore::UpdateLater, QWidgetBackingStore::BufferInvalid); - } else { - tlwExtra->widgetBackingStore->markDirty(clipped, q, - QWidgetBackingStore::UpdateLater, QWidgetBackingStore::BufferInvalid); - } -} -// Needed by tst_QWidget -template Q_AUTOTEST_EXPORT void QWidgetPrivate::invalidateBackingStore(const QRect &r); - -void QWidgetPrivate::repaint_sys(const QRegion &rgn) -{ - if (data.in_destructor) - return; - - Q_Q(QWidget); - if (discardSyncRequest(q, maybeTopData())) - return; - - if (q->testAttribute(Qt::WA_StaticContents)) { - if (!extra) - createExtra(); - extra->staticContentsSize = data.crect.size(); - } - - QPaintEngine *engine = q->paintEngine(); - - // QGLWidget does not support partial updates if: - // 1) The context is double buffered - // 2) The context is single buffered and auto-fill background is enabled. - const bool noPartialUpdateSupport = (engine && (engine->type() == QPaintEngine::OpenGL - || engine->type() == QPaintEngine::OpenGL2)) - && (usesDoubleBufferedGLContext || q->autoFillBackground()); - QRegion toBePainted(noPartialUpdateSupport ? q->rect() : rgn); - -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // No difference between update() and repaint() on the Mac. - update_sys(toBePainted); - return; -#endif - - toBePainted &= clipRect(); - clipToEffectiveMask(toBePainted); - if (toBePainted.isEmpty()) - return; // Nothing to repaint. - -#ifndef QT_NO_PAINT_DEBUG - bool flushed = QWidgetBackingStore::flushPaint(q, toBePainted); -#endif - - drawWidget(q, toBePainted, QPoint(), QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawPaintOnScreen, 0); - -#ifndef QT_NO_PAINT_DEBUG - if (flushed) - QWidgetBackingStore::unflushPaint(q, toBePainted); -#endif - - if (Q_UNLIKELY(q->paintingActive())) - qWarning("QWidget::repaint: It is dangerous to leave painters active on a widget outside of the PaintEvent"); -} - - -QT_END_NAMESPACE - -#include "moc_qwidgetbackingstore_p.cpp" diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h deleted file mode 100644 index 08042445bf..0000000000 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ /dev/null @@ -1,281 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QWIDGETBACKINGSTORE_P_H -#define QWIDGETBACKINGSTORE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include -#include -#include -#include - -QT_BEGIN_NAMESPACE - -class QPlatformTextureList; -class QPlatformTextureListWatcher; -class QWidgetBackingStore; - -struct BeginPaintInfo { - inline BeginPaintInfo() : wasFlushed(0), nothingToPaint(0), backingStoreRecreated(0) {} - uint wasFlushed : 1; - uint nothingToPaint : 1; - uint backingStoreRecreated : 1; -}; - -#ifndef QT_NO_OPENGL -class QPlatformTextureListWatcher : public QObject -{ - Q_OBJECT - -public: - QPlatformTextureListWatcher(QWidgetBackingStore *backingStore); - void watch(QPlatformTextureList *textureList); - bool isLocked() const; - -private slots: - void onLockStatusChanged(bool locked); - -private: - QHash m_locked; - QWidgetBackingStore *m_backingStore; -}; -#endif - -class Q_AUTOTEST_EXPORT QWidgetBackingStore -{ -public: - enum UpdateTime { - UpdateNow, - UpdateLater - }; - - enum BufferState{ - BufferValid, - BufferInvalid - }; - - QWidgetBackingStore(QWidget *t); - ~QWidgetBackingStore(); - - static void showYellowThing(QWidget *widget, const QRegion &rgn, int msec, bool); - - void sync(QWidget *exposedWidget, const QRegion &exposedRegion); - void sync(); - void flush(QWidget *widget = nullptr); - - QBackingStore *backingStore() const { return store; } - - inline bool isDirty() const - { - return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); - } - - template - void markDirty(const T &r, QWidget *widget, UpdateTime updateTime = UpdateLater, - BufferState bufferState = BufferValid); - -private: - QWidget *tlw; - QRegion dirtyOnScreen; // needsFlush - QRegion dirty; // needsRepaint - QRegion dirtyFromPreviousSync; - QVector dirtyWidgets; - QVector dirtyRenderToTextureWidgets; - QVector dirtyOnScreenWidgets; - QList staticWidgets; - QBackingStore *store; - uint updateRequestSent : 1; - - QPlatformTextureListWatcher *textureListWatcher; - QElapsedTimer perfTime; - int perfFrames; - - void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); - - static bool flushPaint(QWidget *widget, const QRegion &rgn); - static void unflushPaint(QWidget *widget, const QRegion &rgn); - static void qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, - QWidget *tlw, - QPlatformTextureList *widgetTextures, - QWidgetBackingStore *widgetBackingStore); - - void doSync(); - bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); - - void beginPaint(QRegion &toClean, QWidget *widget, QBackingStore *backingStore, - BeginPaintInfo *returnInfo, bool toCleanIsInTopLevelCoordinates = true); - void endPaint(const QRegion &cleaned, QBackingStore *backingStore, BeginPaintInfo *beginPaintInfo); - - QRegion dirtyRegion(QWidget *widget = nullptr) const; - QRegion staticContents(QWidget *widget = nullptr, const QRect &withinClipRect = QRect()) const; - - void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); - - void removeDirtyWidget(QWidget *w); - - void updateLists(QWidget *widget); - - bool syncAllowed(); - - inline void addDirtyWidget(QWidget *widget, const QRegion &rgn) - { - if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { - QWidgetPrivate *widgetPrivate = widget->d_func(); -#if QT_CONFIG(graphicseffect) - if (widgetPrivate->graphicsEffect) - widgetPrivate->dirty = widgetPrivate->effectiveRectFor(rgn.boundingRect()); - else -#endif // QT_CONFIG(graphicseffect) - widgetPrivate->dirty = rgn; - dirtyWidgets.append(widget); - widgetPrivate->inDirtyList = true; - } - } - - inline void addDirtyRenderToTextureWidget(QWidget *widget) - { - if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { - QWidgetPrivate *widgetPrivate = widget->d_func(); - Q_ASSERT(widgetPrivate->renderToTexture); - dirtyRenderToTextureWidgets.append(widget); - widgetPrivate->inDirtyList = true; - } - } - - inline void addStaticWidget(QWidget *widget) - { - if (!widget) - return; - - Q_ASSERT(widget->testAttribute(Qt::WA_StaticContents)); - if (!staticWidgets.contains(widget)) - staticWidgets.append(widget); - } - - inline void removeStaticWidget(QWidget *widget) - { staticWidgets.removeAll(widget); } - - // Move the reparented widget and all its static children from this backing store - // to the new backing store if reparented into another top-level / backing store. - inline void moveStaticWidgets(QWidget *reparented) - { - Q_ASSERT(reparented); - QWidgetBackingStore *newBs = reparented->d_func()->maybeBackingStore(); - if (newBs == this) - return; - - int i = 0; - while (i < staticWidgets.size()) { - QWidget *w = staticWidgets.at(i); - if (reparented == w || reparented->isAncestorOf(w)) { - staticWidgets.removeAt(i); - if (newBs) - newBs->addStaticWidget(w); - } else { - ++i; - } - } - } - - inline QRect topLevelRect() const - { - return tlw->data->crect; - } - - inline void appendDirtyOnScreenWidget(QWidget *widget) - { - if (!widget) - return; - - if (!dirtyOnScreenWidgets.contains(widget)) - dirtyOnScreenWidgets.append(widget); - } - - inline void resetWidget(QWidget *widget) - { - if (widget) { - widget->d_func()->inDirtyList = false; - widget->d_func()->isScrolled = false; - widget->d_func()->isMoved = false; - widget->d_func()->dirty = QRegion(); - } - } - - inline void updateStaticContentsSize() - { - for (int i = 0; i < staticWidgets.size(); ++i) { - QWidgetPrivate *wd = staticWidgets.at(i)->d_func(); - if (!wd->extra) - wd->createExtra(); - wd->extra->staticContentsSize = wd->data.crect.size(); - } - } - - inline bool hasStaticContents() const - { -#if defined(Q_OS_WIN) - return !staticWidgets.isEmpty(); -#else - return !staticWidgets.isEmpty() && false; -#endif - } - - friend QRegion qt_dirtyRegion(QWidget *); - friend class QWidgetPrivate; - friend class QWidget; - friend class QBackingStore; - - Q_DISABLE_COPY_MOVE(QWidgetBackingStore) -}; - -QT_END_NAMESPACE - -#endif // QBACKINGSTORE_P_H diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp new file mode 100644 index 0000000000..30d92551f7 --- /dev/null +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -0,0 +1,1595 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWidgets module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#include "qplatformdefs.h" + +#include "qwidgetrepaintmanager_p.h" + +#include +#include +#include +#include +#include +#include +#if QT_CONFIG(graphicsview) +#include +#endif + +#include +#include +#include +#if QT_CONFIG(graphicseffect) +#include +#endif +#include +#include + +#include + +#if defined(Q_OS_WIN) && !defined(QT_NO_PAINT_DEBUG) +# include +# include +#endif + +#include + +QT_BEGIN_NAMESPACE + +extern QRegion qt_dirtyRegion(QWidget *); + +#ifndef QT_NO_OPENGL +Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) +#endif + +static bool hasPlatformWindow(QWidget *widget) +{ + return widget && widget->windowHandle() && widget->windowHandle()->handle(); +} + +/** + * Flushes the contents of the \a backingStore into the screen area of \a widget. + * \a region is the region to be updated in \a widget coordinates. + */ +void QWidgetRepaintManager::qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, + QWidget *tlw, QPlatformTextureList *widgetTextures, + QWidgetRepaintManager *repaintManager) +{ +#ifdef QT_NO_OPENGL + Q_UNUSED(widgetTextures); + Q_ASSERT(!region.isEmpty()); +#else + Q_ASSERT(!region.isEmpty() || widgetTextures); +#endif + Q_ASSERT(widget); + Q_ASSERT(backingStore); + Q_ASSERT(tlw); +#if !defined(QT_NO_PAINT_DEBUG) + static int flushUpdate = qEnvironmentVariableIntValue("QT_FLUSH_UPDATE"); + if (flushUpdate > 0) + QWidgetRepaintManager::showYellowThing(widget, region, flushUpdate * 10, false); +#endif + + if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen)) + return; + + // Foreign Windows do not have backing store content and must not be flushed + if (QWindow *widgetWindow = widget->windowHandle()) { + if (widgetWindow->type() == Qt::ForeignWindow) + return; + } + + static bool fpsDebug = qEnvironmentVariableIntValue("QT_DEBUG_FPS"); + if (fpsDebug) { + if (!repaintManager->perfFrames++) + repaintManager->perfTime.start(); + if (repaintManager->perfTime.elapsed() > 5000) { + double fps = double(repaintManager->perfFrames * 1000) / repaintManager->perfTime.restart(); + qDebug("FPS: %.1f\n", fps); + repaintManager->perfFrames = 0; + } + } + + QPoint offset; + if (widget != tlw) + offset += widget->mapTo(tlw, QPoint()); + + QRegion effectiveRegion = region; +#ifndef QT_NO_OPENGL + const bool compositionWasActive = widget->d_func()->renderToTextureComposeActive; + if (!widgetTextures) { + widget->d_func()->renderToTextureComposeActive = false; + // Detect the case of falling back to the normal flush path when no + // render-to-texture widgets are visible anymore. We will force one + // last flush to go through the OpenGL-based composition to prevent + // artifacts. The next flush after this one will use the normal path. + if (compositionWasActive) + widgetTextures = qt_dummy_platformTextureList; + } else { + widget->d_func()->renderToTextureComposeActive = true; + } + // When changing the composition status, make sure the dirty region covers + // the entire widget. Just having e.g. the shown/hidden render-to-texture + // widget's area marked as dirty is incorrect when changing flush paths. + if (compositionWasActive != widget->d_func()->renderToTextureComposeActive) + effectiveRegion = widget->rect(); + + // re-test since we may have been forced to this path via the dummy texture list above + if (widgetTextures) { + qt_window_private(tlw->windowHandle())->compositing = true; + widget->window()->d_func()->sendComposeStatus(widget->window(), false); + // A window may have alpha even when the app did not request + // WA_TranslucentBackground. Therefore the compositor needs to know whether the app intends + // to rely on translucency, in order to decide if it should clear to transparent or opaque. + const bool translucentBackground = widget->testAttribute(Qt::WA_TranslucentBackground); + backingStore->handle()->composeAndFlush(widget->windowHandle(), effectiveRegion, offset, + widgetTextures, translucentBackground); + widget->window()->d_func()->sendComposeStatus(widget->window(), true); + } else +#endif + backingStore->flush(effectiveRegion, widget->windowHandle(), offset); +} + +#ifndef QT_NO_PAINT_DEBUG +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + +static void showYellowThing_win(QWidget *widget, const QRegion ®ion, int msec) +{ + // We expect to be passed a native parent. + QWindow *nativeWindow = widget->windowHandle(); + if (!nativeWindow) + return; + void *hdcV = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("getDC"), nativeWindow); + if (!hdcV) + return; + const HDC hdc = reinterpret_cast(hdcV); + + static const COLORREF colors[] = {RGB(255, 255, 0), RGB(255, 200, 55), RGB(200, 255, 55), RGB(200, 200, 0)}; + + static size_t i = 0; + const HBRUSH brush = CreateSolidBrush(colors[i]); + i = (i + 1) % (sizeof(colors) / sizeof(colors[0])); + + for (const QRect &rect : region) { + RECT winRect; + SetRect(&winRect, rect.left(), rect.top(), rect.right(), rect.bottom()); + FillRect(hdc, &winRect, brush); + } + DeleteObject(brush); + QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("releaseDC"), nativeWindow); + ::Sleep(msec); +} +#endif // defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + +void QWidgetRepaintManager::showYellowThing(QWidget *widget, const QRegion &toBePainted, int msec, bool unclipped) +{ +#ifdef Q_OS_WINRT + Q_UNUSED(msec) +#endif + QRegion paintRegion = toBePainted; + QRect widgetRect = widget->rect(); + + if (!hasPlatformWindow(widget)) { + QWidget *nativeParent = widget->nativeParentWidget(); + const QPoint offset = widget->mapTo(nativeParent, QPoint(0, 0)); + paintRegion.translate(offset); + widgetRect.translate(offset); + widget = nativeParent; + } + +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + Q_UNUSED(unclipped); + showYellowThing_win(widget, paintRegion, msec); +#else + //flags to fool painter + bool paintUnclipped = widget->testAttribute(Qt::WA_PaintUnclipped); + if (unclipped && !widget->d_func()->paintOnScreen()) + widget->setAttribute(Qt::WA_PaintUnclipped); + + const bool setFlag = !widget->testAttribute(Qt::WA_WState_InPaintEvent); + if (setFlag) + widget->setAttribute(Qt::WA_WState_InPaintEvent); + + //setup the engine + QPaintEngine *pe = widget->paintEngine(); + if (pe) { + pe->setSystemClip(paintRegion); + { + QPainter p(widget); + p.setClipRegion(paintRegion); + static int i = 0; + switch (i) { + case 0: + p.fillRect(widgetRect, QColor(255,255,0)); + break; + case 1: + p.fillRect(widgetRect, QColor(255,200,55)); + break; + case 2: + p.fillRect(widgetRect, QColor(200,255,55)); + break; + case 3: + p.fillRect(widgetRect, QColor(200,200,0)); + break; + } + i = (i+1) & 3; + p.end(); + } + } + + if (setFlag) + widget->setAttribute(Qt::WA_WState_InPaintEvent, false); + + //restore + widget->setAttribute(Qt::WA_PaintUnclipped, paintUnclipped); + + if (pe) + pe->setSystemClip(QRegion()); + +#if defined(Q_OS_UNIX) + ::usleep(1000 * msec); +#endif +#endif // !Q_OS_WIN +} + +bool QWidgetRepaintManager::flushPaint(QWidget *widget, const QRegion &rgn) +{ + if (!widget) + return false; + + int delay = 0; + if (widget->testAttribute(Qt::WA_WState_InPaintEvent)) { + static int flushPaintEvent = qEnvironmentVariableIntValue("QT_FLUSH_PAINT_EVENT"); + if (!flushPaintEvent) + return false; + delay = flushPaintEvent; + } else { + static int flushPaint = qEnvironmentVariableIntValue("QT_FLUSH_PAINT"); + if (!flushPaint) + return false; + delay = flushPaint; + } + + QWidgetRepaintManager::showYellowThing(widget, rgn, delay * 10, true); + return true; +} + +void QWidgetRepaintManager::unflushPaint(QWidget *widget, const QRegion &rgn) +{ + if (widget->d_func()->paintOnScreen() || rgn.isEmpty()) + return; + + QWidget *tlw = widget->window(); + QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); + if (!tlwExtra) + return; + + qt_flush(widget, rgn, tlwExtra->repaintManager->store, tlw, 0, tlw->d_func()->maybeRepaintManager()); +} +#endif // QT_NO_PAINT_DEBUG + +/* + Moves the whole rect by (dx, dy) in widget's coordinate system. + Doesn't generate any updates. +*/ +bool QWidgetRepaintManager::bltRect(const QRect &rect, int dx, int dy, QWidget *widget) +{ + const QPoint pos(widget->mapTo(tlw, rect.topLeft())); + const QRect tlwRect(QRect(pos, rect.size())); + if (dirty.intersects(tlwRect)) + return false; // We don't want to scroll junk. + return store->scroll(tlwRect, dx, dy); +} + +/*! + Prepares the window surface to paint a\ toClean region of the \a widget and + updates the BeginPaintInfo struct accordingly. + + The \a toClean region might be clipped by the window surface. +*/ +void QWidgetRepaintManager::beginPaint(QRegion &toClean, QWidget *widget, QBackingStore *backingStore, + BeginPaintInfo *returnInfo, bool toCleanIsInTopLevelCoordinates) +{ + Q_UNUSED(widget); + Q_UNUSED(toCleanIsInTopLevelCoordinates); + + // Always flush repainted areas. + dirtyOnScreen += toClean; + +#ifdef QT_NO_PAINT_DEBUG + backingStore->beginPaint(toClean); +#else + returnInfo->wasFlushed = QWidgetRepaintManager::flushPaint(tlw, toClean); + // Avoid deadlock with QT_FLUSH_PAINT: the server will wait for + // the BackingStore lock, so if we hold that, the server will + // never release the Communication lock that we are waiting for in + // sendSynchronousCommand + if (!returnInfo->wasFlushed) + backingStore->beginPaint(toClean); +#endif + + Q_UNUSED(returnInfo); +} + +void QWidgetRepaintManager::endPaint(const QRegion &cleaned, QBackingStore *backingStore, + BeginPaintInfo *beginPaintInfo) +{ +#ifndef QT_NO_PAINT_DEBUG + if (!beginPaintInfo->wasFlushed) + backingStore->endPaint(); + else + QWidgetRepaintManager::unflushPaint(tlw, cleaned); +#else + Q_UNUSED(beginPaintInfo); + Q_UNUSED(cleaned); + backingStore->endPaint(); +#endif + + flush(); +} + +/*! + Returns the region (in top-level coordinates) that needs repaint and/or flush. + + If the widget is non-zero, only the dirty region for the widget is returned + and the region will be in widget coordinates. +*/ +QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const +{ + const bool widgetDirty = widget && widget != tlw; + const QRect tlwRect(topLevelRect()); + const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); + if (surfaceGeometry != tlwRect && surfaceGeometry.size() != tlwRect.size()) { + if (widgetDirty) { + const QRect dirtyTlwRect = QRect(QPoint(), tlwRect.size()); + const QPoint offset(widget->mapTo(tlw, QPoint())); + const QRect dirtyWidgetRect(dirtyTlwRect & widget->rect().translated(offset)); + return dirtyWidgetRect.translated(-offset); + } + return QRect(QPoint(), tlwRect.size()); + } + + // Calculate the region that needs repaint. + QRegion r(dirty); + for (int i = 0; i < dirtyWidgets.size(); ++i) { + QWidget *w = dirtyWidgets.at(i); + if (widgetDirty && w != widget && !widget->isAncestorOf(w)) + continue; + r += w->d_func()->dirty.translated(w->mapTo(tlw, QPoint())); + } + + // Append the region that needs flush. + r += dirtyOnScreen; + + for (QWidget *w : dirtyOnScreenWidgets) { + if (widgetDirty && w != widget && !widget->isAncestorOf(w)) + continue; + QWidgetPrivate *wd = w->d_func(); + Q_ASSERT(wd->needsFlush); + r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); + } + + if (widgetDirty) { + // Intersect with the widget geometry and translate to its coordinates. + const QPoint offset(widget->mapTo(tlw, QPoint())); + r &= widget->rect().translated(offset); + r.translate(-offset); + } + return r; +} + +/*! + Returns the static content inside the \a parent if non-zero; otherwise the static content + for the entire backing store is returned. The content will be clipped to \a withinClipRect + if non-empty. +*/ +QRegion QWidgetRepaintManager::staticContents(QWidget *parent, const QRect &withinClipRect) const +{ + if (!parent && tlw->testAttribute(Qt::WA_StaticContents)) { + const QSize surfaceGeometry(store->size()); + QRect surfaceRect(0, 0, surfaceGeometry.width(), surfaceGeometry.height()); + if (!withinClipRect.isEmpty()) + surfaceRect &= withinClipRect; + return QRegion(surfaceRect); + } + + QRegion region; + if (parent && parent->d_func()->children.isEmpty()) + return region; + + const bool clipToRect = !withinClipRect.isEmpty(); + const int count = staticWidgets.count(); + for (int i = 0; i < count; ++i) { + QWidget *w = staticWidgets.at(i); + QWidgetPrivate *wd = w->d_func(); + if (!wd->isOpaque || !wd->extra || wd->extra->staticContentsSize.isEmpty() + || !w->isVisible() || (parent && !parent->isAncestorOf(w))) { + continue; + } + + QRect rect(0, 0, wd->extra->staticContentsSize.width(), wd->extra->staticContentsSize.height()); + const QPoint offset = w->mapTo(parent ? parent : tlw, QPoint()); + if (clipToRect) + rect &= withinClipRect.translated(-offset); + if (rect.isEmpty()) + continue; + + rect &= wd->clipRect(); + if (rect.isEmpty()) + continue; + + QRegion visible(rect); + wd->clipToEffectiveMask(visible); + if (visible.isEmpty()) + continue; + wd->subtractOpaqueSiblings(visible, 0, /*alsoNonOpaque=*/true); + + visible.translate(offset); + region += visible; + } + + return region; +} + +void QWidgetRepaintManager::sendUpdateRequest(QWidget *widget, UpdateTime updateTime) +{ + if (!widget) + return; + +#ifndef QT_NO_OPENGL + // Having every repaint() leading to a sync/flush is bad as it causes + // compositing and waiting for vsync each and every time. Change to + // UpdateLater, except for approx. once per frame to prevent starvation in + // case the control does not get back to the event loop. + QWidget *w = widget->window(); + if (updateTime == UpdateNow && w && w->windowHandle() && QWindowPrivate::get(w->windowHandle())->compositing) { + int refresh = 60; + QScreen *ws = w->windowHandle()->screen(); + if (ws) + refresh = ws->refreshRate(); + QWindowPrivate *wd = QWindowPrivate::get(w->windowHandle()); + if (wd->lastComposeTime.isValid()) { + const qint64 elapsed = wd->lastComposeTime.elapsed(); + if (elapsed <= qint64(1000.0f / refresh)) + updateTime = UpdateLater; + } + } +#endif + + switch (updateTime) { + case UpdateLater: + updateRequestSent = true; + QCoreApplication::postEvent(widget, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority); + break; + case UpdateNow: { + QEvent event(QEvent::UpdateRequest); + QCoreApplication::sendEvent(widget, &event); + break; + } + } +} + +static inline QRect widgetRectFor(QWidget *, const QRect &r) { return r; } +static inline QRect widgetRectFor(QWidget *widget, const QRegion &) { return widget->rect(); } + +/*! + Marks the region of the widget as dirty (if not already marked as dirty) and + posts an UpdateRequest event to the top-level widget (if not already posted). + + If updateTime is UpdateNow, the event is sent immediately instead of posted. + + If bufferState is BufferInvalid, all widgets intersecting with the region will be dirty. + + If the widget paints directly on screen, the event is sent to the widget + instead of the top-level widget, and bufferState is completely ignored. +*/ +template +void QWidgetRepaintManager::markDirty(const T &r, QWidget *widget, UpdateTime updateTime, BufferState bufferState) +{ + Q_ASSERT(tlw->d_func()->extra); + Q_ASSERT(tlw->d_func()->extra->topextra); + Q_ASSERT(!tlw->d_func()->extra->topextra->inTopLevelResize); + Q_ASSERT(widget->isVisible() && widget->updatesEnabled()); + Q_ASSERT(widget->window() == tlw); + Q_ASSERT(!r.isEmpty()); + +#if QT_CONFIG(graphicseffect) + widget->d_func()->invalidateGraphicsEffectsRecursively(); +#endif + + QRect widgetRect = widgetRectFor(widget, r); + + // --------------------------------------------------------------------------- + + if (widget->d_func()->paintOnScreen()) { + if (widget->d_func()->dirty.isEmpty()) { + widget->d_func()->dirty = r; + sendUpdateRequest(widget, updateTime); + return; + } else if (qt_region_strictContains(widget->d_func()->dirty, widgetRect)) { + if (updateTime == UpdateNow) + sendUpdateRequest(widget, updateTime); + return; // Already dirty + } + + const bool eventAlreadyPosted = !widget->d_func()->dirty.isEmpty(); + widget->d_func()->dirty += r; + if (!eventAlreadyPosted || updateTime == UpdateNow) + sendUpdateRequest(widget, updateTime); + return; + } + + // --------------------------------------------------------------------------- + + if (QWidgetPrivate::get(widget)->renderToTexture) { + if (!widget->d_func()->inDirtyList) + addDirtyRenderToTextureWidget(widget); + if (!updateRequestSent || updateTime == UpdateNow) + sendUpdateRequest(tlw, updateTime); + return; + } + + // --------------------------------------------------------------------------- + + QRect effectiveWidgetRect = widget->d_func()->effectiveRectFor(widgetRect); + const QPoint offset = widget->mapTo(tlw, QPoint()); + QRect translatedRect = effectiveWidgetRect.translated(offset); +#if QT_CONFIG(graphicseffect) + // Graphics effects may exceed window size, clamp + translatedRect = translatedRect.intersected(QRect(QPoint(), tlw->size())); +#endif + if (qt_region_strictContains(dirty, translatedRect)) { + if (updateTime == UpdateNow) + sendUpdateRequest(tlw, updateTime); + return; // Already dirty + } + + // --------------------------------------------------------------------------- + + if (bufferState == BufferInvalid) { + const bool eventAlreadyPosted = !dirty.isEmpty() || updateRequestSent; +#if QT_CONFIG(graphicseffect) + if (widget->d_func()->graphicsEffect) + dirty += widget->d_func()->effectiveRectFor(r).translated(offset); + else +#endif + dirty += r.translated(offset); + + if (!eventAlreadyPosted || updateTime == UpdateNow) + sendUpdateRequest(tlw, updateTime); + return; + } + + // --------------------------------------------------------------------------- + + if (dirtyWidgets.isEmpty()) { + addDirtyWidget(widget, r); + sendUpdateRequest(tlw, updateTime); + return; + } + + // --------------------------------------------------------------------------- + + if (widget->d_func()->inDirtyList) { + if (!qt_region_strictContains(widget->d_func()->dirty, effectiveWidgetRect)) { +#if QT_CONFIG(graphicseffect) + if (widget->d_func()->graphicsEffect) + widget->d_func()->dirty += widget->d_func()->effectiveRectFor(r); + else +#endif + widget->d_func()->dirty += r; + } + } else { + addDirtyWidget(widget, r); + } + + // --------------------------------------------------------------------------- + + if (updateTime == UpdateNow) + sendUpdateRequest(tlw, updateTime); +} +template void QWidgetRepaintManager::markDirty(const QRect &, QWidget *, UpdateTime, BufferState); +template void QWidgetRepaintManager::markDirty(const QRegion &, QWidget *, UpdateTime, BufferState); + +/*! + Marks the \a region of the \a widget as dirty on screen. The \a region will be copied from + the backing store to the \a widget's native parent next time flush() is called. + + Paint on screen widgets are ignored. +*/ +void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *widget, const QPoint &topLevelOffset) +{ + if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) + return; + +#if 0 // Used to be included in Qt4 for Q_WS_MAC + if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) + dirtyOnScreen += region.translated(topLevelOffset); + return; +#endif + + // Top-level. + if (widget == tlw) { + if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) + dirtyOnScreen += region; + return; + } + + // Alien widgets. + if (!hasPlatformWindow(widget) && !widget->isWindow()) { + QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). + if (nativeParent == tlw) { + if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) + dirtyOnScreen += region.translated(topLevelOffset); + return; + } + + // Alien widgets with native parent != tlw. + QWidgetPrivate *nativeParentPrivate = nativeParent->d_func(); + if (!nativeParentPrivate->needsFlush) + nativeParentPrivate->needsFlush = new QRegion; + const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); + *nativeParentPrivate->needsFlush += region.translated(nativeParentOffset); + appendDirtyOnScreenWidget(nativeParent); + return; + } + + // Native child widgets. + QWidgetPrivate *widgetPrivate = widget->d_func(); + if (!widgetPrivate->needsFlush) + widgetPrivate->needsFlush = new QRegion; + *widgetPrivate->needsFlush += region; + appendDirtyOnScreenWidget(widget); +} + +void QWidgetRepaintManager::removeDirtyWidget(QWidget *w) +{ + if (!w) + return; + + dirtyWidgets.removeAll(w); + dirtyOnScreenWidgets.removeAll(w); + dirtyRenderToTextureWidgets.removeAll(w); + resetWidget(w); + + QWidgetPrivate *wd = w->d_func(); + const int n = wd->children.count(); + for (int i = 0; i < n; ++i) { + if (QWidget *child = qobject_cast(wd->children.at(i))) + removeDirtyWidget(child); + } +} + +void QWidgetRepaintManager::updateLists(QWidget *cur) +{ + if (!cur) + return; + + QList children = cur->children(); + for (int i = 0; i < children.size(); ++i) { + QWidget *child = qobject_cast(children.at(i)); + if (!child || child->isWindow()) + continue; + + updateLists(child); + } + + if (cur->testAttribute(Qt::WA_StaticContents)) + addStaticWidget(cur); +} + +QWidgetRepaintManager::QWidgetRepaintManager(QWidget *topLevel) + : tlw(topLevel), + updateRequestSent(0), + textureListWatcher(0), + perfFrames(0) +{ + store = tlw->backingStore(); + Q_ASSERT(store); + + // Ensure all existing subsurfaces and static widgets are added to their respective lists. + updateLists(topLevel); +} + +QWidgetRepaintManager::~QWidgetRepaintManager() +{ + for (int c = 0; c < dirtyWidgets.size(); ++c) + resetWidget(dirtyWidgets.at(c)); + for (int c = 0; c < dirtyRenderToTextureWidgets.size(); ++c) + resetWidget(dirtyRenderToTextureWidgets.at(c)); +} + +static QVector getSortedRectsToScroll(const QRegion ®ion, int dx, int dy) +{ + QVector rects; + std::copy(region.begin(), region.end(), std::back_inserter(rects)); + if (rects.count() > 1) { + std::sort(rects.begin(), rects.end(), [=](const QRect &r1, const QRect &r2) { + if (r1.y() == r2.y()) { + if (dx > 0) + return r1.x() > r2.x(); + return r1.x() < r2.x(); + } + if (dy > 0) + return r1.y() > r2.y(); + return r1.y() < r2.y(); + }); + } + return rects; +} + +//parent's coordinates; move whole rect; update parent and widget +//assume the screen blt has already been done, so we don't need to refresh that part +void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) +{ + Q_Q(QWidget); + if (!q->isVisible() || (dx == 0 && dy == 0)) + return; + + QWidget *tlw = q->window(); + QTLWExtra* x = tlw->d_func()->topData(); + if (x->inTopLevelResize) + return; + + static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_MOVE") == 0; + + QWidget *pw = q->parentWidget(); + QPoint toplevelOffset = pw->mapTo(tlw, QPoint()); + QWidgetPrivate *pd = pw->d_func(); + QRect clipR(pd->clipRect()); + const QRect newRect(rect.translated(dx, dy)); + QRect destRect = rect.intersected(clipR); + if (destRect.isValid()) + destRect = destRect.translated(dx, dy).intersected(clipR); + const QRect sourceRect(destRect.translated(-dx, -dy)); + const QRect parentRect(rect & clipR); + const bool nativeWithTextureChild = textureChildSeen && hasPlatformWindow(q); + + const bool accelerateMove = accelEnv && isOpaque && !nativeWithTextureChild +#if QT_CONFIG(graphicsview) + // No accelerate move for proxy widgets. + && !tlw->d_func()->extra->proxyWidget +#endif + ; + + if (!accelerateMove) { + QRegion parentR(effectiveRectFor(parentRect)); + if (!extra || !extra->hasMask) { + parentR -= newRect; + } else { + // invalidateBackingStore() excludes anything outside the mask + parentR += newRect & clipR; + } + pd->invalidateBackingStore(parentR); + invalidateBackingStore((newRect & clipR).translated(-data.crect.topLeft())); + } else { + + QWidgetRepaintManager *wbs = x->repaintManager.get(); + QRegion childExpose(newRect & clipR); + QRegion overlappedExpose; + + if (sourceRect.isValid()) { + overlappedExpose = (overlappedRegion(sourceRect) | overlappedRegion(destRect)) & clipR; + + const qreal factor = QHighDpiScaling::factor(q->windowHandle()); + if (overlappedExpose.isEmpty() || qFloor(factor) == factor) { + const QVector rectsToScroll + = getSortedRectsToScroll(QRegion(sourceRect) - overlappedExpose, dx, dy); + for (QRect rect : rectsToScroll) { + if (wbs->bltRect(rect, dx, dy, pw)) { + childExpose -= rect.translated(dx, dy); + } + } + } + + childExpose -= overlappedExpose; + } + + if (!pw->updatesEnabled()) + return; + + const bool childUpdatesEnabled = q->updatesEnabled(); + if (childUpdatesEnabled) { + if (!overlappedExpose.isEmpty()) { + overlappedExpose.translate(-data.crect.topLeft()); + invalidateBackingStore(overlappedExpose); + } + if (!childExpose.isEmpty()) { + childExpose.translate(-data.crect.topLeft()); + wbs->markDirty(childExpose, q); + isMoved = true; + } + } + + QRegion parentExpose(parentRect); + parentExpose -= newRect; + if (extra && extra->hasMask) + parentExpose += QRegion(newRect) - extra->mask.translated(data.crect.topLeft()); + + if (!parentExpose.isEmpty()) { + wbs->markDirty(parentExpose, pw); + pd->isMoved = true; + } + + if (childUpdatesEnabled) { + QRegion needsFlush(sourceRect); + needsFlush += destRect; + wbs->markDirtyOnScreen(needsFlush, pw, toplevelOffset); + } + } +} + +//widget's coordinates; scroll within rect; only update widget +void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) +{ + Q_Q(QWidget); + QWidget *tlw = q->window(); + QTLWExtra* x = tlw->d_func()->topData(); + if (x->inTopLevelResize) + return; + + QWidgetRepaintManager *wbs = x->repaintManager.get(); + if (!wbs) + return; + + static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_SCROLL") == 0; + + const QRect clipR = clipRect(); + const QRect scrollRect = rect & clipR; + const bool accelerateScroll = accelEnv && isOpaque && !q_func()->testAttribute(Qt::WA_WState_InPaintEvent); + + if (!accelerateScroll) { + if (!overlappedRegion(scrollRect.translated(data.crect.topLeft()), true).isEmpty()) { + QRegion region(scrollRect); + subtractOpaqueSiblings(region); + invalidateBackingStore(region); + }else { + invalidateBackingStore(scrollRect); + } + } else { + const QPoint toplevelOffset = q->mapTo(tlw, QPoint()); + const QRect destRect = scrollRect.translated(dx, dy) & scrollRect; + const QRect sourceRect = destRect.translated(-dx, -dy); + + const QRegion overlappedExpose = (overlappedRegion(scrollRect.translated(data.crect.topLeft()))) + .translated(-data.crect.topLeft()) & clipR; + QRegion childExpose(scrollRect); + + const qreal factor = QHighDpiScaling::factor(q->windowHandle()); + if (overlappedExpose.isEmpty() || qFloor(factor) == factor) { + const QVector rectsToScroll + = getSortedRectsToScroll(QRegion(sourceRect) - overlappedExpose, dx, dy); + for (const QRect &rect : rectsToScroll) { + if (wbs->bltRect(rect, dx, dy, q)) { + childExpose -= rect.translated(dx, dy); + } + } + } + + childExpose -= overlappedExpose; + + if (inDirtyList) { + if (rect == q->rect()) { + dirty.translate(dx, dy); + } else { + QRegion dirtyScrollRegion = dirty.intersected(scrollRect); + if (!dirtyScrollRegion.isEmpty()) { + dirty -= dirtyScrollRegion; + dirtyScrollRegion.translate(dx, dy); + dirty += dirtyScrollRegion; + } + } + } + + if (!q->updatesEnabled()) + return; + + if (!overlappedExpose.isEmpty()) + invalidateBackingStore(overlappedExpose); + if (!childExpose.isEmpty()) { + wbs->markDirty(childExpose, q); + isScrolled = true; + } + + // Instead of using native scroll-on-screen, we copy from + // backingstore, giving only one screen update for each + // scroll, and a solid appearance + wbs->markDirtyOnScreen(destRect, q, toplevelOffset); + } +} + +#ifndef QT_NO_OPENGL +static void findTextureWidgetsRecursively(QWidget *tlw, QWidget *widget, QPlatformTextureList *widgetTextures, QVector *nativeChildren) +{ + QWidgetPrivate *wd = QWidgetPrivate::get(widget); + if (wd->renderToTexture) { + QPlatformTextureList::Flags flags = wd->textureListFlags(); + const QRect rect(widget->mapTo(tlw, QPoint()), widget->size()); + widgetTextures->appendTexture(widget, wd->textureId(), rect, wd->clipRect(), flags); + } + + for (int i = 0; i < wd->children.size(); ++i) { + QWidget *w = qobject_cast(wd->children.at(i)); + // Stop at native widgets but store them. Stop at hidden widgets too. + if (w && !w->isWindow() && hasPlatformWindow(w)) + nativeChildren->append(w); + if (w && !w->isWindow() && !hasPlatformWindow(w) && !w->isHidden() && QWidgetPrivate::get(w)->textureChildSeen) + findTextureWidgetsRecursively(tlw, w, widgetTextures, nativeChildren); + } +} + +static void findAllTextureWidgetsRecursively(QWidget *tlw, QWidget *widget) +{ + // textureChildSeen does not take native child widgets into account and that's good. + if (QWidgetPrivate::get(widget)->textureChildSeen) { + QVector nativeChildren; + auto tl = qt_make_unique(); + // Look for texture widgets (incl. widget itself) from 'widget' down, + // but skip subtrees with a parent of a native child widget. + findTextureWidgetsRecursively(tlw, widget, tl.get(), &nativeChildren); + // tl may be empty regardless of textureChildSeen if we have native or hidden children. + if (!tl->isEmpty()) + QWidgetPrivate::get(tlw)->topData()->widgetTextures.push_back(std::move(tl)); + // Native child widgets, if there was any, get their own separate QPlatformTextureList. + for (QWidget *ncw : qAsConst(nativeChildren)) { + if (QWidgetPrivate::get(ncw)->textureChildSeen) + findAllTextureWidgetsRecursively(tlw, ncw); + } + } +} + +static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) +{ + for (const auto &tl : QWidgetPrivate::get(tlw)->topData()->widgetTextures) { + Q_ASSERT(!tl->isEmpty()); + for (int i = 0; i < tl->count(); ++i) { + QWidget *w = static_cast(tl->source(i)); + if ((hasPlatformWindow(w) && w == widget) || (!hasPlatformWindow(w) && w->nativeParentWidget() == widget)) + return tl.get(); + } + } + + if (QWidgetPrivate::get(widget)->textureChildSeen) { + // No render-to-texture widgets in the (sub-)tree due to hidden or native + // children. Returning null results in using the normal backingstore flush path + // without OpenGL-based compositing. This is very desirable normally. However, + // some platforms cannot handle switching between the non-GL and GL paths for + // their windows so it has to be opt-in. + static bool switchableWidgetComposition = + QGuiApplicationPrivate::instance()->platformIntegration() + ->hasCapability(QPlatformIntegration::SwitchableWidgetComposition); + if (!switchableWidgetComposition) + return qt_dummy_platformTextureList(); + } + + return 0; +} + +// Watches one or more QPlatformTextureLists for changes in the lock state and +// triggers a backingstore sync when all the registered lists turn into +// unlocked state. This is essential when a custom composeAndFlush() +// implementation in a platform plugin is not synchronous and keeps +// holding on to the textures for some time even after returning from there. +QPlatformTextureListWatcher::QPlatformTextureListWatcher(QWidgetRepaintManager *paintManager) + : m_repaintManager(paintManager) +{ +} + +void QPlatformTextureListWatcher::watch(QPlatformTextureList *textureList) +{ + connect(textureList, SIGNAL(locked(bool)), SLOT(onLockStatusChanged(bool))); + m_locked[textureList] = textureList->isLocked(); +} + +bool QPlatformTextureListWatcher::isLocked() const +{ + foreach (bool v, m_locked) { + if (v) + return true; + } + return false; +} + +void QPlatformTextureListWatcher::onLockStatusChanged(bool locked) +{ + QPlatformTextureList *tl = static_cast(sender()); + m_locked[tl] = locked; + if (!isLocked()) + m_repaintManager->sync(); +} + +#else + +static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) +{ + Q_UNUSED(tlw); + Q_UNUSED(widget); + return nullptr; +} + +#endif // QT_NO_OPENGL + +static inline bool discardSyncRequest(QWidget *tlw, QTLWExtra *tlwExtra) +{ + if (!tlw || !tlwExtra || !tlw->testAttribute(Qt::WA_Mapped) || !tlw->isVisible()) + return true; + + return false; +} + +bool QWidgetRepaintManager::syncAllowed() +{ +#ifndef QT_NO_OPENGL + QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); + if (textureListWatcher && !textureListWatcher->isLocked()) { + textureListWatcher->deleteLater(); + textureListWatcher = 0; + } else if (!tlwExtra->widgetTextures.empty()) { + bool skipSync = false; + for (const auto &tl : tlwExtra->widgetTextures) { + if (tl->isLocked()) { + if (!textureListWatcher) + textureListWatcher = new QPlatformTextureListWatcher(this); + if (!textureListWatcher->isLocked()) + textureListWatcher->watch(tl.get()); + skipSync = true; + } + } + if (skipSync) // cannot compose due to widget textures being in use + return false; + } +#endif + return true; +} + +/*! + Synchronizes the \a exposedRegion of the \a exposedWidget with the backing store. + + If there's nothing to repaint, the area is flushed and painting does not occur; + otherwise the area is marked as dirty on screen and will be flushed right after + we are done with all painting. +*/ +void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedRegion) +{ + QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); + if (!tlw->isVisible() || !tlwExtra || tlwExtra->inTopLevelResize) + return; + + if (!exposedWidget || !hasPlatformWindow(exposedWidget) + || !exposedWidget->isVisible() || !exposedWidget->testAttribute(Qt::WA_Mapped) + || !exposedWidget->updatesEnabled() || exposedRegion.isEmpty()) { + return; + } + + // Nothing to repaint. + if (!isDirty() && store->size().isValid()) { + QPlatformTextureList *tl = widgetTexturesFor(tlw, exposedWidget); + qt_flush(exposedWidget, tl ? QRegion() : exposedRegion, store, tlw, tl, this); + return; + } + + if (exposedWidget != tlw) + markDirtyOnScreen(exposedRegion, exposedWidget, exposedWidget->mapTo(tlw, QPoint())); + else + markDirtyOnScreen(exposedRegion, exposedWidget, QPoint()); + + if (syncAllowed()) + doSync(); +} + +/*! + Synchronizes the backing store, i.e. dirty areas are repainted and flushed. +*/ +void QWidgetRepaintManager::sync() +{ + updateRequestSent = false; + QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); + if (discardSyncRequest(tlw, tlwExtra)) { + // If the top-level is minimized, it's not visible on the screen so we can delay the + // update until it's shown again. In order to do that we must keep the dirty states. + // These will be cleared when we receive the first expose after showNormal(). + // However, if the widget is not visible (isVisible() returns false), everything will + // be invalidated once the widget is shown again, so clear all dirty states. + if (!tlw->isVisible()) { + dirty = QRegion(); + for (int i = 0; i < dirtyWidgets.size(); ++i) + resetWidget(dirtyWidgets.at(i)); + dirtyWidgets.clear(); + } + return; + } + + if (syncAllowed()) + doSync(); +} + +void QWidgetRepaintManager::doSync() +{ + const bool updatesDisabled = !tlw->updatesEnabled(); + bool repaintAllWidgets = false; + + const bool inTopLevelResize = tlw->d_func()->maybeTopData()->inTopLevelResize; + const QRect tlwRect(topLevelRect()); + const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); + if ((inTopLevelResize || surfaceGeometry.size() != tlwRect.size()) && !updatesDisabled) { + if (hasStaticContents() && !store->size().isEmpty() ) { + // Repaint existing dirty area and newly visible area. + const QRect clipRect(0, 0, surfaceGeometry.width(), surfaceGeometry.height()); + const QRegion staticRegion(staticContents(0, clipRect)); + QRegion newVisible(0, 0, tlwRect.width(), tlwRect.height()); + newVisible -= staticRegion; + dirty += newVisible; + store->setStaticContents(staticRegion); + } else { + // Repaint everything. + dirty = QRegion(0, 0, tlwRect.width(), tlwRect.height()); + for (int i = 0; i < dirtyWidgets.size(); ++i) + resetWidget(dirtyWidgets.at(i)); + dirtyWidgets.clear(); + repaintAllWidgets = true; + } + } + + if (inTopLevelResize || surfaceGeometry.size() != tlwRect.size()) + store->resize(tlwRect.size()); + + if (updatesDisabled) + return; + + // Contains everything that needs repaint. + QRegion toClean(dirty); + + // Loop through all update() widgets and remove them from the list before they are + // painted (in case someone calls update() in paintEvent). If the widget is opaque + // and does not have transparent overlapping siblings, append it to the + // opaqueNonOverlappedWidgets list and paint it directly without composition. + QVarLengthArray opaqueNonOverlappedWidgets; + for (int i = 0; i < dirtyWidgets.size(); ++i) { + QWidget *w = dirtyWidgets.at(i); + QWidgetPrivate *wd = w->d_func(); + if (wd->data.in_destructor) + continue; + + // Clip with mask() and clipRect(). + wd->dirty &= wd->clipRect(); + wd->clipToEffectiveMask(wd->dirty); + + // Subtract opaque siblings and children. + bool hasDirtySiblingsAbove = false; + // We know for sure that the widget isn't overlapped if 'isMoved' is true. + if (!wd->isMoved) + wd->subtractOpaqueSiblings(wd->dirty, &hasDirtySiblingsAbove); + + // Make a copy of the widget's dirty region, to restore it in case there is an opaque + // render-to-texture child that completely covers the widget, because otherwise the + // render-to-texture child won't be visible, due to its parent widget not being redrawn + // with a proper blending mask. + const QRegion dirtyBeforeSubtractedOpaqueChildren = wd->dirty; + + // Scrolled and moved widgets must draw all children. + if (!wd->isScrolled && !wd->isMoved) + wd->subtractOpaqueChildren(wd->dirty, w->rect()); + + if (wd->dirty.isEmpty() && wd->textureChildSeen) + wd->dirty = dirtyBeforeSubtractedOpaqueChildren; + + if (wd->dirty.isEmpty()) { + resetWidget(w); + continue; + } + + const QRegion widgetDirty(w != tlw ? wd->dirty.translated(w->mapTo(tlw, QPoint())) + : wd->dirty); + toClean += widgetDirty; + +#if QT_CONFIG(graphicsview) + if (tlw->d_func()->extra->proxyWidget) { + resetWidget(w); + continue; + } +#endif + + if (!hasDirtySiblingsAbove && wd->isOpaque && !dirty.intersects(widgetDirty.boundingRect())) { + opaqueNonOverlappedWidgets.append(w); + } else { + resetWidget(w); + dirty += widgetDirty; + } + } + dirtyWidgets.clear(); + +#ifndef QT_NO_OPENGL + // Find all render-to-texture child widgets (including self). + // The search is cut at native widget boundaries, meaning that each native child widget + // has its own list for the subtree below it. + QTLWExtra *tlwExtra = tlw->d_func()->topData(); + tlwExtra->widgetTextures.clear(); + findAllTextureWidgetsRecursively(tlw, tlw); + qt_window_private(tlw->windowHandle())->compositing = false; // will get updated in qt_flush() +#endif + + if (toClean.isEmpty()) { + // Nothing to repaint. However renderToTexture widgets are handled + // specially, they are not in the regular dirty list, in order to + // prevent triggering unnecessary backingstore painting when only the + // OpenGL content changes. Check if we have such widgets in the special + // dirty list. + QVarLengthArray paintPending; + const int numPaintPending = dirtyRenderToTextureWidgets.count(); + paintPending.reserve(numPaintPending); + for (int i = 0; i < numPaintPending; ++i) { + QWidget *w = dirtyRenderToTextureWidgets.at(i); + paintPending << w; + resetWidget(w); + } + dirtyRenderToTextureWidgets.clear(); + for (int i = 0; i < numPaintPending; ++i) { + QWidget *w = paintPending[i]; + w->d_func()->sendPaintEvent(w->rect()); + if (w != tlw) { + QWidget *npw = w->nativeParentWidget(); + if (hasPlatformWindow(w) || (npw && npw != tlw)) { + if (!hasPlatformWindow(w)) + w = npw; + QWidgetPrivate *wPrivate = w->d_func(); + if (!wPrivate->needsFlush) + wPrivate->needsFlush = new QRegion; + appendDirtyOnScreenWidget(w); + } + } + } + + // We might have newly exposed areas on the screen if this function was + // called from sync(QWidget *, QRegion)), so we have to make sure those + // are flushed. We also need to composite the renderToTexture widgets. + flush(); + + return; + } + +#ifndef QT_NO_OPENGL + for (const auto &tl : tlwExtra->widgetTextures) { + for (int i = 0; i < tl->count(); ++i) { + QWidget *w = static_cast(tl->source(i)); + if (dirtyRenderToTextureWidgets.contains(w)) { + const QRect rect = tl->geometry(i); // mapped to the tlw already + // Set a flag to indicate that the paint event for this + // render-to-texture widget must not to be optimized away. + w->d_func()->renderToTextureReallyDirty = 1; + dirty += rect; + toClean += rect; + } + } + } + for (int i = 0; i < dirtyRenderToTextureWidgets.count(); ++i) + resetWidget(dirtyRenderToTextureWidgets.at(i)); + dirtyRenderToTextureWidgets.clear(); +#endif + +#if QT_CONFIG(graphicsview) + if (tlw->d_func()->extra->proxyWidget) { + updateStaticContentsSize(); + dirty = QRegion(); + updateRequestSent = false; + for (const QRect &rect : toClean) + tlw->d_func()->extra->proxyWidget->update(rect); + return; + } +#endif + + BeginPaintInfo beginPaintInfo; + beginPaint(toClean, tlw, store, &beginPaintInfo); + if (beginPaintInfo.nothingToPaint) { + for (int i = 0; i < opaqueNonOverlappedWidgets.size(); ++i) + resetWidget(opaqueNonOverlappedWidgets[i]); + dirty = QRegion(); + updateRequestSent = false; + return; + } + + // Must do this before sending any paint events because + // the size may change in the paint event. + updateStaticContentsSize(); + const QRegion dirtyCopy(dirty); + dirty = QRegion(); + updateRequestSent = false; + + // Paint opaque non overlapped widgets. + for (int i = 0; i < opaqueNonOverlappedWidgets.size(); ++i) { + QWidget *w = opaqueNonOverlappedWidgets[i]; + QWidgetPrivate *wd = w->d_func(); + + int flags = QWidgetPrivate::DrawRecursive; + // Scrolled and moved widgets must draw all children. + if (!wd->isScrolled && !wd->isMoved) + flags |= QWidgetPrivate::DontDrawOpaqueChildren; + if (w == tlw) + flags |= QWidgetPrivate::DrawAsRoot; + + QRegion toBePainted(wd->dirty); + resetWidget(w); + + QPoint offset; + if (w != tlw) + offset += w->mapTo(tlw, QPoint()); + wd->drawWidget(store->paintDevice(), toBePainted, offset, flags, 0, this); + } + + // Paint the rest with composition. + if (repaintAllWidgets || !dirtyCopy.isEmpty()) { + const int flags = QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawRecursive; + tlw->d_func()->drawWidget(store->paintDevice(), dirtyCopy, QPoint(), flags, 0, this); + } + + endPaint(toClean, store, &beginPaintInfo); +} + +/*! + Flushes the contents of the backing store into the top-level widget. + If the \a widget is non-zero, the content is flushed to the \a widget. + If the \a surface is non-zero, the content of the \a surface is flushed. +*/ +void QWidgetRepaintManager::flush(QWidget *widget) +{ + const bool hasDirtyOnScreenWidgets = !dirtyOnScreenWidgets.isEmpty(); + bool flushed = false; + + // Flush the region in dirtyOnScreen. + if (!dirtyOnScreen.isEmpty()) { + QWidget *target = widget ? widget : tlw; + qt_flush(target, dirtyOnScreen, store, tlw, widgetTexturesFor(tlw, tlw), this); + dirtyOnScreen = QRegion(); + flushed = true; + } + + // Render-to-texture widgets are not in dirtyOnScreen so flush if we have not done it above. + if (!flushed && !hasDirtyOnScreenWidgets) { +#ifndef QT_NO_OPENGL + if (!tlw->d_func()->topData()->widgetTextures.empty()) { + QPlatformTextureList *tl = widgetTexturesFor(tlw, tlw); + if (tl) { + QWidget *target = widget ? widget : tlw; + qt_flush(target, QRegion(), store, tlw, tl, this); + } + } +#endif + } + + if (!hasDirtyOnScreenWidgets) + return; + + for (QWidget *w : qExchange(dirtyOnScreenWidgets, {})) { + QWidgetPrivate *wd = w->d_func(); + Q_ASSERT(wd->needsFlush); + QPlatformTextureList *widgetTexturesForNative = wd->textureChildSeen ? widgetTexturesFor(tlw, w) : 0; + qt_flush(w, *wd->needsFlush, store, tlw, widgetTexturesForNative, this); + *wd->needsFlush = QRegion(); + } +} + +/*! + Invalidates the backing store when the widget is resized. + Static areas are never invalidated unless absolutely needed. +*/ +void QWidgetPrivate::invalidateBackingStore_resizeHelper(const QPoint &oldPos, const QSize &oldSize) +{ + Q_Q(QWidget); + Q_ASSERT(!q->isWindow()); + Q_ASSERT(q->parentWidget()); + + const bool staticContents = q->testAttribute(Qt::WA_StaticContents); + const bool sizeDecreased = (data.crect.width() < oldSize.width()) + || (data.crect.height() < oldSize.height()); + + const QPoint offset(data.crect.x() - oldPos.x(), data.crect.y() - oldPos.y()); + const bool parentAreaExposed = !offset.isNull() || sizeDecreased; + const QRect newWidgetRect(q->rect()); + const QRect oldWidgetRect(0, 0, oldSize.width(), oldSize.height()); + + if (!staticContents || graphicsEffect) { + QRegion staticChildren; + QWidgetRepaintManager *bs = 0; + if (offset.isNull() && (bs = maybeRepaintManager())) + staticChildren = bs->staticContents(q, oldWidgetRect); + const bool hasStaticChildren = !staticChildren.isEmpty(); + + if (hasStaticChildren) { + QRegion dirty(newWidgetRect); + dirty -= staticChildren; + invalidateBackingStore(dirty); + } else { + // Entire widget needs repaint. + invalidateBackingStore(newWidgetRect); + } + + if (!parentAreaExposed) + return; + + // Invalidate newly exposed area of the parent. + if (!graphicsEffect && extra && extra->hasMask) { + QRegion parentExpose(extra->mask.translated(oldPos)); + parentExpose &= QRect(oldPos, oldSize); + if (hasStaticChildren) + parentExpose -= data.crect; // Offset is unchanged, safe to do this. + q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); + } else { + if (hasStaticChildren && !graphicsEffect) { + QRegion parentExpose(QRect(oldPos, oldSize)); + parentExpose -= data.crect; // Offset is unchanged, safe to do this. + q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); + } else { + q->parentWidget()->d_func()->invalidateBackingStore(effectiveRectFor(QRect(oldPos, oldSize))); + } + } + return; + } + + // Move static content to its new position. + if (!offset.isNull()) { + if (sizeDecreased) { + const QSize minSize(qMin(oldSize.width(), data.crect.width()), + qMin(oldSize.height(), data.crect.height())); + moveRect(QRect(oldPos, minSize), offset.x(), offset.y()); + } else { + moveRect(QRect(oldPos, oldSize), offset.x(), offset.y()); + } + } + + // Invalidate newly visible area of the widget. + if (!sizeDecreased || !oldWidgetRect.contains(newWidgetRect)) { + QRegion newVisible(newWidgetRect); + newVisible -= oldWidgetRect; + invalidateBackingStore(newVisible); + } + + if (!parentAreaExposed) + return; + + // Invalidate newly exposed area of the parent. + const QRect oldRect(oldPos, oldSize); + if (extra && extra->hasMask) { + QRegion parentExpose(oldRect); + parentExpose &= extra->mask.translated(oldPos); + parentExpose -= (extra->mask.translated(data.crect.topLeft()) & data.crect); + q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); + } else { + QRegion parentExpose(oldRect); + parentExpose -= data.crect; + q->parentWidget()->d_func()->invalidateBackingStore(parentExpose); + } +} + +/*! + Invalidates the \a r (in widget's coordinates) of the backing store, i.e. + all widgets intersecting with the region will be repainted when the backing + store is synced. +*/ +template +void QWidgetPrivate::invalidateBackingStore(const T &r) +{ + if (r.isEmpty()) + return; + + if (QCoreApplication::closingDown()) + return; + + Q_Q(QWidget); + if (!q->isVisible() || !q->updatesEnabled()) + return; + + QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); + if (!tlwExtra || tlwExtra->inTopLevelResize || !tlwExtra->backingStore) + return; + + T clipped(r); + clipped &= clipRect(); + if (clipped.isEmpty()) + return; + + if (!graphicsEffect && extra && extra->hasMask) { + QRegion masked(extra->mask); + masked &= clipped; + if (masked.isEmpty()) + return; + + tlwExtra->repaintManager->markDirty(masked, q, + QWidgetRepaintManager::UpdateLater, QWidgetRepaintManager::BufferInvalid); + } else { + tlwExtra->repaintManager->markDirty(clipped, q, + QWidgetRepaintManager::UpdateLater, QWidgetRepaintManager::BufferInvalid); + } +} +// Needed by tst_QWidget +template Q_AUTOTEST_EXPORT void QWidgetPrivate::invalidateBackingStore(const QRect &r); + +void QWidgetPrivate::repaint_sys(const QRegion &rgn) +{ + if (data.in_destructor) + return; + + Q_Q(QWidget); + if (discardSyncRequest(q, maybeTopData())) + return; + + if (q->testAttribute(Qt::WA_StaticContents)) { + if (!extra) + createExtra(); + extra->staticContentsSize = data.crect.size(); + } + + QPaintEngine *engine = q->paintEngine(); + + // QGLWidget does not support partial updates if: + // 1) The context is double buffered + // 2) The context is single buffered and auto-fill background is enabled. + const bool noPartialUpdateSupport = (engine && (engine->type() == QPaintEngine::OpenGL + || engine->type() == QPaintEngine::OpenGL2)) + && (usesDoubleBufferedGLContext || q->autoFillBackground()); + QRegion toBePainted(noPartialUpdateSupport ? q->rect() : rgn); + +#if 0 // Used to be included in Qt4 for Q_WS_MAC + // No difference between update() and repaint() on the Mac. + update_sys(toBePainted); + return; +#endif + + toBePainted &= clipRect(); + clipToEffectiveMask(toBePainted); + if (toBePainted.isEmpty()) + return; // Nothing to repaint. + +#ifndef QT_NO_PAINT_DEBUG + bool flushed = QWidgetRepaintManager::flushPaint(q, toBePainted); +#endif + + drawWidget(q, toBePainted, QPoint(), QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawPaintOnScreen, 0); + +#ifndef QT_NO_PAINT_DEBUG + if (flushed) + QWidgetRepaintManager::unflushPaint(q, toBePainted); +#endif + + if (Q_UNLIKELY(q->paintingActive())) + qWarning("QWidget::repaint: It is dangerous to leave painters active on a widget outside of the PaintEvent"); +} + + +QT_END_NAMESPACE + +#include "moc_qwidgetrepaintmanager_p.cpp" diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h new file mode 100644 index 0000000000..36f42b7e1a --- /dev/null +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -0,0 +1,281 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtWidgets module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QWIDGETREPAINTMANAGER_P_H +#define QWIDGETREPAINTMANAGER_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QPlatformTextureList; +class QPlatformTextureListWatcher; +class QWidgetRepaintManager; + +struct BeginPaintInfo { + inline BeginPaintInfo() : wasFlushed(0), nothingToPaint(0), backingStoreRecreated(0) {} + uint wasFlushed : 1; + uint nothingToPaint : 1; + uint backingStoreRecreated : 1; +}; + +#ifndef QT_NO_OPENGL +class QPlatformTextureListWatcher : public QObject +{ + Q_OBJECT + +public: + QPlatformTextureListWatcher(QWidgetRepaintManager *repaintManager); + void watch(QPlatformTextureList *textureList); + bool isLocked() const; + +private slots: + void onLockStatusChanged(bool locked); + +private: + QHash m_locked; + QWidgetRepaintManager *m_repaintManager; +}; +#endif + +class Q_AUTOTEST_EXPORT QWidgetRepaintManager +{ +public: + enum UpdateTime { + UpdateNow, + UpdateLater + }; + + enum BufferState{ + BufferValid, + BufferInvalid + }; + + QWidgetRepaintManager(QWidget *t); + ~QWidgetRepaintManager(); + + static void showYellowThing(QWidget *widget, const QRegion &rgn, int msec, bool); + + void sync(QWidget *exposedWidget, const QRegion &exposedRegion); + void sync(); + void flush(QWidget *widget = nullptr); + + QBackingStore *backingStore() const { return store; } + + inline bool isDirty() const + { + return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); + } + + template + void markDirty(const T &r, QWidget *widget, UpdateTime updateTime = UpdateLater, + BufferState bufferState = BufferValid); + +private: + QWidget *tlw; + QRegion dirtyOnScreen; // needsFlush + QRegion dirty; // needsRepaint + QRegion dirtyFromPreviousSync; + QVector dirtyWidgets; + QVector dirtyRenderToTextureWidgets; + QVector dirtyOnScreenWidgets; + QList staticWidgets; + QBackingStore *store; + uint updateRequestSent : 1; + + QPlatformTextureListWatcher *textureListWatcher; + QElapsedTimer perfTime; + int perfFrames; + + void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); + + static bool flushPaint(QWidget *widget, const QRegion &rgn); + static void unflushPaint(QWidget *widget, const QRegion &rgn); + static void qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, + QWidget *tlw, + QPlatformTextureList *widgetTextures, + QWidgetRepaintManager *repaintManager); + + void doSync(); + bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); + + void beginPaint(QRegion &toClean, QWidget *widget, QBackingStore *backingStore, + BeginPaintInfo *returnInfo, bool toCleanIsInTopLevelCoordinates = true); + void endPaint(const QRegion &cleaned, QBackingStore *backingStore, BeginPaintInfo *beginPaintInfo); + + QRegion dirtyRegion(QWidget *widget = nullptr) const; + QRegion staticContents(QWidget *widget = nullptr, const QRect &withinClipRect = QRect()) const; + + void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); + + void removeDirtyWidget(QWidget *w); + + void updateLists(QWidget *widget); + + bool syncAllowed(); + + inline void addDirtyWidget(QWidget *widget, const QRegion &rgn) + { + if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { + QWidgetPrivate *widgetPrivate = widget->d_func(); +#if QT_CONFIG(graphicseffect) + if (widgetPrivate->graphicsEffect) + widgetPrivate->dirty = widgetPrivate->effectiveRectFor(rgn.boundingRect()); + else +#endif // QT_CONFIG(graphicseffect) + widgetPrivate->dirty = rgn; + dirtyWidgets.append(widget); + widgetPrivate->inDirtyList = true; + } + } + + inline void addDirtyRenderToTextureWidget(QWidget *widget) + { + if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { + QWidgetPrivate *widgetPrivate = widget->d_func(); + Q_ASSERT(widgetPrivate->renderToTexture); + dirtyRenderToTextureWidgets.append(widget); + widgetPrivate->inDirtyList = true; + } + } + + inline void addStaticWidget(QWidget *widget) + { + if (!widget) + return; + + Q_ASSERT(widget->testAttribute(Qt::WA_StaticContents)); + if (!staticWidgets.contains(widget)) + staticWidgets.append(widget); + } + + inline void removeStaticWidget(QWidget *widget) + { staticWidgets.removeAll(widget); } + + // Move the reparented widget and all its static children from this backing store + // to the new backing store if reparented into another top-level / backing store. + inline void moveStaticWidgets(QWidget *reparented) + { + Q_ASSERT(reparented); + QWidgetRepaintManager *newPaintManager = reparented->d_func()->maybeRepaintManager(); + if (newPaintManager == this) + return; + + int i = 0; + while (i < staticWidgets.size()) { + QWidget *w = staticWidgets.at(i); + if (reparented == w || reparented->isAncestorOf(w)) { + staticWidgets.removeAt(i); + if (newPaintManager) + newPaintManager->addStaticWidget(w); + } else { + ++i; + } + } + } + + inline QRect topLevelRect() const + { + return tlw->data->crect; + } + + inline void appendDirtyOnScreenWidget(QWidget *widget) + { + if (!widget) + return; + + if (!dirtyOnScreenWidgets.contains(widget)) + dirtyOnScreenWidgets.append(widget); + } + + inline void resetWidget(QWidget *widget) + { + if (widget) { + widget->d_func()->inDirtyList = false; + widget->d_func()->isScrolled = false; + widget->d_func()->isMoved = false; + widget->d_func()->dirty = QRegion(); + } + } + + inline void updateStaticContentsSize() + { + for (int i = 0; i < staticWidgets.size(); ++i) { + QWidgetPrivate *wd = staticWidgets.at(i)->d_func(); + if (!wd->extra) + wd->createExtra(); + wd->extra->staticContentsSize = wd->data.crect.size(); + } + } + + inline bool hasStaticContents() const + { +#if defined(Q_OS_WIN) + return !staticWidgets.isEmpty(); +#else + return !staticWidgets.isEmpty() && false; +#endif + } + + friend QRegion qt_dirtyRegion(QWidget *); + friend class QWidgetPrivate; + friend class QWidget; + friend class QBackingStore; + + Q_DISABLE_COPY_MOVE(QWidgetRepaintManager) +}; + +QT_END_NAMESPACE + +#endif // QWIDGETREPAINTMANAGER_P_H diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index a01a377956..3a824371f3 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -46,7 +46,7 @@ #ifndef QT_NO_ACCESSIBILITY #include #endif -#include +#include #include #include #include @@ -770,8 +770,8 @@ void QWidgetWindow::repaintWindow() QTLWExtra *tlwExtra = m_widget->window()->d_func()->maybeTopData(); if (tlwExtra && !tlwExtra->inTopLevelResize && tlwExtra->backingStore) - tlwExtra->widgetBackingStore->markDirty(m_widget->rect(), m_widget, - QWidgetBackingStore::UpdateNow, QWidgetBackingStore::BufferInvalid); + tlwExtra->repaintManager->markDirty(m_widget->rect(), m_widget, + QWidgetRepaintManager::UpdateNow, QWidgetRepaintManager::BufferInvalid); } // Store normal geometry used for saving application settings. diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 715bbbec0f..22bb488b3d 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -46,7 +46,7 @@ #include #include #include -#include +#include #include #include #include @@ -9565,7 +9565,7 @@ void tst_QWidget::destroyBackingStore() QTRY_VERIFY(w.numPaintEvents > 0); w.reset(); w.update(); - qt_widget_private(&w)->topData()->widgetBackingStore.reset(new QWidgetBackingStore(&w)); + qt_widget_private(&w)->topData()->repaintManager.reset(new QWidgetRepaintManager(&w)); w.update(); QApplication::processEvents(); @@ -9580,14 +9580,14 @@ void tst_QWidget::destroyBackingStore() #endif // QT_BUILD_INTERNAL // Helper function -QWidgetBackingStore* backingStore(QWidget &widget) +QWidgetRepaintManager* repaintManager(QWidget &widget) { - QWidgetBackingStore *backingStore = nullptr; + QWidgetRepaintManager *repaintManager = nullptr; #ifdef QT_BUILD_INTERNAL if (QTLWExtra *topExtra = qt_widget_private(&widget)->maybeTopData()) - backingStore = topExtra->widgetBackingStore.get(); + repaintManager = topExtra->repaintManager.get(); #endif - return backingStore; + return repaintManager; } // Tables of 5000 elements do not make sense on Windows Mobile. @@ -9785,12 +9785,12 @@ class scrollWidgetWBS : public QWidget public: void deleteBackingStore() { - static_cast(d_ptr.data())->topData()->widgetBackingStore.reset(nullptr); + static_cast(d_ptr.data())->topData()->repaintManager.reset(nullptr); } void enableBackingStore() { - if (!static_cast(d_ptr.data())->maybeBackingStore()) { - static_cast(d_ptr.data())->topData()->widgetBackingStore.reset(new QWidgetBackingStore(this)); + if (!static_cast(d_ptr.data())->maybeRepaintManager()) { + static_cast(d_ptr.data())->topData()->repaintManager.reset(new QWidgetRepaintManager(this)); static_cast(d_ptr.data())->invalidateBackingStore(this->rect()); repaint(); } -- cgit v1.2.3 From 14fc3f4b0d69a2395dc734d9bf72b943508e0450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 14 Aug 2019 14:32:56 +0200 Subject: Upgrade QWidgetPrivate::DrawWidgetFlag to QFlags MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allows for easier debugging of the paint cycle. Change-Id: Iab85bccb99198a02f33c0beeccd4e3914375358d Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qwidget.cpp | 10 +++++----- src/widgets/kernel/qwidget_p.h | 19 +++++++++++++------ src/widgets/kernel/qwidgetrepaintmanager.cpp | 4 ++-- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index d1ad0c0a01..d792b48467 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -2353,7 +2353,7 @@ bool QWidgetPrivate::updateBrushOrigin(QPainter *painter, const QBrush &brush) c return true; } -void QWidgetPrivate::paintBackground(QPainter *painter, const QRegion &rgn, int flags) const +void QWidgetPrivate::paintBackground(QPainter *painter, const QRegion &rgn, DrawWidgetFlags flags) const { Q_Q(const QWidget); @@ -5410,7 +5410,7 @@ void QWidgetPrivate::render_helper(QPainter *painter, const QPoint &targetOffset #endif } -void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, int flags, +void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, DrawWidgetFlags flags, QPainter *sharedPainter, QWidgetRepaintManager *repaintManager) { if (rgn.isEmpty()) @@ -5508,7 +5508,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP beginBackingStorePainting(); #endif QPainter p(q); - paintBackground(&p, toBePainted, (asRoot || onScreen) ? flags | DrawAsRoot : 0); + paintBackground(&p, toBePainted, (asRoot || onScreen) ? (flags | DrawAsRoot) : DrawWidgetFlags()); #ifndef QT_NO_OPENGL endBackingStorePainting(); #endif @@ -5691,7 +5691,7 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, } // Set backingstore flags. - int flags = DrawPaintOnScreen | DrawInvisible; + DrawWidgetFlags flags = DrawPaintOnScreen | DrawInvisible; if (renderFlags & QWidget::DrawWindowBackground) flags |= DrawAsRoot; @@ -5711,7 +5711,7 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, } void QWidgetPrivate::paintSiblingsRecursive(QPaintDevice *pdev, const QObjectList& siblings, int index, const QRegion &rgn, - const QPoint &offset, int flags + const QPoint &offset, DrawWidgetFlags flags , QPainter *sharedPainter, QWidgetRepaintManager *repaintManager) { QWidget *w = 0; diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index c3b3a2ed93..1cb9769d4d 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -266,10 +266,11 @@ static inline bool bypassGraphicsProxyWidget(const QWidget *p) class Q_WIDGETS_EXPORT QWidgetPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QWidget) + Q_GADGET public: // *************************** Cross-platform *************************************** - enum DrawWidgetFlags { + enum DrawWidgetFlag { DrawAsRoot = 0x01, DrawPaintOnScreen = 0x02, DrawRecursive = 0x04, @@ -279,12 +280,15 @@ public: DontDrawNativeChildren = 0x40, DontSetCompositionMode = 0x80 }; + Q_DECLARE_FLAGS(DrawWidgetFlags, DrawWidgetFlag) + Q_FLAG(DrawWidgetFlags) enum CloseMode { CloseNoEvent, CloseWithEvent, CloseWithSpontaneousEvent }; + Q_ENUM(CloseMode) enum Direction { DirectionNorth = 0x01, @@ -292,6 +296,7 @@ public: DirectionSouth = 0x02, DirectionWest = 0x20 }; + Q_ENUM(Direction) // Functions. explicit QWidgetPrivate(int version = QObjectPrivateVersion); @@ -376,20 +381,20 @@ public: void setUpdatesEnabled_helper(bool ); bool updateBrushOrigin(QPainter *, const QBrush &brush) const; - void paintBackground(QPainter *, const QRegion &, int flags = DrawAsRoot) const; + void paintBackground(QPainter *, const QRegion &, DrawWidgetFlags flags = DrawAsRoot) const; bool isAboutToShow() const; QRegion prepareToRender(const QRegion ®ion, QWidget::RenderFlags renderFlags); void render_helper(QPainter *painter, const QPoint &targetOffset, const QRegion &sourceRegion, QWidget::RenderFlags renderFlags); void render(QPaintDevice *target, const QPoint &targetOffset, const QRegion &sourceRegion, QWidget::RenderFlags renderFlags); - void drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, int flags, + void drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, DrawWidgetFlags flags, QPainter *sharedPainter = nullptr, QWidgetRepaintManager *repaintManager = nullptr); void sendPaintEvent(const QRegion &toBePainted); void paintSiblingsRecursive(QPaintDevice *pdev, const QObjectList& children, int index, - const QRegion &rgn, const QPoint &offset, int flags, + const QRegion &rgn, const QPoint &offset, DrawWidgetFlags flags, QPainter *sharedPainter, QWidgetRepaintManager *repaintManager); #if QT_CONFIG(graphicsview) @@ -873,16 +878,18 @@ public: bool stealMouseGrab(bool grab); }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QWidgetPrivate::DrawWidgetFlags) + struct QWidgetPaintContext { - inline QWidgetPaintContext(QPaintDevice *d, const QRegion &r, const QPoint &o, int f, + inline QWidgetPaintContext(QPaintDevice *d, const QRegion &r, const QPoint &o, QWidgetPrivate::DrawWidgetFlags f, QPainter *p, QWidgetRepaintManager *rpm) : pdev(d), rgn(r), offset(o), flags(f), sharedPainter(p), repaintManager(rpm), painter(nullptr) {} QPaintDevice *pdev; QRegion rgn; QPoint offset; - int flags; + QWidgetPrivate::DrawWidgetFlags flags; QPainter *sharedPainter; QWidgetRepaintManager *repaintManager; QPainter *painter; diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 30d92551f7..76b591aa2c 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1335,7 +1335,7 @@ void QWidgetRepaintManager::doSync() QWidget *w = opaqueNonOverlappedWidgets[i]; QWidgetPrivate *wd = w->d_func(); - int flags = QWidgetPrivate::DrawRecursive; + QWidgetPrivate::DrawWidgetFlags flags = QWidgetPrivate::DrawRecursive; // Scrolled and moved widgets must draw all children. if (!wd->isScrolled && !wd->isMoved) flags |= QWidgetPrivate::DontDrawOpaqueChildren; @@ -1353,7 +1353,7 @@ void QWidgetRepaintManager::doSync() // Paint the rest with composition. if (repaintAllWidgets || !dirtyCopy.isEmpty()) { - const int flags = QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawRecursive; + QWidgetPrivate::DrawWidgetFlags flags = QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawRecursive; tlw->d_func()->drawWidget(store->paintDevice(), dirtyCopy, QPoint(), flags, 0, this); } -- cgit v1.2.3 From 380dd8cde9eac2355f421326623dda1722ab605c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 16 Aug 2019 15:29:56 +0200 Subject: Widgets: Simplify discardSyncRequest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I3bc66a0f958fed44eac5fee6642ef1b00d45a2c4 Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qwidget_p.h | 2 ++ src/widgets/kernel/qwidgetrepaintmanager.cpp | 15 ++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 1cb9769d4d..941f92c062 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -439,6 +439,8 @@ public: void syncBackingStore(); void syncBackingStore(const QRegion ®ion); + bool shouldDiscardSyncRequest() const; + // tells the input method about the widgets transform void updateWidgetTransform(QEvent *event); diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 76b591aa2c..697212461c 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1045,12 +1045,10 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) #endif // QT_NO_OPENGL -static inline bool discardSyncRequest(QWidget *tlw, QTLWExtra *tlwExtra) +bool QWidgetPrivate::shouldDiscardSyncRequest() const { - if (!tlw || !tlwExtra || !tlw->testAttribute(Qt::WA_Mapped) || !tlw->isVisible()) - return true; - - return false; + Q_Q(const QWidget); + return !maybeTopData() || !q->testAttribute(Qt::WA_Mapped) || !q->isVisible(); } bool QWidgetRepaintManager::syncAllowed() @@ -1119,8 +1117,7 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR void QWidgetRepaintManager::sync() { updateRequestSent = false; - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (discardSyncRequest(tlw, tlwExtra)) { + if (qt_widget_private(tlw)->shouldDiscardSyncRequest()) { // If the top-level is minimized, it's not visible on the screen so we can delay the // update until it's shown again. In order to do that we must keep the dirty states. // These will be cleared when we receive the first expose after showNormal(). @@ -1543,10 +1540,10 @@ void QWidgetPrivate::repaint_sys(const QRegion &rgn) if (data.in_destructor) return; - Q_Q(QWidget); - if (discardSyncRequest(q, maybeTopData())) + if (shouldDiscardSyncRequest()) return; + Q_Q(QWidget); if (q->testAttribute(Qt::WA_StaticContents)) { if (!extra) createExtra(); -- cgit v1.2.3 From 8f083bade0ba33d4be8a2d3ed1b5ce005aab6d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 16 Aug 2019 15:31:44 +0200 Subject: Remove dead macOS specific code from QWidgetPaintManager MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I8fdde17d32f20407aed44e4708f30db21555b81a Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 697212461c..4383b4c168 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -638,12 +638,6 @@ void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *wi if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) return; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region.translated(topLevelOffset); - return; -#endif - // Top-level. if (widget == tlw) { if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) @@ -1560,12 +1554,6 @@ void QWidgetPrivate::repaint_sys(const QRegion &rgn) && (usesDoubleBufferedGLContext || q->autoFillBackground()); QRegion toBePainted(noPartialUpdateSupport ? q->rect() : rgn); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // No difference between update() and repaint() on the Mac. - update_sys(toBePainted); - return; -#endif - toBePainted &= clipRect(); clipToEffectiveMask(toBePainted); if (toBePainted.isEmpty()) -- cgit v1.2.3 From aa8393c94fea01a4806b204fd3aa343a4e90666b Mon Sep 17 00:00:00 2001 From: Soroush Rabiei Date: Sat, 14 Jan 2017 20:23:31 +0330 Subject: Add support for calendars beside Gregorian Add QCalendarBackend as a base class for calendar implementations and QCalendar as a facade via which to access it. QDate's implicit implementation of the Gregorian calendar becomes QGregorianCalendar and QDate methods now support choice of calendar. Convert QLocale's CLDR data for month names to a locale-data component of each supported calendar and relevant QLocale methods now support choice of calendar. Adapt Python scripts for locale data generation to extract month name data from CLDR (keeping on version v35.1) into the new calendar-locale files. The locale data for the Gregorian calendar is held in a Roman calendar base, for sharing with other calendars. Add tests for basic uses of the new API. [ChangeLog][QtCore][QCalendar] Added QCalendar to support diverse calendars, supported by implementing QCalendarBackend. [ChangeLog][QtCore][QDate] Allow choice of calendar in various operations, with Gregorian remaining the default. Done-with: Lars Knoll Done-with: Edward Welbourne Fixes: QTBUG-17110 Fixes: QTBUG-950 Change-Id: I9d6278f394269a183aee8156e990cec4d5198ab8 Reviewed-by: Volker Hilsheimer --- qmake/Makefile.unix | 13 + qmake/Makefile.win32 | 3 + qmake/qmake.pro | 8 + src/corelib/text/qlocale.cpp | 578 ++-- src/corelib/text/qlocale.h | 21 +- src/corelib/text/qlocale_data_p.h | 3158 ++++---------------- src/corelib/text/qlocale_p.h | 30 +- src/corelib/time/qcalendar.cpp | 1060 +++++++ src/corelib/time/qcalendar.h | 174 ++ src/corelib/time/qcalendarbackend_p.h | 144 + src/corelib/time/qcalendarmath_p.h | 77 + src/corelib/time/qdatetime.cpp | 617 ++-- src/corelib/time/qdatetime.h | 19 + src/corelib/time/qdatetimeparser.cpp | 165 +- src/corelib/time/qdatetimeparser_p.h | 11 +- src/corelib/time/qgregoriancalendar.cpp | 138 + src/corelib/time/qgregoriancalendar_p.h | 82 + src/corelib/time/qromancalendar.cpp | 105 + src/corelib/time/qromancalendar_data_p.h | 2646 ++++++++++++++++ src/corelib/time/qromancalendar_p.h | 79 + src/corelib/time/time.pri | 14 +- src/tools/bootstrap/bootstrap.pro | 3 + tests/auto/corelib/time/qcalendar/qcalendar.pro | 5 + .../auto/corelib/time/qcalendar/tst_qcalendar.cpp | 219 ++ tests/auto/corelib/time/time.pro | 1 + util/locale_database/cldr2qlocalexml.py | 15 +- util/locale_database/localexml.py | 84 +- util/locale_database/qlocalexml2cpp.py | 93 +- 28 files changed, 6405 insertions(+), 3157 deletions(-) create mode 100644 src/corelib/time/qcalendar.cpp create mode 100644 src/corelib/time/qcalendar.h create mode 100644 src/corelib/time/qcalendarbackend_p.h create mode 100644 src/corelib/time/qcalendarmath_p.h create mode 100644 src/corelib/time/qgregoriancalendar.cpp create mode 100644 src/corelib/time/qgregoriancalendar_p.h create mode 100644 src/corelib/time/qromancalendar.cpp create mode 100644 src/corelib/time/qromancalendar_data_p.h create mode 100644 src/corelib/time/qromancalendar_p.h create mode 100644 tests/auto/corelib/time/qcalendar/qcalendar.pro create mode 100644 tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 68f173cd1b..e895feaef4 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -28,6 +28,7 @@ QOBJS = \ qmetatype.o qsystemerror.o qvariant.o \ quuid.o \ qarraydata.o qbitarray.o qbytearray.o qbytearraymatcher.o \ + qcalendar.o qgregoriancalendar.o qromancalendar.o \ qcryptographichash.o qdatetime.o qhash.o qlist.o \ qlocale.o qlocale_tools.o qmap.o qregexp.o qringbuffer.o \ qstringbuilder.o qstring.o qstringlist.o qversionnumber.o \ @@ -114,7 +115,10 @@ DEPEND_SRC = \ $(SOURCE_PATH)/src/corelib/text/qstring.cpp \ $(SOURCE_PATH)/src/corelib/text/qstringlist.cpp \ $(SOURCE_PATH)/src/corelib/text/qvsnprintf.cpp \ + $(SOURCE_PATH)/src/corelib/time/qcalendar.cpp \ $(SOURCE_PATH)/src/corelib/time/qdatetime.cpp \ + $(SOURCE_PATH)/src/corelib/time/qgregoriancalendar.cpp \ + $(SOURCE_PATH)/src/corelib/time/qromancalendar.cpp \ $(SOURCE_PATH)/src/corelib/tools/qarraydata.cpp \ $(SOURCE_PATH)/src/corelib/tools/qbitarray.cpp \ $(SOURCE_PATH)/src/corelib/tools/qcryptographichash.cpp \ @@ -428,6 +432,15 @@ qfileinfo.o: $(SOURCE_PATH)/src/corelib/io/qfileinfo.cpp qdatetime.o: $(SOURCE_PATH)/src/corelib/time/qdatetime.cpp $(CXX) -c -o $@ $(CXXFLAGS) $< +qcalendar.o: $(SOURCE_PATH)/src/corelib/time/qcalendar.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +qgregoriancalendar.o: $(SOURCE_PATH)/src/corelib/time/qgregoriancalendar.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +qromancalendar.o: $(SOURCE_PATH)/src/corelib/time/qromancalendar.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + qstringlist.o: $(SOURCE_PATH)/src/corelib/text/qstringlist.cpp $(CXX) -c -o $@ $(CXXFLAGS) $< diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index 43059f9af0..672df47953 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -71,6 +71,7 @@ QTOBJS= \ qbytearray.obj \ qvsnprintf.obj \ qbytearraymatcher.obj \ + qcalendar.obj \ qdatetime.obj \ qdir.obj \ qdiriterator.obj \ @@ -83,6 +84,7 @@ QTOBJS= \ qfileinfo.obj \ qendian.obj \ qglobal.obj \ + qgregoriancalendar.obj \ qhash.obj \ qiodevice.obj \ qringbuffer.obj \ @@ -97,6 +99,7 @@ QTOBJS= \ qoperatingsystemversion.obj \ qoperatingsystemversion_win.obj \ qregexp.obj \ + qromancalendar.obj \ qutfcodec.obj \ qstring.obj \ qstringlist.obj \ diff --git a/qmake/qmake.pro b/qmake/qmake.pro index 4681fbf764..a9d8b58da8 100644 --- a/qmake/qmake.pro +++ b/qmake/qmake.pro @@ -115,6 +115,7 @@ SOURCES += \ qbuffer.cpp \ qbytearray.cpp \ qbytearraymatcher.cpp \ + qcalendar.cpp \ qcryptographichash.cpp \ qdatetime.cpp \ qdir.cpp \ @@ -127,6 +128,7 @@ SOURCES += \ qfsfileengine.cpp \ qfsfileengine_iterator.cpp \ qglobal.cpp \ + qgregoriancalendar.cpp \ qhash.cpp \ qiodevice.cpp \ qjson.cpp \ @@ -145,6 +147,7 @@ SOURCES += \ qmetatype.cpp \ qnumeric.cpp \ qregexp.cpp \ + qromancalendar.cpp \ qsettings.cpp \ qstring.cpp \ qstringlist.cpp \ @@ -168,6 +171,9 @@ HEADERS += \ qbuffer.h \ qbytearray.h \ qbytearraymatcher.h \ + qcalendar.h \ + qcalendarbackend_p.h \ + qcalendarmath_p.h \ qchar.h \ qcryptographichash.h \ qdatetime.h \ @@ -178,6 +184,7 @@ HEADERS += \ qfile.h \ qfileinfo.h \ qglobal.h \ + qgregoriancalendar_p.h \ qhash.h \ qiodevice.h \ qjson_p.h \ @@ -194,6 +201,7 @@ HEADERS += \ qmetatype.h \ qnumeric.h \ qregexp.h \ + qromancalendar_p.h \ qstring.h \ qstringlist.h \ qstringmatcher.h \ diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp index 5685d87c85..91e393e343 100644 --- a/src/corelib/text/qlocale.cpp +++ b/src/corelib/text/qlocale.cpp @@ -72,6 +72,10 @@ # include #endif +#include "private/qcalendarbackend_p.h" +#include "private/qgregoriancalendar_p.h" +#include "qcalendar.h" + QT_BEGIN_NAMESPACE #ifndef QT_NO_SYSTEMLOCALE @@ -341,8 +345,10 @@ QByteArray QLocalePrivate::bcp47Name(char separator) const return localeId.withLikelySubtagsRemoved().name(separator); } -static const QLocaleData *findLocaleDataById(const QLocaleId &localeId) +static const QLocaleData *findLocaleDataById(const QLocaleId &lid) { + QLocaleId localeId = lid.withLikelySubtagsAdded(); + const uint idx = locale_index[localeId.language_id]; const QLocaleData *data = locale_data + idx; @@ -443,6 +449,12 @@ const QLocaleData *QLocaleData::findLocaleData(QLocale::Language language, QLoca return locale_data + idx; } +uint QLocaleData::findLocaleOffset(QLocale::Language language, QLocale::Script script, + QLocale::Country country) +{ + return findLocaleData(language, script, country) - locale_data; +} + static bool parse_locale_tag(const QString &input, int &i, QString *result, const QString &separators) { @@ -550,6 +562,16 @@ static const QLocaleData *findLocaleData(const QString &name) return QLocaleData::findLocaleData(lang, script, cntry); } +static uint findLocaleOffset(const QString &name) +{ + QLocale::Language lang; + QLocale::Script script; + QLocale::Country cntry; + QLocalePrivate::getLangAndCountry(name, lang, script, cntry); + + return QLocaleData::findLocaleOffset(lang, script, cntry); +} + QString qt_readEscapedFormatString(QStringView format, int *idx) { int &i = *idx; @@ -617,8 +639,8 @@ static QLocale::NumberOptions default_number_options = QLocale::DefaultNumberOpt static const QLocaleData *const c_data = locale_data; static QLocalePrivate *c_private() { - static QLocalePrivate c_locale = - { c_data, Q_BASIC_ATOMIC_INITIALIZER(1), QLocale::OmitGroupSeparator }; + static QLocalePrivate c_locale{ + c_data, Q_BASIC_ATOMIC_INITIALIZER(1), 0, QLocale::OmitGroupSeparator }; return &c_locale; } @@ -803,9 +825,11 @@ static QLocalePrivate *localePrivateByName(const QString &name) { if (name == QLatin1String("C")) return c_private(); + // TODO: Remove this version, and use offset everywhere const QLocaleData *data = findLocaleData(name); - return QLocalePrivate::create(data, data->m_language_id == QLocale::C ? - QLocale::OmitGroupSeparator : QLocale::DefaultNumberOptions); + return QLocalePrivate::create(data, findLocaleOffset(name), + data->m_language_id == QLocale::C + ? QLocale::OmitGroupSeparator : QLocale::DefaultNumberOptions); } static QLocalePrivate *findLocalePrivate(QLocale::Language language, QLocale::Script script, @@ -814,7 +838,9 @@ static QLocalePrivate *findLocalePrivate(QLocale::Language language, QLocale::Sc if (language == QLocale::C) return c_private(); + // TODO: Remove pointer, use index instead const QLocaleData *data = QLocaleData::findLocaleData(language, script, country); + const uint offset = QLocaleData::findLocaleOffset(language, script, country); QLocale::NumberOptions numberOptions = QLocale::DefaultNumberOptions; @@ -823,7 +849,7 @@ static QLocalePrivate *findLocalePrivate(QLocale::Language language, QLocale::Sc numberOptions = default_number_options; data = defaultData(); } - return QLocalePrivate::create(data, numberOptions); + return QLocalePrivate::create(data, offset, numberOptions); } @@ -1957,7 +1983,7 @@ QString QLocale::toString(qulonglong i) const QString QLocale::toString(const QDate &date, const QString &format) const { - return d->dateTimeToString(format, QDateTime(), date, QTime(), this); + return QCalendar().dateTimeToString(format, QDateTime(), date, QTime(), *this); } #endif @@ -1972,7 +1998,7 @@ QString QLocale::toString(const QDate &date, const QString &format) const */ QString QLocale::toString(const QDate &date, QStringView format) const { - return d->dateTimeToString(format, QDateTime(), date, QTime(), this); + return QCalendar().dateTimeToString(format, QDateTime(), date, QTime(), *this); } /*! @@ -2027,7 +2053,7 @@ static bool timeFormatContainsAP(QStringView format) */ QString QLocale::toString(const QTime &time, const QString &format) const { - return d->dateTimeToString(format, QDateTime(), QDate(), time, this); + return QCalendar().dateTimeToString(format, QDateTime(), QDate(), time, *this); } #endif @@ -2042,7 +2068,7 @@ QString QLocale::toString(const QTime &time, const QString &format) const */ QString QLocale::toString(const QTime &time, QStringView format) const { - return d->dateTimeToString(format, QDateTime(), QDate(), time, this); + return QCalendar().dateTimeToString(format, QDateTime(), QDate(), time, *this); } #if QT_STRINGVIEW_LEVEL < 2 @@ -2058,7 +2084,7 @@ QString QLocale::toString(const QTime &time, QStringView format) const QString QLocale::toString(const QDateTime &dateTime, const QString &format) const { - return d->dateTimeToString(format, dateTime, QDate(), QTime(), this); + return QCalendar().dateTimeToString(format, dateTime, QDate(), QTime(), *this); } #endif @@ -2073,7 +2099,58 @@ QString QLocale::toString(const QDateTime &dateTime, const QString &format) cons */ QString QLocale::toString(const QDateTime &dateTime, QStringView format) const { - return d->dateTimeToString(format, dateTime, QDate(), QTime(), this); + return QCalendar().dateTimeToString(format, dateTime, QDate(), QTime(), *this); +} + +QString QLocale::toString(const QDate &date, QStringView format, QCalendar cal) const +{ + return cal.dateTimeToString(format, QDateTime(), date, QTime(), *this); +} + +QString QLocale::toString(const QDate &date, QLocale::FormatType format, QCalendar cal) const +{ + if (!date.isValid()) + return QString(); + +#ifndef QT_NO_SYSTEMLOCALE + if (cal.isGregorian() && d->m_data == systemData()) { + QVariant res = systemLocale()->query(format == LongFormat + ? QSystemLocale::DateToStringLong + : QSystemLocale::DateToStringShort, + date); + if (!res.isNull()) + return res.toString(); + } +#endif + + QString format_str = dateFormat(format); + return toString(date, format_str, cal); +} + +QString QLocale::toString(const QDateTime &dateTime, QLocale::FormatType format, + QCalendar cal) const +{ + if (!dateTime.isValid()) + return QString(); + +#ifndef QT_NO_SYSTEMLOCALE + if (cal.isGregorian() && d->m_data == systemData()) { + QVariant res = systemLocale()->query(format == LongFormat + ? QSystemLocale::DateTimeToStringLong + : QSystemLocale::DateTimeToStringShort, + dateTime); + if (!res.isNull()) + return res.toString(); + } +#endif + + const QString format_str = dateTimeFormat(format); + return toString(dateTime, format_str, cal); +} + +QString QLocale::toString(const QDateTime &dateTime, QStringView format, QCalendar cal) const +{ + return cal.dateTimeToString(format, dateTime, QDate(), QTime(), *this); } /*! @@ -2232,6 +2309,7 @@ QString QLocale::dateTimeFormat(FormatType format) const return dateFormat(format) + QLatin1Char(' ') + timeFormat(format); } +#if QT_CONFIG(datestring) /*! \since 4.4 @@ -2243,12 +2321,19 @@ QString QLocale::dateTimeFormat(FormatType format) const \sa timeFormat(), toDate(), toDateTime(), QTime::fromString() */ -#if QT_CONFIG(datestring) QTime QLocale::toTime(const QString &string, FormatType format) const { return toTime(string, timeFormat(format)); } -#endif + +/*! + \since 5.14 + \overload +*/ +QTime QLocale::toTime(const QString &string, FormatType format, QCalendar cal) const +{ + return toTime(string, timeFormat(format), cal); +} /*! \since 4.4 @@ -2261,12 +2346,19 @@ QTime QLocale::toTime(const QString &string, FormatType format) const \sa dateFormat(), toTime(), toDateTime(), QDate::fromString() */ -#if QT_CONFIG(datestring) QDate QLocale::toDate(const QString &string, FormatType format) const { return toDate(string, dateFormat(format)); } -#endif + +/*! + \since 5.14 + \overload +*/ +QDate QLocale::toDate(const QString &string, FormatType format, QCalendar cal) const +{ + return toDate(string, dateFormat(format), cal); +} /*! \since 4.4 @@ -2279,13 +2371,19 @@ QDate QLocale::toDate(const QString &string, FormatType format) const \sa dateTimeFormat(), toTime(), toDate(), QDateTime::fromString() */ - -#if QT_CONFIG(datestring) QDateTime QLocale::toDateTime(const QString &string, FormatType format) const { return toDateTime(string, dateTimeFormat(format)); } -#endif + +/*! + \since 5.14 + \overload +*/ +QDateTime QLocale::toDateTime(const QString &string, FormatType format, QCalendar cal) const +{ + return toDateTime(string, dateTimeFormat(format), cal); +} /*! \since 4.4 @@ -2298,22 +2396,30 @@ QDateTime QLocale::toDateTime(const QString &string, FormatType format) const \sa timeFormat(), toDate(), toDateTime(), QTime::fromString() */ -#if QT_CONFIG(datestring) QTime QLocale::toTime(const QString &string, const QString &format) const +{ + return toTime(string, format, QCalendar()); +} + +/*! + \since 5.14 + \overload +*/ +QTime QLocale::toTime(const QString &string, const QString &format, QCalendar cal) const { QTime time; #if QT_CONFIG(datetimeparser) - QDateTimeParser dt(QVariant::Time, QDateTimeParser::FromString); + QDateTimeParser dt(QVariant::Time, QDateTimeParser::FromString, cal); dt.setDefaultLocale(*this); if (dt.parseFormat(format)) dt.fromString(string, 0, &time); #else + Q_UNUSED(cal); Q_UNUSED(string); Q_UNUSED(format); #endif return time; } -#endif /*! \since 4.4 @@ -2329,22 +2435,30 @@ QTime QLocale::toTime(const QString &string, const QString &format) const \sa dateFormat(), toTime(), toDateTime(), QDate::fromString() */ -#if QT_CONFIG(datestring) QDate QLocale::toDate(const QString &string, const QString &format) const +{ + return toDate(string, format, QCalendar()); +} + +/*! + \since 5.14 + \overload +*/ +QDate QLocale::toDate(const QString &string, const QString &format, QCalendar cal) const { QDate date; #if QT_CONFIG(datetimeparser) - QDateTimeParser dt(QVariant::Date, QDateTimeParser::FromString); + QDateTimeParser dt(QVariant::Date, QDateTimeParser::FromString, cal); dt.setDefaultLocale(*this); if (dt.parseFormat(format)) dt.fromString(string, &date, 0); #else Q_UNUSED(string); Q_UNUSED(format); + Q_UNUSED(cal); #endif return date; } -#endif /*! \since 4.4 @@ -2360,25 +2474,33 @@ QDate QLocale::toDate(const QString &string, const QString &format) const \sa dateTimeFormat(), toTime(), toDate(), QDateTime::fromString() */ -#if QT_CONFIG(datestring) QDateTime QLocale::toDateTime(const QString &string, const QString &format) const +{ + return toDateTime(string, format, QCalendar()); +} + +/*! + \since 5.14 + \overload +*/ +QDateTime QLocale::toDateTime(const QString &string, const QString &format, QCalendar cal) const { #if QT_CONFIG(datetimeparser) QTime time; QDate date; - QDateTimeParser dt(QVariant::DateTime, QDateTimeParser::FromString); + QDateTimeParser dt(QVariant::DateTime, QDateTimeParser::FromString, cal); dt.setDefaultLocale(*this); if (dt.parseFormat(format) && dt.fromString(string, &date, &time)) return QDateTime(date, time); #else Q_UNUSED(string); Q_UNUSED(format); + Q_UNUSED(cal); #endif return QDateTime(QDate(), QTime(-1, -1, -1)); } -#endif - +#endif // datestring /*! \since 4.1 @@ -2623,38 +2745,7 @@ QList QLocale::countriesForLanguage(Language language) */ QString QLocale::monthName(int month, FormatType type) const { - if (month < 1 || month > 12) - return QString(); - -#ifndef QT_NO_SYSTEMLOCALE - if (d->m_data == systemData()) { - QVariant res = systemLocale()->query(type == LongFormat - ? QSystemLocale::MonthNameLong - : QSystemLocale::MonthNameShort, - month); - if (!res.isNull()) - return res.toString(); - } -#endif - - quint32 idx, size; - switch (type) { - case QLocale::LongFormat: - idx = d->m_data->m_long_month_names_idx; - size = d->m_data->m_long_month_names_size; - break; - case QLocale::ShortFormat: - idx = d->m_data->m_short_month_names_idx; - size = d->m_data->m_short_month_names_size; - break; - case QLocale::NarrowFormat: - idx = d->m_data->m_narrow_month_names_idx; - size = d->m_data->m_narrow_month_names_size; - break; - default: - return QString(); - } - return getLocaleListData(months_data + idx, size, month - 1); + return QCalendar().monthName(*this, month, QCalendar::Unspecified, type); } /*! @@ -2670,110 +2761,221 @@ QString QLocale::monthName(int month, FormatType type) const */ QString QLocale::standaloneMonthName(int month, FormatType type) const { - if (month < 1 || month > 12) - return QString(); + return QCalendar().standaloneMonthName(*this, month, QCalendar::Unspecified, type); +} -#ifndef QT_NO_SYSTEMLOCALE - if (d->m_data == systemData()) { - QVariant res = systemLocale()->query(type == LongFormat - ? QSystemLocale::StandaloneMonthNameLong - : QSystemLocale::StandaloneMonthNameShort, - month); - if (!res.isNull()) - return res.toString(); +/*! + \since 4.2 + + Returns the localized name of the \a day (where 1 represents + Monday, 2 represents Tuesday and so on), in the format specified + by \a type. + + \sa monthName(), standaloneDayName() +*/ +QString QLocale::dayName(int day, FormatType type) const +{ + return QCalendar().weekDayName(*this, day, type); +} + +/*! + \since 4.5 + + Returns the localized name of the \a day (where 1 represents + Monday, 2 represents Tuesday and so on) that is used as a + standalone text, in the format specified by \a type. + + If the locale information does not specify the standalone day + name then return value is the same as in dayName(). + + \sa dayName(), standaloneMonthName() +*/ +QString QLocale::standaloneDayName(int day, FormatType type) const +{ + return QCalendar().standaloneWeekDayName(*this, day, type); +} + +// Calendar look-up of month and day names: + +/*! + \internal + */ + +static QString rawMonthName(const QCalendarLocale &localeData, + const ushort *monthsData, int month, + QLocale::FormatType type) +{ + quint32 idx, size; + switch (type) { + case QLocale::LongFormat: + idx = localeData.m_long.index; + size = localeData.m_long.size; + break; + case QLocale::ShortFormat: + idx = localeData.m_short.index; + size = localeData.m_short.size; + break; + case QLocale::NarrowFormat: + idx = localeData.m_narrow.index; + size = localeData.m_narrow.size; + break; + default: + return QString(); } -#endif + return getLocaleListData(monthsData + idx, size, month - 1); +} + +/*! + \internal + */ +static QString rawStandaloneMonthName(const QCalendarLocale &localeData, + const ushort *monthsData, int month, + QLocale::FormatType type) +{ quint32 idx, size; switch (type) { case QLocale::LongFormat: - idx = d->m_data->m_standalone_long_month_names_idx; - size = d->m_data->m_standalone_long_month_names_size; + idx = localeData.m_standalone_long.index; + size = localeData.m_standalone_long.size; break; case QLocale::ShortFormat: - idx = d->m_data->m_standalone_short_month_names_idx; - size = d->m_data->m_standalone_short_month_names_size; + idx = localeData.m_standalone_short.index; + size = localeData.m_standalone_short.size; break; case QLocale::NarrowFormat: - idx = d->m_data->m_standalone_narrow_month_names_idx; - size = d->m_data->m_standalone_narrow_month_names_size; + idx = localeData.m_standalone_narrow.index; + size = localeData.m_standalone_narrow.size; break; default: return QString(); } - QString name = getLocaleListData(months_data + idx, size, month - 1); - if (name.isEmpty()) - return monthName(month, type); - return name; + QString name = getLocaleListData(monthsData + idx, size, month - 1); + return name.isEmpty() ? rawMonthName(localeData, monthsData, month, type) : name; } /*! - \since 4.2 - - Returns the localized name of the \a day (where 1 represents - Monday, 2 represents Tuesday and so on), in the format specified - by \a type. + \internal + */ - \sa monthName(), standaloneDayName() -*/ -QString QLocale::dayName(int day, FormatType type) const +static QString rawWeekDayName(const QLocaleData *data, const int day, + QLocale::FormatType type) { - if (day < 1 || day > 7) + quint32 idx, size; + switch (type) { + case QLocale::LongFormat: + idx = data->m_long_day_names_idx; + size = data->m_long_day_names_size; + break; + case QLocale::ShortFormat: + idx = data->m_short_day_names_idx; + size = data->m_short_day_names_size; + break; + case QLocale::NarrowFormat: + idx = data->m_narrow_day_names_idx; + size = data->m_narrow_day_names_size; + break; + default: return QString(); - -#ifndef QT_NO_SYSTEMLOCALE - if (d->m_data == systemData()) { - QVariant res = systemLocale()->query(type == LongFormat - ? QSystemLocale::DayNameLong - : QSystemLocale::DayNameShort, - day); - if (!res.isNull()) - return res.toString(); } -#endif - if (day == 7) - day = 0; + return getLocaleListData(days_data + idx, size, day == 7 ? 0 : day); +} +/*! + \internal + */ + +static QString rawStandaloneWeekDayName(const QLocaleData *data, const int day, + QLocale::FormatType type) +{ quint32 idx, size; switch (type) { case QLocale::LongFormat: - idx = d->m_data->m_long_day_names_idx; - size = d->m_data->m_long_day_names_size; + idx = data->m_standalone_long_day_names_idx; + size = data->m_standalone_long_day_names_size; break; case QLocale::ShortFormat: - idx = d->m_data->m_short_day_names_idx; - size = d->m_data->m_short_day_names_size; + idx = data->m_standalone_short_day_names_idx; + size = data->m_standalone_short_day_names_size; break; case QLocale::NarrowFormat: - idx = d->m_data->m_narrow_day_names_idx; - size = d->m_data->m_narrow_day_names_size; + idx = data->m_standalone_narrow_day_names_idx; + size = data->m_standalone_narrow_day_names_size; break; default: return QString(); } - return getLocaleListData(days_data + idx, size, day); + QString name = getLocaleListData(days_data + idx, size, day == 7 ? 0 : day); + if (name.isEmpty()) + return rawWeekDayName(data, day, type); + return name; } -/*! - \since 4.5 +// Refugees from qcalendar.cpp that need functions above: - Returns the localized name of the \a day (where 1 represents - Monday, 2 represents Tuesday and so on) that is used as a - standalone text, in the format specified by \a type. +QString QCalendarBackend::monthName(const QLocale &locale, int month, int, + QLocale::FormatType format) const +{ + Q_ASSERT(month >= 1 && month <= maxMonthsInYear()); + return rawMonthName(localeMonthIndexData()[locale.d->m_data_offset], + localeMonthData(), month, format); +} - If the locale information does not specify the standalone day - name then return value is the same as in dayName(). +QString QGregorianCalendar::monthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const +{ +#ifndef QT_NO_SYSTEMLOCALE + if (locale.d->m_data == systemData()) { + Q_ASSERT(month >= 1 && month <= 12); + QVariant res = systemLocale()->query(format == QLocale::LongFormat + ? QSystemLocale::MonthNameLong + : QSystemLocale::MonthNameShort, + month); + if (!res.isNull()) + return res.toString(); + } +#endif - \sa dayName(), standaloneMonthName() -*/ -QString QLocale::standaloneDayName(int day, FormatType type) const + return QCalendarBackend::monthName(locale, month, year, format); +} + +QString QCalendarBackend::standaloneMonthName(const QLocale &locale, int month, int, + QLocale::FormatType format) const +{ + Q_ASSERT(month >= 1 && month <= maxMonthsInYear()); + return rawStandaloneMonthName(localeMonthIndexData()[locale.d->m_data_offset], + localeMonthData(), month, format); +} + +QString QGregorianCalendar::standaloneMonthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const +{ +#ifndef QT_NO_SYSTEMLOCALE + if (locale.d->m_data == systemData()) { + Q_ASSERT(month >= 1 && month <= 12); + QVariant res = systemLocale()->query(format == QLocale::LongFormat + ? QSystemLocale::StandaloneMonthNameLong + : QSystemLocale::StandaloneMonthNameShort, + month); + if (!res.isNull()) + return res.toString(); + } +#endif + + return QCalendarBackend::standaloneMonthName(locale, month, year, format); +} + +// Most calendars share the common week-day naming, modulo locale. +// Calendars that don't must override these methods. +QString QCalendarBackend::weekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const { if (day < 1 || day > 7) return QString(); #ifndef QT_NO_SYSTEMLOCALE - if (d->m_data == systemData()) { - QVariant res = systemLocale()->query(type == LongFormat + if (locale.d->m_data == systemData()) { + QVariant res = systemLocale()->query(format == QLocale::LongFormat ? QSystemLocale::DayNameLong : QSystemLocale::DayNameShort, day); @@ -2781,32 +2983,32 @@ QString QLocale::standaloneDayName(int day, FormatType type) const return res.toString(); } #endif - if (day == 7) - day = 0; - quint32 idx, size; - switch (type) { - case QLocale::LongFormat: - idx = d->m_data->m_standalone_long_day_names_idx; - size = d->m_data->m_standalone_long_day_names_size; - break; - case QLocale::ShortFormat: - idx = d->m_data->m_standalone_short_day_names_idx; - size = d->m_data->m_standalone_short_day_names_size; - break; - case QLocale::NarrowFormat: - idx = d->m_data->m_standalone_narrow_day_names_idx; - size = d->m_data->m_standalone_narrow_day_names_size; - break; - default: + return rawWeekDayName(locale.d->m_data, day, format); +} + +QString QCalendarBackend::standaloneWeekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const +{ + if (day < 1 || day > 7) return QString(); + +#ifndef QT_NO_SYSTEMLOCALE + if (locale.d->m_data == systemData()) { + QVariant res = systemLocale()->query(format == QLocale::LongFormat + ? QSystemLocale::DayNameLong + : QSystemLocale::DayNameShort, + day); + if (!res.isNull()) + return res.toString(); } - QString name = getLocaleListData(days_data + idx, size, day); - if (name.isEmpty()) - return dayName(day == 0 ? 7 : day, type); - return name; +#endif + + return rawStandaloneWeekDayName(locale.d->m_data, day, format); } +// End of this block of qcalendar.cpp refugees. (One more follows.) + /*! \since 4.8 @@ -3010,10 +3212,11 @@ QString QLocale::pmText() const return getLocaleData(pm_data + d->m_data->m_pm_idx, d->m_data->m_pm_size); } +// Another intrusion from QCalendar, using some of the tools above: -QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &datetime, - const QDate &dateOnly, const QTime &timeOnly, - const QLocale *q) const +QString QCalendarBackend::dateTimeToString(QStringView format, const QDateTime &datetime, + const QDate &dateOnly, const QTime &timeOnly, + const QLocale &locale) const { QDate date; QTime time; @@ -3035,6 +3238,15 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da } QString result; + int year = 0, month = 0, day = 0; + if (formatDate) { + const auto parts = julianDayToDate(date.toJulianDay()); + if (!parts.isValid()) + return QString(); + year = parts.year; + month = parts.month; + day = parts.day; + } int i = 0; while (i < format.size()) { @@ -3057,15 +3269,14 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da switch (repeat) { case 4: { - const int yr = date.year(); - const int len = (yr < 0) ? 5 : 4; - result.append(m_data->longLongToString(yr, -1, 10, len, - QLocaleData::ZeroPadded)); + const int len = (year < 0) ? 5 : 4; + result.append(locale.d->m_data->longLongToString(year, -1, 10, len, + QLocaleData::ZeroPadded)); break; } case 2: - result.append(m_data->longLongToString(date.year() % 100, -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(year % 100, -1, 10, 2, + QLocaleData::ZeroPadded)); break; default: repeat = 1; @@ -3079,17 +3290,17 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da repeat = qMin(repeat, 4); switch (repeat) { case 1: - result.append(m_data->longLongToString(date.month())); + result.append(locale.d->m_data->longLongToString(month)); break; case 2: - result.append(m_data->longLongToString(date.month(), -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(month, -1, 10, 2, + QLocaleData::ZeroPadded)); break; case 3: - result.append(q->monthName(date.month(), QLocale::ShortFormat)); + result.append(monthName(locale, month, year, QLocale::ShortFormat)); break; case 4: - result.append(q->monthName(date.month(), QLocale::LongFormat)); + result.append(monthName(locale, month, year, QLocale::LongFormat)); break; } break; @@ -3099,17 +3310,19 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da repeat = qMin(repeat, 4); switch (repeat) { case 1: - result.append(m_data->longLongToString(date.day())); + result.append(locale.d->m_data->longLongToString(day)); break; case 2: - result.append(m_data->longLongToString(date.day(), -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(day, -1, 10, 2, + QLocaleData::ZeroPadded)); break; case 3: - result.append(q->dayName(date.dayOfWeek(), QLocale::ShortFormat)); + result.append(locale.dayName( + dayOfWeek(date.toJulianDay()), QLocale::ShortFormat)); break; case 4: - result.append(q->dayName(date.dayOfWeek(), QLocale::LongFormat)); + result.append(locale.dayName( + dayOfWeek(date.toJulianDay()), QLocale::LongFormat)); break; } break; @@ -3133,11 +3346,11 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da switch (repeat) { case 1: - result.append(m_data->longLongToString(hour)); + result.append(locale.d->m_data->longLongToString(hour)); break; case 2: - result.append(m_data->longLongToString(hour, -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(hour, -1, 10, 2, + QLocaleData::ZeroPadded)); break; } break; @@ -3147,11 +3360,11 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da repeat = qMin(repeat, 2); switch (repeat) { case 1: - result.append(m_data->longLongToString(time.hour())); + result.append(locale.d->m_data->longLongToString(time.hour())); break; case 2: - result.append(m_data->longLongToString(time.hour(), -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(time.hour(), -1, 10, 2, + QLocaleData::ZeroPadded)); break; } break; @@ -3161,11 +3374,11 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da repeat = qMin(repeat, 2); switch (repeat) { case 1: - result.append(m_data->longLongToString(time.minute())); + result.append(locale.d->m_data->longLongToString(time.minute())); break; case 2: - result.append(m_data->longLongToString(time.minute(), -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(time.minute(), -1, 10, 2, + QLocaleData::ZeroPadded)); break; } break; @@ -3175,11 +3388,11 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da repeat = qMin(repeat, 2); switch (repeat) { case 1: - result.append(m_data->longLongToString(time.second())); + result.append(locale.d->m_data->longLongToString(time.second())); break; case 2: - result.append(m_data->longLongToString(time.second(), -1, 10, 2, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(time.second(), -1, 10, 2, + QLocaleData::ZeroPadded)); break; } break; @@ -3187,13 +3400,15 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da case 'a': used = true; repeat = format.mid(i + 1).startsWith(QLatin1Char('p')) ? 2 : 1; - result.append(time.hour() < 12 ? q->amText().toLower() : q->pmText().toLower()); + result.append(time.hour() < 12 ? locale.amText().toLower() + : locale.pmText().toLower()); break; case 'A': used = true; repeat = format.mid(i + 1).startsWith(QLatin1Char('P')) ? 2 : 1; - result.append(time.hour() < 12 ? q->amText().toUpper() : q->pmText().toUpper()); + result.append(time.hour() < 12 ? locale.amText().toUpper() + : locale.pmText().toUpper()); break; case 'z': @@ -3202,15 +3417,14 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da // note: the millisecond component is treated like the decimal part of the seconds // so ms == 2 is always printed as "002", but ms == 200 can be either "2" or "200" - result.append(m_data->longLongToString(time.msec(), -1, 10, 3, - QLocaleData::ZeroPadded)); + result.append(locale.d->m_data->longLongToString(time.msec(), -1, 10, 3, + QLocaleData::ZeroPadded)); if (repeat == 1) { - if (result.endsWith(zero())) + if (result.endsWith(locale.d->zero())) result.chop(1); - if (result.endsWith(zero())) + if (result.endsWith(locale.d->zero())) result.chop(1); } - break; case 't': @@ -3233,6 +3447,8 @@ QString QLocalePrivate::dateTimeToString(QStringView format, const QDateTime &da return result; } +// End of QCalendar intrustions + QString QLocaleData::doubleToString(double d, int precision, DoubleForm form, int width, unsigned flags) const { diff --git a/src/corelib/text/qlocale.h b/src/corelib/text/qlocale.h index 09de830ca3..87966b266b 100644 --- a/src/corelib/text/qlocale.h +++ b/src/corelib/text/qlocale.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE - +class QCalendar; class QDataStream; class QDate; class QDateTime; @@ -1013,6 +1013,14 @@ public: QString toString(const QDate &date, FormatType format = LongFormat) const; QString toString(const QTime &time, FormatType format = LongFormat) const; QString toString(const QDateTime &dateTime, FormatType format = LongFormat) const; + /* Removing default value for `format' is done intentionally, + * after all tests we will remove non-calendar-aware version of these functions, + * and add a default value for both calendar instance, and format + */ + QString toString(const QDate &date, QStringView formatStr, QCalendar cal) const; + QString toString(const QDate &date, FormatType format, QCalendar cal) const; + QString toString(const QDateTime &dateTime, FormatType format, QCalendar cal) const; + QString toString(const QDateTime &dateTime, QStringView formatStr, QCalendar cal) const; QString dateFormat(FormatType format = LongFormat) const; QString timeFormat(FormatType format = LongFormat) const; @@ -1024,6 +1032,13 @@ public: QDate toDate(const QString &string, const QString &format) const; QTime toTime(const QString &string, const QString &format) const; QDateTime toDateTime(const QString &string, const QString &format) const; + // Calendar-aware API + QDate toDate(const QString &string, FormatType format, QCalendar cal) const; + QTime toTime(const QString &string, FormatType format, QCalendar cal) const; + QDateTime toDateTime(const QString &string, FormatType format, QCalendar cal) const; + QDate toDate(const QString &string, const QString &format, QCalendar cal) const; + QTime toTime(const QString &string, const QString &format, QCalendar cal) const; + QDateTime toDateTime(const QString &string, const QString &format, QCalendar cal) const; #endif // ### Qt 5: We need to return QString from these function since @@ -1108,6 +1123,8 @@ private: QLocale(QLocalePrivate &dd); friend class QLocalePrivate; friend class QSystemLocale; + friend class QCalendarBackend; + friend class QGregorianCalendar; friend Q_CORE_EXPORT uint qHash(const QLocale &key, uint seed) noexcept; QSharedDataPointer d; diff --git a/src/corelib/text/qlocale_data_p.h b/src/corelib/text/qlocale_data_p.h index 2c351a3fb1..b846f0b768 100644 --- a/src/corelib/text/qlocale_data_p.h +++ b/src/corelib/text/qlocale_data_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -77,7 +77,7 @@ static const int ImperialMeasurementSystemsCount = // GENERATED PART STARTS HERE /* - This part of the file was generated on 2019-05-09 from the + This part of the file was generated on 2019-05-27 from the Common Locale Data Repository v35.1 http://www.unicode.org/cldr/ @@ -1270,593 +1270,593 @@ static const quint16 locale_index[] = { }; static const QLocaleData locale_data[] = { - // lang script terr dec group list prcnt zero minus plus exp quotOpn quotEnd altQtOpn altQtEnd lpStart lpMid lpEnd lpTwo sDtFmt lDtFmt sTmFmt lTmFmt ssMonth slMonth snMonth sMonth lMonth nMonth ssDays slDays snDays sDays lDays nDays am pm byte siQuant iecQuant currISO currSym currDsply currFmt currFmtNeg endoLang endoCntry curDgt curRnd dow1st wknd+ wknd- - { 1, 0, 0, 46, 44, 59, 37, 48, 45, 43, 101, 34, 34, 39, 39, 0,6 , 0,6 , 0,6 , 0,6 , 0,10 , 10,17 , 0,8 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 158,27 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 99,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 0,7 , 0,4 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // C/AnyScript/AnyCountry - { 3, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 35,18 , 18,7 , 25,12 , 185,48 , 233,111 , 134,24 , 185,48 , 233,111 , 134,24 , 113,28 , 141,55 , 85,14 , 113,28 , 141,55 , 85,14 , 2,2 , 2,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,2 , 7,24 , 4,4 , 4,0 , 0,6 , 6,10 , 2, 1, 7, 6, 7 }, // Oromo/Latin/Ethiopia - { 3, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 35,18 , 37,5 , 8,10 , 185,48 , 233,111 , 344,24 , 185,48 , 233,111 , 134,24 , 113,28 , 141,55 , 196,14 , 113,28 , 141,55 , 196,14 , 2,2 , 2,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 0,7 , 4,4 , 4,0 , 0,6 , 16,8 , 2, 1, 7, 6, 7 }, // Oromo/Latin/Kenya - { 4, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Afar/Latin/Ethiopia - { 5, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 53,10 , 80,17 , 37,5 , 8,10 , 416,59 , 475,92 , 134,24 , 416,59 , 475,92 , 134,24 , 210,28 , 238,58 , 296,14 , 210,28 , 238,58 , 296,14 , 4,3 , 4,3 , 49,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 31,67 , 4,4 , 4,0 , 24,9 , 33,11 , 2, 1, 7, 6, 7 }, // Afrikaans/Latin/South Africa - { 5, 7, 148, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 53,10 , 97,16 , 18,7 , 25,12 , 416,59 , 475,92 , 134,24 , 416,59 , 475,92 , 134,24 , 210,28 , 238,58 , 296,14 , 210,28 , 238,58 , 296,14 , 4,3 , 4,3 , 49,5 , 5,17 , 22,23 , {78,65,68}, 6,1 , 98,55 , 4,4 , 4,0 , 24,9 , 44,7 , 2, 1, 1, 6, 7 }, // Afrikaans/Latin/Namibia - { 6, 7, 2, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 113,6 , 10,17 , 18,7 , 42,13 , 567,50 , 617,78 , 695,27 , 567,50 , 617,78 , 695,27 , 310,28 , 338,58 , 396,15 , 411,28 , 338,58 , 396,15 , 7,11 , 7,10 , 54,4 , 5,17 , 22,23 , {65,76,76}, 7,4 , 153,45 , 13,5 , 4,0 , 51,5 , 56,8 , 0, 0, 1, 6, 7 }, // Albanian/Latin/Albania - { 6, 7, 127, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 113,6 , 10,17 , 37,5 , 8,10 , 567,50 , 617,78 , 695,27 , 567,50 , 617,78 , 695,27 , 310,28 , 338,58 , 396,15 , 411,28 , 338,58 , 396,15 , 7,11 , 7,10 , 54,4 , 5,17 , 22,23 , {77,75,68}, 11,3 , 198,54 , 13,5 , 4,0 , 51,5 , 64,18 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Macedonia - { 6, 7, 257, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 113,6 , 10,17 , 37,5 , 8,10 , 567,50 , 617,78 , 695,27 , 567,50 , 617,78 , 695,27 , 310,28 , 338,58 , 396,15 , 411,28 , 338,58 , 396,15 , 7,11 , 7,10 , 54,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 252,21 , 13,5 , 4,0 , 51,5 , 82,6 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Kosovo - { 7, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 23,6 , 23,6 , 29,9 , 38,8 , 119,10 , 63,17 , 18,7 , 25,12 , 722,46 , 768,61 , 829,24 , 722,46 , 768,61 , 829,24 , 439,27 , 466,28 , 494,14 , 439,27 , 466,28 , 494,14 , 18,3 , 17,4 , 58,3 , 61,23 , 22,23 , {69,84,66}, 15,2 , 273,34 , 4,4 , 4,0 , 88,4 , 92,5 , 2, 1, 7, 6, 7 }, // Amharic/Ethiopic/Ethiopia - { 8, 1, 64, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {69,71,80}, 17,5 , 307,81 , 13,5 , 4,0 , 97,7 , 104,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Egypt - { 8, 1, 3, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 952,71 , 952,71 , 1023,24 , 952,71 , 952,71 , 1023,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {68,90,68}, 22,5 , 388,102 , 13,5 , 4,0 , 97,7 , 107,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Algeria - { 8, 1, 17, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {66,72,68}, 27,5 , 490,91 , 13,5 , 4,0 , 97,7 , 114,7 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Bahrain - { 8, 1, 42, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {88,65,70}, 32,4 , 581,112 , 13,5 , 4,0 , 97,7 , 121,4 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Chad - { 8, 1, 48, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 37,5 , 8,10 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {75,77,70}, 36,2 , 693,105 , 13,5 , 4,0 , 97,7 , 125,9 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Comoros - { 8, 1, 59, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {68,74,70}, 38,3 , 798,84 , 13,5 , 4,0 , 97,7 , 134,6 , 0, 0, 6, 6, 7 }, // Arabic/Arabic/Djibouti - { 8, 1, 67, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {69,82,78}, 41,3 , 882,91 , 13,5 , 4,0 , 97,7 , 140,7 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Eritrea - { 8, 1, 103, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 1047,92 , 1047,92 , 1139,24 , 1163,92 , 1047,92 , 1139,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {73,81,68}, 44,5 , 973,84 , 13,5 , 4,0 , 97,7 , 147,6 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Iraq - { 8, 1, 105, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 55,4 , 59,9 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {73,76,83}, 49,1 , 1057,133 , 13,5 , 4,0 , 97,7 , 153,7 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/Israel - { 8, 1, 109, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 1047,92 , 1047,92 , 1139,24 , 1047,92 , 1047,92 , 1139,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {74,79,68}, 50,5 , 1190,84 , 13,5 , 4,0 , 97,7 , 160,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Jordan - { 8, 1, 115, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {75,87,68}, 55,5 , 1274,84 , 13,5 , 4,0 , 97,7 , 166,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Kuwait - { 8, 1, 119, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 1047,92 , 1047,92 , 1139,24 , 1047,92 , 1047,92 , 1139,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {76,66,80}, 60,5 , 1358,84 , 13,5 , 4,0 , 97,7 , 172,5 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Lebanon - { 8, 1, 122, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {76,89,68}, 65,5 , 1442,88 , 13,5 , 4,0 , 97,7 , 177,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Libya - { 8, 1, 136, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 1255,72 , 1255,72 , 1327,24 , 1255,72 , 1255,72 , 1327,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {77,82,85}, 70,4 , 1530,112 , 13,5 , 4,0 , 97,7 , 182,9 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Mauritania - { 8, 1, 145, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 37,5 , 8,10 , 1351,70 , 1351,70 , 1421,24 , 1351,70 , 1351,70 , 1421,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {77,65,68}, 74,5 , 1642,87 , 13,5 , 4,0 , 97,7 , 191,6 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Morocco - { 8, 1, 162, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {79,77,82}, 79,5 , 1729,77 , 13,5 , 4,0 , 97,7 , 197,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Oman - { 8, 1, 165, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 1047,92 , 1047,92 , 1139,24 , 1047,92 , 1047,92 , 1139,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {73,76,83}, 49,1 , 1057,133 , 13,5 , 4,0 , 97,7 , 202,18 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Palestinian Territories - { 8, 1, 175, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {81,65,82}, 84,5 , 1806,70 , 13,5 , 4,0 , 97,7 , 220,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Qatar - { 8, 1, 186, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,65,82}, 89,5 , 1876,77 , 13,5 , 4,0 , 97,7 , 223,24 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/Saudi Arabia - { 8, 1, 194, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,79,83}, 94,1 , 1953,77 , 13,5 , 4,0 , 97,7 , 247,7 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Somalia - { 8, 1, 201, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,68,71}, 95,4 , 2030,91 , 13,5 , 4,0 , 97,7 , 254,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Sudan - { 8, 1, 207, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 1047,92 , 1047,92 , 1139,24 , 1047,92 , 1047,92 , 1139,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,89,80}, 99,5 , 2121,77 , 13,5 , 4,0 , 97,7 , 261,5 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Syria - { 8, 1, 216, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 952,71 , 952,71 , 1023,24 , 952,71 , 952,71 , 1023,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {84,78,68}, 104,5 , 2198,95 , 13,5 , 4,0 , 97,7 , 266,4 , 3, 0, 1, 6, 7 }, // Arabic/Arabic/Tunisia - { 8, 1, 223, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {65,69,68}, 109,5 , 2293,91 , 13,5 , 4,0 , 97,7 , 270,24 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/United Arab Emirates - { 8, 1, 236, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {77,65,68}, 74,5 , 1642,87 , 13,5 , 4,0 , 97,7 , 294,15 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Western Sahara - { 8, 1, 237, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {89,69,82}, 114,5 , 2384,70 , 13,5 , 4,0 , 97,7 , 309,5 , 0, 0, 7, 5, 6 }, // Arabic/Arabic/Yemen - { 8, 1, 254, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,83,80}, 119,1 , 2454,132 , 13,5 , 4,0 , 97,7 , 314,12 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/South Sudan - { 8, 1, 260, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 853,75 , 853,75 , 928,24 , 853,75 , 853,75 , 928,24 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 13,5 , 4,0 , 326,23 , 349,6 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/World - { 9, 10, 11, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 65,7 , 65,7 , 156,8 , 164,20 , 37,5 , 8,10 , 1445,48 , 1493,94 , 1587,24 , 1445,48 , 1611,106 , 1587,24 , 574,28 , 602,62 , 664,14 , 574,28 , 602,62 , 664,14 , 0,2 , 0,2 , 135,6 , 141,17 , 22,23 , {65,77,68}, 120,1 , 2586,46 , 13,5 , 4,0 , 355,7 , 362,8 , 2, 0, 1, 6, 7 }, // Armenian/Armenian/Armenia - { 10, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 72,9 , 72,9 , 184,8 , 192,18 , 68,7 , 75,12 , 1717,64 , 1781,89 , 1870,24 , 1717,64 , 1781,89 , 1870,24 , 678,32 , 710,58 , 768,14 , 678,32 , 710,58 , 768,14 , 22,9 , 22,7 , 158,4 , 162,37 , 22,23 , {73,78,82}, 121,1 , 2632,43 , 8,5 , 4,0 , 370,7 , 377,4 , 2, 1, 7, 7, 7 }, // Assamese/Bengali/India - { 12, 7, 15, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 81,8 , 81,8 , 156,8 , 210,17 , 37,5 , 8,10 , 1894,48 , 1942,77 , 158,27 , 1894,48 , 2019,77 , 158,27 , 782,27 , 809,67 , 99,14 , 782,27 , 809,67 , 99,14 , 0,2 , 0,2 , 199,4 , 5,17 , 22,23 , {65,90,78}, 122,1 , 2675,58 , 13,5 , 4,0 , 381,10 , 391,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Latin/Azerbaijan - { 12, 1, 102, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 5 }, // Azerbaijani/Arabic/Iran - { 12, 2, 15, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 156,8 , 210,17 , 37,5 , 8,10 , 2096,48 , 2144,77 , 158,27 , 2096,48 , 2221,77 , 158,27 , 876,27 , 903,67 , 99,14 , 876,27 , 903,67 , 99,14 , 31,2 , 29,2 , 45,4 , 5,17 , 22,23 , {65,90,78}, 122,1 , 2733,12 , 13,5 , 4,0 , 401,10 , 411,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Cyrillic/Azerbaijan - { 13, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Bashkir/Cyrillic/Russia - { 14, 7, 197, 44, 46, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8220, 8221, 0,6 , 0,6 , 89,9 , 89,9 , 227,6 , 233,36 , 37,5 , 87,12 , 2298,60 , 2358,93 , 2451,24 , 2298,60 , 2358,93 , 2451,24 , 970,28 , 998,68 , 1066,14 , 970,28 , 998,68 , 1066,14 , 0,2 , 0,2 , 203,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 2745,20 , 13,5 , 4,0 , 421,7 , 428,8 , 2, 1, 1, 6, 7 }, // Basque/Latin/Spain - { 15, 11, 18, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 98,9 , 98,9 , 269,6 , 192,18 , 18,7 , 25,12 , 2475,90 , 2475,90 , 2565,33 , 2598,77 , 2475,90 , 2565,33 , 1080,37 , 1117,58 , 1175,18 , 1080,37 , 1117,58 , 1175,18 , 0,2 , 0,2 , 158,4 , 5,17 , 22,23 , {66,68,84}, 124,1 , 2765,49 , 0,4 , 4,0 , 436,5 , 441,8 , 2, 1, 7, 6, 7 }, // Bengali/Bengali/Bangladesh - { 15, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 98,9 , 98,9 , 269,6 , 192,18 , 18,7 , 25,12 , 2475,90 , 2475,90 , 2565,33 , 2598,77 , 2475,90 , 2565,33 , 1080,37 , 1117,58 , 1175,18 , 1080,37 , 1117,58 , 1175,18 , 0,2 , 0,2 , 158,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 2814,43 , 0,4 , 4,0 , 436,5 , 449,4 , 2, 1, 7, 7, 7 }, // Bengali/Bengali/India - { 16, 31, 25, 46, 44, 59, 37, 3872, 45, 43, 101, 8220, 8221, 8216, 8217, 107,9 , 107,9 , 107,9 , 107,9 , 53,10 , 275,30 , 99,22 , 121,27 , 2675,63 , 2738,191 , 2929,27 , 2956,27 , 2983,132 , 3115,27 , 1193,34 , 1227,79 , 1306,27 , 1193,34 , 1227,79 , 1306,27 , 33,5 , 31,6 , 45,4 , 5,17 , 22,23 , {66,84,78}, 125,3 , 2857,15 , 4,4 , 4,0 , 453,6 , 459,5 , 2, 1, 7, 6, 7 }, // Dzongkha/Tibetan/Bhutan - { 19, 7, 74, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 97,16 , 37,5 , 8,10 , 3142,63 , 3205,78 , 3283,36 , 3142,63 , 3205,78 , 3283,36 , 1333,33 , 1366,43 , 1409,18 , 1333,33 , 1366,43 , 1409,18 , 38,4 , 37,4 , 210,7 , 217,17 , 22,23 , {69,85,82}, 14,1 , 2872,36 , 13,5 , 4,0 , 464,9 , 473,5 , 2, 1, 1, 6, 7 }, // Breton/Latin/France - { 20, 2, 33, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 305,12 , 317,22 , 148,9 , 157,14 , 3319,49 , 3368,82 , 3450,24 , 3319,49 , 3368,82 , 3450,24 , 1427,21 , 1448,55 , 1503,14 , 1427,21 , 1448,55 , 1503,14 , 42,6 , 41,6 , 234,7 , 5,17 , 22,23 , {66,71,78}, 128,3 , 2908,47 , 13,5 , 4,0 , 478,9 , 487,8 , 2, 1, 1, 6, 7 }, // Bulgarian/Cyrillic/Bulgaria - { 21, 25, 147, 46, 44, 4170, 37, 4160, 45, 43, 101, 8220, 8221, 8216, 8217, 123,5 , 123,5 , 128,10 , 128,10 , 339,8 , 347,18 , 171,6 , 177,10 , 3474,43 , 3517,88 , 3605,24 , 3474,43 , 3517,88 , 3605,24 , 1517,54 , 1517,54 , 1571,14 , 1517,54 , 1517,54 , 1571,14 , 48,5 , 47,3 , 241,5 , 5,17 , 22,23 , {77,77,75}, 131,1 , 2955,29 , 13,5 , 4,0 , 495,6 , 495,6 , 0, 0, 7, 6, 7 }, // Burmese/Myanmar/Myanmar - { 22, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 138,7 , 138,7 , 365,7 , 317,22 , 37,5 , 187,11 , 3629,48 , 3677,95 , 3772,24 , 3796,48 , 3844,98 , 3772,24 , 1585,21 , 1606,56 , 1662,14 , 1585,21 , 1606,56 , 1662,14 , 0,2 , 0,2 , 246,5 , 251,17 , 22,23 , {66,89,78}, 0,2 , 2984,89 , 13,5 , 4,0 , 501,10 , 511,8 , 2, 0, 1, 6, 7 }, // Belarusian/Cyrillic/Belarus - { 23, 20, 36, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 145,9 , 154,9 , 269,6 , 97,16 , 18,7 , 25,12 , 3942,71 , 3942,71 , 4013,24 , 3942,71 , 3942,71 , 4013,24 , 1676,40 , 1716,46 , 1762,14 , 1676,40 , 1776,47 , 1762,14 , 0,2 , 0,2 , 268,2 , 5,17 , 22,23 , {75,72,82}, 132,1 , 3073,29 , 0,4 , 4,0 , 519,5 , 524,7 , 2, 1, 7, 6, 7 }, // Khmer/Khmer/Cambodia - { 24, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 4037,60 , 4097,82 , 4179,36 , 4215,93 , 4308,115 , 4179,36 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 537,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Spain - { 24, 7, 5, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 4037,60 , 4097,82 , 4179,36 , 4215,93 , 4308,115 , 4179,36 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 544,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Andorra - { 24, 7, 74, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 4037,60 , 4097,82 , 4179,36 , 4215,93 , 4308,115 , 4179,36 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 551,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/France - { 24, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 4037,60 , 4097,82 , 4179,36 , 4215,93 , 4308,115 , 4179,36 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 557,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Italy - { 25, 5, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 394,8 , 402,13 , 198,6 , 204,11 , 4423,39 , 4462,38 , 158,27 , 4423,39 , 4462,38 , 158,27 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {67,78,89}, 133,1 , 3122,13 , 4,4 , 4,0 , 563,4 , 567,2 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/China - { 25, 5, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 269,6 , 402,13 , 198,6 , 204,11 , 4423,39 , 4462,38 , 158,27 , 4423,39 , 4462,38 , 158,27 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {72,75,68}, 6,1 , 3135,11 , 4,4 , 4,0 , 563,4 , 569,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Hong Kong - { 25, 5, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 269,6 , 402,13 , 198,6 , 204,11 , 4423,39 , 4462,38 , 158,27 , 4423,39 , 4462,38 , 158,27 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {77,79,80}, 134,4 , 3146,13 , 4,4 , 4,0 , 563,4 , 578,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Macau - { 25, 5, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 27,8 , 402,13 , 198,6 , 204,11 , 4423,39 , 4462,38 , 158,27 , 4423,39 , 4462,38 , 158,27 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {83,71,68}, 6,1 , 3159,15 , 4,4 , 4,0 , 563,4 , 587,3 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Singapore - { 25, 6, 97, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 180,5 , 180,5 , 415,8 , 402,13 , 198,6 , 215,13 , 4423,39 , 4423,39 , 158,27 , 4423,39 , 4423,39 , 158,27 , 1995,21 , 1953,28 , 1981,14 , 1995,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 293,3 , 5,17 , 22,23 , {72,75,68}, 6,1 , 3135,11 , 18,5 , 4,0 , 590,4 , 594,9 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/Hong Kong - { 25, 6, 126, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 180,5 , 180,5 , 415,8 , 402,13 , 198,6 , 215,13 , 4423,39 , 4423,39 , 158,27 , 4423,39 , 4423,39 , 158,27 , 1995,21 , 1953,28 , 1981,14 , 1995,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 293,3 , 5,17 , 22,23 , {77,79,80}, 134,4 , 3174,13 , 18,5 , 4,0 , 590,4 , 603,9 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/Macau - { 25, 6, 208, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 175,5 , 175,5 , 394,8 , 423,14 , 198,6 , 215,13 , 4423,39 , 4423,39 , 158,27 , 4423,39 , 4423,39 , 158,27 , 1995,21 , 1953,28 , 1981,14 , 1995,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 45,4 , 5,17 , 22,23 , {84,87,68}, 6,1 , 3187,13 , 13,5 , 4,0 , 590,4 , 612,2 , 2, 0, 7, 6, 7 }, // Chinese/Traditional Han/Taiwan - { 26, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Corsican/Latin/France - { 27, 7, 54, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 437,13 , 450,19 , 37,5 , 87,12 , 4500,49 , 4549,94 , 4643,39 , 4500,49 , 4682,98 , 4643,39 , 2016,28 , 2044,58 , 2102,14 , 2016,28 , 2044,58 , 2116,14 , 0,2 , 0,2 , 296,7 , 5,17 , 22,23 , {72,82,75}, 138,2 , 3200,60 , 13,5 , 4,0 , 614,8 , 622,8 , 2, 1, 1, 6, 7 }, // Croatian/Latin/Croatia - { 27, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 469,9 , 450,19 , 37,5 , 87,12 , 4500,49 , 4549,94 , 4643,39 , 4500,49 , 4682,98 , 4643,39 , 2016,28 , 2044,58 , 2116,14 , 2016,28 , 2044,58 , 2116,14 , 0,2 , 0,2 , 296,7 , 5,17 , 22,23 , {66,65,77}, 140,2 , 3260,85 , 13,5 , 4,0 , 614,8 , 630,19 , 2, 1, 1, 6, 7 }, // Croatian/Latin/Bosnia And Herzegowina - { 28, 7, 57, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 185,7 , 156,8 , 478,17 , 55,4 , 59,9 , 4780,48 , 4828,82 , 158,27 , 4780,48 , 4910,84 , 158,27 , 2130,21 , 2151,49 , 2200,14 , 2130,21 , 2151,49 , 2200,14 , 60,4 , 57,4 , 303,5 , 5,17 , 22,23 , {67,90,75}, 142,2 , 3345,68 , 13,5 , 4,0 , 649,7 , 656,5 , 2, 0, 1, 6, 7 }, // Czech/Latin/Czech Republic - { 29, 7, 58, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 505,23 , 228,5 , 233,10 , 4994,59 , 5053,84 , 134,24 , 4994,59 , 5053,84 , 134,24 , 2214,28 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {68,75,75}, 144,3 , 3413,42 , 13,5 , 4,0 , 661,5 , 666,7 , 2, 0, 1, 6, 7 }, // Danish/Latin/Denmark - { 29, 7, 86, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 505,23 , 228,5 , 233,10 , 4994,59 , 5053,84 , 134,24 , 4994,59 , 5053,84 , 134,24 , 2214,28 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {68,75,75}, 144,3 , 3413,42 , 13,5 , 4,0 , 661,5 , 673,8 , 2, 0, 1, 6, 7 }, // Danish/Latin/Greenland - { 30, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3455,19 , 8,5 , 23,6 , 681,10 , 691,9 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Netherlands - { 30, 7, 12, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {65,87,71}, 147,4 , 3474,55 , 8,5 , 23,6 , 681,10 , 700,5 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Aruba - { 30, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 538,9 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3455,19 , 8,5 , 23,6 , 681,10 , 705,6 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Belgium - { 30, 7, 152, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {65,78,71}, 151,4 , 3529,97 , 8,5 , 23,6 , 681,10 , 711,7 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Cura Sao - { 30, 7, 202, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {83,82,68}, 6,1 , 3626,58 , 8,5 , 23,6 , 681,10 , 718,8 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Suriname - { 30, 7, 255, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3684,61 , 8,5 , 23,6 , 681,10 , 726,19 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Bonaire - { 30, 7, 256, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 5137,59 , 5196,88 , 134,24 , 5137,59 , 5196,88 , 134,24 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {65,78,71}, 151,4 , 3529,97 , 8,5 , 23,6 , 681,10 , 745,12 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Sint Maarten - { 31, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 757,16 , 773,13 , 2, 1, 7, 6, 7 }, // English/Latin/United States - { 31, 3, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 155,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // English/Deseret/United States - { 31, 7, 4, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 793,14 , 2, 1, 7, 6, 7 }, // English/Latin/American Samoa - { 31, 7, 7, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 807,8 , 2, 1, 1, 6, 7 }, // English/Latin/Anguilla - { 31, 7, 9, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 815,17 , 2, 1, 7, 6, 7 }, // English/Latin/Antigua And Barbuda - { 31, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 210,9 , 210,9 , 269,6 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 2436,25 , 0,28 , 28,57 , 2436,25 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 832,18 , 850,9 , 2, 1, 7, 6, 7 }, // English/Latin/Australia - { 31, 7, 14, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 8,5 , 4,0 , 786,7 , 859,7 , 2, 1, 1, 6, 7 }, // English/Latin/Austria - { 31, 7, 16, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,83,68}, 6,1 , 3930,53 , 4,4 , 4,0 , 786,7 , 866,7 , 2, 1, 7, 6, 7 }, // English/Latin/Bahamas - { 31, 7, 19, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,66,68}, 6,1 , 3983,56 , 4,4 , 4,0 , 786,7 , 873,8 , 2, 1, 1, 6, 7 }, // English/Latin/Barbados - { 31, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 786,7 , 881,7 , 2, 1, 1, 6, 7 }, // English/Latin/Belgium - { 31, 7, 22, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 553,18 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,90,68}, 6,1 , 4039,47 , 4,4 , 4,0 , 786,7 , 888,6 , 2, 1, 7, 6, 7 }, // English/Latin/Belize - { 31, 7, 24, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,77,68}, 6,1 , 4086,53 , 4,4 , 4,0 , 786,7 , 894,7 , 2, 1, 1, 6, 7 }, // English/Latin/Bermuda - { 31, 7, 28, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 553,18 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,87,80}, 158,1 , 4139,50 , 4,4 , 4,0 , 786,7 , 901,8 , 2, 1, 7, 6, 7 }, // English/Latin/Botswana - { 31, 7, 31, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 909,30 , 2, 1, 1, 6, 7 }, // English/Latin/British Indian Ocean Territory - { 31, 7, 35, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {66,73,70}, 159,3 , 4189,53 , 4,4 , 4,0 , 786,7 , 939,7 , 0, 0, 1, 6, 7 }, // English/Latin/Burundi - { 31, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,65,70}, 32,4 , 4242,83 , 4,4 , 4,0 , 786,7 , 946,8 , 0, 0, 1, 6, 7 }, // English/Latin/Cameroon - { 31, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 53,10 , 35,18 , 18,7 , 25,12 , 5284,59 , 48,86 , 134,24 , 5284,59 , 48,86 , 134,24 , 2461,35 , 28,57 , 85,14 , 2461,35 , 28,57 , 85,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {67,65,68}, 6,1 , 4325,53 , 4,4 , 4,0 , 954,16 , 970,6 , 2, 0, 7, 6, 7 }, // English/Latin/Canada - { 31, 7, 40, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {75,89,68}, 6,1 , 4378,71 , 4,4 , 4,0 , 786,7 , 976,14 , 2, 1, 1, 6, 7 }, // English/Latin/Cayman Islands - { 31, 7, 45, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 990,16 , 2, 1, 1, 6, 7 }, // English/Latin/Christmas Island - { 31, 7, 46, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1006,23 , 2, 1, 1, 6, 7 }, // English/Latin/Cocos Islands - { 31, 7, 51, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1029,12 , 2, 1, 1, 6, 7 }, // English/Latin/Cook Islands - { 31, 7, 56, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 4,4 , 4,0 , 786,7 , 1041,6 , 2, 1, 1, 6, 7 }, // English/Latin/Cyprus - { 31, 7, 58, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 228,5 , 233,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {68,75,75}, 144,3 , 4511,44 , 13,5 , 4,0 , 786,7 , 1047,7 , 2, 0, 1, 6, 7 }, // English/Latin/Denmark - { 31, 7, 60, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1054,8 , 2, 1, 7, 6, 7 }, // English/Latin/Dominica - { 31, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,82,78}, 41,3 , 4555,50 , 4,4 , 4,0 , 786,7 , 1062,7 , 2, 1, 1, 6, 7 }, // English/Latin/Eritrea - { 31, 7, 70, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {70,75,80}, 119,1 , 4605,74 , 4,4 , 4,0 , 786,7 , 1069,16 , 2, 1, 1, 6, 7 }, // English/Latin/Falkland Islands - { 31, 7, 72, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {70,74,68}, 6,1 , 4679,47 , 4,4 , 4,0 , 786,7 , 1085,4 , 2, 1, 1, 6, 7 }, // English/Latin/Fiji - { 31, 7, 73, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 243,4 , 247,9 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 786,7 , 1089,7 , 2, 1, 1, 6, 7 }, // English/Latin/Finland - { 31, 7, 75, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 4726,32 , 4,4 , 4,0 , 786,7 , 1096,8 , 2, 1, 1, 6, 7 }, // English/Latin/Guernsey - { 31, 7, 80, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,77,68}, 162,1 , 4758,50 , 4,4 , 4,0 , 786,7 , 1104,6 , 2, 1, 1, 6, 7 }, // English/Latin/Gambia - { 31, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 786,7 , 1110,7 , 2, 1, 1, 6, 7 }, // English/Latin/Germany - { 31, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,72,83}, 163,3 , 4808,47 , 4,4 , 4,0 , 786,7 , 1117,5 , 2, 1, 1, 6, 7 }, // English/Latin/Ghana - { 31, 7, 84, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,73,80}, 119,1 , 4855,53 , 4,4 , 4,0 , 786,7 , 1122,9 , 2, 1, 1, 6, 7 }, // English/Latin/Gibraltar - { 31, 7, 87, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1131,7 , 2, 1, 1, 6, 7 }, // English/Latin/Grenada - { 31, 7, 89, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1138,4 , 2, 1, 7, 6, 7 }, // English/Latin/Guam - { 31, 7, 93, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,89,68}, 6,1 , 4908,56 , 4,4 , 4,0 , 786,7 , 1142,6 , 2, 0, 1, 6, 7 }, // English/Latin/Guyana - { 31, 7, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 415,8 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {72,75,68}, 166,3 , 4964,56 , 4,4 , 4,0 , 786,7 , 1148,19 , 2, 1, 7, 6, 7 }, // English/Latin/Hong Kong - { 31, 7, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 192,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {73,78,82}, 121,1 , 5020,44 , 8,5 , 4,0 , 786,7 , 1167,5 , 2, 1, 7, 7, 7 }, // English/Latin/India - { 31, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 97,16 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 4,4 , 4,0 , 786,7 , 1172,7 , 2, 1, 1, 6, 7 }, // English/Latin/Ireland - { 31, 7, 105, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 55,4 , 59,9 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {73,76,83}, 49,1 , 5064,62 , 4,4 , 4,0 , 786,7 , 1179,6 , 2, 1, 7, 5, 6 }, // English/Latin/Israel - { 31, 7, 107, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 269,6 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {74,77,68}, 6,1 , 5126,53 , 4,4 , 4,0 , 786,7 , 1185,7 , 2, 1, 7, 6, 7 }, // English/Latin/Jamaica - { 31, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {75,69,83}, 2,3 , 5179,53 , 4,4 , 4,0 , 786,7 , 1192,5 , 2, 1, 7, 6, 7 }, // English/Latin/Kenya - { 31, 7, 112, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1197,8 , 2, 1, 1, 6, 7 }, // English/Latin/Kiribati - { 31, 7, 120, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 5232,61 , 4,4 , 4,0 , 786,7 , 1205,7 , 2, 1, 1, 6, 7 }, // English/Latin/Lesotho - { 31, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {76,82,68}, 6,1 , 5293,53 , 4,4 , 4,0 , 786,7 , 1212,7 , 2, 1, 1, 6, 7 }, // English/Latin/Liberia - { 31, 7, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,79,80}, 134,4 , 5346,53 , 4,4 , 4,0 , 786,7 , 1219,15 , 2, 1, 7, 6, 7 }, // English/Latin/Macau - { 31, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,71,65}, 169,2 , 5399,54 , 4,4 , 4,0 , 786,7 , 1234,10 , 0, 0, 1, 6, 7 }, // English/Latin/Madagascar - { 31, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,87,75}, 171,2 , 5453,53 , 4,4 , 4,0 , 786,7 , 1244,6 , 2, 1, 1, 6, 7 }, // English/Latin/Malawi - { 31, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,89,82}, 173,2 , 5506,59 , 4,4 , 4,0 , 786,7 , 1250,8 , 2, 1, 1, 6, 7 }, // English/Latin/Malaysia - { 31, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 4,4 , 4,0 , 786,7 , 1258,5 , 2, 1, 7, 6, 7 }, // English/Latin/Malta - { 31, 7, 134, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1263,16 , 2, 1, 7, 6, 7 }, // English/Latin/Marshall Islands - { 31, 7, 137, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,85,82}, 175,2 , 5565,53 , 4,4 , 4,0 , 786,7 , 1279,9 , 2, 0, 1, 6, 7 }, // English/Latin/Mauritius - { 31, 7, 140, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1288,10 , 2, 1, 1, 6, 7 }, // English/Latin/Micronesia - { 31, 7, 144, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1298,10 , 2, 1, 1, 6, 7 }, // English/Latin/Montserrat - { 31, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,65,68}, 6,1 , 5618,53 , 4,4 , 4,0 , 786,7 , 1308,7 , 2, 1, 1, 6, 7 }, // English/Latin/Namibia - { 31, 7, 149, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1315,5 , 2, 1, 1, 6, 7 }, // English/Latin/Nauru - { 31, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 8,5 , 23,6 , 786,7 , 1320,11 , 2, 1, 1, 6, 7 }, // English/Latin/Netherlands - { 31, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 571,7 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1331,11 , 2, 1, 1, 6, 7 }, // English/Latin/New Zealand - { 31, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,71,78}, 177,1 , 5671,50 , 4,4 , 4,0 , 786,7 , 1342,7 , 2, 1, 1, 6, 7 }, // English/Latin/Nigeria - { 31, 7, 158, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1349,4 , 2, 1, 1, 6, 7 }, // English/Latin/Niue - { 31, 7, 159, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1353,14 , 2, 1, 1, 6, 7 }, // English/Latin/Norfolk Island - { 31, 7, 160, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1367,24 , 2, 1, 1, 6, 7 }, // English/Latin/Northern Mariana Islands - { 31, 7, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {80,75,82}, 175,2 , 5721,53 , 4,4 , 4,0 , 786,7 , 1391,8 , 2, 0, 7, 6, 7 }, // English/Latin/Pakistan - { 31, 7, 164, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1399,5 , 2, 1, 1, 6, 7 }, // English/Latin/Palau - { 31, 7, 167, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {80,71,75}, 131,1 , 5774,73 , 4,4 , 4,0 , 786,7 , 1404,16 , 2, 1, 1, 6, 7 }, // English/Latin/Papua New Guinea - { 31, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {80,72,80}, 178,1 , 5847,53 , 4,4 , 4,0 , 786,7 , 1420,11 , 2, 1, 7, 6, 7 }, // English/Latin/Philippines - { 31, 7, 171, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1431,16 , 2, 1, 1, 6, 7 }, // English/Latin/Pitcairn - { 31, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1447,11 , 2, 1, 7, 6, 7 }, // English/Latin/Puerto Rico - { 31, 7, 179, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {82,87,70}, 179,2 , 5900,47 , 4,4 , 4,0 , 786,7 , 1458,6 , 0, 0, 1, 6, 7 }, // English/Latin/Rwanda - { 31, 7, 180, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1464,17 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Kitts And Nevis - { 31, 7, 181, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1481,9 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Lucia - { 31, 7, 182, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1490,24 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Vincent And The Grenadines - { 31, 7, 183, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {87,83,84}, 181,3 , 5947,40 , 4,4 , 4,0 , 786,7 , 1514,5 , 2, 1, 7, 6, 7 }, // English/Latin/Samoa - { 31, 7, 188, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,67,82}, 184,2 , 5987,59 , 4,4 , 4,0 , 786,7 , 1519,10 , 2, 1, 1, 6, 7 }, // English/Latin/Seychelles - { 31, 7, 189, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,76,76}, 186,2 , 6046,68 , 4,4 , 4,0 , 786,7 , 1529,12 , 0, 0, 1, 6, 7 }, // English/Latin/Sierra Leone - { 31, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 269,6 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,71,68}, 6,1 , 6114,56 , 4,4 , 4,0 , 786,7 , 1541,9 , 2, 1, 7, 6, 7 }, // English/Latin/Singapore - { 31, 7, 192, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 29,7 , 786,7 , 1550,8 , 2, 1, 1, 6, 7 }, // English/Latin/Slovenia - { 31, 7, 193, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,66,68}, 6,1 , 6170,74 , 4,4 , 4,0 , 786,7 , 1558,15 , 2, 1, 1, 6, 7 }, // English/Latin/Solomon Islands - { 31, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 578,10 , 553,18 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 5232,61 , 4,4 , 4,0 , 786,7 , 1573,12 , 2, 1, 7, 6, 7 }, // English/Latin/South Africa - { 31, 7, 199, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,72,80}, 119,1 , 6244,56 , 4,4 , 4,0 , 786,7 , 1585,10 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Helena - { 31, 7, 201, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,68,71}, 0,0 , 6300,50 , 4,4 , 4,0 , 786,7 , 1595,5 , 2, 1, 6, 5, 6 }, // English/Latin/Sudan - { 31, 7, 204, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,90,76}, 188,1 , 6350,53 , 4,4 , 4,0 , 786,7 , 1600,8 , 2, 1, 1, 6, 7 }, // English/Latin/Swaziland - { 31, 7, 205, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 53,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,69,75}, 189,2 , 6403,47 , 13,5 , 4,0 , 786,7 , 1608,6 , 2, 0, 1, 6, 7 }, // English/Latin/Sweden - { 31, 7, 206, 46, 8217, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {67,72,70}, 0,0 , 6450,41 , 8,5 , 36,5 , 786,7 , 1614,11 , 2, 0, 1, 6, 7 }, // English/Latin/Switzerland - { 31, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {84,90,83}, 191,3 , 6491,62 , 4,4 , 4,0 , 786,7 , 1625,8 , 2, 0, 1, 6, 7 }, // English/Latin/Tanzania - { 31, 7, 213, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1633,7 , 2, 1, 1, 6, 7 }, // English/Latin/Tokelau - { 31, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {84,79,80}, 194,2 , 6553,49 , 4,4 , 4,0 , 786,7 , 1640,5 , 2, 1, 1, 6, 7 }, // English/Latin/Tonga - { 31, 7, 215, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {84,84,68}, 6,1 , 6602,80 , 4,4 , 4,0 , 786,7 , 1645,17 , 2, 1, 7, 6, 7 }, // English/Latin/Trinidad And Tobago - { 31, 7, 219, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1662,22 , 2, 1, 1, 6, 7 }, // English/Latin/Turks And Caicos Islands - { 31, 7, 220, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1684,6 , 2, 1, 1, 6, 7 }, // English/Latin/Tuvalu - { 31, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,71,88}, 196,3 , 6682,56 , 4,4 , 4,0 , 786,7 , 1690,6 , 0, 0, 1, 6, 7 }, // English/Latin/Uganda - { 31, 7, 223, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {65,69,68}, 199,3 , 6738,55 , 4,4 , 4,0 , 786,7 , 1696,20 , 2, 1, 6, 5, 6 }, // English/Latin/United Arab Emirates - { 31, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 210,9 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 6793,47 , 4,4 , 4,0 , 1716,15 , 1731,14 , 2, 1, 1, 6, 7 }, // English/Latin/United Kingdom - { 31, 7, 226, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1745,21 , 2, 1, 7, 6, 7 }, // English/Latin/United States Minor Outlying Islands - { 31, 7, 229, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {86,85,86}, 202,2 , 6840,44 , 4,4 , 4,0 , 786,7 , 1766,7 , 0, 0, 1, 6, 7 }, // English/Latin/Vanuatu - { 31, 7, 233, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1773,22 , 2, 1, 1, 6, 7 }, // English/Latin/British Virgin Islands - { 31, 7, 234, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1795,19 , 2, 1, 7, 6, 7 }, // English/Latin/United States Virgin Islands - { 31, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {90,77,87}, 131,1 , 6884,50 , 4,4 , 4,0 , 786,7 , 1814,6 , 2, 1, 1, 6, 7 }, // English/Latin/Zambia - { 31, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 415,8 , 553,18 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1820,8 , 2, 1, 7, 6, 7 }, // English/Latin/Zimbabwe - { 31, 7, 249, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1828,12 , 2, 1, 1, 6, 7 }, // English/Latin/Diego Garcia - { 31, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 4726,32 , 4,4 , 4,0 , 786,7 , 1840,11 , 2, 1, 1, 6, 7 }, // English/Latin/Isle Of Man - { 31, 7, 252, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 4726,32 , 4,4 , 4,0 , 786,7 , 1851,6 , 2, 1, 1, 6, 7 }, // English/Latin/Jersey - { 31, 7, 254, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,83,80}, 119,1 , 6934,68 , 4,4 , 4,0 , 786,7 , 1857,11 , 2, 1, 1, 6, 7 }, // English/Latin/South Sudan - { 31, 7, 256, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,78,71}, 151,4 , 7002,95 , 4,4 , 4,0 , 786,7 , 1868,12 , 2, 1, 1, 6, 7 }, // English/Latin/Sint Maarten - { 31, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 4,4 , 4,0 , 786,7 , 1880,5 , 2, 1, 1, 6, 7 }, // English/Latin/World - { 31, 7, 261, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,48 , 48,86 , 134,24 , 0,48 , 48,86 , 134,24 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 13,5 , 4,0 , 786,7 , 1885,6 , 2, 1, 1, 6, 7 }, // English/Latin/Europe - { 32, 7, 260, 44, 160, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 219,9 , 219,9 , 588,8 , 596,26 , 37,5 , 256,25 , 5343,48 , 5391,91 , 134,24 , 5343,48 , 5391,91 , 134,24 , 2496,21 , 2517,51 , 2568,14 , 2496,21 , 2517,51 , 2568,14 , 70,3 , 67,3 , 308,6 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 41,6 , 4,0 , 1891,9 , 1900,5 , 2, 1, 1, 6, 7 }, // Esperanto/Latin/World - { 33, 7, 68, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 228,8 , 228,8 , 156,8 , 622,18 , 37,5 , 8,10 , 5482,59 , 5541,91 , 5632,24 , 5482,59 , 5541,91 , 5632,24 , 2582,14 , 2596,63 , 2582,14 , 2582,14 , 2596,63 , 2582,14 , 0,2 , 0,2 , 314,6 , 5,17 , 22,23 , {69,85,82}, 14,1 , 7097,20 , 13,5 , 4,0 , 1905,5 , 1910,5 , 2, 1, 1, 6, 7 }, // Estonian/Latin/Estonia - { 34, 7, 71, 44, 46, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 156,8 , 622,18 , 37,5 , 8,10 , 5656,48 , 5704,83 , 134,24 , 5787,59 , 5704,83 , 134,24 , 2659,28 , 2687,74 , 2761,14 , 2775,35 , 2687,74 , 2761,14 , 0,2 , 0,2 , 320,3 , 5,17 , 22,23 , {68,75,75}, 189,2 , 7117,43 , 13,5 , 4,0 , 1915,8 , 1923,7 , 2, 0, 1, 6, 7 }, // Faroese/Latin/Faroe Islands - { 34, 7, 58, 44, 46, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 156,8 , 622,18 , 37,5 , 8,10 , 5656,48 , 5704,83 , 134,24 , 5787,59 , 5704,83 , 134,24 , 2659,28 , 2687,74 , 2761,14 , 2775,35 , 2687,74 , 2761,14 , 0,2 , 0,2 , 320,3 , 5,17 , 22,23 , {68,75,75}, 144,3 , 7117,43 , 13,5 , 4,0 , 1915,8 , 666,7 , 2, 0, 1, 6, 7 }, // Faroese/Latin/Denmark - { 36, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 640,8 , 478,17 , 243,4 , 247,9 , 5846,69 , 5915,105 , 6020,24 , 6044,93 , 6137,129 , 6020,24 , 2810,21 , 2831,67 , 2898,14 , 2810,21 , 2912,81 , 2898,14 , 73,3 , 70,3 , 323,5 , 328,17 , 345,23 , {69,85,82}, 14,1 , 7160,20 , 13,5 , 4,0 , 1930,5 , 1935,5 , 2, 1, 1, 6, 7 }, // Finnish/Latin/Finland - { 37, 7, 74, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 1948,6 , 2, 1, 1, 6, 7 }, // French/Latin/France - { 37, 7, 3, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {68,90,68}, 204,2 , 7180,51 , 13,5 , 4,0 , 1940,8 , 1954,7 , 2, 1, 6, 5, 6 }, // French/Latin/Algeria - { 37, 7, 21, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 571,7 , 97,16 , 37,5 , 281,23 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 1961,8 , 2, 1, 1, 6, 7 }, // French/Latin/Belgium - { 37, 7, 23, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 1969,5 , 0, 0, 1, 6, 7 }, // French/Latin/Benin - { 37, 7, 34, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 1974,12 , 0, 0, 1, 6, 7 }, // French/Latin/Burkina Faso - { 37, 7, 35, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {66,73,70}, 159,3 , 7290,53 , 13,5 , 4,0 , 1940,8 , 939,7 , 0, 0, 1, 6, 7 }, // French/Latin/Burundi - { 37, 7, 37, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 76,5 , 73,4 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 1986,8 , 0, 0, 1, 6, 7 }, // French/Latin/Cameroon - { 37, 7, 38, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8221, 8220, 0,6 , 0,6 , 236,8 , 236,8 , 588,8 , 97,16 , 304,9 , 313,24 , 6414,64 , 6329,85 , 134,24 , 6414,64 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 64,4 , 61,4 , 368,6 , 374,17 , 391,23 , {67,65,68}, 6,1 , 7399,54 , 47,6 , 4,0 , 1994,17 , 970,6 , 2, 0, 7, 6, 7 }, // French/Latin/Canada - { 37, 7, 41, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2011,25 , 0, 0, 1, 6, 7 }, // French/Latin/Central African Republic - { 37, 7, 42, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2036,5 , 0, 0, 1, 6, 7 }, // French/Latin/Chad - { 37, 7, 48, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {75,77,70}, 36,2 , 7453,51 , 13,5 , 4,0 , 1940,8 , 2041,7 , 0, 0, 1, 6, 7 }, // French/Latin/Comoros - { 37, 7, 49, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {67,68,70}, 209,2 , 7504,53 , 13,5 , 4,0 , 1940,8 , 2048,14 , 2, 1, 1, 6, 7 }, // French/Latin/Congo Kinshasa - { 37, 7, 50, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2062,17 , 0, 0, 1, 6, 7 }, // French/Latin/Congo Brazzaville - { 37, 7, 53, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2079,13 , 0, 0, 1, 6, 7 }, // French/Latin/Ivory Coast - { 37, 7, 59, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {68,74,70}, 38,3 , 7557,57 , 13,5 , 4,0 , 1940,8 , 2092,8 , 0, 0, 6, 6, 7 }, // French/Latin/Djibouti - { 37, 7, 66, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2100,18 , 0, 0, 1, 6, 7 }, // French/Latin/Equatorial Guinea - { 37, 7, 76, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2118,16 , 2, 1, 1, 6, 7 }, // French/Latin/French Guiana - { 37, 7, 77, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,80,70}, 211,4 , 7614,35 , 13,5 , 4,0 , 1940,8 , 2134,19 , 0, 0, 1, 6, 7 }, // French/Latin/French Polynesia - { 37, 7, 79, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2153,5 , 0, 0, 1, 6, 7 }, // French/Latin/Gabon - { 37, 7, 88, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2158,10 , 2, 1, 1, 6, 7 }, // French/Latin/Guadeloupe - { 37, 7, 91, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {71,78,70}, 215,2 , 7649,48 , 13,5 , 4,0 , 1940,8 , 2168,6 , 0, 0, 1, 6, 7 }, // French/Latin/Guinea - { 37, 7, 94, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {72,84,71}, 217,1 , 7697,57 , 13,5 , 4,0 , 1940,8 , 2174,5 , 2, 1, 1, 6, 7 }, // French/Latin/Haiti - { 37, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2179,10 , 2, 1, 1, 6, 7 }, // French/Latin/Luxembourg - { 37, 7, 128, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {77,71,65}, 169,2 , 7754,54 , 13,5 , 4,0 , 1940,8 , 1234,10 , 0, 0, 1, 6, 7 }, // French/Latin/Madagascar - { 37, 7, 132, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2189,4 , 0, 0, 1, 6, 7 }, // French/Latin/Mali - { 37, 7, 135, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2193,10 , 2, 1, 1, 6, 7 }, // French/Latin/Martinique - { 37, 7, 136, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {77,82,85}, 218,2 , 7808,66 , 13,5 , 4,0 , 1940,8 , 2203,10 , 2, 1, 1, 6, 7 }, // French/Latin/Mauritania - { 37, 7, 137, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {77,85,82}, 175,2 , 7874,63 , 13,5 , 4,0 , 1940,8 , 2213,7 , 2, 0, 1, 6, 7 }, // French/Latin/Mauritius - { 37, 7, 138, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2220,7 , 2, 1, 1, 6, 7 }, // French/Latin/Mayotte - { 37, 7, 142, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2227,6 , 2, 1, 1, 6, 7 }, // French/Latin/Monaco - { 37, 7, 145, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6478,61 , 6329,85 , 134,24 , 6478,61 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 64,4 , 61,4 , 368,6 , 374,17 , 391,23 , {77,65,68}, 0,0 , 7937,54 , 13,5 , 4,0 , 1940,8 , 2233,5 , 2, 1, 1, 6, 7 }, // French/Latin/Morocco - { 37, 7, 153, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,80,70}, 211,4 , 7614,35 , 13,5 , 4,0 , 1940,8 , 2238,18 , 0, 0, 1, 6, 7 }, // French/Latin/New Caledonia - { 37, 7, 156, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2256,5 , 0, 0, 1, 6, 7 }, // French/Latin/Niger - { 37, 7, 176, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2261,10 , 2, 1, 1, 6, 7 }, // French/Latin/Reunion - { 37, 7, 179, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {82,87,70}, 179,2 , 7991,50 , 13,5 , 4,0 , 1940,8 , 1458,6 , 0, 0, 1, 6, 7 }, // French/Latin/Rwanda - { 37, 7, 187, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2271,7 , 0, 0, 1, 6, 7 }, // French/Latin/Senegal - { 37, 7, 188, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {83,67,82}, 184,2 , 8041,71 , 13,5 , 4,0 , 1940,8 , 1519,10 , 2, 1, 1, 6, 7 }, // French/Latin/Seychelles - { 37, 7, 200, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2278,24 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Pierre And Miquelon - { 37, 7, 206, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 236,8 , 236,8 , 156,8 , 10,17 , 37,5 , 337,14 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {67,72,70}, 0,0 , 8112,45 , 13,5 , 4,0 , 2302,15 , 2317,6 , 2, 0, 1, 6, 7 }, // French/Latin/Switzerland - { 37, 7, 207, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {83,89,80}, 220,2 , 8157,51 , 13,5 , 4,0 , 1940,8 , 2323,5 , 0, 0, 6, 5, 6 }, // French/Latin/Syria - { 37, 7, 212, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2328,4 , 0, 0, 1, 6, 7 }, // French/Latin/Togo - { 37, 7, 216, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {84,78,68}, 222,2 , 8208,51 , 13,5 , 4,0 , 1940,8 , 2332,7 , 3, 0, 1, 6, 7 }, // French/Latin/Tunisia - { 37, 7, 229, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {86,85,86}, 202,2 , 8259,51 , 13,5 , 4,0 , 1940,8 , 1766,7 , 0, 0, 1, 6, 7 }, // French/Latin/Vanuatu - { 37, 7, 235, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,80,70}, 211,4 , 7614,35 , 13,5 , 4,0 , 1940,8 , 2339,16 , 0, 0, 1, 6, 7 }, // French/Latin/Wallis And Futuna Islands - { 37, 7, 244, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2355,16 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Barthelemy - { 37, 7, 245, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 6266,63 , 6329,85 , 134,24 , 6266,63 , 6329,85 , 134,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2371,12 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Martin - { 38, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 339,8 , 97,16 , 37,5 , 8,10 , 6539,48 , 6587,95 , 134,24 , 6539,48 , 6587,95 , 134,24 , 3094,21 , 3115,54 , 85,14 , 3094,21 , 3115,54 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3455,19 , 8,5 , 53,6 , 2383,5 , 2388,8 , 2, 1, 1, 6, 7 }, // Western Frisian/Latin/Netherlands - { 39, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 244,10 , 244,10 , 119,10 , 648,21 , 37,5 , 8,10 , 6682,61 , 6743,142 , 6885,24 , 6682,61 , 6909,167 , 6885,24 , 3169,28 , 3197,69 , 3266,14 , 3169,28 , 3197,69 , 3266,14 , 81,1 , 77,1 , 414,6 , 5,17 , 22,23 , {71,66,80}, 119,1 , 8310,86 , 4,4 , 4,0 , 2396,8 , 2404,22 , 2, 1, 1, 6, 7 }, // Gaelic/Latin/United Kingdom - { 40, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 7076,60 , 7136,87 , 7223,24 , 7247,60 , 7307,87 , 7394,36 , 3280,35 , 3315,49 , 3364,14 , 3378,35 , 3413,49 , 3462,21 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 2426,6 , 2432,6 , 2, 1, 1, 6, 7 }, // Galician/Latin/Spain - { 41, 15, 81, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 171, 187, 0,6 , 0,6 , 261,8 , 261,8 , 156,8 , 696,19 , 37,5 , 8,10 , 7430,48 , 7478,99 , 7577,24 , 7430,48 , 7478,99 , 7577,24 , 3483,28 , 3511,62 , 3573,14 , 3483,28 , 3511,62 , 3573,14 , 0,2 , 0,2 , 420,5 , 425,37 , 22,23 , {71,69,76}, 224,1 , 8396,43 , 13,5 , 4,0 , 2438,7 , 2445,10 , 2, 1, 1, 6, 7 }, // Georgian/Georgian/Georgia - { 42, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 7649,83 , 134,24 , 7732,60 , 7649,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2462,11 , 2, 1, 1, 6, 7 }, // German/Latin/Germany - { 42, 7, 14, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7792,48 , 7840,83 , 134,24 , 7923,59 , 7840,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 8,5 , 4,0 , 2473,24 , 2497,10 , 2, 1, 1, 6, 7 }, // German/Latin/Austria - { 42, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 7649,83 , 134,24 , 7732,60 , 7649,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2507,7 , 2, 1, 1, 6, 7 }, // German/Latin/Belgium - { 42, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7792,48 , 7840,83 , 134,24 , 7923,59 , 7840,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2514,7 , 2, 1, 1, 6, 7 }, // German/Latin/Italy - { 42, 7, 123, 46, 8217, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 7649,83 , 134,24 , 7732,60 , 7649,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {67,72,70}, 0,0 , 8458,58 , 8,5 , 4,0 , 2455,7 , 2521,13 , 2, 0, 1, 6, 7 }, // German/Latin/Liechtenstein - { 42, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 7649,83 , 134,24 , 7732,60 , 7649,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2534,9 , 2, 1, 1, 6, 7 }, // German/Latin/Luxembourg - { 42, 7, 206, 46, 8217, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 7649,83 , 134,24 , 7732,60 , 7649,83 , 134,24 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {67,72,70}, 225,3 , 8458,58 , 8,5 , 36,5 , 2543,21 , 2564,7 , 2, 0, 1, 6, 7 }, // German/Latin/Switzerland - { 43, 16, 85, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 278,9 , 278,9 , 269,6 , 10,17 , 18,7 , 25,12 , 7982,50 , 8032,115 , 8147,24 , 8171,50 , 8221,115 , 8147,24 , 3710,28 , 3738,55 , 3793,14 , 3710,28 , 3738,55 , 3793,14 , 82,4 , 78,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8516,19 , 13,5 , 4,0 , 2571,8 , 2579,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Greece - { 43, 16, 56, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 278,9 , 278,9 , 269,6 , 10,17 , 18,7 , 25,12 , 7982,50 , 8032,115 , 8147,24 , 8171,50 , 8221,115 , 8147,24 , 3710,28 , 3738,55 , 3793,14 , 3710,28 , 3738,55 , 3793,14 , 82,4 , 78,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8516,19 , 13,5 , 4,0 , 2571,8 , 2585,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Cyprus - { 44, 7, 86, 44, 46, 59, 37, 48, 8722, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 287,11 , 287,11 , 53,10 , 80,17 , 228,5 , 233,10 , 8336,48 , 8384,96 , 134,24 , 8336,48 , 8384,96 , 134,24 , 3807,28 , 3835,98 , 3933,14 , 3807,28 , 3835,98 , 3933,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {68,75,75}, 144,3 , 8535,62 , 4,4 , 59,5 , 2591,11 , 2602,16 , 2, 0, 1, 6, 7 }, // Greenlandic/Latin/Greenland - { 45, 7, 168, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,89,71}, 228,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 7, 6, 7 }, // Guarani/Latin/Paraguay - { 46, 17, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 298,9 , 298,9 , 269,6 , 192,18 , 351,8 , 359,13 , 8480,67 , 8547,87 , 8634,31 , 8480,67 , 8547,87 , 8634,31 , 3947,32 , 3979,53 , 4032,19 , 3947,32 , 3979,53 , 4032,19 , 0,2 , 0,2 , 467,4 , 471,19 , 22,23 , {73,78,82}, 121,1 , 8597,46 , 4,4 , 4,0 , 2618,7 , 2625,4 , 2, 1, 7, 7, 7 }, // Gujarati/Gujarati/India - { 47, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 307,8 , 307,8 , 269,6 , 715,17 , 37,5 , 8,10 , 8665,48 , 8713,85 , 8798,24 , 8665,48 , 8713,85 , 8798,24 , 4051,28 , 4079,52 , 4131,14 , 4051,28 , 4079,52 , 4131,14 , 86,6 , 82,5 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 8643,12 , 8,5 , 4,0 , 2629,5 , 2634,8 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Nigeria - { 47, 1, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Hausa/Arabic/Nigeria - { 47, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 307,8 , 307,8 , 269,6 , 715,17 , 18,7 , 25,12 , 8665,48 , 8713,85 , 8798,24 , 8665,48 , 8713,85 , 8798,24 , 4051,28 , 4079,52 , 4131,14 , 4051,28 , 4079,52 , 4131,14 , 86,6 , 82,5 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 0,7 , 8,5 , 4,0 , 2629,5 , 2642,4 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Ghana - { 47, 7, 156, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 307,8 , 307,8 , 269,6 , 715,17 , 37,5 , 8,10 , 8665,48 , 8713,85 , 8798,24 , 8665,48 , 8713,85 , 8798,24 , 4051,28 , 4079,52 , 4131,14 , 4051,28 , 4079,52 , 4131,14 , 86,6 , 82,5 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 8655,36 , 8,5 , 4,0 , 2629,5 , 2646,5 , 0, 0, 1, 6, 7 }, // Hausa/Latin/Niger - { 48, 18, 105, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 315,6 , 315,6 , 640,8 , 732,18 , 55,4 , 59,9 , 8822,58 , 8880,72 , 158,27 , 8822,58 , 8880,72 , 158,27 , 4145,46 , 4191,65 , 4256,21 , 4145,46 , 4191,65 , 4256,21 , 92,6 , 87,5 , 490,4 , 5,17 , 22,23 , {73,76,83}, 49,1 , 8691,54 , 64,6 , 70,8 , 2651,5 , 2656,5 , 2, 1, 7, 5, 6 }, // Hebrew/Hebrew/Israel - { 49, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 321,9 , 330,8 , 269,6 , 10,17 , 18,7 , 25,12 , 8952,59 , 9011,73 , 9084,30 , 8952,59 , 9011,73 , 9084,30 , 4277,32 , 4309,53 , 4362,19 , 4277,32 , 4309,53 , 4362,19 , 68,2 , 65,2 , 494,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 8745,42 , 4,4 , 4,0 , 2661,6 , 2667,4 , 2, 1, 7, 7, 7 }, // Hindi/Devanagari/India - { 50, 7, 98, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 187, 171, 0,6 , 0,6 , 338,8 , 338,8 , 750,13 , 763,19 , 55,4 , 59,9 , 9114,64 , 9178,98 , 9276,25 , 9114,64 , 9178,98 , 9276,25 , 4381,19 , 4400,52 , 4452,17 , 4381,19 , 4400,52 , 4452,17 , 98,3 , 92,3 , 498,4 , 5,17 , 22,23 , {72,85,70}, 229,2 , 8787,46 , 13,5 , 4,0 , 2671,6 , 2677,12 , 2, 0, 1, 6, 7 }, // Hungarian/Latin/Hungary - { 51, 7, 99, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 192,8 , 192,8 , 640,8 , 622,18 , 37,5 , 8,10 , 9301,59 , 9360,82 , 9442,24 , 9301,59 , 9360,82 , 9442,24 , 4469,35 , 4504,81 , 4585,14 , 4469,35 , 4504,81 , 4585,14 , 101,4 , 95,4 , 502,4 , 5,17 , 22,23 , {73,83,75}, 189,2 , 8833,49 , 13,5 , 4,0 , 2689,8 , 2697,6 , 0, 0, 1, 6, 7 }, // Icelandic/Latin/Iceland - { 52, 7, 101, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 346,10 , 356,9 , 27,8 , 553,18 , 228,5 , 233,10 , 9466,48 , 9514,87 , 134,24 , 9466,48 , 9514,87 , 134,24 , 4599,28 , 4627,43 , 4670,14 , 4599,28 , 4627,43 , 4670,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,68,82}, 231,2 , 8882,39 , 4,4 , 4,0 , 2703,9 , 2703,9 , 2, 0, 7, 6, 7 }, // Indonesian/Latin/Indonesia - { 53, 7, 260, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 528,10 , 782,26 , 37,5 , 8,10 , 9601,48 , 9649,93 , 158,27 , 9601,48 , 9649,93 , 9742,24 , 4684,28 , 4712,57 , 4769,14 , 4684,28 , 4712,57 , 4769,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 2712,11 , 2723,5 , 2, 1, 1, 6, 7 }, // Interlingua/Latin/World - { 55, 44, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,65,68}, 233,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Inuktitut/Canadian Aboriginal/Canada - { 55, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,65,68}, 233,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Inuktitut/Latin/Canada - { 57, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 365,11 , 244,10 , 119,10 , 97,16 , 37,5 , 8,10 , 9766,62 , 9828,107 , 9935,24 , 9766,62 , 9828,107 , 9935,24 , 4783,37 , 4820,75 , 4895,14 , 4783,37 , 4820,75 , 4895,14 , 105,4 , 99,4 , 506,6 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8921,31 , 4,4 , 4,0 , 2728,7 , 2735,4 , 2, 1, 1, 6, 7 }, // Irish/Latin/Ireland - { 58, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 97,16 , 37,5 , 8,10 , 9959,48 , 10007,94 , 10101,24 , 9959,48 , 10007,94 , 10101,24 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 2739,8 , 2747,6 , 2, 1, 1, 6, 7 }, // Italian/Latin/Italy - { 58, 7, 184, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 97,16 , 37,5 , 8,10 , 9959,48 , 10007,94 , 10101,24 , 9959,48 , 10007,94 , 10101,24 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 2739,8 , 2753,10 , 2, 1, 1, 6, 7 }, // Italian/Latin/San Marino - { 58, 7, 206, 46, 8217, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 254,7 , 254,7 , 156,8 , 10,17 , 37,5 , 8,10 , 9959,48 , 10007,94 , 10101,24 , 9959,48 , 10007,94 , 10101,24 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,72,70}, 0,0 , 8971,53 , 8,5 , 36,5 , 2739,8 , 2763,8 , 2, 0, 1, 6, 7 }, // Italian/Latin/Switzerland - { 58, 7, 230, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 97,16 , 37,5 , 8,10 , 9959,48 , 10007,94 , 10101,24 , 9959,48 , 10007,94 , 10101,24 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 2739,8 , 2771,18 , 2, 1, 1, 6, 7 }, // Italian/Latin/Vatican City State - { 59, 19, 108, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 170,5 , 170,5 , 578,10 , 402,13 , 55,4 , 372,10 , 4423,39 , 4423,39 , 158,27 , 4423,39 , 4423,39 , 158,27 , 5008,14 , 5022,28 , 5008,14 , 5008,14 , 5022,28 , 5008,14 , 109,2 , 103,2 , 512,3 , 5,17 , 22,23 , {74,80,89}, 133,1 , 9024,11 , 4,4 , 4,0 , 2789,3 , 2792,2 , 0, 0, 7, 6, 7 }, // Japanese/Japanese/Japan - { 60, 7, 101, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 376,10 , 386,9 , 528,10 , 10,17 , 37,5 , 8,10 , 10125,48 , 9514,87 , 134,24 , 10125,48 , 9514,87 , 134,24 , 5050,28 , 5078,41 , 5119,14 , 5050,28 , 5078,41 , 5119,14 , 111,4 , 105,5 , 515,4 , 5,17 , 22,23 , {73,68,82}, 231,2 , 8882,39 , 8,5 , 4,0 , 2794,4 , 2798,9 , 2, 0, 7, 6, 7 }, // Javanese/Latin/Indonesia - { 61, 21, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 395,12 , 407,11 , 269,6 , 35,18 , 351,8 , 359,13 , 10173,63 , 10236,87 , 10323,31 , 10354,69 , 10236,87 , 10323,31 , 5133,33 , 5166,54 , 5220,20 , 5133,33 , 5166,54 , 5220,20 , 115,9 , 110,7 , 519,8 , 527,35 , 22,23 , {73,78,82}, 121,1 , 9035,49 , 4,4 , 4,0 , 2807,5 , 2812,4 , 2, 1, 7, 7, 7 }, // Kannada/Kannada/India - { 62, 1, 100, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 547,6 , 35,18 , 18,7 , 25,12 , 10423,72 , 10423,72 , 10495,24 , 10423,72 , 10423,72 , 10495,24 , 5240,50 , 5290,52 , 5342,14 , 5240,50 , 5290,52 , 5342,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 9084,23 , 8,5 , 4,0 , 2816,5 , 2821,9 , 2, 1, 7, 7, 7 }, // Kashmiri/Arabic/India - { 63, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 418,10 , 156,8 , 808,22 , 37,5 , 8,10 , 10519,60 , 10579,83 , 10662,24 , 10519,60 , 10686,83 , 10662,24 , 5356,21 , 5377,56 , 5433,14 , 5356,21 , 5377,56 , 5433,14 , 0,2 , 0,2 , 562,4 , 566,17 , 583,23 , {75,90,84}, 236,1 , 9107,58 , 13,5 , 4,0 , 2830,10 , 2840,9 , 2, 1, 1, 6, 7 }, // Kazakh/Cyrillic/Kazakhstan - { 64, 7, 179, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 10769,60 , 10829,101 , 158,27 , 10769,60 , 10829,101 , 158,27 , 5447,35 , 5482,84 , 85,14 , 5447,35 , 5482,84 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,87,70}, 179,2 , 0,7 , 8,5 , 4,0 , 2849,11 , 2860,8 , 0, 0, 1, 6, 7 }, // Kinyarwanda/Latin/Rwanda - { 65, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 428,10 , 428,10 , 269,6 , 830,23 , 37,5 , 8,10 , 10930,48 , 10978,80 , 11058,24 , 11082,59 , 11141,80 , 11058,24 , 5566,38 , 5604,57 , 5661,14 , 5566,38 , 5604,57 , 5661,14 , 124,5 , 117,14 , 562,4 , 606,18 , 22,23 , {75,71,83}, 237,3 , 9165,52 , 13,5 , 4,0 , 2868,8 , 2876,10 , 2, 1, 1, 6, 7 }, // Kirghiz/Cyrillic/Kyrgyzstan - { 66, 22, 114, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 438,7 , 438,7 , 853,9 , 862,16 , 382,7 , 389,13 , 11221,39 , 11221,39 , 11221,39 , 11221,39 , 11221,39 , 11221,39 , 5675,14 , 5689,28 , 5675,14 , 5675,14 , 5689,28 , 5675,14 , 129,2 , 131,2 , 624,3 , 5,17 , 22,23 , {75,82,87}, 240,1 , 9217,19 , 4,4 , 4,0 , 2886,3 , 2889,4 , 0, 0, 7, 6, 7 }, // Korean/Korean/South Korea - { 66, 22, 113, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 438,7 , 438,7 , 853,9 , 862,16 , 382,7 , 389,13 , 11221,39 , 11221,39 , 11221,39 , 11221,39 , 11221,39 , 11221,39 , 5675,14 , 5689,28 , 5675,14 , 5675,14 , 5689,28 , 5675,14 , 129,2 , 131,2 , 624,3 , 5,17 , 22,23 , {75,80,87}, 240,1 , 9236,39 , 4,4 , 4,0 , 2886,3 , 2893,11 , 0, 0, 1, 6, 7 }, // Korean/Korean/North Korea - { 67, 7, 217, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 445,7 , 445,7 , 53,10 , 63,17 , 37,5 , 8,10 , 11260,48 , 11308,88 , 11396,24 , 11260,48 , 11420,101 , 11396,24 , 5717,20 , 5737,42 , 5779,14 , 5717,20 , 5737,42 , 5779,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {84,82,89}, 241,1 , 0,7 , 13,5 , 4,0 , 2904,5 , 2909,7 , 2, 1, 1, 6, 7 }, // Kurdish/Latin/Turkey - { 68, 7, 35, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 11521,60 , 11581,106 , 158,27 , 11521,60 , 11581,106 , 158,27 , 5793,34 , 5827,89 , 85,14 , 5793,34 , 5827,89 , 85,14 , 131,5 , 133,5 , 45,4 , 5,17 , 22,23 , {66,73,70}, 159,3 , 9275,27 , 0,4 , 4,0 , 2916,8 , 2924,8 , 0, 0, 1, 6, 7 }, // Rundi/Latin/Burundi - { 69, 23, 117, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 452,9 , 415,8 , 878,19 , 55,4 , 402,24 , 11687,61 , 11748,75 , 158,27 , 11687,61 , 11748,75 , 158,27 , 5916,36 , 5952,57 , 6009,17 , 5916,36 , 5952,57 , 6009,17 , 136,8 , 138,8 , 45,4 , 5,17 , 22,23 , {76,65,75}, 242,1 , 9302,21 , 4,4 , 36,5 , 2932,3 , 2932,3 , 0, 0, 7, 6, 7 }, // Lao/Lao/Laos - { 71, 7, 118, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 461,8 , 461,8 , 156,8 , 897,26 , 37,5 , 8,10 , 11823,65 , 11888,101 , 134,24 , 11823,65 , 11888,101 , 134,24 , 6026,51 , 6077,72 , 6149,14 , 6163,51 , 6214,72 , 6149,14 , 144,14 , 146,11 , 627,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 9323,23 , 13,5 , 4,0 , 2935,8 , 2943,7 , 2, 1, 1, 6, 7 }, // Latvian/Latin/Latvia - { 72, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 11989,48 , 12037,203 , 12240,24 , 11989,48 , 12037,203 , 12240,24 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {67,68,70}, 209,2 , 9346,23 , 13,5 , 4,0 , 2950,7 , 2957,30 , 2, 1, 1, 6, 7 }, // Lingala/Latin/Congo Kinshasa - { 72, 7, 6, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 11989,48 , 12037,203 , 12240,24 , 11989,48 , 12037,203 , 12240,24 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {65,79,65}, 243,2 , 9369,23 , 13,5 , 4,0 , 2950,7 , 2987,6 , 2, 1, 1, 6, 7 }, // Lingala/Latin/Angola - { 72, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 11989,48 , 12037,203 , 12240,24 , 11989,48 , 12037,203 , 12240,24 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 9392,23 , 13,5 , 4,0 , 2950,7 , 2993,26 , 0, 0, 1, 6, 7 }, // Lingala/Latin/Central African Republic - { 72, 7, 50, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 11989,48 , 12037,203 , 12240,24 , 11989,48 , 12037,203 , 12240,24 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 9392,23 , 13,5 , 4,0 , 2950,7 , 3019,5 , 0, 0, 1, 6, 7 }, // Lingala/Latin/Congo Brazzaville - { 73, 7, 124, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 478,8 , 478,8 , 53,10 , 923,27 , 37,5 , 8,10 , 12264,70 , 12334,96 , 12430,24 , 12264,70 , 12454,98 , 12430,24 , 6428,21 , 6449,89 , 6538,14 , 6428,21 , 6449,89 , 6538,14 , 166,9 , 163,6 , 632,6 , 5,17 , 22,23 , {69,85,82}, 14,1 , 9415,30 , 13,5 , 4,0 , 3024,8 , 3032,7 , 2, 1, 1, 6, 7 }, // Lithuanian/Latin/Lithuania - { 74, 2, 127, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 950,7 , 553,18 , 37,5 , 8,10 , 12552,61 , 12613,85 , 12698,24 , 12552,61 , 12613,85 , 12698,24 , 6552,35 , 6587,54 , 1503,14 , 6641,34 , 6587,54 , 1503,14 , 175,10 , 169,8 , 638,5 , 5,17 , 22,23 , {77,75,68}, 245,3 , 9445,56 , 13,5 , 4,0 , 3039,10 , 3049,18 , 2, 1, 1, 6, 7 }, // Macedonian/Cyrillic/Macedonia - { 75, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 97,16 , 37,5 , 8,10 , 12722,48 , 12770,92 , 134,24 , 12722,48 , 12770,92 , 134,24 , 6675,34 , 6709,60 , 6769,14 , 6675,34 , 6709,60 , 6769,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,71,65}, 169,2 , 9501,13 , 8,5 , 4,0 , 3067,8 , 3075,12 , 0, 0, 1, 6, 7 }, // Malagasy/Latin/Madagascar - { 76, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 356,9 , 356,9 , 571,7 , 10,17 , 18,7 , 25,12 , 12862,48 , 12910,82 , 12992,24 , 12862,48 , 12910,82 , 12992,24 , 6783,28 , 6811,43 , 6854,14 , 6783,28 , 6811,43 , 6854,14 , 185,2 , 177,3 , 643,4 , 5,17 , 22,23 , {77,89,82}, 173,2 , 9514,39 , 4,4 , 4,0 , 3087,6 , 1250,8 , 2, 1, 1, 6, 7 }, // Malay/Latin/Malaysia - { 76, 1, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,89,82}, 173,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Malay/Arabic/Malaysia - { 76, 7, 32, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 356,9 , 356,9 , 571,7 , 957,12 , 18,7 , 25,12 , 12862,48 , 12910,82 , 12992,24 , 12862,48 , 12910,82 , 12992,24 , 6783,28 , 6811,43 , 6854,14 , 6783,28 , 6811,43 , 6854,14 , 185,2 , 177,3 , 643,4 , 5,17 , 22,23 , {66,78,68}, 6,1 , 9553,31 , 8,5 , 4,0 , 3087,6 , 3093,6 , 2, 1, 1, 6, 7 }, // Malay/Latin/Brunei - { 76, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 356,9 , 356,9 , 571,7 , 10,17 , 18,7 , 25,12 , 12862,48 , 12910,82 , 12992,24 , 12862,48 , 12910,82 , 12992,24 , 6783,28 , 6811,43 , 6854,14 , 6783,28 , 6811,43 , 6854,14 , 185,2 , 177,3 , 643,4 , 5,17 , 22,23 , {83,71,68}, 6,1 , 9584,37 , 4,4 , 4,0 , 3087,6 , 3099,9 , 2, 1, 7, 6, 7 }, // Malay/Latin/Singapore - { 77, 24, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 486,13 , 499,12 , 269,6 , 969,18 , 18,7 , 25,12 , 13016,62 , 13078,88 , 13166,32 , 13016,62 , 13078,88 , 13166,32 , 6868,41 , 6909,77 , 6986,22 , 6868,41 , 7008,76 , 7084,21 , 0,2 , 0,2 , 647,6 , 653,27 , 22,23 , {73,78,82}, 121,1 , 9621,40 , 4,4 , 4,0 , 3108,6 , 3114,6 , 2, 1, 7, 7, 7 }, // Malayalam/Malayalam/India - { 78, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 511,8 , 519,7 , 119,10 , 987,23 , 37,5 , 8,10 , 13198,48 , 13246,86 , 13332,36 , 13198,48 , 13246,86 , 13368,24 , 7105,28 , 7133,63 , 7196,21 , 7105,28 , 7133,63 , 7217,20 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 9661,27 , 4,4 , 4,0 , 3120,5 , 1258,5 , 2, 1, 7, 6, 7 }, // Maltese/Latin/Malta - { 79, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 426,4 , 25,12 , 13392,59 , 13451,133 , 13584,24 , 13392,59 , 13451,133 , 13584,24 , 7237,27 , 7264,47 , 7311,14 , 7237,27 , 7264,47 , 7311,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,90,68}, 6,1 , 9688,41 , 8,5 , 4,0 , 3125,5 , 3130,8 , 2, 1, 1, 6, 7 }, // Maori/Latin/New Zealand - { 80, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 526,9 , 526,9 , 269,6 , 192,18 , 18,7 , 25,12 , 13608,66 , 13674,86 , 13760,32 , 13608,66 , 13674,86 , 13760,32 , 7325,32 , 7357,53 , 4362,19 , 7325,32 , 7357,53 , 4362,19 , 187,5 , 180,4 , 494,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 9729,43 , 4,4 , 4,0 , 3138,5 , 2667,4 , 2, 1, 7, 7, 7 }, // Marathi/Devanagari/India - { 82, 2, 143, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 1010,10 , 1020,16 , 37,5 , 87,12 , 13792,99 , 13891,192 , 14083,38 , 13792,99 , 14121,192 , 14083,38 , 7410,21 , 7431,43 , 7410,21 , 7410,21 , 7474,43 , 7410,21 , 192,4 , 184,4 , 562,4 , 680,17 , 22,23 , {77,78,84}, 248,1 , 9772,25 , 8,5 , 4,0 , 3143,6 , 3149,6 , 2, 0, 1, 6, 7 }, // Mongolian/Cyrillic/Mongolia - { 82, 8, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,78,89}, 249,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Mongolian/Mongolian/China - { 84, 13, 150, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 535,5 , 0,6 , 540,7 , 540,7 , 227,6 , 63,17 , 37,5 , 8,10 , 14313,85 , 14313,85 , 14398,53 , 14313,85 , 14313,85 , 14451,52 , 7517,33 , 7550,54 , 7604,18 , 7517,33 , 7550,54 , 7604,18 , 196,9 , 188,7 , 494,4 , 697,19 , 22,23 , {78,80,82}, 252,4 , 9797,49 , 8,5 , 4,0 , 3155,6 , 3161,5 , 2, 1, 7, 6, 7 }, // Nepali/Devanagari/Nepal - { 84, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 535,5 , 0,6 , 540,7 , 540,7 , 227,6 , 63,17 , 18,7 , 25,12 , 14313,85 , 14313,85 , 14398,53 , 14313,85 , 14313,85 , 14451,52 , 7517,33 , 7550,54 , 7604,18 , 7517,33 , 7550,54 , 7604,18 , 196,9 , 188,7 , 494,4 , 697,19 , 22,23 , {73,78,82}, 121,1 , 9846,49 , 8,5 , 4,0 , 3155,6 , 2667,4 , 2, 1, 7, 7, 7 }, // Nepali/Devanagari/India - { 85, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 478,17 , 228,5 , 233,10 , 5656,48 , 14503,83 , 134,24 , 5787,59 , 14503,83 , 134,24 , 2307,35 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 9895,44 , 8,5 , 4,0 , 3166,12 , 3178,5 , 2, 0, 1, 6, 7 }, // Norwegian Bokmal/Latin/Norway - { 85, 7, 203, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 478,17 , 228,5 , 233,10 , 5656,48 , 14503,83 , 134,24 , 5787,59 , 14503,83 , 134,24 , 2307,35 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 9895,44 , 8,5 , 4,0 , 3166,12 , 3183,21 , 2, 0, 1, 6, 7 }, // Norwegian Bokmal/Latin/Svalbard And Jan Mayen Islands - { 86, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Occitan/Latin/France - { 87, 26, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 547,8 , 555,7 , 547,6 , 35,18 , 18,7 , 25,12 , 14586,86 , 14586,86 , 14672,32 , 14586,86 , 14586,86 , 14672,32 , 7622,33 , 7655,54 , 7709,18 , 7622,33 , 7655,54 , 7709,18 , 0,2 , 0,2 , 716,5 , 5,17 , 22,23 , {73,78,82}, 121,1 , 9939,43 , 4,4 , 4,0 , 3204,5 , 3209,4 , 2, 1, 7, 7, 7 }, // Oriya/Oriya/India - { 88, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 46,6 , 46,6 , 562,9 , 571,8 , 394,8 , 1036,20 , 55,4 , 430,11 , 14704,68 , 14772,69 , 158,27 , 14841,69 , 14841,69 , 14910,24 , 7727,39 , 7727,39 , 85,14 , 7727,39 , 7727,39 , 85,14 , 205,4 , 195,4 , 721,5 , 5,17 , 22,23 , {65,70,78}, 256,1 , 9982,25 , 13,5 , 4,0 , 3213,4 , 3217,9 , 0, 0, 6, 4, 5 }, // Pashto/Arabic/Afghanistan - { 88, 1, 163, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 46,6 , 46,6 , 562,9 , 571,8 , 394,8 , 1036,20 , 18,7 , 25,12 , 14704,68 , 14772,69 , 158,27 , 14841,69 , 14841,69 , 14910,24 , 7727,39 , 7727,39 , 85,14 , 7727,39 , 7727,39 , 85,14 , 205,4 , 195,4 , 721,5 , 5,17 , 22,23 , {80,75,82}, 175,2 , 10007,52 , 13,5 , 4,0 , 3213,4 , 3226,7 , 2, 0, 7, 6, 7 }, // Pashto/Arabic/Pakistan - { 89, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 579,7 , 579,7 , 586,8 , 594,7 , 394,8 , 97,16 , 55,4 , 430,11 , 14934,70 , 14934,70 , 15004,24 , 15028,74 , 15028,74 , 15004,24 , 7766,49 , 7766,49 , 7815,14 , 7766,49 , 7766,49 , 7815,14 , 209,9 , 199,8 , 726,4 , 730,44 , 22,23 , {73,82,82}, 257,4 , 10059,37 , 78,5 , 4,0 , 3233,5 , 3238,5 , 0, 0, 6, 5, 5 }, // Persian/Arabic/Iran - { 89, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 579,7 , 579,7 , 586,8 , 594,7 , 394,8 , 97,16 , 55,4 , 430,11 , 15102,68 , 15102,68 , 14910,24 , 15170,62 , 15102,68 , 14910,24 , 7766,49 , 7766,49 , 7815,14 , 7766,49 , 7766,49 , 7815,14 , 209,9 , 199,8 , 726,4 , 730,44 , 22,23 , {65,70,78}, 256,1 , 10096,55 , 8,5 , 4,0 , 3243,3 , 3217,9 , 0, 0, 6, 4, 5 }, // Persian/Arabic/Afghanistan - { 90, 7, 172, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 163,7 , 163,7 , 495,10 , 10,17 , 37,5 , 8,10 , 15232,48 , 15280,97 , 15377,24 , 15232,48 , 15401,99 , 15500,24 , 7829,34 , 7863,59 , 7922,14 , 7829,34 , 7863,59 , 7936,14 , 0,2 , 0,2 , 303,5 , 5,17 , 22,23 , {80,76,78}, 261,2 , 10151,77 , 13,5 , 4,0 , 3246,6 , 3252,6 , 2, 1, 1, 6, 7 }, // Polish/Latin/Poland - { 91, 7, 30, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 254,7 , 254,7 , 119,10 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 7950,28 , 7978,79 , 8057,14 , 7950,28 , 7978,79 , 8057,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {66,82,76}, 263,2 , 10228,54 , 8,5 , 4,0 , 3258,9 , 3267,6 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Brazil - { 91, 7, 6, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {65,79,65}, 243,2 , 10282,54 , 13,5 , 4,0 , 3258,9 , 3273,6 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Angola - { 91, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {67,86,69}, 265,1 , 10336,69 , 13,5 , 4,0 , 3258,9 , 3279,10 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Cape Verde - { 91, 7, 62, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 10405,81 , 13,5 , 4,0 , 3258,9 , 3289,11 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/East Timor - { 91, 7, 66, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {88,65,70}, 32,4 , 10486,59 , 13,5 , 4,0 , 3258,9 , 3300,16 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/Equatorial Guinea - { 91, 7, 92, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {88,79,70}, 206,3 , 10545,62 , 13,5 , 4,0 , 3258,9 , 3316,12 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/Guinea Bissau - { 91, 7, 125, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3258,9 , 3328,10 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Luxembourg - { 91, 7, 126, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 18,7 , 25,12 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {77,79,80}, 134,4 , 10607,53 , 13,5 , 4,0 , 3258,9 , 3338,19 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Macau - { 91, 7, 146, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {77,90,78}, 266,3 , 10660,66 , 13,5 , 4,0 , 3258,9 , 3357,10 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Mozambique - { 91, 7, 173, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3367,17 , 3384,8 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Portugal - { 91, 7, 185, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {83,84,78}, 269,2 , 10726,92 , 13,5 , 4,0 , 3258,9 , 3392,19 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Sao Tome And Principe - { 91, 7, 206, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 15524,48 , 15572,89 , 134,24 , 15524,48 , 15572,89 , 134,24 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {67,72,70}, 225,3 , 10818,45 , 13,5 , 4,0 , 3258,9 , 3411,5 , 2, 0, 1, 6, 7 }, // Portuguese/Latin/Switzerland - { 92, 4, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 601,9 , 601,9 , 269,6 , 10,17 , 18,7 , 25,12 , 15661,50 , 15711,68 , 15779,28 , 15661,50 , 15711,68 , 15779,28 , 8120,36 , 8156,57 , 8213,23 , 8120,36 , 8156,57 , 8213,23 , 226,6 , 215,6 , 774,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 10863,39 , 4,4 , 4,0 , 3416,6 , 3422,4 , 2, 1, 7, 7, 7 }, // Punjabi/Gurmukhi/India - { 92, 1, 163, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 553,18 , 18,7 , 25,12 , 15807,67 , 15807,67 , 158,27 , 15807,67 , 15807,67 , 158,27 , 8236,37 , 8236,37 , 85,14 , 8236,37 , 8236,37 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,75,82}, 271,1 , 10902,13 , 41,6 , 4,0 , 3426,6 , 3226,7 , 2, 0, 7, 6, 7 }, // Punjabi/Arabic/Pakistan - { 93, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 192,18 , 37,5 , 8,10 , 15874,48 , 15922,88 , 158,27 , 15874,48 , 15922,88 , 158,27 , 8273,28 , 8301,53 , 8354,14 , 8273,28 , 8301,53 , 8354,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {80,69,78}, 272,2 , 0,7 , 8,5 , 4,0 , 3432,8 , 3440,4 , 2, 1, 7, 6, 7 }, // Quechua/Latin/Peru - { 93, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 192,18 , 37,5 , 8,10 , 15874,48 , 15922,88 , 158,27 , 15874,48 , 15922,88 , 158,27 , 8273,28 , 8301,53 , 8354,14 , 8273,28 , 8301,53 , 8354,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {66,79,66}, 274,2 , 0,7 , 8,5 , 4,0 , 3432,8 , 3444,7 , 2, 1, 1, 6, 7 }, // Quechua/Latin/Bolivia - { 93, 7, 63, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 192,18 , 37,5 , 8,10 , 15874,48 , 15922,88 , 158,27 , 15874,48 , 15922,88 , 158,27 , 8273,28 , 8301,53 , 8354,14 , 8273,28 , 8301,53 , 8354,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 0,7 , 8,5 , 4,0 , 3432,8 , 3451,7 , 2, 1, 1, 6, 7 }, // Quechua/Latin/Ecuador - { 94, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 339,8 , 1056,28 , 37,5 , 8,10 , 16010,67 , 16077,92 , 16169,24 , 16010,67 , 16077,92 , 16169,24 , 8368,23 , 8391,56 , 8447,14 , 8368,23 , 8391,56 , 8447,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,72,70}, 225,3 , 10915,46 , 13,5 , 4,0 , 3458,9 , 3467,6 , 2, 0, 1, 6, 7 }, // Romansh/Latin/Switzerland - { 95, 7, 177, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 610,8 , 610,8 , 495,10 , 10,17 , 37,5 , 8,10 , 16193,60 , 16253,98 , 16351,24 , 16193,60 , 16253,98 , 16351,24 , 8461,34 , 8495,48 , 3080,14 , 8461,34 , 8495,48 , 3080,14 , 64,4 , 61,4 , 778,4 , 5,17 , 22,23 , {82,79,78}, 276,3 , 10961,57 , 13,5 , 4,0 , 3473,6 , 3479,7 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Romania - { 95, 7, 141, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 610,8 , 610,8 , 495,10 , 10,17 , 37,5 , 8,10 , 16193,60 , 16253,98 , 16351,24 , 16193,60 , 16253,98 , 16351,24 , 8543,28 , 8495,48 , 8571,16 , 8543,28 , 8495,48 , 8571,16 , 64,4 , 61,4 , 778,4 , 5,17 , 22,23 , {77,68,76}, 279,1 , 11018,69 , 13,5 , 4,0 , 3473,6 , 3486,17 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Moldova - { 96, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 16375,62 , 11141,80 , 11058,24 , 16437,62 , 16499,82 , 11058,24 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {82,85,66}, 123,1 , 11087,89 , 13,5 , 4,0 , 3503,7 , 3510,6 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Russia - { 96, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 16375,62 , 11141,80 , 11058,24 , 16437,62 , 16499,82 , 11058,24 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {66,89,78}, 0,2 , 11176,94 , 13,5 , 4,0 , 3503,7 , 511,8 , 2, 0, 1, 6, 7 }, // Russian/Cyrillic/Belarus - { 96, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 16375,62 , 11141,80 , 11058,24 , 16437,62 , 16499,82 , 11058,24 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {75,90,84}, 236,1 , 11270,83 , 13,5 , 4,0 , 3503,7 , 3516,9 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kazakhstan - { 96, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 16375,62 , 11141,80 , 11058,24 , 16437,62 , 16499,82 , 11058,24 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {75,71,83}, 237,3 , 11353,82 , 13,5 , 4,0 , 3503,7 , 3525,8 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kyrgyzstan - { 96, 2, 141, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 16375,62 , 11141,80 , 11058,24 , 16437,62 , 16499,82 , 11058,24 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {77,68,76}, 279,1 , 11435,79 , 13,5 , 4,0 , 3503,7 , 3533,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Moldova - { 96, 2, 222, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 16375,62 , 11141,80 , 11058,24 , 16437,62 , 16499,82 , 11058,24 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {85,65,72}, 280,1 , 11514,92 , 13,5 , 4,0 , 3503,7 , 3540,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Ukraine - { 98, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 16581,48 , 16629,91 , 16720,24 , 16581,48 , 16629,91 , 16720,24 , 8684,28 , 8712,66 , 8778,14 , 8684,28 , 8712,66 , 8778,14 , 232,2 , 221,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 11606,25 , 4,4 , 36,5 , 3547,5 , 3552,22 , 0, 0, 1, 6, 7 }, // Sango/Latin/Central African Republic - { 99, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 7, 7 }, // Sanskrit/Devanagari/India - { 100, 2, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 16744,48 , 16792,81 , 12698,24 , 16744,48 , 16792,81 , 12698,24 , 8792,28 , 8820,52 , 8872,14 , 8792,28 , 8820,52 , 8872,14 , 234,9 , 223,8 , 782,7 , 5,17 , 22,23 , {82,83,68}, 0,0 , 11631,58 , 13,5 , 4,0 , 3574,6 , 3580,6 , 0, 0, 1, 6, 7 }, // Serbian/Cyrillic/Serbia - { 100, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 16873,50 , 16923,81 , 9742,24 , 17004,48 , 16923,81 , 9742,24 , 8886,26 , 8912,57 , 2102,14 , 8886,26 , 8912,57 , 2102,14 , 243,11 , 231,8 , 296,7 , 5,17 , 22,23 , {66,65,77}, 140,2 , 11689,174 , 13,5 , 4,0 , 3586,6 , 630,19 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Bosnia And Herzegowina - { 100, 7, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 17052,58 , 16923,81 , 9742,24 , 17052,58 , 16923,81 , 9742,24 , 8969,33 , 8912,57 , 2102,14 , 8969,33 , 8912,57 , 2102,14 , 243,11 , 231,8 , 296,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 11863,23 , 13,5 , 4,0 , 3586,6 , 3592,9 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Montenegro - { 100, 7, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 17004,48 , 16923,81 , 9742,24 , 17004,48 , 16923,81 , 9742,24 , 9002,28 , 9030,54 , 2102,14 , 9002,28 , 9030,54 , 2102,14 , 254,9 , 231,8 , 296,7 , 5,17 , 22,23 , {82,83,68}, 0,0 , 11886,58 , 13,5 , 4,0 , 3586,6 , 3601,6 , 0, 0, 1, 6, 7 }, // Serbian/Latin/Serbia - { 100, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 17110,50 , 16792,81 , 12698,24 , 16744,48 , 16792,81 , 12698,24 , 9084,26 , 9110,55 , 8872,14 , 9084,26 , 9110,55 , 8872,14 , 263,11 , 223,8 , 782,7 , 5,17 , 22,23 , {66,65,77}, 281,2 , 11944,174 , 13,5 , 4,0 , 3574,6 , 3607,19 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Bosnia And Herzegowina - { 100, 2, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 17110,50 , 16792,81 , 12698,24 , 17110,50 , 16792,81 , 12698,24 , 8792,28 , 9110,55 , 8872,14 , 8792,28 , 9110,55 , 8872,14 , 263,11 , 223,8 , 782,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12118,23 , 13,5 , 4,0 , 3574,6 , 3626,9 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Montenegro - { 100, 2, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 17110,50 , 16792,81 , 12698,24 , 17110,50 , 16792,81 , 12698,24 , 8792,28 , 8820,52 , 8872,14 , 8792,28 , 8820,52 , 8872,14 , 234,9 , 223,8 , 782,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12118,23 , 13,5 , 4,0 , 3574,6 , 3635,6 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Kosovo - { 100, 7, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 17052,58 , 16923,81 , 9742,24 , 17052,58 , 16923,81 , 9742,24 , 8969,33 , 9030,54 , 2102,14 , 8969,33 , 9030,54 , 2102,14 , 254,9 , 231,8 , 296,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 11863,23 , 13,5 , 4,0 , 3586,6 , 3641,6 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Kosovo - { 101, 2, 81, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 618,9 , 618,9 , 156,8 , 1111,23 , 37,5 , 8,10 , 17160,63 , 17223,82 , 11058,24 , 17305,60 , 17365,86 , 11058,24 , 9165,28 , 9193,61 , 9254,14 , 9268,28 , 9296,61 , 9254,14 , 274,15 , 239,15 , 45,4 , 5,17 , 22,23 , {71,69,76}, 224,1 , 12141,17 , 8,5 , 4,0 , 3647,4 , 3651,11 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Georgia - { 101, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 618,9 , 618,9 , 156,8 , 1111,23 , 37,5 , 8,10 , 17160,63 , 17223,82 , 11058,24 , 17305,60 , 17365,86 , 11058,24 , 9165,28 , 9193,61 , 9254,14 , 9268,28 , 9296,61 , 9254,14 , 274,15 , 239,15 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 12158,17 , 8,5 , 4,0 , 3647,4 , 3662,6 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Russia - { 102, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Southern Sotho/Latin/South Africa - { 103, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Tswana/Latin/South Africa - { 104, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 17451,48 , 17499,100 , 17599,24 , 17451,48 , 17499,100 , 17599,24 , 9357,28 , 9385,55 , 9440,14 , 9357,28 , 9385,55 , 9440,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 155,3 , 12175,22 , 4,4 , 4,0 , 3668,8 , 1820,8 , 2, 1, 7, 6, 7 }, // Shona/Latin/Zimbabwe - { 105, 1, 163, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 627,8 , 635,7 , 53,10 , 63,17 , 18,7 , 25,12 , 17623,72 , 17623,72 , 134,24 , 17623,72 , 17623,72 , 134,24 , 9454,35 , 9454,35 , 9489,31 , 9454,35 , 9454,35 , 9489,31 , 289,11 , 254,11 , 789,6 , 795,61 , 22,23 , {80,75,82}, 175,2 , 12197,43 , 8,5 , 4,0 , 3676,4 , 3680,7 , 2, 0, 7, 6, 7 }, // Sindhi/Arabic/Pakistan - { 106, 32, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 642,9 , 651,8 , 53,10 , 63,17 , 228,5 , 233,10 , 17695,59 , 17754,96 , 17850,32 , 17882,61 , 17754,96 , 17850,32 , 9520,39 , 9559,62 , 9621,19 , 9520,39 , 9559,62 , 9621,19 , 300,5 , 265,4 , 856,5 , 861,42 , 22,23 , {76,75,82}, 283,3 , 12240,58 , 4,4 , 4,0 , 3687,5 , 3692,11 , 2, 1, 1, 6, 7 }, // Sinhala/Sinhala/Sri Lanka - { 107, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Swati/Latin/South Africa - { 108, 7, 191, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 659,7 , 1134,10 , 478,17 , 55,4 , 59,9 , 17943,48 , 17991,82 , 9742,24 , 17943,48 , 18073,89 , 9742,24 , 9640,21 , 9661,52 , 9713,14 , 9640,21 , 9661,52 , 9713,14 , 0,2 , 0,2 , 303,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12298,26 , 13,5 , 4,0 , 3703,10 , 3713,9 , 2, 1, 1, 6, 7 }, // Slovak/Latin/Slovakia - { 109, 7, 192, 44, 46, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 666,8 , 666,8 , 1144,9 , 1153,19 , 37,5 , 8,10 , 18162,59 , 18221,86 , 9742,24 , 18162,59 , 18221,86 , 9742,24 , 9727,35 , 9762,52 , 9814,14 , 9727,35 , 9762,52 , 9814,14 , 60,4 , 269,4 , 54,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12324,28 , 13,5 , 4,0 , 3722,11 , 3733,9 , 2, 1, 1, 6, 7 }, // Slovenian/Latin/Slovenia - { 110, 7, 194, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 18,7 , 25,12 , 18307,48 , 18355,92 , 18447,24 , 18307,48 , 18471,189 , 18447,24 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {83,79,83}, 94,1 , 12352,27 , 4,4 , 4,0 , 3742,8 , 3750,10 , 0, 0, 1, 6, 7 }, // Somali/Latin/Somalia - { 110, 7, 59, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 18,7 , 25,12 , 18307,48 , 18355,92 , 18447,24 , 18307,48 , 18471,189 , 18447,24 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {68,74,70}, 38,3 , 12379,50 , 4,4 , 4,0 , 3742,8 , 3760,7 , 0, 0, 6, 6, 7 }, // Somali/Latin/Djibouti - { 110, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 18,7 , 25,12 , 18307,48 , 18355,92 , 18447,24 , 18307,48 , 18471,189 , 18447,24 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {69,84,66}, 0,2 , 12429,52 , 4,4 , 4,0 , 3742,8 , 3767,8 , 2, 1, 7, 6, 7 }, // Somali/Latin/Ethiopia - { 110, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 37,5 , 8,10 , 18307,48 , 18355,92 , 18447,24 , 18307,48 , 18471,189 , 18447,24 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {75,69,83}, 2,3 , 12481,52 , 4,4 , 4,0 , 3742,8 , 1192,5 , 2, 1, 7, 6, 7 }, // Somali/Latin/Kenya - { 111, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3775,17 , 2432,6 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Spain - { 111, 7, 10, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {65,82,83}, 6,1 , 12533,51 , 8,5 , 4,0 , 3792,7 , 3799,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Argentina - { 111, 7, 22, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {66,90,68}, 6,1 , 12584,52 , 4,4 , 4,0 , 3792,7 , 3808,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Belize - { 111, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {66,79,66}, 274,2 , 12636,35 , 4,4 , 4,0 , 3792,7 , 3444,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Bolivia - { 111, 7, 30, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {66,82,76}, 263,2 , 12671,52 , 4,4 , 4,0 , 3792,7 , 3267,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Brazil - { 111, 7, 43, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 339,8 , 669,27 , 37,5 , 8,10 , 18660,61 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {67,76,80}, 6,1 , 12723,45 , 4,4 , 36,5 , 3792,7 , 3814,5 , 0, 0, 1, 6, 7 }, // Spanish/Latin/Chile - { 111, 7, 47, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 571,7 , 669,27 , 18,7 , 25,12 , 18660,61 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 4769,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {67,79,80}, 6,1 , 12768,54 , 8,5 , 4,0 , 3792,7 , 3819,8 , 2, 0, 7, 6, 7 }, // Spanish/Latin/Colombia - { 111, 7, 52, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {67,82,67}, 286,1 , 12822,67 , 4,4 , 4,0 , 3792,7 , 3827,10 , 2, 0, 1, 6, 7 }, // Spanish/Latin/Costa Rica - { 111, 7, 55, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {67,85,80}, 6,1 , 12889,42 , 4,4 , 4,0 , 3792,7 , 3837,4 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Cuba - { 111, 7, 61, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 18,7 , 25,12 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {68,79,80}, 287,3 , 12931,54 , 4,4 , 83,6 , 3792,7 , 3841,20 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Dominican Republic - { 111, 7, 63, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 4,4 , 36,5 , 3792,7 , 3451,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Ecuador - { 111, 7, 65, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 4,4 , 4,0 , 3792,7 , 3861,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/El Salvador - { 111, 7, 66, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {88,65,70}, 32,4 , 13055,92 , 4,4 , 4,0 , 3792,7 , 3872,17 , 0, 0, 1, 6, 7 }, // Spanish/Latin/Equatorial Guinea - { 111, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 571,7 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {71,84,81}, 290,1 , 13147,30 , 18,5 , 4,0 , 3792,7 , 3889,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Guatemala - { 111, 7, 96, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 1191,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {72,78,76}, 279,1 , 13177,60 , 4,4 , 4,0 , 3792,7 , 3898,8 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Honduras - { 111, 7, 139, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 27,8 , 669,27 , 55,4 , 59,9 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {77,88,78}, 6,1 , 13237,48 , 47,6 , 4,0 , 3906,17 , 3923,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Mexico - { 111, 7, 155, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {78,73,79}, 291,2 , 13285,69 , 4,4 , 4,0 , 3792,7 , 3929,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Nicaragua - { 111, 7, 166, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 1218,8 , 669,27 , 18,7 , 25,12 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,65,66}, 293,3 , 13354,54 , 4,4 , 4,0 , 3792,7 , 3938,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Panama - { 111, 7, 168, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,89,71}, 296,3 , 13408,61 , 8,5 , 23,6 , 3792,7 , 3944,8 , 0, 0, 7, 6, 7 }, // Spanish/Latin/Paraguay - { 111, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 571,7 , 669,27 , 37,5 , 8,10 , 18894,60 , 15922,88 , 18810,24 , 18954,60 , 19014,88 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,69,78}, 272,2 , 13469,43 , 8,5 , 4,0 , 3792,7 , 3440,4 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Peru - { 111, 7, 170, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 18,7 , 25,12 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,72,80}, 178,1 , 13512,48 , 13,5 , 4,0 , 3792,7 , 3952,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Philippines - { 111, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 1218,8 , 669,27 , 18,7 , 25,12 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 4,4 , 4,0 , 3792,7 , 1447,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Puerto Rico - { 111, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 415,8 , 669,27 , 18,7 , 25,12 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 89,7 , 4,0 , 3792,7 , 3961,14 , 2, 1, 7, 6, 7 }, // Spanish/Latin/United States - { 111, 7, 227, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18894,60 , 15922,88 , 18810,24 , 18954,60 , 19014,88 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,89,85}, 6,1 , 13560,48 , 8,5 , 4,0 , 3792,7 , 3975,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Uruguay - { 111, 7, 231, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 18,7 , 25,12 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {86,69,83}, 299,4 , 13608,58 , 4,4 , 36,5 , 3792,7 , 3982,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Venezuela - { 111, 7, 238, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3792,7 , 3991,8 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Canary Islands - { 111, 7, 246, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 18834,60 , 18721,89 , 18810,24 , 18834,60 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 4,4 , 4,0 , 3999,23 , 4022,13 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Latin America - { 111, 7, 250, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 18660,61 , 18721,89 , 18810,24 , 18660,61 , 18721,89 , 18810,24 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3792,7 , 4035,15 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Ceuta And Melilla - { 113, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 19150,84 , 134,24 , 19102,48 , 19150,84 , 134,24 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {84,90,83}, 191,3 , 13666,67 , 8,5 , 4,0 , 4050,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Swahili/Latin/Tanzania - { 113, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 19150,84 , 134,24 , 19102,48 , 19150,84 , 134,24 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {67,68,70}, 209,2 , 13733,55 , 8,5 , 4,0 , 4050,9 , 4059,32 , 2, 1, 1, 6, 7 }, // Swahili/Latin/Congo Kinshasa - { 113, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 19150,84 , 134,24 , 19102,48 , 19150,84 , 134,24 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {75,69,83}, 2,3 , 13788,58 , 8,5 , 4,0 , 4050,9 , 1192,5 , 2, 1, 7, 6, 7 }, // Swahili/Latin/Kenya - { 113, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 19150,84 , 134,24 , 19102,48 , 19150,84 , 134,24 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {85,71,88}, 196,3 , 13846,61 , 8,5 , 4,0 , 4050,9 , 1690,6 , 0, 0, 1, 6, 7 }, // Swahili/Latin/Uganda - { 114, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 698,9 , 698,9 , 53,10 , 97,16 , 228,5 , 441,16 , 19234,59 , 19293,86 , 134,24 , 19234,59 , 19293,86 , 134,24 , 10070,29 , 10099,50 , 2293,14 , 10070,29 , 10099,50 , 2293,14 , 307,2 , 275,2 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 13907,45 , 13,5 , 4,0 , 4091,7 , 4098,7 , 2, 0, 1, 6, 7 }, // Swedish/Latin/Sweden - { 114, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 698,9 , 698,9 , 528,10 , 97,16 , 228,5 , 441,16 , 19234,59 , 19293,86 , 134,24 , 19234,59 , 19293,86 , 134,24 , 10070,29 , 10099,50 , 2293,14 , 10070,29 , 10099,50 , 2293,14 , 307,2 , 275,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 4091,7 , 1089,7 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Finland - { 114, 7, 248, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 698,9 , 698,9 , 53,10 , 97,16 , 228,5 , 441,16 , 19234,59 , 19293,86 , 134,24 , 19234,59 , 19293,86 , 134,24 , 10070,29 , 10099,50 , 2293,14 , 10070,29 , 10099,50 , 2293,14 , 307,2 , 275,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 4091,7 , 4105,5 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Aland Islands - { 115, 7, 106, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Sardinian/Latin/Italy - { 116, 2, 209, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 553,18 , 37,5 , 8,10 , 10930,48 , 19379,71 , 11058,24 , 10930,48 , 19379,71 , 11058,24 , 10149,28 , 10177,55 , 10232,14 , 10149,28 , 10177,55 , 10232,14 , 309,7 , 277,7 , 45,4 , 5,17 , 22,23 , {84,74,83}, 303,4 , 13952,19 , 13,5 , 4,0 , 4110,6 , 4116,10 , 2, 1, 1, 6, 7 }, // Tajik/Cyrillic/Tajikistan - { 117, 27, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 382,7 , 457,12 , 19450,58 , 19508,86 , 19594,31 , 19450,58 , 19508,86 , 19594,31 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {73,78,82}, 121,1 , 13971,49 , 8,5 , 4,0 , 4126,5 , 4131,7 , 2, 1, 7, 7, 7 }, // Tamil/Tamil/India - { 117, 27, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 382,7 , 457,12 , 19450,58 , 19508,86 , 19594,31 , 19450,58 , 19508,86 , 19594,31 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {77,89,82}, 173,2 , 14020,61 , 8,5 , 4,0 , 4126,5 , 4138,7 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/Malaysia - { 117, 27, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 382,7 , 457,12 , 19450,58 , 19508,86 , 19594,31 , 19450,58 , 19508,86 , 19594,31 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {83,71,68}, 6,1 , 14081,61 , 8,5 , 4,0 , 4126,5 , 4145,11 , 2, 1, 7, 6, 7 }, // Tamil/Tamil/Singapore - { 117, 27, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 37,5 , 8,10 , 19450,58 , 19508,86 , 19594,31 , 19450,58 , 19508,86 , 19594,31 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {76,75,82}, 307,3 , 14142,49 , 8,5 , 4,0 , 4126,5 , 4156,6 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/Sri Lanka - { 118, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 720,9 , 720,9 , 495,10 , 1226,23 , 55,4 , 59,9 , 19625,62 , 19687,81 , 158,27 , 19625,62 , 19687,81 , 158,27 , 10354,36 , 10390,56 , 10446,14 , 10354,36 , 10390,56 , 10446,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 14191,21 , 0,4 , 4,0 , 4162,5 , 3510,6 , 2, 1, 1, 6, 7 }, // Tatar/Cyrillic/Russia - { 119, 28, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 729,11 , 729,11 , 339,8 , 1249,18 , 18,7 , 25,12 , 19768,62 , 19830,86 , 19916,31 , 19768,62 , 19830,86 , 19916,31 , 10460,32 , 10492,60 , 10552,18 , 10460,32 , 10492,60 , 10552,18 , 0,2 , 0,2 , 984,7 , 991,29 , 22,23 , {73,78,82}, 121,1 , 14212,26 , 4,4 , 4,0 , 4167,6 , 4173,8 , 2, 1, 7, 7, 7 }, // Telugu/Telugu/India - { 120, 30, 211, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 123,5 , 123,5 , 740,8 , 748,7 , 269,6 , 1267,19 , 37,5 , 469,28 , 19947,63 , 20010,98 , 19947,63 , 19947,63 , 20010,98 , 19947,63 , 10570,23 , 10593,68 , 10661,16 , 10570,23 , 10593,68 , 10661,16 , 324,10 , 292,10 , 1020,4 , 5,17 , 22,23 , {84,72,66}, 310,1 , 14238,16 , 4,4 , 4,0 , 4181,3 , 4181,3 , 2, 1, 7, 6, 7 }, // Thai/Thai/Thailand - { 121, 31, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1286,23 , 18,7 , 25,12 , 2675,63 , 20108,159 , 158,27 , 2675,63 , 20267,147 , 158,27 , 10677,51 , 10728,79 , 10807,27 , 10677,51 , 10728,79 , 10807,27 , 334,7 , 302,8 , 45,4 , 5,17 , 22,23 , {67,78,89}, 311,1 , 14254,13 , 8,5 , 4,0 , 4184,8 , 4192,6 , 2, 1, 7, 6, 7 }, // Tibetan/Tibetan/China - { 121, 31, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1286,23 , 18,7 , 25,12 , 2675,63 , 20108,159 , 158,27 , 2675,63 , 20267,147 , 158,27 , 10677,51 , 10728,79 , 10807,27 , 10677,51 , 10728,79 , 10807,27 , 334,7 , 302,8 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 14267,19 , 8,5 , 4,0 , 4184,8 , 4198,7 , 2, 1, 7, 7, 7 }, // Tibetan/Tibetan/India - { 122, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1309,23 , 18,7 , 25,12 , 20414,36 , 20450,54 , 20504,24 , 20414,36 , 20450,54 , 20504,24 , 10834,21 , 10855,29 , 10884,14 , 10834,21 , 10855,29 , 10898,14 , 341,7 , 310,7 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,2 , 14286,16 , 4,4 , 4,0 , 4205,4 , 92,5 , 2, 1, 7, 6, 7 }, // Tigrinya/Ethiopic/Ethiopia - { 122, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1309,23 , 18,7 , 25,12 , 20414,36 , 20450,54 , 20504,24 , 20414,36 , 20450,54 , 20504,24 , 10834,21 , 10855,29 , 10898,14 , 10834,21 , 10855,29 , 10898,14 , 341,7 , 310,7 , 45,4 , 5,17 , 22,23 , {69,82,78}, 41,3 , 0,7 , 4,4 , 4,0 , 4205,4 , 4209,4 , 2, 1, 1, 6, 7 }, // Tigrinya/Ethiopic/Eritrea - { 123, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 755,8 , 755,8 , 755,8 , 755,8 , 269,6 , 97,16 , 18,7 , 25,12 , 20528,51 , 20579,87 , 20666,24 , 20528,51 , 20579,87 , 20666,24 , 10912,29 , 10941,60 , 11001,14 , 10912,29 , 10941,60 , 11001,14 , 348,10 , 317,6 , 1024,5 , 1029,59 , 1088,65 , {84,79,80}, 194,2 , 14302,41 , 13,5 , 4,0 , 4213,13 , 1640,5 , 2, 1, 1, 6, 7 }, // Tongan/Latin/Tonga - { 124, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Tsonga/Latin/South Africa - { 125, 7, 217, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 763,8 , 763,8 , 1332,9 , 1341,16 , 37,5 , 8,10 , 20690,48 , 20738,75 , 20813,24 , 20690,48 , 20738,75 , 20813,24 , 11015,28 , 11043,54 , 11097,14 , 11015,28 , 11043,54 , 11097,14 , 358,2 , 323,2 , 199,4 , 5,17 , 22,23 , {84,82,89}, 241,1 , 14343,40 , 4,4 , 4,0 , 4226,6 , 4232,7 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Turkey - { 125, 7, 56, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 763,8 , 763,8 , 1332,9 , 1341,16 , 18,7 , 25,12 , 20690,48 , 20738,75 , 20813,24 , 20690,48 , 20738,75 , 20813,24 , 11015,28 , 11043,54 , 11097,14 , 11015,28 , 11043,54 , 11097,14 , 358,2 , 323,2 , 199,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 4,4 , 4,0 , 4226,6 , 4239,6 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Cyprus - { 126, 7, 218, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8220, 8221, 0,6 , 0,6 , 771,8 , 771,8 , 495,10 , 1341,16 , 37,5 , 8,10 , 20837,50 , 20887,77 , 20964,24 , 20988,51 , 21039,77 , 20964,24 , 11111,28 , 11139,54 , 11193,14 , 11207,28 , 11235,54 , 11193,14 , 360,13 , 325,14 , 1153,4 , 5,17 , 22,23 , {84,77,84}, 312,3 , 14383,49 , 13,5 , 4,0 , 4245,12 , 4257,12 , 2, 1, 1, 6, 7 }, // Turkmen/Latin/Turkmenistan - { 128, 1, 44, 46, 44, 59, 37, 48, 45, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 200,10 , 210,9 , 53,10 , 1357,17 , 18,7 , 25,12 , 21116,84 , 21116,84 , 158,27 , 21116,84 , 21116,84 , 158,27 , 11289,21 , 11310,55 , 11365,14 , 11289,21 , 11310,55 , 11365,14 , 373,12 , 339,12 , 45,4 , 5,17 , 22,23 , {67,78,89}, 133,1 , 14432,40 , 4,4 , 4,0 , 4269,8 , 4277,5 , 2, 1, 7, 6, 7 }, // Uighur/Arabic/China - { 129, 2, 222, 44, 160, 59, 37, 48, 45, 43, 1077, 171, 187, 8222, 8220, 0,6 , 0,6 , 138,7 , 138,7 , 156,8 , 1374,22 , 37,5 , 8,10 , 21200,48 , 21248,95 , 21343,24 , 21367,67 , 21434,87 , 21521,24 , 1427,21 , 11379,56 , 11435,14 , 1427,21 , 11379,56 , 11435,14 , 385,2 , 351,2 , 1157,5 , 680,17 , 22,23 , {85,65,72}, 280,1 , 14472,49 , 13,5 , 4,0 , 4282,10 , 4292,7 , 2, 1, 1, 6, 7 }, // Ukrainian/Cyrillic/Ukraine - { 130, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 779,10 , 789,9 , 269,6 , 1396,18 , 18,7 , 25,12 , 21545,68 , 21545,68 , 134,24 , 21545,68 , 21545,68 , 134,24 , 11449,36 , 11449,36 , 85,14 , 11449,36 , 11449,36 , 85,14 , 0,2 , 0,2 , 1162,4 , 1166,20 , 22,23 , {80,75,82}, 175,2 , 14521,49 , 4,4 , 4,0 , 4299,4 , 3226,7 , 2, 0, 7, 6, 7 }, // Urdu/Arabic/Pakistan - { 130, 1, 100, 1643, 1644, 59, 37, 1776, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 798,6 , 798,6 , 269,6 , 1396,18 , 18,7 , 25,12 , 21545,68 , 21545,68 , 134,24 , 21545,68 , 21545,68 , 134,24 , 11449,36 , 11449,36 , 85,14 , 11449,36 , 11449,36 , 85,14 , 0,2 , 0,2 , 1162,4 , 1166,20 , 22,23 , {73,78,82}, 121,1 , 14570,42 , 8,5 , 4,0 , 4299,4 , 4303,5 , 2, 1, 7, 7, 7 }, // Urdu/Arabic/India - { 131, 7, 228, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8217, 8216, 0,6 , 0,6 , 804,8 , 804,8 , 27,8 , 1414,18 , 37,5 , 430,11 , 21613,48 , 21661,75 , 21736,24 , 21760,48 , 21808,75 , 21736,24 , 11485,32 , 11517,61 , 11578,14 , 11485,32 , 11517,61 , 11578,14 , 387,2 , 353,2 , 199,4 , 5,17 , 22,23 , {85,90,83}, 315,4 , 14612,58 , 13,5 , 4,0 , 4308,6 , 4314,11 , 2, 0, 1, 6, 7 }, // Uzbek/Latin/Uzbekistan - { 131, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 394,8 , 1432,33 , 55,4 , 430,11 , 21883,47 , 15102,68 , 158,27 , 21883,47 , 15102,68 , 158,27 , 11592,21 , 7766,49 , 85,14 , 11592,21 , 7766,49 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {65,70,78}, 256,1 , 14670,13 , 13,5 , 4,0 , 4325,6 , 3217,9 , 0, 0, 6, 4, 5 }, // Uzbek/Arabic/Afghanistan - { 131, 2, 228, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 696,19 , 37,5 , 87,12 , 21930,48 , 21978,71 , 11058,24 , 21930,48 , 21978,71 , 11058,24 , 11613,28 , 11641,53 , 11694,14 , 11613,28 , 11641,53 , 11694,14 , 389,2 , 355,2 , 45,4 , 5,17 , 22,23 , {85,90,83}, 319,3 , 14683,49 , 13,5 , 4,0 , 4331,7 , 4338,10 , 2, 0, 1, 6, 7 }, // Uzbek/Cyrillic/Uzbekistan - { 132, 7, 232, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 812,8 , 812,8 , 119,10 , 192,18 , 37,5 , 8,10 , 22049,75 , 22124,99 , 158,27 , 22223,75 , 22298,99 , 158,27 , 11708,33 , 11741,55 , 11796,21 , 11708,33 , 11741,55 , 11796,21 , 391,2 , 357,2 , 45,4 , 5,17 , 22,23 , {86,78,68}, 322,1 , 14732,33 , 13,5 , 4,0 , 4348,10 , 4358,8 , 0, 0, 1, 6, 7 }, // Vietnamese/Latin/Vietnam - { 133, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1465,23 , 37,5 , 8,10 , 22397,48 , 22445,74 , 22519,24 , 22543,48 , 22445,74 , 22519,24 , 11817,21 , 11838,43 , 11881,14 , 11895,28 , 11838,43 , 11881,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 4366,7 , 0,0 , 2, 1, 1, 6, 7 }, // Volapuk/Latin/World - { 134, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 820,11 , 831,10 , 27,8 , 10,17 , 37,5 , 8,10 , 22591,52 , 22643,87 , 22730,26 , 22756,59 , 22643,87 , 22730,26 , 11923,29 , 11952,77 , 12029,15 , 12044,30 , 11952,77 , 12029,15 , 393,2 , 359,2 , 1186,7 , 5,17 , 22,23 , {71,66,80}, 119,1 , 14765,92 , 4,4 , 4,0 , 4373,7 , 4380,16 , 2, 1, 1, 6, 7 }, // Welsh/Latin/United Kingdom - { 135, 7, 187, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 528,10 , 1488,17 , 37,5 , 8,10 , 22815,47 , 22862,84 , 158,27 , 22815,47 , 22862,84 , 158,27 , 12074,28 , 12102,50 , 12074,28 , 12074,28 , 12102,50 , 12074,28 , 395,3 , 361,3 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 14857,65 , 8,5 , 4,0 , 4396,5 , 4401,8 , 0, 0, 1, 6, 7 }, // Wolof/Latin/Senegal - { 136, 7, 195, 46, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 22946,48 , 22994,91 , 158,27 , 22946,48 , 22994,91 , 158,27 , 12152,28 , 12180,61 , 85,14 , 12152,28 , 12180,61 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 14922,79 , 4,4 , 4,0 , 4409,8 , 4417,15 , 2, 1, 7, 6, 7 }, // Xhosa/Latin/South Africa - { 137, 18, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 841,9 , 841,9 , 27,8 , 1505,19 , 37,5 , 8,10 , 23085,58 , 23143,92 , 158,27 , 23143,92 , 23143,92 , 158,27 , 12241,54 , 12241,54 , 85,14 , 12241,54 , 12241,54 , 85,14 , 398,11 , 364,10 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 41,6 , 4,0 , 4432,6 , 4438,5 , 2, 1, 1, 6, 7 }, // Yiddish/Hebrew/World - { 138, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 1524,16 , 497,3 , 8,10 , 23235,40 , 23275,73 , 23348,27 , 23375,55 , 23430,121 , 23348,27 , 12295,33 , 12328,44 , 12372,14 , 12295,33 , 12386,69 , 12372,14 , 409,5 , 374,5 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 15001,35 , 4,4 , 4,0 , 4443,10 , 4453,19 , 2, 1, 1, 6, 7 }, // Yoruba/Latin/Nigeria - { 138, 7, 23, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 1524,16 , 497,3 , 8,10 , 23551,41 , 23592,74 , 23666,27 , 23693,56 , 23749,134 , 23666,27 , 12455,33 , 12488,44 , 12532,14 , 12455,33 , 12546,69 , 12532,14 , 414,5 , 379,5 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15036,34 , 4,4 , 4,0 , 4443,10 , 4472,16 , 0, 0, 1, 6, 7 }, // Yoruba/Latin/Benin - { 140, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 850,9 , 859,8 , 547,6 , 35,18 , 37,5 , 8,10 , 23883,48 , 23931,91 , 134,24 , 23883,48 , 23931,91 , 24022,24 , 12615,28 , 12643,74 , 12717,14 , 12615,28 , 12643,74 , 12717,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 15070,67 , 4,4 , 4,0 , 4488,7 , 4495,17 , 2, 1, 7, 6, 7 }, // Zulu/Latin/South Africa - { 141, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 478,17 , 37,5 , 441,16 , 5656,48 , 14503,83 , 134,24 , 24046,59 , 14503,83 , 134,24 , 12731,28 , 12759,51 , 2293,14 , 12810,28 , 12759,51 , 2293,14 , 419,9 , 384,11 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 9895,44 , 13,5 , 4,0 , 4512,7 , 4519,5 , 2, 0, 1, 6, 7 }, // Norwegian Nynorsk/Latin/Norway - { 142, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 8216, 8217, 0,6 , 0,6 , 163,7 , 163,7 , 1540,11 , 450,19 , 37,5 , 8,10 , 8336,48 , 24105,83 , 9742,24 , 8336,48 , 24105,83 , 9742,24 , 2016,28 , 2044,58 , 2102,14 , 2016,28 , 2044,58 , 2116,14 , 428,10 , 395,7 , 296,7 , 5,17 , 22,23 , {66,65,77}, 140,2 , 15137,170 , 13,5 , 4,0 , 4524,8 , 630,19 , 2, 1, 1, 6, 7 }, // Bosnian/Latin/Bosnia And Herzegowina - { 142, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 24188,48 , 24236,83 , 12698,24 , 24188,48 , 24236,83 , 12698,24 , 12838,28 , 12866,56 , 8872,14 , 12838,28 , 12866,56 , 8872,14 , 234,9 , 402,7 , 45,4 , 5,17 , 22,23 , {66,65,77}, 281,2 , 15307,151 , 13,5 , 4,0 , 4532,8 , 3607,19 , 2, 1, 1, 6, 7 }, // Bosnian/Cyrillic/Bosnia And Herzegowina - { 143, 29, 131, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,86,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 5, 6, 7 }, // Divehi/Thaana/Maldives - { 144, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 80,17 , 37,5 , 8,10 , 24319,102 , 24421,140 , 158,27 , 24319,102 , 24421,140 , 158,27 , 12922,30 , 12952,57 , 85,14 , 12922,30 , 12952,57 , 85,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {71,66,80}, 119,1 , 0,7 , 4,4 , 4,0 , 4540,5 , 4545,12 , 2, 1, 1, 6, 7 }, // Manx/Latin/Isle Of Man - { 145, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 97,16 , 37,5 , 8,10 , 24561,46 , 24607,130 , 158,27 , 24561,46 , 24607,130 , 158,27 , 13009,28 , 13037,61 , 85,14 , 13009,28 , 13037,61 , 85,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {71,66,80}, 119,1 , 0,7 , 4,4 , 4,0 , 4557,8 , 4565,14 , 2, 1, 1, 6, 7 }, // Cornish/Latin/United Kingdom - { 146, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 1551,8 , 1559,18 , 18,7 , 25,12 , 24737,48 , 24785,192 , 158,27 , 24737,48 , 24785,192 , 158,27 , 13098,28 , 13126,49 , 13175,14 , 13098,28 , 13126,49 , 13175,14 , 438,2 , 409,2 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 15458,17 , 4,4 , 4,0 , 4579,4 , 4583,5 , 2, 1, 1, 6, 7 }, // Akan/Latin/Ghana - { 147, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 1577,6 , 97,16 , 18,7 , 25,12 , 24977,88 , 24977,88 , 158,27 , 24977,88 , 24977,88 , 158,27 , 13189,49 , 13189,49 , 13238,20 , 13189,49 , 13189,49 , 13238,20 , 187,5 , 411,5 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 15475,13 , 8,5 , 4,0 , 4588,6 , 2667,4 , 2, 1, 7, 7, 7 }, // Konkani/Devanagari/India - { 148, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,72,83}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Ga/Latin/Ghana - { 149, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 867,9 , 690,8 , 269,6 , 10,17 , 37,5 , 8,10 , 25065,48 , 25113,87 , 25200,24 , 25065,48 , 25113,87 , 25200,24 , 13258,33 , 13291,58 , 85,14 , 13258,33 , 13291,58 , 85,14 , 440,7 , 416,7 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 15488,12 , 4,4 , 4,0 , 4594,10 , 4604,8 , 2, 1, 1, 6, 7 }, // Igbo/Latin/Nigeria - { 150, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 25224,48 , 25272,189 , 25461,24 , 25224,48 , 25272,189 , 25461,24 , 13349,28 , 13377,74 , 13451,14 , 13349,28 , 13377,74 , 13451,14 , 447,9 , 423,7 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15500,23 , 4,4 , 4,0 , 4612,7 , 1192,5 , 2, 1, 7, 6, 7 }, // Kamba/Latin/Kenya - { 151, 33, 103, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,81,68}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 6 }, // Syriac/Syriac/Iraq - { 152, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Blin/Ethiopic/Eritrea - { 153, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Geez/Ethiopic/Ethiopia - { 155, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Sidamo/Latin/Ethiopia - { 156, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Atsam/Latin/Nigeria - { 157, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tigre/Ethiopic/Eritrea - { 158, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Jju/Latin/Nigeria - { 159, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 1583,27 , 37,5 , 8,10 , 25485,48 , 25533,77 , 25610,24 , 25485,48 , 25533,77 , 25610,24 , 13465,28 , 13493,50 , 3080,14 , 13465,28 , 13493,50 , 3080,14 , 456,2 , 430,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 8,5 , 4,0 , 4619,6 , 4625,6 , 2, 1, 1, 6, 7 }, // Friulian/Latin/Italy - { 160, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Venda/Latin/South Africa - { 161, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 876,11 , 887,10 , 547,6 , 1610,23 , 500,12 , 512,17 , 25634,48 , 25682,87 , 25769,24 , 25634,48 , 25682,87 , 25769,24 , 13543,28 , 13571,44 , 13615,14 , 13543,28 , 13571,44 , 13615,14 , 458,3 , 432,5 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 15523,37 , 4,4 , 4,0 , 4631,6 , 4637,12 , 2, 1, 1, 6, 7 }, // Ewe/Latin/Ghana - { 161, 7, 212, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 876,11 , 887,10 , 547,6 , 1610,23 , 37,5 , 8,10 , 25634,48 , 25682,87 , 25769,24 , 25634,48 , 25682,87 , 25769,24 , 13543,28 , 13571,44 , 13615,14 , 13543,28 , 13571,44 , 13615,14 , 458,3 , 432,5 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15560,106 , 4,4 , 4,0 , 4631,6 , 4649,11 , 0, 0, 1, 6, 7 }, // Ewe/Latin/Togo - { 162, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Walamo/Ethiopic/Ethiopia - { 163, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 269,6 , 10,17 , 18,7 , 25,12 , 25793,59 , 25852,95 , 158,27 , 25793,59 , 25852,95 , 158,27 , 13629,21 , 13650,57 , 85,14 , 13629,21 , 13650,57 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 0,7 , 4,4 , 4,0 , 4660,14 , 4674,19 , 2, 1, 7, 6, 7 }, // Hawaiian/Latin/United States - { 164, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tyap/Latin/Nigeria - { 165, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,87,75}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Nyanja/Latin/Malawi - { 166, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 897,9 , 906,8 , 547,6 , 35,18 , 18,7 , 25,12 , 25947,48 , 25995,88 , 26083,38 , 25947,48 , 25995,88 , 25947,48 , 13707,28 , 13735,55 , 13707,28 , 13707,28 , 13735,55 , 13707,28 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {80,72,80}, 178,1 , 15666,58 , 4,4 , 4,0 , 4693,8 , 4701,9 , 2, 1, 7, 6, 7 }, // Filipino/Latin/Philippines - { 167, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 26121,86 , 134,24 , 7601,48 , 26121,86 , 134,24 , 13790,28 , 13818,63 , 3668,14 , 13790,28 , 13818,63 , 3668,14 , 461,12 , 437,11 , 45,4 , 5,17 , 22,23 , {67,72,70}, 225,3 , 15724,55 , 13,5 , 4,0 , 4710,16 , 4726,7 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Switzerland - { 167, 7, 74, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 26121,86 , 134,24 , 7601,48 , 26121,86 , 134,24 , 13790,28 , 13818,63 , 3668,14 , 13790,28 , 13818,63 , 3668,14 , 461,12 , 437,11 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 4710,16 , 4733,10 , 2, 1, 1, 6, 7 }, // Swiss German/Latin/France - { 167, 7, 123, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 7601,48 , 26121,86 , 134,24 , 7601,48 , 26121,86 , 134,24 , 13790,28 , 13818,63 , 3668,14 , 13790,28 , 13818,63 , 3668,14 , 461,12 , 437,11 , 45,4 , 5,17 , 22,23 , {67,72,70}, 225,3 , 15724,55 , 13,5 , 4,0 , 4710,16 , 4743,13 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Liechtenstein - { 168, 34, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 18,7 , 25,12 , 26207,38 , 26207,38 , 158,27 , 26207,38 , 26207,38 , 158,27 , 13881,21 , 13902,28 , 13930,14 , 13881,21 , 13902,28 , 13930,14 , 473,2 , 448,2 , 45,4 , 5,17 , 22,23 , {67,78,89}, 311,1 , 0,7 , 8,5 , 4,0 , 4756,3 , 4759,2 , 2, 1, 7, 6, 7 }, // Sichuan Yi/Yi/China - { 169, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Kpelle/Latin/Liberia - { 170, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 461,8 , 461,8 , 365,7 , 1633,23 , 529,10 , 539,19 , 26245,59 , 26304,85 , 134,24 , 26245,59 , 26304,85 , 134,24 , 13944,28 , 13972,65 , 3668,14 , 13944,28 , 13972,65 , 3668,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 15779,15 , 13,5 , 4,0 , 4761,14 , 4775,11 , 2, 1, 1, 6, 7 }, // Low German/Latin/Germany - { 170, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 461,8 , 461,8 , 365,7 , 1633,23 , 529,10 , 539,19 , 26245,59 , 26304,85 , 134,24 , 26245,59 , 26304,85 , 134,24 , 13944,28 , 13972,65 , 3668,14 , 13944,28 , 13972,65 , 3668,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 15779,15 , 13,5 , 4,0 , 4761,14 , 4786,12 , 2, 1, 1, 6, 7 }, // Low German/Latin/Netherlands - { 171, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // South Ndebele/Latin/South Africa - { 172, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Northern Sotho/Latin/South Africa - { 173, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 53,10 , 63,17 , 37,5 , 8,10 , 26389,59 , 26448,145 , 26593,24 , 26389,59 , 26448,145 , 26593,24 , 14037,33 , 14070,75 , 14145,14 , 14037,33 , 14070,75 , 14145,14 , 475,11 , 450,13 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 15794,63 , 13,5 , 4,0 , 4798,15 , 4813,5 , 2, 0, 1, 6, 7 }, // Northern Sami/Latin/Norway - { 173, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 495,10 , 97,16 , 37,5 , 8,10 , 26617,60 , 26448,145 , 26593,24 , 26617,60 , 26448,145 , 26593,24 , 14159,21 , 14180,70 , 14250,14 , 14159,21 , 14180,70 , 14250,14 , 486,2 , 463,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 15857,23 , 13,5 , 4,0 , 4798,15 , 4818,6 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Finland - { 173, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 53,10 , 63,17 , 37,5 , 8,10 , 26389,59 , 26448,145 , 26593,24 , 26389,59 , 26448,145 , 26593,24 , 14037,33 , 14070,75 , 14145,14 , 14037,33 , 14070,75 , 14145,14 , 475,11 , 450,13 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 15880,63 , 13,5 , 4,0 , 4798,15 , 4824,6 , 2, 0, 1, 6, 7 }, // Northern Sami/Latin/Sweden - { 174, 7, 208, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {84,87,68}, 323,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Taroko/Latin/Taiwan - { 175, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 26677,48 , 26725,88 , 26813,24 , 26677,48 , 26725,88 , 26813,24 , 14264,28 , 14292,62 , 14354,14 , 14264,28 , 14292,62 , 14354,14 , 488,6 , 465,3 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 4830,8 , 1192,5 , 2, 1, 7, 6, 7 }, // Gusii/Latin/Kenya - { 176, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 26837,48 , 26885,221 , 27106,24 , 26837,48 , 26885,221 , 27106,24 , 14368,28 , 14396,105 , 14501,14 , 14368,28 , 14396,105 , 14501,14 , 494,10 , 468,10 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 4838,7 , 1192,5 , 2, 1, 7, 6, 7 }, // Taita/Latin/Kenya - { 177, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4401,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Senegal - { 177, 7, 34, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4851,14 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Burkina Faso - { 177, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 15993,25 , 13,5 , 4,0 , 4845,6 , 4865,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Cameroon - { 177, 7, 80, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {71,77,68}, 162,1 , 16018,20 , 13,5 , 4,0 , 4845,6 , 4873,6 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Gambia - { 177, 7, 83, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 0,7 , 13,5 , 4,0 , 4845,6 , 4879,5 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Ghana - { 177, 7, 91, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {71,78,70}, 215,2 , 0,7 , 13,5 , 4,0 , 4845,6 , 4884,4 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Guinea - { 177, 7, 92, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4888,12 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Guinea Bissau - { 177, 7, 121, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 16038,23 , 13,5 , 4,0 , 4845,6 , 4900,9 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Liberia - { 177, 7, 136, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {77,82,85}, 218,2 , 16061,22 , 13,5 , 4,0 , 4845,6 , 4909,8 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Mauritania - { 177, 7, 156, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4917,6 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Niger - { 177, 7, 157, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 16083,23 , 13,5 , 4,0 , 4845,6 , 4923,9 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Nigeria - { 177, 7, 189, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 27130,48 , 27178,77 , 27255,24 , 27130,48 , 27178,77 , 27255,24 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {83,76,76}, 186,2 , 16106,25 , 13,5 , 4,0 , 4845,6 , 4932,11 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Sierra Leone - { 177, 134, 91, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,78,70}, 215,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Fulah/Adlam/Guinea - { 178, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 27279,48 , 27327,185 , 27512,24 , 27279,48 , 27327,185 , 27512,24 , 14616,28 , 14644,63 , 14707,14 , 14616,28 , 14644,63 , 14707,14 , 510,6 , 485,8 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16131,23 , 4,4 , 4,0 , 4943,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Kikuyu/Latin/Kenya - { 179, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 27536,48 , 27584,173 , 27757,24 , 27536,48 , 27584,173 , 27757,24 , 14721,28 , 14749,105 , 14854,14 , 14721,28 , 14749,105 , 14854,14 , 516,7 , 493,5 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16154,25 , 4,4 , 4,0 , 4949,8 , 1192,5 , 2, 1, 7, 6, 7 }, // Samburu/Latin/Kenya - { 180, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 669,27 , 37,5 , 8,10 , 27781,48 , 27829,88 , 134,24 , 27781,48 , 27829,88 , 134,24 , 14868,28 , 14896,55 , 14951,14 , 14868,28 , 14896,55 , 14951,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,90,78}, 266,3 , 16179,28 , 0,4 , 4,0 , 4957,4 , 3357,10 , 2, 1, 7, 6, 7 }, // Sena/Latin/Mozambique - { 181, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 27917,52 , 27969,112 , 28081,24 , 27917,52 , 27969,112 , 28081,24 , 14965,28 , 14993,50 , 15043,14 , 14965,28 , 14993,50 , 15043,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 155,3 , 16207,24 , 4,4 , 4,0 , 4961,10 , 1820,8 , 2, 1, 7, 6, 7 }, // North Ndebele/Latin/Zimbabwe - { 182, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 28105,39 , 28144,194 , 28338,24 , 28105,39 , 28144,194 , 28338,24 , 15057,29 , 15086,65 , 15151,14 , 15057,29 , 15086,65 , 15151,14 , 523,8 , 498,7 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16231,25 , 4,4 , 4,0 , 4971,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Rombo/Latin/Tanzania - { 183, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 28362,48 , 28410,81 , 28491,24 , 28362,48 , 28410,81 , 28491,24 , 15165,30 , 15195,47 , 85,14 , 15165,30 , 15195,47 , 85,14 , 531,6 , 505,8 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16256,21 , 0,4 , 4,0 , 4980,7 , 4987,6 , 2, 1, 1, 6, 7 }, // Tachelhit/Tifinagh/Morocco - { 183, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 28515,48 , 28563,81 , 28644,24 , 28515,48 , 28563,81 , 28644,24 , 15242,30 , 15272,48 , 85,14 , 15242,30 , 15272,48 , 85,14 , 537,6 , 513,8 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16277,21 , 0,4 , 4,0 , 4993,10 , 5003,6 , 2, 1, 1, 6, 7 }, // Tachelhit/Latin/Morocco - { 184, 7, 3, 44, 160, 59, 37, 48, 45, 43, 122, 171, 187, 8220, 8221, 0,6 , 0,6 , 914,12 , 926,11 , 415,8 , 97,16 , 18,7 , 25,12 , 28668,48 , 28716,82 , 28798,24 , 28822,48 , 28870,84 , 28954,24 , 15320,28 , 15348,34 , 15382,14 , 15396,30 , 15426,51 , 15477,14 , 543,7 , 521,9 , 1193,7 , 1200,21 , 22,23 , {68,90,68}, 204,2 , 16298,53 , 0,4 , 4,0 , 5009,9 , 5018,8 , 2, 1, 6, 5, 6 }, // Kabyle/Latin/Algeria - { 185, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 28978,48 , 29026,152 , 134,24 , 28978,48 , 29026,152 , 134,24 , 15491,28 , 15519,74 , 15593,14 , 15491,28 , 15519,74 , 15593,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16351,26 , 4,4 , 4,0 , 5026,10 , 1690,6 , 0, 0, 1, 6, 7 }, // Nyankole/Latin/Uganda - { 186, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 29178,48 , 29226,254 , 29480,24 , 29178,48 , 29226,254 , 29480,24 , 15607,28 , 15635,82 , 15717,14 , 15607,28 , 15635,82 , 15717,14 , 550,7 , 530,7 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16377,29 , 0,4 , 4,0 , 5036,6 , 5042,10 , 2, 0, 1, 6, 7 }, // Bena/Latin/Tanzania - { 187, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 29504,87 , 134,24 , 19102,48 , 29504,87 , 134,24 , 15731,28 , 15759,62 , 15821,14 , 15731,28 , 15759,62 , 15821,14 , 557,5 , 537,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 4,4 , 4,0 , 5052,8 , 1625,8 , 2, 0, 1, 6, 7 }, // Vunjo/Latin/Tanzania - { 188, 7, 132, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 29591,47 , 29638,92 , 29730,24 , 29591,47 , 29638,92 , 29730,24 , 15835,28 , 15863,44 , 15907,14 , 15835,28 , 15863,44 , 15907,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16433,24 , 4,4 , 4,0 , 5060,9 , 2189,4 , 0, 0, 1, 6, 7 }, // Bambara/Latin/Mali - { 188, 75, 132, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Bambara/Nko/Mali - { 189, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 29754,48 , 29802,207 , 30009,24 , 29754,48 , 29802,207 , 30009,24 , 15921,28 , 15949,64 , 16013,14 , 15921,28 , 15949,64 , 16013,14 , 562,2 , 546,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 5069,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Embu/Latin/Kenya - { 190, 12, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 937,9 , 946,8 , 547,6 , 35,18 , 18,7 , 25,12 , 30033,36 , 30069,58 , 30127,24 , 30033,36 , 30069,58 , 30127,24 , 16027,28 , 16055,49 , 16104,14 , 16027,28 , 16055,49 , 16104,14 , 564,3 , 548,6 , 1221,6 , 5,17 , 22,23 , {85,83,68}, 6,1 , 16457,25 , 4,4 , 4,0 , 5075,3 , 5078,15 , 2, 1, 7, 6, 7 }, // Cherokee/Cherokee/United States - { 191, 7, 137, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 30151,47 , 30198,68 , 30266,24 , 30151,47 , 30198,68 , 30266,24 , 16118,27 , 16145,48 , 16193,14 , 16118,27 , 16145,48 , 16193,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,85,82}, 175,2 , 16482,21 , 41,6 , 4,0 , 5093,14 , 5107,5 , 2, 0, 1, 6, 7 }, // Morisyen/Latin/Mauritius - { 192, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 30290,264 , 134,24 , 19102,48 , 30290,264 , 134,24 , 16207,28 , 16235,133 , 15151,14 , 16207,28 , 16235,133 , 15151,14 , 567,4 , 554,5 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 4,4 , 4,0 , 5112,10 , 1625,8 , 2, 0, 1, 6, 7 }, // Makonde/Latin/Tanzania - { 193, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 30554,83 , 30637,111 , 30748,24 , 30554,83 , 30637,111 , 30748,24 , 16368,36 , 16404,63 , 16467,14 , 16368,36 , 16404,63 , 16467,14 , 571,3 , 559,3 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16503,29 , 41,6 , 4,0 , 5122,8 , 5130,9 , 2, 0, 1, 6, 7 }, // Langi/Latin/Tanzania - { 194, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 30772,48 , 30820,97 , 134,24 , 30772,48 , 30820,97 , 134,24 , 16481,28 , 16509,66 , 16575,14 , 16481,28 , 16509,66 , 16575,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16532,26 , 0,4 , 4,0 , 5139,7 , 5146,7 , 0, 0, 1, 6, 7 }, // Ganda/Latin/Uganda - { 195, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 30917,48 , 30965,83 , 31048,24 , 30917,48 , 30965,83 , 31048,24 , 16589,80 , 16589,80 , 85,14 , 16589,80 , 16589,80 , 85,14 , 574,8 , 562,7 , 45,4 , 5,17 , 22,23 , {90,77,87}, 131,1 , 0,7 , 4,4 , 4,0 , 5153,9 , 1814,6 , 2, 1, 1, 6, 7 }, // Bemba/Latin/Zambia - { 196, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 163,7 , 163,7 , 415,8 , 1656,27 , 37,5 , 8,10 , 31072,48 , 31120,85 , 134,24 , 31072,48 , 31120,85 , 134,24 , 16669,28 , 16697,73 , 16770,14 , 16669,28 , 16784,73 , 16770,14 , 68,2 , 65,2 , 45,4 , 5,17 , 22,23 , {67,86,69}, 265,1 , 16558,43 , 13,5 , 4,0 , 5162,12 , 5174,10 , 2, 1, 1, 6, 7 }, // Kabuverdianu/Latin/Cape Verde - { 197, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 31205,48 , 31253,86 , 31339,24 , 31205,48 , 31253,86 , 31339,24 , 16857,28 , 16885,51 , 16936,14 , 16857,28 , 16885,51 , 16936,14 , 582,2 , 569,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 5184,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Meru/Latin/Kenya - { 198, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 31363,49 , 31412,121 , 31533,24 , 31363,49 , 31412,121 , 31533,24 , 16950,28 , 16978,53 , 17031,14 , 16950,28 , 16978,53 , 17031,14 , 584,6 , 571,10 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16601,26 , 4,4 , 4,0 , 5190,8 , 5198,12 , 2, 1, 7, 6, 7 }, // Kalenjin/Latin/Kenya - { 199, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 0,48 , 31557,136 , 134,24 , 0,48 , 31557,136 , 134,24 , 17045,23 , 17068,92 , 17160,14 , 17045,23 , 17068,92 , 17160,14 , 590,7 , 581,5 , 45,4 , 5,17 , 22,23 , {78,65,68}, 6,1 , 16627,22 , 4,4 , 4,0 , 5210,13 , 5223,8 , 2, 1, 1, 6, 7 }, // Nama/Latin/Namibia - { 200, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 29504,87 , 134,24 , 19102,48 , 29504,87 , 134,24 , 15731,28 , 15759,62 , 15821,14 , 15731,28 , 15759,62 , 15821,14 , 557,5 , 537,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 4,4 , 4,0 , 5231,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Machame/Latin/Tanzania - { 201, 7, 82, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 461,8 , 461,8 , 1134,10 , 1683,23 , 37,5 , 8,10 , 31693,59 , 31752,87 , 12992,24 , 31839,48 , 31752,87 , 12992,24 , 17174,28 , 17202,72 , 3668,14 , 17174,28 , 17202,72 , 3668,14 , 597,16 , 586,16 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 16649,11 , 13,5 , 4,0 , 5240,6 , 5246,11 , 2, 1, 1, 6, 7 }, // Colognian/Latin/Germany - { 202, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 31887,51 , 31938,132 , 158,27 , 31887,51 , 31938,132 , 158,27 , 15731,28 , 17274,58 , 15151,14 , 15731,28 , 17274,58 , 15151,14 , 613,9 , 602,6 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16660,25 , 4,4 , 4,0 , 5257,3 , 1192,5 , 2, 1, 7, 6, 7 }, // Masai/Latin/Kenya - { 202, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 31887,51 , 31938,132 , 158,27 , 31887,51 , 31938,132 , 158,27 , 15731,28 , 17274,58 , 15151,14 , 15731,28 , 17274,58 , 15151,14 , 613,9 , 602,6 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16685,28 , 4,4 , 4,0 , 5257,3 , 5260,8 , 2, 0, 1, 6, 7 }, // Masai/Latin/Tanzania - { 203, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 30772,48 , 30820,97 , 134,24 , 30772,48 , 30820,97 , 134,24 , 17332,35 , 17367,65 , 17432,14 , 17332,35 , 17367,65 , 17432,14 , 622,6 , 608,6 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16532,26 , 13,5 , 4,0 , 5268,7 , 5146,7 , 0, 0, 1, 6, 7 }, // Soga/Latin/Uganda - { 204, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 32070,48 , 19150,84 , 134,24 , 32070,48 , 19150,84 , 134,24 , 17446,21 , 17467,75 , 85,14 , 17446,21 , 17467,75 , 85,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16713,23 , 4,4 , 96,6 , 5275,7 , 1192,5 , 2, 1, 7, 6, 7 }, // Luyia/Latin/Kenya - { 205, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 32118,48 , 19150,84 , 134,24 , 32118,48 , 19150,84 , 134,24 , 17542,28 , 10010,60 , 15821,14 , 17542,28 , 10010,60 , 15821,14 , 628,9 , 614,8 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16736,28 , 13,5 , 4,0 , 5282,6 , 5288,8 , 2, 0, 1, 6, 7 }, // Asu/Latin/Tanzania - { 206, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 32166,48 , 32214,94 , 32308,24 , 32166,48 , 32214,94 , 32308,24 , 17570,28 , 17598,69 , 17667,14 , 17570,28 , 17598,69 , 17667,14 , 637,9 , 622,6 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16764,28 , 4,4 , 4,0 , 5296,6 , 1690,6 , 0, 0, 1, 6, 7 }, // Teso/Latin/Uganda - { 206, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 32166,48 , 32214,94 , 32308,24 , 32166,48 , 32214,94 , 32308,24 , 17570,28 , 17598,69 , 17667,14 , 17570,28 , 17598,69 , 17667,14 , 637,9 , 622,6 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16792,27 , 4,4 , 4,0 , 5296,6 , 5302,5 , 2, 1, 7, 6, 7 }, // Teso/Latin/Kenya - { 207, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Saho/Latin/Eritrea - { 208, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 32332,46 , 32378,88 , 32466,24 , 32332,46 , 32378,88 , 32466,24 , 17681,28 , 17709,53 , 17762,14 , 17681,28 , 17709,53 , 17762,14 , 646,6 , 628,6 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5307,11 , 5318,5 , 0, 0, 1, 6, 7 }, // Koyra Chiini/Latin/Mali - { 209, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 29504,87 , 134,24 , 19102,48 , 29504,87 , 134,24 , 15731,28 , 15759,62 , 15821,14 , 15731,28 , 15759,62 , 15821,14 , 557,5 , 537,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 0,4 , 4,0 , 5323,6 , 1625,8 , 2, 0, 1, 6, 7 }, // Rwa/Latin/Tanzania - { 210, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 32490,48 , 32538,186 , 32724,24 , 32490,48 , 32538,186 , 32724,24 , 17776,28 , 17804,69 , 17873,14 , 17776,28 , 17804,69 , 17873,14 , 652,2 , 634,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16842,23 , 0,4 , 4,0 , 5329,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Luo/Latin/Kenya - { 211, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 28978,48 , 29026,152 , 134,24 , 28978,48 , 29026,152 , 134,24 , 15491,28 , 15519,74 , 15593,14 , 15491,28 , 15519,74 , 15593,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16351,26 , 4,4 , 4,0 , 5335,6 , 1690,6 , 0, 0, 1, 6, 7 }, // Chiga/Latin/Uganda - { 212, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 32748,48 , 32796,86 , 32882,24 , 32748,48 , 32796,86 , 32882,24 , 17887,28 , 17915,48 , 17963,14 , 17887,28 , 17915,48 , 17963,14 , 654,9 , 636,10 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16865,22 , 13,5 , 4,0 , 5341,17 , 5358,6 , 2, 1, 1, 6, 7 }, // Central Morocco Tamazight/Latin/Morocco - { 213, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 32332,46 , 32378,88 , 32466,24 , 32332,46 , 32378,88 , 32466,24 , 17977,28 , 18005,54 , 17762,14 , 17977,28 , 18005,54 , 17762,14 , 646,6 , 628,6 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5364,15 , 5318,5 , 0, 0, 1, 6, 7 }, // Koyraboro Senni/Latin/Mali - { 214, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19102,48 , 32906,84 , 134,24 , 19102,48 , 32906,84 , 134,24 , 18059,28 , 18087,63 , 18150,14 , 18059,28 , 18087,63 , 18150,14 , 663,5 , 646,8 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16887,27 , 0,4 , 4,0 , 5379,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Shambala/Latin/Tanzania - { 215, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 547,6 , 35,18 , 18,7 , 25,12 , 32990,88 , 32990,88 , 33078,31 , 32990,88 , 32990,88 , 33078,31 , 18164,33 , 18197,54 , 18251,19 , 18164,33 , 18197,54 , 18251,19 , 668,3 , 654,6 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 16914,10 , 8,5 , 4,0 , 5388,4 , 2667,4 , 2, 1, 7, 7, 7 }, // Bodo/Devanagari/India - { 218, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 21930,48 , 11141,80 , 11058,24 , 21930,48 , 11141,80 , 11058,24 , 18270,25 , 18295,45 , 18340,17 , 18270,25 , 18295,45 , 18270,25 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 16924,43 , 13,5 , 4,0 , 5392,7 , 5399,5 , 2, 1, 1, 6, 7 }, // Chechen/Cyrillic/Russia - { 219, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 954,8 , 954,8 , 1010,10 , 1706,23 , 37,5 , 8,10 , 33109,65 , 33174,117 , 33291,30 , 33109,65 , 33321,117 , 33291,30 , 18357,37 , 18394,68 , 11435,14 , 18357,37 , 18394,68 , 11435,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 16967,44 , 13,5 , 4,0 , 5404,19 , 5423,7 , 2, 1, 1, 6, 7 }, // Church/Cyrillic/Russia - { 220, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Chuvash/Cyrillic/Russia - { 230, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 33438,49 , 33487,99 , 33586,24 , 33438,49 , 33487,99 , 33586,24 , 18462,28 , 18490,50 , 18540,14 , 18462,28 , 18490,50 , 18540,14 , 671,5 , 660,6 , 45,4 , 5,17 , 22,23 , {67,68,70}, 209,2 , 17011,24 , 0,4 , 4,0 , 5430,8 , 5438,16 , 2, 1, 1, 6, 7 }, // Luba Katanga/Latin/Congo Kinshasa - { 231, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 962,10 , 962,10 , 156,8 , 622,18 , 37,5 , 8,10 , 33610,48 , 33658,85 , 134,24 , 33743,59 , 33658,85 , 134,24 , 18554,28 , 18582,65 , 3668,14 , 18647,35 , 18582,65 , 3668,14 , 676,5 , 666,8 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 5454,14 , 5468,10 , 2, 1, 1, 6, 7 }, // Luxembourgish/Latin/Luxembourg - { 236, 7, 21, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Walloon/Latin/Belgium - { 237, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 33802,48 , 33850,195 , 34045,24 , 33802,48 , 33850,195 , 34045,24 , 18682,28 , 18710,72 , 18782,14 , 18682,28 , 18710,72 , 18782,14 , 681,3 , 674,3 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17035,21 , 0,4 , 4,0 , 5478,5 , 5483,7 , 0, 0, 1, 6, 7 }, // Aghem/Latin/Cameroon - { 238, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 34069,48 , 34117,90 , 34207,24 , 34069,48 , 34117,90 , 34207,24 , 18796,28 , 18824,70 , 18894,14 , 18796,28 , 18824,70 , 18894,14 , 684,10 , 677,9 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17056,22 , 13,5 , 4,0 , 5490,5 , 5495,8 , 0, 0, 1, 6, 7 }, // Basaa/Latin/Cameroon - { 239, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 32332,46 , 32378,88 , 32466,24 , 32332,46 , 32378,88 , 32466,24 , 17977,28 , 18908,53 , 18961,14 , 17977,28 , 18908,53 , 18961,14 , 694,8 , 686,10 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5503,10 , 5513,5 , 0, 0, 1, 6, 7 }, // Zarma/Latin/Niger - { 240, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 34231,49 , 34280,99 , 34379,24 , 34231,49 , 34280,99 , 34379,24 , 18975,28 , 19003,45 , 19048,14 , 18975,28 , 19003,45 , 19048,14 , 702,5 , 696,6 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 13,5 , 4,0 , 5518,5 , 1986,8 , 0, 0, 1, 6, 7 }, // Duala/Latin/Cameroon - { 241, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 34403,36 , 34439,82 , 34521,24 , 34403,36 , 34439,82 , 34521,24 , 19062,28 , 19090,50 , 19140,14 , 19062,28 , 19090,50 , 19140,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 17078,23 , 13,5 , 4,0 , 5523,5 , 5528,7 , 0, 0, 1, 6, 7 }, // Jola Fonyi/Latin/Senegal - { 242, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 34545,50 , 34595,141 , 34736,24 , 34545,50 , 34595,141 , 34736,24 , 19154,30 , 19184,85 , 19269,14 , 19154,30 , 19184,85 , 19269,14 , 707,7 , 702,9 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17101,23 , 13,5 , 4,0 , 5535,6 , 5541,7 , 0, 0, 1, 6, 7 }, // Ewondo/Latin/Cameroon - { 243, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 34760,39 , 34799,191 , 158,27 , 34760,39 , 34799,191 , 158,27 , 19283,29 , 19312,45 , 19357,14 , 19283,29 , 19312,45 , 19357,14 , 714,6 , 711,7 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17124,11 , 13,5 , 4,0 , 5548,5 , 5553,7 , 0, 0, 1, 6, 7 }, // Bafia/Latin/Cameroon - { 244, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 34990,48 , 35038,213 , 35251,24 , 34990,48 , 35038,213 , 35251,24 , 19371,28 , 19399,59 , 19458,14 , 19371,28 , 19399,59 , 19458,14 , 720,8 , 718,10 , 45,4 , 5,17 , 22,23 , {77,90,78}, 266,3 , 0,7 , 41,6 , 4,0 , 5560,5 , 5565,10 , 2, 1, 7, 6, 7 }, // Makhuwa Meetto/Latin/Mozambique - { 245, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 35275,48 , 35323,139 , 35462,24 , 35275,48 , 35323,139 , 35462,24 , 19472,28 , 19500,74 , 19574,14 , 19472,28 , 19500,74 , 19574,14 , 728,5 , 728,5 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17135,17 , 4,4 , 4,0 , 5575,6 , 5581,7 , 0, 0, 1, 6, 7 }, // Mundang/Latin/Cameroon - { 246, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 35486,51 , 35537,143 , 158,27 , 35486,51 , 35537,143 , 158,27 , 19588,30 , 19618,89 , 19707,14 , 19588,30 , 19618,89 , 19707,14 , 733,4 , 733,4 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17152,20 , 13,5 , 4,0 , 5588,6 , 5594,7 , 0, 0, 1, 6, 7 }, // Kwasio/Latin/Cameroon - { 247, 7, 254, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 538,9 , 97,16 , 18,7 , 558,12 , 35680,54 , 35734,96 , 35830,24 , 35680,54 , 35734,96 , 35830,24 , 19721,38 , 19759,79 , 19838,14 , 19721,38 , 19759,79 , 19838,14 , 737,2 , 737,2 , 45,4 , 5,17 , 22,23 , {83,83,80}, 119,1 , 0,7 , 4,4 , 4,0 , 5601,9 , 0,0 , 2, 1, 1, 6, 7 }, // Nuer/Latin/South Sudan - { 248, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 972,11 , 972,11 , 227,6 , 1729,30 , 37,5 , 8,10 , 35854,50 , 35904,116 , 36020,24 , 35854,50 , 36044,121 , 36020,24 , 19852,21 , 19873,71 , 19944,14 , 19852,21 , 19873,71 , 19944,14 , 739,2 , 739,2 , 1227,5 , 1232,17 , 22,23 , {82,85,66}, 123,1 , 17172,47 , 13,5 , 4,0 , 5610,9 , 5619,9 , 2, 1, 1, 6, 7 }, // Sakha/Cyrillic/Russia - { 249, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 36165,48 , 36213,117 , 158,27 , 36165,48 , 36213,117 , 158,27 , 19958,28 , 19986,60 , 20046,14 , 19958,28 , 19986,60 , 20046,14 , 741,9 , 741,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 17219,25 , 0,4 , 4,0 , 5628,9 , 5637,9 , 2, 0, 1, 6, 7 }, // Sangu/Latin/Tanzania - { 251, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 32332,46 , 32378,88 , 32466,24 , 32332,46 , 32378,88 , 32466,24 , 17977,28 , 18005,54 , 17762,14 , 17977,28 , 18005,54 , 17762,14 , 694,8 , 686,10 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5646,13 , 5513,5 , 0, 0, 1, 6, 7 }, // Tasawaq/Latin/Niger - { 252, 35, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 36330,38 , 36368,61 , 158,27 , 36330,38 , 36368,61 , 158,27 , 20060,30 , 20060,30 , 85,14 , 20060,30 , 20060,30 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 17244,15 , 4,4 , 4,0 , 5659,2 , 5661,4 , 2, 1, 1, 6, 7 }, // Vai/Vai/Liberia - { 252, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 36429,81 , 36429,81 , 158,27 , 36429,81 , 36429,81 , 158,27 , 20090,48 , 20090,48 , 85,14 , 20090,48 , 20090,48 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 17259,20 , 4,4 , 4,0 , 5665,3 , 5668,8 , 2, 1, 1, 6, 7 }, // Vai/Latin/Liberia - { 253, 7, 206, 44, 8217, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 53,10 , 622,18 , 37,5 , 8,10 , 36510,48 , 36558,99 , 36657,24 , 36510,48 , 36558,99 , 36657,24 , 20138,28 , 20166,53 , 20219,14 , 20138,28 , 20166,53 , 20219,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,72,70}, 0,0 , 0,7 , 41,6 , 4,0 , 5676,6 , 5682,6 , 2, 0, 1, 6, 7 }, // Walser/Latin/Switzerland - { 254, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 36681,51 , 36732,191 , 158,27 , 36681,51 , 36732,191 , 158,27 , 20233,21 , 20254,71 , 20325,14 , 20233,21 , 20254,71 , 20325,14 , 750,8 , 750,8 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 13,5 , 4,0 , 5688,6 , 5694,7 , 0, 0, 1, 6, 7 }, // Yangben/Latin/Cameroon - { 256, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 372,22 , 37,5 , 8,10 , 36923,48 , 36971,85 , 37056,24 , 37080,48 , 37128,117 , 37056,24 , 20339,28 , 20367,54 , 3364,14 , 20339,28 , 20367,54 , 3364,14 , 758,12 , 758,11 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 5701,9 , 2432,6 , 2, 1, 1, 6, 7 }, // Asturian/Latin/Spain - { 257, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 983,11 , 983,11 , 994,16 , 1010,9 , 53,10 , 1559,18 , 37,5 , 8,10 , 37245,174 , 37245,174 , 158,27 , 37245,174 , 37245,174 , 158,27 , 20421,60 , 20421,60 , 20481,25 , 20421,60 , 20421,60 , 20481,25 , 770,8 , 769,13 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17279,12 , 8,5 , 4,0 , 5710,5 , 5715,7 , 0, 0, 1, 6, 7 }, // Ngomba/Latin/Cameroon - { 258, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 1759,10 , 80,17 , 37,5 , 8,10 , 37419,102 , 37419,102 , 158,27 , 37419,102 , 37419,102 , 158,27 , 20506,54 , 20506,54 , 20560,21 , 20506,54 , 20506,54 , 20560,21 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17291,16 , 41,6 , 4,0 , 5722,4 , 5726,7 , 0, 0, 1, 6, 7 }, // Kako/Latin/Cameroon - { 259, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1559,18 , 37,5 , 8,10 , 37521,137 , 37658,142 , 37800,36 , 37521,137 , 37658,142 , 37800,36 , 20581,49 , 20581,49 , 20630,21 , 20581,49 , 20581,49 , 20630,21 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17307,12 , 8,5 , 4,0 , 5733,5 , 5738,7 , 0, 0, 1, 6, 7 }, // Meta/Latin/Cameroon - { 260, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1769,32 , 37,5 , 8,10 , 37836,165 , 37836,165 , 158,27 , 37836,165 , 37836,165 , 158,27 , 20651,111 , 20651,111 , 85,14 , 20651,111 , 20651,111 , 85,14 , 778,9 , 782,8 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17319,16 , 8,5 , 4,0 , 5745,16 , 5761,7 , 0, 0, 1, 6, 7 }, // Ngiemboon/Latin/Cameroon - { 290, 11, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 7, 7 }, // Manipuri/Bengali/India - { 309, 100, 232, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {86,78,68}, 322,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Tai Dam/Tai Viet/Vietnam - { 312, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Akoose/Latin/Cameroon - { 313, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 547,6 , 35,18 , 18,7 , 25,12 , 38001,180 , 38001,180 , 158,27 , 38001,180 , 38001,180 , 158,27 , 20762,87 , 20762,87 , 85,14 , 20762,87 , 20762,87 , 20849,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 0,7 , 41,6 , 4,0 , 5768,12 , 5780,22 , 2, 1, 7, 6, 7 }, // Lakota/Latin/United States - { 314, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 28362,48 , 28410,81 , 28491,24 , 28362,48 , 28410,81 , 28491,24 , 15165,30 , 20863,48 , 85,14 , 15165,30 , 20863,48 , 85,14 , 531,6 , 505,8 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16256,21 , 0,4 , 4,0 , 5802,8 , 4987,6 , 2, 1, 1, 6, 7 }, // Standard Moroccan Tamazight/Tifinagh/Morocco - { 315, 7, 43, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,76,80}, 6,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Mapuche/Latin/Chile - { 316, 1, 103, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 18,7 , 25,12 , 38181,105 , 38181,105 , 38286,24 , 38181,105 , 38181,105 , 38286,24 , 20911,58 , 20911,58 , 20969,14 , 20911,58 , 20911,58 , 20969,14 , 787,3 , 790,3 , 45,4 , 5,17 , 22,23 , {73,81,68}, 44,5 , 17335,20 , 13,5 , 4,0 , 5810,14 , 5824,5 , 0, 0, 6, 5, 6 }, // Central Kurdish/Arabic/Iraq - { 316, 1, 102, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 38181,105 , 38181,105 , 38286,24 , 38181,105 , 38181,105 , 38286,24 , 20911,58 , 20911,58 , 20969,14 , 20911,58 , 20911,58 , 20969,14 , 787,3 , 790,3 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 17355,19 , 13,5 , 4,0 , 5810,14 , 5829,5 , 0, 0, 6, 5, 5 }, // Central Kurdish/Arabic/Iran - { 317, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 185,7 , 113,6 , 622,18 , 55,4 , 59,9 , 38310,48 , 38358,85 , 9742,24 , 38443,60 , 38503,93 , 9742,24 , 20983,28 , 21011,53 , 21064,14 , 20983,28 , 21011,53 , 21064,14 , 790,9 , 793,10 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 17374,27 , 13,5 , 4,0 , 5834,14 , 5848,6 , 2, 1, 1, 6, 7 }, // Lower Sorbian/Latin/Germany - { 318, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 185,7 , 113,6 , 622,18 , 570,12 , 59,9 , 38596,48 , 38644,86 , 9742,24 , 38730,60 , 38790,93 , 9742,24 , 21078,28 , 21106,53 , 21159,14 , 21078,28 , 21106,53 , 21159,14 , 790,9 , 803,9 , 1249,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 17401,29 , 13,5 , 4,0 , 5854,15 , 5869,6 , 2, 1, 1, 6, 7 }, // Upper Sorbian/Latin/Germany - { 319, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Kenyang/Latin/Cameroon - { 320, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,65,68}, 233,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Mohawk/Latin/Canada - { 321, 75, 91, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,78,70}, 215,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Nko/Nko/Guinea - { 322, 7, 260, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 1019,8 , 1019,8 , 156,8 , 1801,27 , 37,5 , 8,10 , 38883,48 , 38931,91 , 39022,24 , 38883,48 , 38931,91 , 39022,24 , 21173,28 , 21201,69 , 21270,14 , 21173,28 , 21201,69 , 21270,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 13,5 , 4,0 , 5875,9 , 5884,6 , 2, 1, 1, 6, 7 }, // Prussian/Latin/World - { 323, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,84,81}, 290,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Kiche/Latin/Guatemala - { 324, 7, 205, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 1, 6, 7 }, // Southern Sami/Latin/Sweden - { 325, 7, 205, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 1, 6, 7 }, // Lule Sami/Latin/Sweden - { 326, 7, 73, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 640,8 , 1828,18 , 243,4 , 247,9 , 39046,77 , 39123,140 , 39263,25 , 39046,77 , 39123,140 , 39263,25 , 21284,28 , 21312,70 , 85,14 , 21284,28 , 21382,73 , 21455,14 , 799,3 , 812,3 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 17430,11 , 13,5 , 4,0 , 5890,11 , 5901,5 , 2, 1, 1, 6, 7 }, // Inari Sami/Latin/Finland - { 327, 7, 73, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Skolt Sami/Latin/Finland - { 328, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {65,85,68}, 326,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Warlpiri/Latin/Australia - { 346, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 14934,70 , 14934,70 , 158,27 , 14934,70 , 14934,70 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 726,4 , 1254,39 , 22,23 , {73,82,82}, 328,3 , 17441,27 , 8,5 , 4,0 , 5906,7 , 3238,5 , 0, 0, 6, 5, 5 }, // Mazanderani/Arabic/Iran - { 349, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 39288,77 , 39288,77 , 158,27 , 39288,77 , 39288,77 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 0,7 , 8,5 , 4,0 , 5913,11 , 0,0 , 0, 0, 6, 5, 5 }, // Northern Luri/Arabic/Iran - { 349, 1, 103, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 18,7 , 25,12 , 39288,77 , 39288,77 , 158,27 , 39288,77 , 39288,77 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,81,68}, 44,5 , 0,7 , 8,5 , 4,0 , 5913,11 , 0,0 , 0, 0, 6, 5, 6 }, // Northern Luri/Arabic/Iraq - { 357, 6, 97, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 1027,5 , 1027,5 , 394,8 , 423,14 , 198,6 , 215,13 , 4423,39 , 4423,39 , 158,27 , 4423,39 , 4423,39 , 158,27 , 1953,28 , 1953,28 , 1981,14 , 1953,28 , 1953,28 , 1981,14 , 58,2 , 55,2 , 45,4 , 5,17 , 22,23 , {72,75,68}, 166,3 , 17468,11 , 4,4 , 4,0 , 5924,2 , 5926,14 , 2, 1, 7, 6, 7 }, // Cantonese/Traditional Han/Hong Kong - { 357, 5, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 1027,5 , 1027,5 , 394,8 , 402,13 , 198,6 , 204,11 , 4423,39 , 4462,38 , 158,27 , 4423,39 , 4462,38 , 158,27 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 45,4 , 5,17 , 22,23 , {67,78,89}, 133,1 , 3122,13 , 4,4 , 4,0 , 5940,2 , 5942,7 , 2, 1, 7, 6, 7 }, // Cantonese/Simplified Han/China - { 360, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Ido/Latin/World - { 361, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Lojban/Latin/World - { 362, 7, 106, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Sicilian/Latin/Italy - { 363, 1, 102, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 5 }, // Southern Kurdish/Arabic/Iran - { 364, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,75,82}, 175,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Western Balochi/Arabic/Pakistan - { 365, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 897,9 , 906,8 , 547,6 , 35,18 , 18,7 , 25,12 , 39365,46 , 39411,88 , 39499,24 , 39365,46 , 39411,88 , 39499,24 , 21469,25 , 21494,56 , 21550,14 , 21469,25 , 21494,56 , 21550,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,72,80}, 178,1 , 0,7 , 4,4 , 4,0 , 5949,7 , 4701,9 , 2, 1, 7, 6, 7 }, // Cebuano/Latin/Philippines - { 366, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 368,48 , 368,48 , 158,27 , 368,48 , 368,48 , 158,27 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Erzya/Cyrillic/Russia - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, {0,0,0}, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0, 0, 0, 0, 0 } // trailing 0s + // lang script terr dec group list prcnt zero minus plus exp quotOpn quotEnd altQtOpn altQtEnd lpStart lpMid lpEnd lpTwo sDtFmt lDtFmt sTmFmt lTmFmt ssDays slDays snDays sDays lDays nDays am pm byte siQuant iecQuant currISO currSym currDsply currFmt currFmtNeg endoLang endoCntry curDgt curRnd dow1st wknd+ wknd- + { 1, 0, 0, 46, 44, 59, 37, 48, 45, 43, 101, 34, 34, 39, 39, 0,6 , 0,6 , 0,6 , 0,6 , 0,10 , 10,17 , 0,8 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 99,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 0,7 , 0,4 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // C/AnyScript/AnyCountry + { 3, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 35,18 , 18,7 , 25,12 , 113,28 , 141,55 , 85,14 , 113,28 , 141,55 , 85,14 , 2,2 , 2,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,2 , 7,24 , 4,4 , 4,0 , 0,6 , 6,10 , 2, 1, 7, 6, 7 }, // Oromo/Latin/Ethiopia + { 3, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 35,18 , 37,5 , 8,10 , 113,28 , 141,55 , 196,14 , 113,28 , 141,55 , 196,14 , 2,2 , 2,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 0,7 , 4,4 , 4,0 , 0,6 , 16,8 , 2, 1, 7, 6, 7 }, // Oromo/Latin/Kenya + { 4, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Afar/Latin/Ethiopia + { 5, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 53,10 , 80,17 , 37,5 , 8,10 , 210,28 , 238,58 , 296,14 , 210,28 , 238,58 , 296,14 , 4,3 , 4,3 , 49,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 31,67 , 4,4 , 4,0 , 24,9 , 33,11 , 2, 1, 7, 6, 7 }, // Afrikaans/Latin/South Africa + { 5, 7, 148, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 53,10 , 97,16 , 18,7 , 25,12 , 210,28 , 238,58 , 296,14 , 210,28 , 238,58 , 296,14 , 4,3 , 4,3 , 49,5 , 5,17 , 22,23 , {78,65,68}, 6,1 , 98,55 , 4,4 , 4,0 , 24,9 , 44,7 , 2, 1, 1, 6, 7 }, // Afrikaans/Latin/Namibia + { 6, 7, 2, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 113,6 , 10,17 , 18,7 , 42,13 , 310,28 , 338,58 , 396,15 , 411,28 , 338,58 , 396,15 , 7,11 , 7,10 , 54,4 , 5,17 , 22,23 , {65,76,76}, 7,4 , 153,45 , 13,5 , 4,0 , 51,5 , 56,8 , 0, 0, 1, 6, 7 }, // Albanian/Latin/Albania + { 6, 7, 127, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 113,6 , 10,17 , 37,5 , 8,10 , 310,28 , 338,58 , 396,15 , 411,28 , 338,58 , 396,15 , 7,11 , 7,10 , 54,4 , 5,17 , 22,23 , {77,75,68}, 11,3 , 198,54 , 13,5 , 4,0 , 51,5 , 64,18 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Macedonia + { 6, 7, 257, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 14,9 , 14,9 , 113,6 , 10,17 , 37,5 , 8,10 , 310,28 , 338,58 , 396,15 , 411,28 , 338,58 , 396,15 , 7,11 , 7,10 , 54,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 252,21 , 13,5 , 4,0 , 51,5 , 82,6 , 2, 1, 1, 6, 7 }, // Albanian/Latin/Kosovo + { 7, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 23,6 , 23,6 , 29,9 , 38,8 , 119,10 , 63,17 , 18,7 , 25,12 , 439,27 , 466,28 , 494,14 , 439,27 , 466,28 , 494,14 , 18,3 , 17,4 , 58,3 , 61,23 , 22,23 , {69,84,66}, 15,2 , 273,34 , 4,4 , 4,0 , 88,4 , 92,5 , 2, 1, 7, 6, 7 }, // Amharic/Ethiopic/Ethiopia + { 8, 1, 64, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {69,71,80}, 17,5 , 307,81 , 13,5 , 4,0 , 97,7 , 104,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Egypt + { 8, 1, 3, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {68,90,68}, 22,5 , 388,102 , 13,5 , 4,0 , 97,7 , 107,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Algeria + { 8, 1, 17, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {66,72,68}, 27,5 , 490,91 , 13,5 , 4,0 , 97,7 , 114,7 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Bahrain + { 8, 1, 42, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {88,65,70}, 32,4 , 581,112 , 13,5 , 4,0 , 97,7 , 121,4 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Chad + { 8, 1, 48, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 37,5 , 8,10 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {75,77,70}, 36,2 , 693,105 , 13,5 , 4,0 , 97,7 , 125,9 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Comoros + { 8, 1, 59, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {68,74,70}, 38,3 , 798,84 , 13,5 , 4,0 , 97,7 , 134,6 , 0, 0, 6, 6, 7 }, // Arabic/Arabic/Djibouti + { 8, 1, 67, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {69,82,78}, 41,3 , 882,91 , 13,5 , 4,0 , 97,7 , 140,7 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Eritrea + { 8, 1, 103, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {73,81,68}, 44,5 , 973,84 , 13,5 , 4,0 , 97,7 , 147,6 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Iraq + { 8, 1, 105, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 55,4 , 59,9 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {73,76,83}, 49,1 , 1057,133 , 13,5 , 4,0 , 97,7 , 153,7 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/Israel + { 8, 1, 109, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {74,79,68}, 50,5 , 1190,84 , 13,5 , 4,0 , 97,7 , 160,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Jordan + { 8, 1, 115, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {75,87,68}, 55,5 , 1274,84 , 13,5 , 4,0 , 97,7 , 166,6 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Kuwait + { 8, 1, 119, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {76,66,80}, 60,5 , 1358,84 , 13,5 , 4,0 , 97,7 , 172,5 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Lebanon + { 8, 1, 122, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {76,89,68}, 65,5 , 1442,88 , 13,5 , 4,0 , 97,7 , 177,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Libya + { 8, 1, 136, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {77,82,85}, 70,4 , 1530,112 , 13,5 , 4,0 , 97,7 , 182,9 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Mauritania + { 8, 1, 145, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 37,5 , 8,10 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {77,65,68}, 74,5 , 1642,87 , 13,5 , 4,0 , 97,7 , 191,6 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Morocco + { 8, 1, 162, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {79,77,82}, 79,5 , 1729,77 , 13,5 , 4,0 , 97,7 , 197,5 , 3, 0, 6, 5, 6 }, // Arabic/Arabic/Oman + { 8, 1, 165, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {73,76,83}, 49,1 , 1057,133 , 13,5 , 4,0 , 97,7 , 202,18 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Palestinian Territories + { 8, 1, 175, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {81,65,82}, 84,5 , 1806,70 , 13,5 , 4,0 , 97,7 , 220,3 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Qatar + { 8, 1, 186, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,65,82}, 89,5 , 1876,77 , 13,5 , 4,0 , 97,7 , 223,24 , 2, 1, 7, 5, 6 }, // Arabic/Arabic/Saudi Arabia + { 8, 1, 194, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,79,83}, 94,1 , 1953,77 , 13,5 , 4,0 , 97,7 , 247,7 , 0, 0, 1, 6, 7 }, // Arabic/Arabic/Somalia + { 8, 1, 201, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,68,71}, 95,4 , 2030,91 , 13,5 , 4,0 , 97,7 , 254,7 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/Sudan + { 8, 1, 207, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,89,80}, 99,5 , 2121,77 , 13,5 , 4,0 , 97,7 , 261,5 , 0, 0, 6, 5, 6 }, // Arabic/Arabic/Syria + { 8, 1, 216, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {84,78,68}, 104,5 , 2198,95 , 13,5 , 4,0 , 97,7 , 266,4 , 3, 0, 1, 6, 7 }, // Arabic/Arabic/Tunisia + { 8, 1, 223, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {65,69,68}, 109,5 , 2293,91 , 13,5 , 4,0 , 97,7 , 270,24 , 2, 1, 6, 5, 6 }, // Arabic/Arabic/United Arab Emirates + { 8, 1, 236, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {77,65,68}, 74,5 , 1642,87 , 13,5 , 4,0 , 97,7 , 294,15 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/Western Sahara + { 8, 1, 237, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {89,69,82}, 114,5 , 2384,70 , 13,5 , 4,0 , 97,7 , 309,5 , 0, 0, 7, 5, 6 }, // Arabic/Arabic/Yemen + { 8, 1, 254, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {83,83,80}, 119,1 , 2454,132 , 13,5 , 4,0 , 97,7 , 314,12 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/South Sudan + { 8, 1, 260, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 52,7 , 59,6 , 129,10 , 139,17 , 18,7 , 25,12 , 508,52 , 508,52 , 560,14 , 508,52 , 508,52 , 560,14 , 21,1 , 21,1 , 84,4 , 88,47 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 13,5 , 4,0 , 326,23 , 349,6 , 2, 1, 1, 6, 7 }, // Arabic/Arabic/World + { 9, 10, 11, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 65,7 , 65,7 , 156,8 , 164,20 , 37,5 , 8,10 , 574,28 , 602,62 , 664,14 , 574,28 , 602,62 , 664,14 , 0,2 , 0,2 , 135,6 , 141,17 , 22,23 , {65,77,68}, 120,1 , 2586,46 , 13,5 , 4,0 , 355,7 , 362,8 , 2, 0, 1, 6, 7 }, // Armenian/Armenian/Armenia + { 10, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 72,9 , 72,9 , 184,8 , 192,18 , 68,7 , 75,12 , 678,32 , 710,58 , 768,14 , 678,32 , 710,58 , 768,14 , 22,9 , 22,7 , 158,4 , 162,37 , 22,23 , {73,78,82}, 121,1 , 2632,43 , 8,5 , 4,0 , 370,7 , 377,4 , 2, 1, 7, 7, 7 }, // Assamese/Bengali/India + { 12, 7, 15, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 81,8 , 81,8 , 156,8 , 210,17 , 37,5 , 8,10 , 782,27 , 809,67 , 99,14 , 782,27 , 809,67 , 99,14 , 0,2 , 0,2 , 199,4 , 5,17 , 22,23 , {65,90,78}, 122,1 , 2675,58 , 13,5 , 4,0 , 381,10 , 391,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Latin/Azerbaijan + { 12, 1, 102, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 5 }, // Azerbaijani/Arabic/Iran + { 12, 2, 15, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 156,8 , 210,17 , 37,5 , 8,10 , 876,27 , 903,67 , 99,14 , 876,27 , 903,67 , 99,14 , 31,2 , 29,2 , 45,4 , 5,17 , 22,23 , {65,90,78}, 122,1 , 2733,12 , 13,5 , 4,0 , 401,10 , 411,10 , 2, 1, 1, 6, 7 }, // Azerbaijani/Cyrillic/Azerbaijan + { 13, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Bashkir/Cyrillic/Russia + { 14, 7, 197, 44, 46, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8220, 8221, 0,6 , 0,6 , 89,9 , 89,9 , 227,6 , 233,36 , 37,5 , 87,12 , 970,28 , 998,68 , 1066,14 , 970,28 , 998,68 , 1066,14 , 0,2 , 0,2 , 203,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 2745,20 , 13,5 , 4,0 , 421,7 , 428,8 , 2, 1, 1, 6, 7 }, // Basque/Latin/Spain + { 15, 11, 18, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 98,9 , 98,9 , 269,6 , 192,18 , 18,7 , 25,12 , 1080,37 , 1117,58 , 1175,18 , 1080,37 , 1117,58 , 1175,18 , 0,2 , 0,2 , 158,4 , 5,17 , 22,23 , {66,68,84}, 124,1 , 2765,49 , 0,4 , 4,0 , 436,5 , 441,8 , 2, 1, 7, 6, 7 }, // Bengali/Bengali/Bangladesh + { 15, 11, 100, 46, 44, 59, 37, 2534, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 98,9 , 98,9 , 269,6 , 192,18 , 18,7 , 25,12 , 1080,37 , 1117,58 , 1175,18 , 1080,37 , 1117,58 , 1175,18 , 0,2 , 0,2 , 158,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 2814,43 , 0,4 , 4,0 , 436,5 , 449,4 , 2, 1, 7, 7, 7 }, // Bengali/Bengali/India + { 16, 31, 25, 46, 44, 59, 37, 3872, 45, 43, 101, 8220, 8221, 8216, 8217, 107,9 , 107,9 , 107,9 , 107,9 , 53,10 , 275,30 , 99,22 , 121,27 , 1193,34 , 1227,79 , 1306,27 , 1193,34 , 1227,79 , 1306,27 , 33,5 , 31,6 , 45,4 , 5,17 , 22,23 , {66,84,78}, 125,3 , 2857,15 , 4,4 , 4,0 , 453,6 , 459,5 , 2, 1, 7, 6, 7 }, // Dzongkha/Tibetan/Bhutan + { 19, 7, 74, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 97,16 , 37,5 , 8,10 , 1333,33 , 1366,43 , 1409,18 , 1333,33 , 1366,43 , 1409,18 , 38,4 , 37,4 , 210,7 , 217,17 , 22,23 , {69,85,82}, 14,1 , 2872,36 , 13,5 , 4,0 , 464,9 , 473,5 , 2, 1, 1, 6, 7 }, // Breton/Latin/France + { 20, 2, 33, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 305,12 , 317,22 , 148,9 , 157,14 , 1427,21 , 1448,55 , 1503,14 , 1427,21 , 1448,55 , 1503,14 , 42,6 , 41,6 , 234,7 , 5,17 , 22,23 , {66,71,78}, 128,3 , 2908,47 , 13,5 , 4,0 , 478,9 , 487,8 , 2, 1, 1, 6, 7 }, // Bulgarian/Cyrillic/Bulgaria + { 21, 25, 147, 46, 44, 4170, 37, 4160, 45, 43, 101, 8220, 8221, 8216, 8217, 123,5 , 123,5 , 128,10 , 128,10 , 339,8 , 347,18 , 171,6 , 177,10 , 1517,54 , 1517,54 , 1571,14 , 1517,54 , 1517,54 , 1571,14 , 48,5 , 47,3 , 241,5 , 5,17 , 22,23 , {77,77,75}, 131,1 , 2955,29 , 13,5 , 4,0 , 495,6 , 495,6 , 0, 0, 7, 6, 7 }, // Burmese/Myanmar/Myanmar + { 22, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 138,7 , 138,7 , 365,7 , 317,22 , 37,5 , 187,11 , 1585,21 , 1606,56 , 1662,14 , 1585,21 , 1606,56 , 1662,14 , 0,2 , 0,2 , 246,5 , 251,17 , 22,23 , {66,89,78}, 0,2 , 2984,89 , 13,5 , 4,0 , 501,10 , 511,8 , 2, 0, 1, 6, 7 }, // Belarusian/Cyrillic/Belarus + { 23, 20, 36, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 145,9 , 154,9 , 269,6 , 97,16 , 18,7 , 25,12 , 1676,40 , 1716,46 , 1762,14 , 1676,40 , 1776,47 , 1762,14 , 0,2 , 0,2 , 268,2 , 5,17 , 22,23 , {75,72,82}, 132,1 , 3073,29 , 0,4 , 4,0 , 519,5 , 524,7 , 2, 1, 7, 6, 7 }, // Khmer/Khmer/Cambodia + { 24, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 537,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Spain + { 24, 7, 5, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 544,7 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Andorra + { 24, 7, 74, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 551,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/France + { 24, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 163,7 , 163,7 , 269,6 , 372,22 , 55,4 , 59,9 , 1823,28 , 1851,60 , 1911,21 , 1823,28 , 1851,60 , 1911,21 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 531,6 , 557,6 , 2, 1, 1, 6, 7 }, // Catalan/Latin/Italy + { 25, 5, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 394,8 , 402,13 , 198,6 , 204,11 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {67,78,89}, 133,1 , 3122,13 , 4,4 , 4,0 , 563,4 , 567,2 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/China + { 25, 5, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 269,6 , 402,13 , 198,6 , 204,11 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {72,75,68}, 6,1 , 3135,11 , 4,4 , 4,0 , 563,4 , 569,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Hong Kong + { 25, 5, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 269,6 , 402,13 , 198,6 , 204,11 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {77,79,80}, 134,4 , 3146,13 , 4,4 , 4,0 , 563,4 , 578,9 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Macau + { 25, 5, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 175,5 , 175,5 , 27,8 , 402,13 , 198,6 , 204,11 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 270,2 , 272,21 , 22,23 , {83,71,68}, 6,1 , 3159,15 , 4,4 , 4,0 , 563,4 , 587,3 , 2, 1, 7, 6, 7 }, // Chinese/Simplified Han/Singapore + { 25, 6, 97, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 180,5 , 180,5 , 415,8 , 402,13 , 198,6 , 215,13 , 1995,21 , 1953,28 , 1981,14 , 1995,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 293,3 , 5,17 , 22,23 , {72,75,68}, 6,1 , 3135,11 , 18,5 , 4,0 , 590,4 , 594,9 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/Hong Kong + { 25, 6, 126, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 180,5 , 180,5 , 415,8 , 402,13 , 198,6 , 215,13 , 1995,21 , 1953,28 , 1981,14 , 1995,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 293,3 , 5,17 , 22,23 , {77,79,80}, 134,4 , 3174,13 , 18,5 , 4,0 , 590,4 , 603,9 , 2, 1, 7, 6, 7 }, // Chinese/Traditional Han/Macau + { 25, 6, 208, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 175,5 , 175,5 , 394,8 , 423,14 , 198,6 , 215,13 , 1995,21 , 1953,28 , 1981,14 , 1995,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 45,4 , 5,17 , 22,23 , {84,87,68}, 6,1 , 3187,13 , 13,5 , 4,0 , 590,4 , 612,2 , 2, 0, 7, 6, 7 }, // Chinese/Traditional Han/Taiwan + { 26, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Corsican/Latin/France + { 27, 7, 54, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 437,13 , 450,19 , 37,5 , 87,12 , 2016,28 , 2044,58 , 2102,14 , 2016,28 , 2044,58 , 2116,14 , 0,2 , 0,2 , 296,7 , 5,17 , 22,23 , {72,82,75}, 138,2 , 3200,60 , 13,5 , 4,0 , 614,8 , 622,8 , 2, 1, 1, 6, 7 }, // Croatian/Latin/Croatia + { 27, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 469,9 , 450,19 , 37,5 , 87,12 , 2016,28 , 2044,58 , 2116,14 , 2016,28 , 2044,58 , 2116,14 , 0,2 , 0,2 , 296,7 , 5,17 , 22,23 , {66,65,77}, 140,2 , 3260,85 , 13,5 , 4,0 , 614,8 , 630,19 , 2, 1, 1, 6, 7 }, // Croatian/Latin/Bosnia And Herzegowina + { 28, 7, 57, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 185,7 , 156,8 , 478,17 , 55,4 , 59,9 , 2130,21 , 2151,49 , 2200,14 , 2130,21 , 2151,49 , 2200,14 , 60,4 , 57,4 , 303,5 , 5,17 , 22,23 , {67,90,75}, 142,2 , 3345,68 , 13,5 , 4,0 , 649,7 , 656,5 , 2, 0, 1, 6, 7 }, // Czech/Latin/Czech Republic + { 29, 7, 58, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 505,23 , 228,5 , 233,10 , 2214,28 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {68,75,75}, 144,3 , 3413,42 , 13,5 , 4,0 , 661,5 , 666,7 , 2, 0, 1, 6, 7 }, // Danish/Latin/Denmark + { 29, 7, 86, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 505,23 , 228,5 , 233,10 , 2214,28 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {68,75,75}, 144,3 , 3413,42 , 13,5 , 4,0 , 661,5 , 673,8 , 2, 0, 1, 6, 7 }, // Danish/Latin/Greenland + { 30, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3455,19 , 8,5 , 23,6 , 681,10 , 691,9 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Netherlands + { 30, 7, 12, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {65,87,71}, 147,4 , 3474,55 , 8,5 , 23,6 , 681,10 , 700,5 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Aruba + { 30, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 538,9 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3455,19 , 8,5 , 23,6 , 681,10 , 705,6 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Belgium + { 30, 7, 152, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {65,78,71}, 151,4 , 3529,97 , 8,5 , 23,6 , 681,10 , 711,7 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Cura Sao + { 30, 7, 202, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {83,82,68}, 6,1 , 3626,58 , 8,5 , 23,6 , 681,10 , 718,8 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Suriname + { 30, 7, 255, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3684,61 , 8,5 , 23,6 , 681,10 , 726,19 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Bonaire + { 30, 7, 256, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 6,8 , 6,8 , 528,10 , 97,16 , 37,5 , 8,10 , 2342,21 , 2363,59 , 2422,14 , 2342,21 , 2363,59 , 2422,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {65,78,71}, 151,4 , 3529,97 , 8,5 , 23,6 , 681,10 , 745,12 , 2, 1, 1, 6, 7 }, // Dutch/Latin/Sint Maarten + { 31, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 757,16 , 773,13 , 2, 1, 7, 6, 7 }, // English/Latin/United States + { 31, 3, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 155,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // English/Deseret/United States + { 31, 7, 4, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 793,14 , 2, 1, 7, 6, 7 }, // English/Latin/American Samoa + { 31, 7, 7, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 807,8 , 2, 1, 1, 6, 7 }, // English/Latin/Anguilla + { 31, 7, 9, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 815,17 , 2, 1, 7, 6, 7 }, // English/Latin/Antigua And Barbuda + { 31, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 210,9 , 210,9 , 269,6 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 2436,25 , 0,28 , 28,57 , 2436,25 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 832,18 , 850,9 , 2, 1, 7, 6, 7 }, // English/Latin/Australia + { 31, 7, 14, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 8,5 , 4,0 , 786,7 , 859,7 , 2, 1, 1, 6, 7 }, // English/Latin/Austria + { 31, 7, 16, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,83,68}, 6,1 , 3930,53 , 4,4 , 4,0 , 786,7 , 866,7 , 2, 1, 7, 6, 7 }, // English/Latin/Bahamas + { 31, 7, 19, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,66,68}, 6,1 , 3983,56 , 4,4 , 4,0 , 786,7 , 873,8 , 2, 1, 1, 6, 7 }, // English/Latin/Barbados + { 31, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 786,7 , 881,7 , 2, 1, 1, 6, 7 }, // English/Latin/Belgium + { 31, 7, 22, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 553,18 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,90,68}, 6,1 , 4039,47 , 4,4 , 4,0 , 786,7 , 888,6 , 2, 1, 7, 6, 7 }, // English/Latin/Belize + { 31, 7, 24, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,77,68}, 6,1 , 4086,53 , 4,4 , 4,0 , 786,7 , 894,7 , 2, 1, 1, 6, 7 }, // English/Latin/Bermuda + { 31, 7, 28, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 553,18 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {66,87,80}, 158,1 , 4139,50 , 4,4 , 4,0 , 786,7 , 901,8 , 2, 1, 7, 6, 7 }, // English/Latin/Botswana + { 31, 7, 31, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 909,30 , 2, 1, 1, 6, 7 }, // English/Latin/British Indian Ocean Territory + { 31, 7, 35, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {66,73,70}, 159,3 , 4189,53 , 4,4 , 4,0 , 786,7 , 939,7 , 0, 0, 1, 6, 7 }, // English/Latin/Burundi + { 31, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,65,70}, 32,4 , 4242,83 , 4,4 , 4,0 , 786,7 , 946,8 , 0, 0, 1, 6, 7 }, // English/Latin/Cameroon + { 31, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 53,10 , 35,18 , 18,7 , 25,12 , 2461,35 , 28,57 , 85,14 , 2461,35 , 28,57 , 85,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {67,65,68}, 6,1 , 4325,53 , 4,4 , 4,0 , 954,16 , 970,6 , 2, 0, 7, 6, 7 }, // English/Latin/Canada + { 31, 7, 40, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {75,89,68}, 6,1 , 4378,71 , 4,4 , 4,0 , 786,7 , 976,14 , 2, 1, 1, 6, 7 }, // English/Latin/Cayman Islands + { 31, 7, 45, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 990,16 , 2, 1, 1, 6, 7 }, // English/Latin/Christmas Island + { 31, 7, 46, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1006,23 , 2, 1, 1, 6, 7 }, // English/Latin/Cocos Islands + { 31, 7, 51, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1029,12 , 2, 1, 1, 6, 7 }, // English/Latin/Cook Islands + { 31, 7, 56, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 4,4 , 4,0 , 786,7 , 1041,6 , 2, 1, 1, 6, 7 }, // English/Latin/Cyprus + { 31, 7, 58, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 228,5 , 233,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {68,75,75}, 144,3 , 4511,44 , 13,5 , 4,0 , 786,7 , 1047,7 , 2, 0, 1, 6, 7 }, // English/Latin/Denmark + { 31, 7, 60, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1054,8 , 2, 1, 7, 6, 7 }, // English/Latin/Dominica + { 31, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,82,78}, 41,3 , 4555,50 , 4,4 , 4,0 , 786,7 , 1062,7 , 2, 1, 1, 6, 7 }, // English/Latin/Eritrea + { 31, 7, 70, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {70,75,80}, 119,1 , 4605,74 , 4,4 , 4,0 , 786,7 , 1069,16 , 2, 1, 1, 6, 7 }, // English/Latin/Falkland Islands + { 31, 7, 72, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {70,74,68}, 6,1 , 4679,47 , 4,4 , 4,0 , 786,7 , 1085,4 , 2, 1, 1, 6, 7 }, // English/Latin/Fiji + { 31, 7, 73, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 243,4 , 247,9 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 786,7 , 1089,7 , 2, 1, 1, 6, 7 }, // English/Latin/Finland + { 31, 7, 75, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 4726,32 , 4,4 , 4,0 , 786,7 , 1096,8 , 2, 1, 1, 6, 7 }, // English/Latin/Guernsey + { 31, 7, 80, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,77,68}, 162,1 , 4758,50 , 4,4 , 4,0 , 786,7 , 1104,6 , 2, 1, 1, 6, 7 }, // English/Latin/Gambia + { 31, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 786,7 , 1110,7 , 2, 1, 1, 6, 7 }, // English/Latin/Germany + { 31, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,72,83}, 163,3 , 4808,47 , 4,4 , 4,0 , 786,7 , 1117,5 , 2, 1, 1, 6, 7 }, // English/Latin/Ghana + { 31, 7, 84, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,73,80}, 119,1 , 4855,53 , 4,4 , 4,0 , 786,7 , 1122,9 , 2, 1, 1, 6, 7 }, // English/Latin/Gibraltar + { 31, 7, 87, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1131,7 , 2, 1, 1, 6, 7 }, // English/Latin/Grenada + { 31, 7, 89, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1138,4 , 2, 1, 7, 6, 7 }, // English/Latin/Guam + { 31, 7, 93, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,89,68}, 6,1 , 4908,56 , 4,4 , 4,0 , 786,7 , 1142,6 , 2, 0, 1, 6, 7 }, // English/Latin/Guyana + { 31, 7, 97, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 415,8 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {72,75,68}, 166,3 , 4964,56 , 4,4 , 4,0 , 786,7 , 1148,19 , 2, 1, 7, 6, 7 }, // English/Latin/Hong Kong + { 31, 7, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 27,8 , 192,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {73,78,82}, 121,1 , 5020,44 , 8,5 , 4,0 , 786,7 , 1167,5 , 2, 1, 7, 7, 7 }, // English/Latin/India + { 31, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 97,16 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 4,4 , 4,0 , 786,7 , 1172,7 , 2, 1, 1, 6, 7 }, // English/Latin/Ireland + { 31, 7, 105, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 55,4 , 59,9 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {73,76,83}, 49,1 , 5064,62 , 4,4 , 4,0 , 786,7 , 1179,6 , 2, 1, 7, 5, 6 }, // English/Latin/Israel + { 31, 7, 107, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 269,6 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {74,77,68}, 6,1 , 5126,53 , 4,4 , 4,0 , 786,7 , 1185,7 , 2, 1, 7, 6, 7 }, // English/Latin/Jamaica + { 31, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {75,69,83}, 2,3 , 5179,53 , 4,4 , 4,0 , 786,7 , 1192,5 , 2, 1, 7, 6, 7 }, // English/Latin/Kenya + { 31, 7, 112, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1197,8 , 2, 1, 1, 6, 7 }, // English/Latin/Kiribati + { 31, 7, 120, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 5232,61 , 4,4 , 4,0 , 786,7 , 1205,7 , 2, 1, 1, 6, 7 }, // English/Latin/Lesotho + { 31, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {76,82,68}, 6,1 , 5293,53 , 4,4 , 4,0 , 786,7 , 1212,7 , 2, 1, 1, 6, 7 }, // English/Latin/Liberia + { 31, 7, 126, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,79,80}, 134,4 , 5346,53 , 4,4 , 4,0 , 786,7 , 1219,15 , 2, 1, 7, 6, 7 }, // English/Latin/Macau + { 31, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,71,65}, 169,2 , 5399,54 , 4,4 , 4,0 , 786,7 , 1234,10 , 0, 0, 1, 6, 7 }, // English/Latin/Madagascar + { 31, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,87,75}, 171,2 , 5453,53 , 4,4 , 4,0 , 786,7 , 1244,6 , 2, 1, 1, 6, 7 }, // English/Latin/Malawi + { 31, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,89,82}, 173,2 , 5506,59 , 4,4 , 4,0 , 786,7 , 1250,8 , 2, 1, 1, 6, 7 }, // English/Latin/Malaysia + { 31, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 4,4 , 4,0 , 786,7 , 1258,5 , 2, 1, 7, 6, 7 }, // English/Latin/Malta + { 31, 7, 134, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1263,16 , 2, 1, 7, 6, 7 }, // English/Latin/Marshall Islands + { 31, 7, 137, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {77,85,82}, 175,2 , 5565,53 , 4,4 , 4,0 , 786,7 , 1279,9 , 2, 0, 1, 6, 7 }, // English/Latin/Mauritius + { 31, 7, 140, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1288,10 , 2, 1, 1, 6, 7 }, // English/Latin/Micronesia + { 31, 7, 144, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1298,10 , 2, 1, 1, 6, 7 }, // English/Latin/Montserrat + { 31, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,65,68}, 6,1 , 5618,53 , 4,4 , 4,0 , 786,7 , 1308,7 , 2, 1, 1, 6, 7 }, // English/Latin/Namibia + { 31, 7, 149, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1315,5 , 2, 1, 1, 6, 7 }, // English/Latin/Nauru + { 31, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 8,5 , 23,6 , 786,7 , 1320,11 , 2, 1, 1, 6, 7 }, // English/Latin/Netherlands + { 31, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 571,7 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1331,11 , 2, 1, 1, 6, 7 }, // English/Latin/New Zealand + { 31, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,71,78}, 177,1 , 5671,50 , 4,4 , 4,0 , 786,7 , 1342,7 , 2, 1, 1, 6, 7 }, // English/Latin/Nigeria + { 31, 7, 158, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1349,4 , 2, 1, 1, 6, 7 }, // English/Latin/Niue + { 31, 7, 159, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1353,14 , 2, 1, 1, 6, 7 }, // English/Latin/Norfolk Island + { 31, 7, 160, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1367,24 , 2, 1, 1, 6, 7 }, // English/Latin/Northern Mariana Islands + { 31, 7, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {80,75,82}, 175,2 , 5721,53 , 4,4 , 4,0 , 786,7 , 1391,8 , 2, 0, 7, 6, 7 }, // English/Latin/Pakistan + { 31, 7, 164, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1399,5 , 2, 1, 1, 6, 7 }, // English/Latin/Palau + { 31, 7, 167, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {80,71,75}, 131,1 , 5774,73 , 4,4 , 4,0 , 786,7 , 1404,16 , 2, 1, 1, 6, 7 }, // English/Latin/Papua New Guinea + { 31, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {80,72,80}, 178,1 , 5847,53 , 4,4 , 4,0 , 786,7 , 1420,11 , 2, 1, 7, 6, 7 }, // English/Latin/Philippines + { 31, 7, 171, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1431,16 , 2, 1, 1, 6, 7 }, // English/Latin/Pitcairn + { 31, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1447,11 , 2, 1, 7, 6, 7 }, // English/Latin/Puerto Rico + { 31, 7, 179, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {82,87,70}, 179,2 , 5900,47 , 4,4 , 4,0 , 786,7 , 1458,6 , 0, 0, 1, 6, 7 }, // English/Latin/Rwanda + { 31, 7, 180, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1464,17 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Kitts And Nevis + { 31, 7, 181, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1481,9 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Lucia + { 31, 7, 182, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {88,67,68}, 6,1 , 3780,71 , 4,4 , 4,0 , 786,7 , 1490,24 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Vincent And The Grenadines + { 31, 7, 183, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {87,83,84}, 181,3 , 5947,40 , 4,4 , 4,0 , 786,7 , 1514,5 , 2, 1, 7, 6, 7 }, // English/Latin/Samoa + { 31, 7, 188, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,67,82}, 184,2 , 5987,59 , 4,4 , 4,0 , 786,7 , 1519,10 , 2, 1, 1, 6, 7 }, // English/Latin/Seychelles + { 31, 7, 189, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,76,76}, 186,2 , 6046,68 , 4,4 , 4,0 , 786,7 , 1529,12 , 0, 0, 1, 6, 7 }, // English/Latin/Sierra Leone + { 31, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 269,6 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,71,68}, 6,1 , 6114,56 , 4,4 , 4,0 , 786,7 , 1541,9 , 2, 1, 7, 6, 7 }, // English/Latin/Singapore + { 31, 7, 192, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 29,7 , 786,7 , 1550,8 , 2, 1, 1, 6, 7 }, // English/Latin/Slovenia + { 31, 7, 193, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,66,68}, 6,1 , 6170,74 , 4,4 , 4,0 , 786,7 , 1558,15 , 2, 1, 1, 6, 7 }, // English/Latin/Solomon Islands + { 31, 7, 195, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 578,10 , 553,18 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 5232,61 , 4,4 , 4,0 , 786,7 , 1573,12 , 2, 1, 7, 6, 7 }, // English/Latin/South Africa + { 31, 7, 199, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,72,80}, 119,1 , 6244,56 , 4,4 , 4,0 , 786,7 , 1585,10 , 2, 1, 1, 6, 7 }, // English/Latin/Saint Helena + { 31, 7, 201, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,68,71}, 0,0 , 6300,50 , 4,4 , 4,0 , 786,7 , 1595,5 , 2, 1, 6, 5, 6 }, // English/Latin/Sudan + { 31, 7, 204, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,90,76}, 188,1 , 6350,53 , 4,4 , 4,0 , 786,7 , 1600,8 , 2, 1, 1, 6, 7 }, // English/Latin/Swaziland + { 31, 7, 205, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 53,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,69,75}, 189,2 , 6403,47 , 13,5 , 4,0 , 786,7 , 1608,6 , 2, 0, 1, 6, 7 }, // English/Latin/Sweden + { 31, 7, 206, 46, 8217, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {67,72,70}, 0,0 , 6450,41 , 8,5 , 36,5 , 786,7 , 1614,11 , 2, 0, 1, 6, 7 }, // English/Latin/Switzerland + { 31, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {84,90,83}, 191,3 , 6491,62 , 4,4 , 4,0 , 786,7 , 1625,8 , 2, 0, 1, 6, 7 }, // English/Latin/Tanzania + { 31, 7, 213, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {78,90,68}, 6,1 , 4449,62 , 4,4 , 4,0 , 786,7 , 1633,7 , 2, 1, 1, 6, 7 }, // English/Latin/Tokelau + { 31, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {84,79,80}, 194,2 , 6553,49 , 4,4 , 4,0 , 786,7 , 1640,5 , 2, 1, 1, 6, 7 }, // English/Latin/Tonga + { 31, 7, 215, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {84,84,68}, 6,1 , 6602,80 , 4,4 , 4,0 , 786,7 , 1645,17 , 2, 1, 7, 6, 7 }, // English/Latin/Trinidad And Tobago + { 31, 7, 219, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1662,22 , 2, 1, 1, 6, 7 }, // English/Latin/Turks And Caicos Islands + { 31, 7, 220, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,85,68}, 6,1 , 3851,59 , 4,4 , 4,0 , 786,7 , 1684,6 , 2, 1, 1, 6, 7 }, // English/Latin/Tuvalu + { 31, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,71,88}, 196,3 , 6682,56 , 4,4 , 4,0 , 786,7 , 1690,6 , 0, 0, 1, 6, 7 }, // English/Latin/Uganda + { 31, 7, 223, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {65,69,68}, 199,3 , 6738,55 , 4,4 , 4,0 , 786,7 , 1696,20 , 2, 1, 6, 5, 6 }, // English/Latin/United Arab Emirates + { 31, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 210,9 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 6793,47 , 4,4 , 4,0 , 1716,15 , 1731,14 , 2, 1, 1, 6, 7 }, // English/Latin/United Kingdom + { 31, 7, 226, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1745,21 , 2, 1, 7, 6, 7 }, // English/Latin/United States Minor Outlying Islands + { 31, 7, 229, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {86,85,86}, 202,2 , 6840,44 , 4,4 , 4,0 , 786,7 , 1766,7 , 0, 0, 1, 6, 7 }, // English/Latin/Vanuatu + { 31, 7, 233, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1773,22 , 2, 1, 1, 6, 7 }, // English/Latin/British Virgin Islands + { 31, 7, 234, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 547,6 , 35,18 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 3745,35 , 4,4 , 4,0 , 786,7 , 1795,19 , 2, 1, 7, 6, 7 }, // English/Latin/United States Virgin Islands + { 31, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {90,77,87}, 131,1 , 6884,50 , 4,4 , 4,0 , 786,7 , 1814,6 , 2, 1, 1, 6, 7 }, // English/Latin/Zambia + { 31, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 415,8 , 553,18 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1820,8 , 2, 1, 7, 6, 7 }, // English/Latin/Zimbabwe + { 31, 7, 249, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 3745,35 , 4,4 , 4,0 , 786,7 , 1828,12 , 2, 1, 1, 6, 7 }, // English/Latin/Diego Garcia + { 31, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 4726,32 , 4,4 , 4,0 , 786,7 , 1840,11 , 2, 1, 1, 6, 7 }, // English/Latin/Isle Of Man + { 31, 7, 252, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {71,66,80}, 119,1 , 4726,32 , 4,4 , 4,0 , 786,7 , 1851,6 , 2, 1, 1, 6, 7 }, // English/Latin/Jersey + { 31, 7, 254, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {83,83,80}, 119,1 , 6934,68 , 4,4 , 4,0 , 786,7 , 1857,11 , 2, 1, 1, 6, 7 }, // English/Latin/South Sudan + { 31, 7, 256, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {65,78,71}, 151,4 , 7002,95 , 4,4 , 4,0 , 786,7 , 1868,12 , 2, 1, 1, 6, 7 }, // English/Latin/Sint Maarten + { 31, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 18,7 , 25,12 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 4,4 , 4,0 , 786,7 , 1880,5 , 2, 1, 1, 6, 7 }, // English/Latin/World + { 31, 7, 261, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 200,10 , 210,9 , 119,10 , 10,17 , 37,5 , 8,10 , 0,28 , 28,57 , 85,14 , 0,28 , 28,57 , 85,14 , 68,2 , 65,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 13,5 , 4,0 , 786,7 , 1885,6 , 2, 1, 1, 6, 7 }, // English/Latin/Europe + { 32, 7, 260, 44, 160, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 219,9 , 219,9 , 588,8 , 596,26 , 37,5 , 256,25 , 2496,21 , 2517,51 , 2568,14 , 2496,21 , 2517,51 , 2568,14 , 70,3 , 67,3 , 308,6 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 41,6 , 4,0 , 1891,9 , 1900,5 , 2, 1, 1, 6, 7 }, // Esperanto/Latin/World + { 33, 7, 68, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 228,8 , 228,8 , 156,8 , 622,18 , 37,5 , 8,10 , 2582,14 , 2596,63 , 2582,14 , 2582,14 , 2596,63 , 2582,14 , 0,2 , 0,2 , 314,6 , 5,17 , 22,23 , {69,85,82}, 14,1 , 7097,20 , 13,5 , 4,0 , 1905,5 , 1910,5 , 2, 1, 1, 6, 7 }, // Estonian/Latin/Estonia + { 34, 7, 71, 44, 46, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 156,8 , 622,18 , 37,5 , 8,10 , 2659,28 , 2687,74 , 2761,14 , 2775,35 , 2687,74 , 2761,14 , 0,2 , 0,2 , 320,3 , 5,17 , 22,23 , {68,75,75}, 189,2 , 7117,43 , 13,5 , 4,0 , 1915,8 , 1923,7 , 2, 0, 1, 6, 7 }, // Faroese/Latin/Faroe Islands + { 34, 7, 58, 44, 46, 59, 37, 48, 8722, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 156,8 , 622,18 , 37,5 , 8,10 , 2659,28 , 2687,74 , 2761,14 , 2775,35 , 2687,74 , 2761,14 , 0,2 , 0,2 , 320,3 , 5,17 , 22,23 , {68,75,75}, 144,3 , 7117,43 , 13,5 , 4,0 , 1915,8 , 666,7 , 2, 0, 1, 6, 7 }, // Faroese/Latin/Denmark + { 36, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 640,8 , 478,17 , 243,4 , 247,9 , 2810,21 , 2831,67 , 2898,14 , 2810,21 , 2912,81 , 2898,14 , 73,3 , 70,3 , 323,5 , 328,17 , 345,23 , {69,85,82}, 14,1 , 7160,20 , 13,5 , 4,0 , 1930,5 , 1935,5 , 2, 1, 1, 6, 7 }, // Finnish/Latin/Finland + { 37, 7, 74, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 1948,6 , 2, 1, 1, 6, 7 }, // French/Latin/France + { 37, 7, 3, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {68,90,68}, 204,2 , 7180,51 , 13,5 , 4,0 , 1940,8 , 1954,7 , 2, 1, 6, 5, 6 }, // French/Latin/Algeria + { 37, 7, 21, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 571,7 , 97,16 , 37,5 , 281,23 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 1961,8 , 2, 1, 1, 6, 7 }, // French/Latin/Belgium + { 37, 7, 23, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 1969,5 , 0, 0, 1, 6, 7 }, // French/Latin/Benin + { 37, 7, 34, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 1974,12 , 0, 0, 1, 6, 7 }, // French/Latin/Burkina Faso + { 37, 7, 35, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {66,73,70}, 159,3 , 7290,53 , 13,5 , 4,0 , 1940,8 , 939,7 , 0, 0, 1, 6, 7 }, // French/Latin/Burundi + { 37, 7, 37, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 76,5 , 73,4 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 1986,8 , 0, 0, 1, 6, 7 }, // French/Latin/Cameroon + { 37, 7, 38, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8221, 8220, 0,6 , 0,6 , 236,8 , 236,8 , 588,8 , 97,16 , 304,9 , 313,24 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 64,4 , 61,4 , 368,6 , 374,17 , 391,23 , {67,65,68}, 6,1 , 7399,54 , 47,6 , 4,0 , 1994,17 , 970,6 , 2, 0, 7, 6, 7 }, // French/Latin/Canada + { 37, 7, 41, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2011,25 , 0, 0, 1, 6, 7 }, // French/Latin/Central African Republic + { 37, 7, 42, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2036,5 , 0, 0, 1, 6, 7 }, // French/Latin/Chad + { 37, 7, 48, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {75,77,70}, 36,2 , 7453,51 , 13,5 , 4,0 , 1940,8 , 2041,7 , 0, 0, 1, 6, 7 }, // French/Latin/Comoros + { 37, 7, 49, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {67,68,70}, 209,2 , 7504,53 , 13,5 , 4,0 , 1940,8 , 2048,14 , 2, 1, 1, 6, 7 }, // French/Latin/Congo Kinshasa + { 37, 7, 50, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2062,17 , 0, 0, 1, 6, 7 }, // French/Latin/Congo Brazzaville + { 37, 7, 53, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2079,13 , 0, 0, 1, 6, 7 }, // French/Latin/Ivory Coast + { 37, 7, 59, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {68,74,70}, 38,3 , 7557,57 , 13,5 , 4,0 , 1940,8 , 2092,8 , 0, 0, 6, 6, 7 }, // French/Latin/Djibouti + { 37, 7, 66, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2100,18 , 0, 0, 1, 6, 7 }, // French/Latin/Equatorial Guinea + { 37, 7, 76, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2118,16 , 2, 1, 1, 6, 7 }, // French/Latin/French Guiana + { 37, 7, 77, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,80,70}, 211,4 , 7614,35 , 13,5 , 4,0 , 1940,8 , 2134,19 , 0, 0, 1, 6, 7 }, // French/Latin/French Polynesia + { 37, 7, 79, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,65,70}, 32,4 , 7343,56 , 13,5 , 4,0 , 1940,8 , 2153,5 , 0, 0, 1, 6, 7 }, // French/Latin/Gabon + { 37, 7, 88, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2158,10 , 2, 1, 1, 6, 7 }, // French/Latin/Guadeloupe + { 37, 7, 91, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {71,78,70}, 215,2 , 7649,48 , 13,5 , 4,0 , 1940,8 , 2168,6 , 0, 0, 1, 6, 7 }, // French/Latin/Guinea + { 37, 7, 94, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {72,84,71}, 217,1 , 7697,57 , 13,5 , 4,0 , 1940,8 , 2174,5 , 2, 1, 1, 6, 7 }, // French/Latin/Haiti + { 37, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2179,10 , 2, 1, 1, 6, 7 }, // French/Latin/Luxembourg + { 37, 7, 128, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {77,71,65}, 169,2 , 7754,54 , 13,5 , 4,0 , 1940,8 , 1234,10 , 0, 0, 1, 6, 7 }, // French/Latin/Madagascar + { 37, 7, 132, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2189,4 , 0, 0, 1, 6, 7 }, // French/Latin/Mali + { 37, 7, 135, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2193,10 , 2, 1, 1, 6, 7 }, // French/Latin/Martinique + { 37, 7, 136, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {77,82,85}, 218,2 , 7808,66 , 13,5 , 4,0 , 1940,8 , 2203,10 , 2, 1, 1, 6, 7 }, // French/Latin/Mauritania + { 37, 7, 137, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {77,85,82}, 175,2 , 7874,63 , 13,5 , 4,0 , 1940,8 , 2213,7 , 2, 0, 1, 6, 7 }, // French/Latin/Mauritius + { 37, 7, 138, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2220,7 , 2, 1, 1, 6, 7 }, // French/Latin/Mayotte + { 37, 7, 142, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2227,6 , 2, 1, 1, 6, 7 }, // French/Latin/Monaco + { 37, 7, 145, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 64,4 , 61,4 , 368,6 , 374,17 , 391,23 , {77,65,68}, 0,0 , 7937,54 , 13,5 , 4,0 , 1940,8 , 2233,5 , 2, 1, 1, 6, 7 }, // French/Latin/Morocco + { 37, 7, 153, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,80,70}, 211,4 , 7614,35 , 13,5 , 4,0 , 1940,8 , 2238,18 , 0, 0, 1, 6, 7 }, // French/Latin/New Caledonia + { 37, 7, 156, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2256,5 , 0, 0, 1, 6, 7 }, // French/Latin/Niger + { 37, 7, 176, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2261,10 , 2, 1, 1, 6, 7 }, // French/Latin/Reunion + { 37, 7, 179, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {82,87,70}, 179,2 , 7991,50 , 13,5 , 4,0 , 1940,8 , 1458,6 , 0, 0, 1, 6, 7 }, // French/Latin/Rwanda + { 37, 7, 187, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2271,7 , 0, 0, 1, 6, 7 }, // French/Latin/Senegal + { 37, 7, 188, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {83,67,82}, 184,2 , 8041,71 , 13,5 , 4,0 , 1940,8 , 1519,10 , 2, 1, 1, 6, 7 }, // French/Latin/Seychelles + { 37, 7, 200, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2278,24 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Pierre And Miquelon + { 37, 7, 206, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 236,8 , 236,8 , 156,8 , 10,17 , 37,5 , 337,14 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {67,72,70}, 0,0 , 8112,45 , 13,5 , 4,0 , 2302,15 , 2317,6 , 2, 0, 1, 6, 7 }, // French/Latin/Switzerland + { 37, 7, 207, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {83,89,80}, 220,2 , 8157,51 , 13,5 , 4,0 , 1940,8 , 2323,5 , 0, 0, 6, 5, 6 }, // French/Latin/Syria + { 37, 7, 212, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,79,70}, 206,3 , 7231,59 , 13,5 , 4,0 , 1940,8 , 2328,4 , 0, 0, 1, 6, 7 }, // French/Latin/Togo + { 37, 7, 216, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {84,78,68}, 222,2 , 8208,51 , 13,5 , 4,0 , 1940,8 , 2332,7 , 3, 0, 1, 6, 7 }, // French/Latin/Tunisia + { 37, 7, 229, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 18,7 , 25,12 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {86,85,86}, 202,2 , 8259,51 , 13,5 , 4,0 , 1940,8 , 1766,7 , 0, 0, 1, 6, 7 }, // French/Latin/Vanuatu + { 37, 7, 235, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {88,80,70}, 211,4 , 7614,35 , 13,5 , 4,0 , 1940,8 , 2339,16 , 0, 0, 1, 6, 7 }, // French/Latin/Wallis And Futuna Islands + { 37, 7, 244, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2355,16 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Barthelemy + { 37, 7, 245, 44, 8239, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 236,8 , 236,8 , 119,10 , 97,16 , 37,5 , 8,10 , 2993,35 , 3028,52 , 3080,14 , 2993,35 , 3028,52 , 3080,14 , 0,2 , 0,2 , 368,6 , 374,17 , 391,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 1940,8 , 2371,12 , 2, 1, 1, 6, 7 }, // French/Latin/Saint Martin + { 38, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 6,8 , 6,8 , 339,8 , 97,16 , 37,5 , 8,10 , 3094,21 , 3115,54 , 85,14 , 3094,21 , 3115,54 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3455,19 , 8,5 , 53,6 , 2383,5 , 2388,8 , 2, 1, 1, 6, 7 }, // Western Frisian/Latin/Netherlands + { 39, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 244,10 , 244,10 , 119,10 , 648,21 , 37,5 , 8,10 , 3169,28 , 3197,69 , 3266,14 , 3169,28 , 3197,69 , 3266,14 , 81,1 , 77,1 , 414,6 , 5,17 , 22,23 , {71,66,80}, 119,1 , 8310,86 , 4,4 , 4,0 , 2396,8 , 2404,22 , 2, 1, 1, 6, 7 }, // Gaelic/Latin/United Kingdom + { 40, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 3280,35 , 3315,49 , 3364,14 , 3378,35 , 3413,49 , 3462,21 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3910,20 , 13,5 , 4,0 , 2426,6 , 2432,6 , 2, 1, 1, 6, 7 }, // Galician/Latin/Spain + { 41, 15, 81, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 171, 187, 0,6 , 0,6 , 261,8 , 261,8 , 156,8 , 696,19 , 37,5 , 8,10 , 3483,28 , 3511,62 , 3573,14 , 3483,28 , 3511,62 , 3573,14 , 0,2 , 0,2 , 420,5 , 425,37 , 22,23 , {71,69,76}, 224,1 , 8396,43 , 13,5 , 4,0 , 2438,7 , 2445,10 , 2, 1, 1, 6, 7 }, // Georgian/Georgian/Georgia + { 42, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2462,11 , 2, 1, 1, 6, 7 }, // German/Latin/Germany + { 42, 7, 14, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 8,5 , 4,0 , 2473,24 , 2497,10 , 2, 1, 1, 6, 7 }, // German/Latin/Austria + { 42, 7, 21, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2507,7 , 2, 1, 1, 6, 7 }, // German/Latin/Belgium + { 42, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2514,7 , 2, 1, 1, 6, 7 }, // German/Latin/Italy + { 42, 7, 123, 46, 8217, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {67,72,70}, 0,0 , 8458,58 , 8,5 , 4,0 , 2455,7 , 2521,13 , 2, 0, 1, 6, 7 }, // German/Latin/Liechtenstein + { 42, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 2455,7 , 2534,9 , 2, 1, 1, 6, 7 }, // German/Latin/Luxembourg + { 42, 7, 206, 46, 8217, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 3587,21 , 3608,60 , 3668,14 , 3682,28 , 3608,60 , 3668,14 , 0,2 , 0,2 , 462,5 , 5,17 , 22,23 , {67,72,70}, 225,3 , 8458,58 , 8,5 , 36,5 , 2543,21 , 2564,7 , 2, 0, 1, 6, 7 }, // German/Latin/Switzerland + { 43, 16, 85, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 278,9 , 278,9 , 269,6 , 10,17 , 18,7 , 25,12 , 3710,28 , 3738,55 , 3793,14 , 3710,28 , 3738,55 , 3793,14 , 82,4 , 78,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8516,19 , 13,5 , 4,0 , 2571,8 , 2579,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Greece + { 43, 16, 56, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 278,9 , 278,9 , 269,6 , 10,17 , 18,7 , 25,12 , 3710,28 , 3738,55 , 3793,14 , 3710,28 , 3738,55 , 3793,14 , 82,4 , 78,4 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8516,19 , 13,5 , 4,0 , 2571,8 , 2585,6 , 2, 1, 1, 6, 7 }, // Greek/Greek/Cyprus + { 44, 7, 86, 44, 46, 59, 37, 48, 8722, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 287,11 , 287,11 , 53,10 , 80,17 , 228,5 , 233,10 , 3807,28 , 3835,98 , 3933,14 , 3807,28 , 3835,98 , 3933,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {68,75,75}, 144,3 , 8535,62 , 4,4 , 59,5 , 2591,11 , 2602,16 , 2, 0, 1, 6, 7 }, // Greenlandic/Latin/Greenland + { 45, 7, 168, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,89,71}, 228,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 7, 6, 7 }, // Guarani/Latin/Paraguay + { 46, 17, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 298,9 , 298,9 , 269,6 , 192,18 , 351,8 , 359,13 , 3947,32 , 3979,53 , 4032,19 , 3947,32 , 3979,53 , 4032,19 , 0,2 , 0,2 , 467,4 , 471,19 , 22,23 , {73,78,82}, 121,1 , 8597,46 , 4,4 , 4,0 , 2618,7 , 2625,4 , 2, 1, 7, 7, 7 }, // Gujarati/Gujarati/India + { 47, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 307,8 , 307,8 , 269,6 , 715,17 , 37,5 , 8,10 , 4051,28 , 4079,52 , 4131,14 , 4051,28 , 4079,52 , 4131,14 , 86,6 , 82,5 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 8643,12 , 8,5 , 4,0 , 2629,5 , 2634,8 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Nigeria + { 47, 1, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Hausa/Arabic/Nigeria + { 47, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 307,8 , 307,8 , 269,6 , 715,17 , 18,7 , 25,12 , 4051,28 , 4079,52 , 4131,14 , 4051,28 , 4079,52 , 4131,14 , 86,6 , 82,5 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 0,7 , 8,5 , 4,0 , 2629,5 , 2642,4 , 2, 1, 1, 6, 7 }, // Hausa/Latin/Ghana + { 47, 7, 156, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 307,8 , 307,8 , 269,6 , 715,17 , 37,5 , 8,10 , 4051,28 , 4079,52 , 4131,14 , 4051,28 , 4079,52 , 4131,14 , 86,6 , 82,5 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 8655,36 , 8,5 , 4,0 , 2629,5 , 2646,5 , 0, 0, 1, 6, 7 }, // Hausa/Latin/Niger + { 48, 18, 105, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 315,6 , 315,6 , 640,8 , 732,18 , 55,4 , 59,9 , 4145,46 , 4191,65 , 4256,21 , 4145,46 , 4191,65 , 4256,21 , 92,6 , 87,5 , 490,4 , 5,17 , 22,23 , {73,76,83}, 49,1 , 8691,54 , 64,6 , 70,8 , 2651,5 , 2656,5 , 2, 1, 7, 5, 6 }, // Hebrew/Hebrew/Israel + { 49, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 321,9 , 330,8 , 269,6 , 10,17 , 18,7 , 25,12 , 4277,32 , 4309,53 , 4362,19 , 4277,32 , 4309,53 , 4362,19 , 68,2 , 65,2 , 494,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 8745,42 , 4,4 , 4,0 , 2661,6 , 2667,4 , 2, 1, 7, 7, 7 }, // Hindi/Devanagari/India + { 50, 7, 98, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 187, 171, 0,6 , 0,6 , 338,8 , 338,8 , 750,13 , 763,19 , 55,4 , 59,9 , 4381,19 , 4400,52 , 4452,17 , 4381,19 , 4400,52 , 4452,17 , 98,3 , 92,3 , 498,4 , 5,17 , 22,23 , {72,85,70}, 229,2 , 8787,46 , 13,5 , 4,0 , 2671,6 , 2677,12 , 2, 0, 1, 6, 7 }, // Hungarian/Latin/Hungary + { 51, 7, 99, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 192,8 , 192,8 , 640,8 , 622,18 , 37,5 , 8,10 , 4469,35 , 4504,81 , 4585,14 , 4469,35 , 4504,81 , 4585,14 , 101,4 , 95,4 , 502,4 , 5,17 , 22,23 , {73,83,75}, 189,2 , 8833,49 , 13,5 , 4,0 , 2689,8 , 2697,6 , 0, 0, 1, 6, 7 }, // Icelandic/Latin/Iceland + { 52, 7, 101, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 346,10 , 356,9 , 27,8 , 553,18 , 228,5 , 233,10 , 4599,28 , 4627,43 , 4670,14 , 4599,28 , 4627,43 , 4670,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,68,82}, 231,2 , 8882,39 , 4,4 , 4,0 , 2703,9 , 2703,9 , 2, 0, 7, 6, 7 }, // Indonesian/Latin/Indonesia + { 53, 7, 260, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 528,10 , 782,26 , 37,5 , 8,10 , 4684,28 , 4712,57 , 4769,14 , 4684,28 , 4712,57 , 4769,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 2712,11 , 2723,5 , 2, 1, 1, 6, 7 }, // Interlingua/Latin/World + { 55, 44, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,65,68}, 233,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Inuktitut/Canadian Aboriginal/Canada + { 55, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,65,68}, 233,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Inuktitut/Latin/Canada + { 57, 7, 104, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 365,11 , 244,10 , 119,10 , 97,16 , 37,5 , 8,10 , 4783,37 , 4820,75 , 4895,14 , 4783,37 , 4820,75 , 4895,14 , 105,4 , 99,4 , 506,6 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8921,31 , 4,4 , 4,0 , 2728,7 , 2735,4 , 2, 1, 1, 6, 7 }, // Irish/Latin/Ireland + { 58, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 97,16 , 37,5 , 8,10 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 2739,8 , 2747,6 , 2, 1, 1, 6, 7 }, // Italian/Latin/Italy + { 58, 7, 184, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 97,16 , 37,5 , 8,10 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 2739,8 , 2753,10 , 2, 1, 1, 6, 7 }, // Italian/Latin/San Marino + { 58, 7, 206, 46, 8217, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 254,7 , 254,7 , 156,8 , 10,17 , 37,5 , 8,10 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,72,70}, 0,0 , 8971,53 , 8,5 , 36,5 , 2739,8 , 2763,8 , 2, 0, 1, 6, 7 }, // Italian/Latin/Switzerland + { 58, 7, 230, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 97,16 , 37,5 , 8,10 , 4909,28 , 4937,57 , 4994,14 , 4909,28 , 4937,57 , 4994,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 2739,8 , 2771,18 , 2, 1, 1, 6, 7 }, // Italian/Latin/Vatican City State + { 59, 19, 108, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 170,5 , 170,5 , 578,10 , 402,13 , 55,4 , 372,10 , 5008,14 , 5022,28 , 5008,14 , 5008,14 , 5022,28 , 5008,14 , 109,2 , 103,2 , 512,3 , 5,17 , 22,23 , {74,80,89}, 133,1 , 9024,11 , 4,4 , 4,0 , 2789,3 , 2792,2 , 0, 0, 7, 6, 7 }, // Japanese/Japanese/Japan + { 60, 7, 101, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 376,10 , 386,9 , 528,10 , 10,17 , 37,5 , 8,10 , 5050,28 , 5078,41 , 5119,14 , 5050,28 , 5078,41 , 5119,14 , 111,4 , 105,5 , 515,4 , 5,17 , 22,23 , {73,68,82}, 231,2 , 8882,39 , 8,5 , 4,0 , 2794,4 , 2798,9 , 2, 0, 7, 6, 7 }, // Javanese/Latin/Indonesia + { 61, 21, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 395,12 , 407,11 , 269,6 , 35,18 , 351,8 , 359,13 , 5133,33 , 5166,54 , 5220,20 , 5133,33 , 5166,54 , 5220,20 , 115,9 , 110,7 , 519,8 , 527,35 , 22,23 , {73,78,82}, 121,1 , 9035,49 , 4,4 , 4,0 , 2807,5 , 2812,4 , 2, 1, 7, 7, 7 }, // Kannada/Kannada/India + { 62, 1, 100, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 547,6 , 35,18 , 18,7 , 25,12 , 5240,50 , 5290,52 , 5342,14 , 5240,50 , 5290,52 , 5342,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 9084,23 , 8,5 , 4,0 , 2816,5 , 2821,9 , 2, 1, 7, 7, 7 }, // Kashmiri/Arabic/India + { 63, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 418,10 , 156,8 , 808,22 , 37,5 , 8,10 , 5356,21 , 5377,56 , 5433,14 , 5356,21 , 5377,56 , 5433,14 , 0,2 , 0,2 , 562,4 , 566,17 , 583,23 , {75,90,84}, 236,1 , 9107,58 , 13,5 , 4,0 , 2830,10 , 2840,9 , 2, 1, 1, 6, 7 }, // Kazakh/Cyrillic/Kazakhstan + { 64, 7, 179, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 5447,35 , 5482,84 , 85,14 , 5447,35 , 5482,84 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,87,70}, 179,2 , 0,7 , 8,5 , 4,0 , 2849,11 , 2860,8 , 0, 0, 1, 6, 7 }, // Kinyarwanda/Latin/Rwanda + { 65, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 428,10 , 428,10 , 269,6 , 830,23 , 37,5 , 8,10 , 5566,38 , 5604,57 , 5661,14 , 5566,38 , 5604,57 , 5661,14 , 124,5 , 117,14 , 562,4 , 606,18 , 22,23 , {75,71,83}, 237,3 , 9165,52 , 13,5 , 4,0 , 2868,8 , 2876,10 , 2, 1, 1, 6, 7 }, // Kirghiz/Cyrillic/Kyrgyzstan + { 66, 22, 114, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 438,7 , 438,7 , 853,9 , 862,16 , 382,7 , 389,13 , 5675,14 , 5689,28 , 5675,14 , 5675,14 , 5689,28 , 5675,14 , 129,2 , 131,2 , 624,3 , 5,17 , 22,23 , {75,82,87}, 240,1 , 9217,19 , 4,4 , 4,0 , 2886,3 , 2889,4 , 0, 0, 7, 6, 7 }, // Korean/Korean/South Korea + { 66, 22, 113, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 438,7 , 438,7 , 853,9 , 862,16 , 382,7 , 389,13 , 5675,14 , 5689,28 , 5675,14 , 5675,14 , 5689,28 , 5675,14 , 129,2 , 131,2 , 624,3 , 5,17 , 22,23 , {75,80,87}, 240,1 , 9236,39 , 4,4 , 4,0 , 2886,3 , 2893,11 , 0, 0, 1, 6, 7 }, // Korean/Korean/North Korea + { 67, 7, 217, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 445,7 , 445,7 , 53,10 , 63,17 , 37,5 , 8,10 , 5717,20 , 5737,42 , 5779,14 , 5717,20 , 5737,42 , 5779,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {84,82,89}, 241,1 , 0,7 , 13,5 , 4,0 , 2904,5 , 2909,7 , 2, 1, 1, 6, 7 }, // Kurdish/Latin/Turkey + { 68, 7, 35, 44, 46, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 5793,34 , 5827,89 , 85,14 , 5793,34 , 5827,89 , 85,14 , 131,5 , 133,5 , 45,4 , 5,17 , 22,23 , {66,73,70}, 159,3 , 9275,27 , 0,4 , 4,0 , 2916,8 , 2924,8 , 0, 0, 1, 6, 7 }, // Rundi/Latin/Burundi + { 69, 23, 117, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 452,9 , 415,8 , 878,19 , 55,4 , 402,24 , 5916,36 , 5952,57 , 6009,17 , 5916,36 , 5952,57 , 6009,17 , 136,8 , 138,8 , 45,4 , 5,17 , 22,23 , {76,65,75}, 242,1 , 9302,21 , 4,4 , 36,5 , 2932,3 , 2932,3 , 0, 0, 7, 6, 7 }, // Lao/Lao/Laos + { 71, 7, 118, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 461,8 , 461,8 , 156,8 , 897,26 , 37,5 , 8,10 , 6026,51 , 6077,72 , 6149,14 , 6163,51 , 6214,72 , 6149,14 , 144,14 , 146,11 , 627,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 9323,23 , 13,5 , 4,0 , 2935,8 , 2943,7 , 2, 1, 1, 6, 7 }, // Latvian/Latin/Latvia + { 72, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {67,68,70}, 209,2 , 9346,23 , 13,5 , 4,0 , 2950,7 , 2957,30 , 2, 1, 1, 6, 7 }, // Lingala/Latin/Congo Kinshasa + { 72, 7, 6, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {65,79,65}, 243,2 , 9369,23 , 13,5 , 4,0 , 2950,7 , 2987,6 , 2, 1, 1, 6, 7 }, // Lingala/Latin/Angola + { 72, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 9392,23 , 13,5 , 4,0 , 2950,7 , 2993,26 , 0, 0, 1, 6, 7 }, // Lingala/Latin/Central African Republic + { 72, 7, 50, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 469,9 , 469,9 , 415,8 , 97,16 , 37,5 , 8,10 , 6286,28 , 6314,100 , 6414,14 , 6286,28 , 6314,100 , 6414,14 , 158,8 , 157,6 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 9392,23 , 13,5 , 4,0 , 2950,7 , 3019,5 , 0, 0, 1, 6, 7 }, // Lingala/Latin/Congo Brazzaville + { 73, 7, 124, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 478,8 , 478,8 , 53,10 , 923,27 , 37,5 , 8,10 , 6428,21 , 6449,89 , 6538,14 , 6428,21 , 6449,89 , 6538,14 , 166,9 , 163,6 , 632,6 , 5,17 , 22,23 , {69,85,82}, 14,1 , 9415,30 , 13,5 , 4,0 , 3024,8 , 3032,7 , 2, 1, 1, 6, 7 }, // Lithuanian/Latin/Lithuania + { 74, 2, 127, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 950,7 , 553,18 , 37,5 , 8,10 , 6552,35 , 6587,54 , 1503,14 , 6641,34 , 6587,54 , 1503,14 , 175,10 , 169,8 , 638,5 , 5,17 , 22,23 , {77,75,68}, 245,3 , 9445,56 , 13,5 , 4,0 , 3039,10 , 3049,18 , 2, 1, 1, 6, 7 }, // Macedonian/Cyrillic/Macedonia + { 75, 7, 128, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 97,16 , 37,5 , 8,10 , 6675,34 , 6709,60 , 6769,14 , 6675,34 , 6709,60 , 6769,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,71,65}, 169,2 , 9501,13 , 8,5 , 4,0 , 3067,8 , 3075,12 , 0, 0, 1, 6, 7 }, // Malagasy/Latin/Madagascar + { 76, 7, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 356,9 , 356,9 , 571,7 , 10,17 , 18,7 , 25,12 , 6783,28 , 6811,43 , 6854,14 , 6783,28 , 6811,43 , 6854,14 , 185,2 , 177,3 , 643,4 , 5,17 , 22,23 , {77,89,82}, 173,2 , 9514,39 , 4,4 , 4,0 , 3087,6 , 1250,8 , 2, 1, 1, 6, 7 }, // Malay/Latin/Malaysia + { 76, 1, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,89,82}, 173,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Malay/Arabic/Malaysia + { 76, 7, 32, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 356,9 , 356,9 , 571,7 , 957,12 , 18,7 , 25,12 , 6783,28 , 6811,43 , 6854,14 , 6783,28 , 6811,43 , 6854,14 , 185,2 , 177,3 , 643,4 , 5,17 , 22,23 , {66,78,68}, 6,1 , 9553,31 , 8,5 , 4,0 , 3087,6 , 3093,6 , 2, 1, 1, 6, 7 }, // Malay/Latin/Brunei + { 76, 7, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 356,9 , 356,9 , 571,7 , 10,17 , 18,7 , 25,12 , 6783,28 , 6811,43 , 6854,14 , 6783,28 , 6811,43 , 6854,14 , 185,2 , 177,3 , 643,4 , 5,17 , 22,23 , {83,71,68}, 6,1 , 9584,37 , 4,4 , 4,0 , 3087,6 , 3099,9 , 2, 1, 7, 6, 7 }, // Malay/Latin/Singapore + { 77, 24, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 486,13 , 499,12 , 269,6 , 969,18 , 18,7 , 25,12 , 6868,41 , 6909,77 , 6986,22 , 6868,41 , 7008,76 , 7084,21 , 0,2 , 0,2 , 647,6 , 653,27 , 22,23 , {73,78,82}, 121,1 , 9621,40 , 4,4 , 4,0 , 3108,6 , 3114,6 , 2, 1, 7, 7, 7 }, // Malayalam/Malayalam/India + { 78, 7, 133, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 511,8 , 519,7 , 119,10 , 987,23 , 37,5 , 8,10 , 7105,28 , 7133,63 , 7196,21 , 7105,28 , 7133,63 , 7217,20 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 9661,27 , 4,4 , 4,0 , 3120,5 , 1258,5 , 2, 1, 7, 6, 7 }, // Maltese/Latin/Malta + { 79, 7, 154, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 426,4 , 25,12 , 7237,27 , 7264,47 , 7311,14 , 7237,27 , 7264,47 , 7311,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,90,68}, 6,1 , 9688,41 , 8,5 , 4,0 , 3125,5 , 3130,8 , 2, 1, 1, 6, 7 }, // Maori/Latin/New Zealand + { 80, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 526,9 , 526,9 , 269,6 , 192,18 , 18,7 , 25,12 , 7325,32 , 7357,53 , 4362,19 , 7325,32 , 7357,53 , 4362,19 , 187,5 , 180,4 , 494,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 9729,43 , 4,4 , 4,0 , 3138,5 , 2667,4 , 2, 1, 7, 7, 7 }, // Marathi/Devanagari/India + { 82, 2, 143, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 1010,10 , 1020,16 , 37,5 , 87,12 , 7410,21 , 7431,43 , 7410,21 , 7410,21 , 7474,43 , 7410,21 , 192,4 , 184,4 , 562,4 , 680,17 , 22,23 , {77,78,84}, 248,1 , 9772,25 , 8,5 , 4,0 , 3143,6 , 3149,6 , 2, 0, 1, 6, 7 }, // Mongolian/Cyrillic/Mongolia + { 82, 8, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,78,89}, 249,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Mongolian/Mongolian/China + { 84, 13, 150, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 535,5 , 0,6 , 540,7 , 540,7 , 227,6 , 63,17 , 37,5 , 8,10 , 7517,33 , 7550,54 , 7604,18 , 7517,33 , 7550,54 , 7604,18 , 196,9 , 188,7 , 494,4 , 697,19 , 22,23 , {78,80,82}, 252,4 , 9797,49 , 8,5 , 4,0 , 3155,6 , 3161,5 , 2, 1, 7, 6, 7 }, // Nepali/Devanagari/Nepal + { 84, 13, 100, 46, 44, 59, 37, 2406, 45, 43, 101, 8220, 8221, 8216, 8217, 535,5 , 0,6 , 540,7 , 540,7 , 227,6 , 63,17 , 18,7 , 25,12 , 7517,33 , 7550,54 , 7604,18 , 7517,33 , 7550,54 , 7604,18 , 196,9 , 188,7 , 494,4 , 697,19 , 22,23 , {73,78,82}, 121,1 , 9846,49 , 8,5 , 4,0 , 3155,6 , 2667,4 , 2, 1, 7, 7, 7 }, // Nepali/Devanagari/India + { 85, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 478,17 , 228,5 , 233,10 , 2307,35 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 9895,44 , 8,5 , 4,0 , 3166,12 , 3178,5 , 2, 0, 1, 6, 7 }, // Norwegian Bokmal/Latin/Norway + { 85, 7, 203, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 478,17 , 228,5 , 233,10 , 2307,35 , 2242,51 , 2293,14 , 2307,35 , 2242,51 , 2293,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 9895,44 , 8,5 , 4,0 , 3166,12 , 3183,21 , 2, 0, 1, 6, 7 }, // Norwegian Bokmal/Latin/Svalbard And Jan Mayen Islands + { 86, 7, 74, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Occitan/Latin/France + { 87, 26, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 547,8 , 555,7 , 547,6 , 35,18 , 18,7 , 25,12 , 7622,33 , 7655,54 , 7709,18 , 7622,33 , 7655,54 , 7709,18 , 0,2 , 0,2 , 716,5 , 5,17 , 22,23 , {73,78,82}, 121,1 , 9939,43 , 4,4 , 4,0 , 3204,5 , 3209,4 , 2, 1, 7, 7, 7 }, // Oriya/Oriya/India + { 88, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 46,6 , 46,6 , 562,9 , 571,8 , 394,8 , 1036,20 , 55,4 , 430,11 , 7727,39 , 7727,39 , 85,14 , 7727,39 , 7727,39 , 85,14 , 205,4 , 195,4 , 721,5 , 5,17 , 22,23 , {65,70,78}, 256,1 , 9982,25 , 13,5 , 4,0 , 3213,4 , 3217,9 , 0, 0, 6, 4, 5 }, // Pashto/Arabic/Afghanistan + { 88, 1, 163, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 46,6 , 46,6 , 562,9 , 571,8 , 394,8 , 1036,20 , 18,7 , 25,12 , 7727,39 , 7727,39 , 85,14 , 7727,39 , 7727,39 , 85,14 , 205,4 , 195,4 , 721,5 , 5,17 , 22,23 , {80,75,82}, 175,2 , 10007,52 , 13,5 , 4,0 , 3213,4 , 3226,7 , 2, 0, 7, 6, 7 }, // Pashto/Arabic/Pakistan + { 89, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 579,7 , 579,7 , 586,8 , 594,7 , 394,8 , 97,16 , 55,4 , 430,11 , 7766,49 , 7766,49 , 7815,14 , 7766,49 , 7766,49 , 7815,14 , 209,9 , 199,8 , 726,4 , 730,44 , 22,23 , {73,82,82}, 257,4 , 10059,37 , 78,5 , 4,0 , 3233,5 , 3238,5 , 0, 0, 6, 5, 5 }, // Persian/Arabic/Iran + { 89, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 579,7 , 579,7 , 586,8 , 594,7 , 394,8 , 97,16 , 55,4 , 430,11 , 7766,49 , 7766,49 , 7815,14 , 7766,49 , 7766,49 , 7815,14 , 209,9 , 199,8 , 726,4 , 730,44 , 22,23 , {65,70,78}, 256,1 , 10096,55 , 8,5 , 4,0 , 3243,3 , 3217,9 , 0, 0, 6, 4, 5 }, // Persian/Arabic/Afghanistan + { 90, 7, 172, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 163,7 , 163,7 , 495,10 , 10,17 , 37,5 , 8,10 , 7829,34 , 7863,59 , 7922,14 , 7829,34 , 7863,59 , 7936,14 , 0,2 , 0,2 , 303,5 , 5,17 , 22,23 , {80,76,78}, 261,2 , 10151,77 , 13,5 , 4,0 , 3246,6 , 3252,6 , 2, 1, 1, 6, 7 }, // Polish/Latin/Poland + { 91, 7, 30, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 254,7 , 254,7 , 119,10 , 669,27 , 37,5 , 8,10 , 7950,28 , 7978,79 , 8057,14 , 7950,28 , 7978,79 , 8057,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {66,82,76}, 263,2 , 10228,54 , 8,5 , 4,0 , 3258,9 , 3267,6 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Brazil + { 91, 7, 6, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {65,79,65}, 243,2 , 10282,54 , 13,5 , 4,0 , 3258,9 , 3273,6 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Angola + { 91, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {67,86,69}, 265,1 , 10336,69 , 13,5 , 4,0 , 3258,9 , 3279,10 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Cape Verde + { 91, 7, 62, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {85,83,68}, 155,3 , 10405,81 , 13,5 , 4,0 , 3258,9 , 3289,11 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/East Timor + { 91, 7, 66, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {88,65,70}, 32,4 , 10486,59 , 13,5 , 4,0 , 3258,9 , 3300,16 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/Equatorial Guinea + { 91, 7, 92, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {88,79,70}, 206,3 , 10545,62 , 13,5 , 4,0 , 3258,9 , 3316,12 , 0, 0, 1, 6, 7 }, // Portuguese/Latin/Guinea Bissau + { 91, 7, 125, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3258,9 , 3328,10 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Luxembourg + { 91, 7, 126, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 18,7 , 25,12 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {77,79,80}, 134,4 , 10607,53 , 13,5 , 4,0 , 3258,9 , 3338,19 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Macau + { 91, 7, 146, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {77,90,78}, 266,3 , 10660,66 , 13,5 , 4,0 , 3258,9 , 3357,10 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Mozambique + { 91, 7, 173, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3367,17 , 3384,8 , 2, 1, 7, 6, 7 }, // Portuguese/Latin/Portugal + { 91, 7, 185, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {83,84,78}, 269,2 , 10726,92 , 13,5 , 4,0 , 3258,9 , 3392,19 , 2, 1, 1, 6, 7 }, // Portuguese/Latin/Sao Tome And Principe + { 91, 7, 206, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 669,27 , 37,5 , 8,10 , 8071,49 , 7978,79 , 8057,14 , 8071,49 , 7978,79 , 8057,14 , 218,8 , 207,8 , 0,5 , 5,17 , 22,23 , {67,72,70}, 225,3 , 10818,45 , 13,5 , 4,0 , 3258,9 , 3411,5 , 2, 0, 1, 6, 7 }, // Portuguese/Latin/Switzerland + { 92, 4, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 601,9 , 601,9 , 269,6 , 10,17 , 18,7 , 25,12 , 8120,36 , 8156,57 , 8213,23 , 8120,36 , 8156,57 , 8213,23 , 226,6 , 215,6 , 774,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 10863,39 , 4,4 , 4,0 , 3416,6 , 3422,4 , 2, 1, 7, 7, 7 }, // Punjabi/Gurmukhi/India + { 92, 1, 163, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 553,18 , 18,7 , 25,12 , 8236,37 , 8236,37 , 85,14 , 8236,37 , 8236,37 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,75,82}, 271,1 , 10902,13 , 41,6 , 4,0 , 3426,6 , 3226,7 , 2, 0, 7, 6, 7 }, // Punjabi/Arabic/Pakistan + { 93, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 192,18 , 37,5 , 8,10 , 8273,28 , 8301,53 , 8354,14 , 8273,28 , 8301,53 , 8354,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {80,69,78}, 272,2 , 0,7 , 8,5 , 4,0 , 3432,8 , 3440,4 , 2, 1, 7, 6, 7 }, // Quechua/Latin/Peru + { 93, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 192,18 , 37,5 , 8,10 , 8273,28 , 8301,53 , 8354,14 , 8273,28 , 8301,53 , 8354,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {66,79,66}, 274,2 , 0,7 , 8,5 , 4,0 , 3432,8 , 3444,7 , 2, 1, 1, 6, 7 }, // Quechua/Latin/Bolivia + { 93, 7, 63, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 192,18 , 37,5 , 8,10 , 8273,28 , 8301,53 , 8354,14 , 8273,28 , 8301,53 , 8354,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 0,7 , 8,5 , 4,0 , 3432,8 , 3451,7 , 2, 1, 1, 6, 7 }, // Quechua/Latin/Ecuador + { 94, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 339,8 , 1056,28 , 37,5 , 8,10 , 8368,23 , 8391,56 , 8447,14 , 8368,23 , 8391,56 , 8447,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,72,70}, 225,3 , 10915,46 , 13,5 , 4,0 , 3458,9 , 3467,6 , 2, 0, 1, 6, 7 }, // Romansh/Latin/Switzerland + { 95, 7, 177, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 610,8 , 610,8 , 495,10 , 10,17 , 37,5 , 8,10 , 8461,34 , 8495,48 , 3080,14 , 8461,34 , 8495,48 , 3080,14 , 64,4 , 61,4 , 778,4 , 5,17 , 22,23 , {82,79,78}, 276,3 , 10961,57 , 13,5 , 4,0 , 3473,6 , 3479,7 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Romania + { 95, 7, 141, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 610,8 , 610,8 , 495,10 , 10,17 , 37,5 , 8,10 , 8543,28 , 8495,48 , 8571,16 , 8543,28 , 8495,48 , 8571,16 , 64,4 , 61,4 , 778,4 , 5,17 , 22,23 , {77,68,76}, 279,1 , 11018,69 , 13,5 , 4,0 , 3473,6 , 3486,17 , 2, 1, 1, 6, 7 }, // Romanian/Latin/Moldova + { 96, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {82,85,66}, 123,1 , 11087,89 , 13,5 , 4,0 , 3503,7 , 3510,6 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Russia + { 96, 2, 20, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {66,89,78}, 0,2 , 11176,94 , 13,5 , 4,0 , 3503,7 , 511,8 , 2, 0, 1, 6, 7 }, // Russian/Cyrillic/Belarus + { 96, 2, 110, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {75,90,84}, 236,1 , 11270,83 , 13,5 , 4,0 , 3503,7 , 3516,9 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kazakhstan + { 96, 2, 116, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {75,71,83}, 237,3 , 11353,82 , 13,5 , 4,0 , 3503,7 , 3525,8 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Kyrgyzstan + { 96, 2, 141, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {77,68,76}, 279,1 , 11435,79 , 13,5 , 4,0 , 3503,7 , 3533,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Moldova + { 96, 2, 222, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 116,7 , 116,7 , 495,10 , 317,22 , 37,5 , 8,10 , 8587,21 , 8608,62 , 8670,14 , 8587,21 , 8608,62 , 8587,21 , 0,2 , 0,2 , 246,5 , 680,17 , 22,23 , {85,65,72}, 280,1 , 11514,92 , 13,5 , 4,0 , 3503,7 , 3540,7 , 2, 1, 1, 6, 7 }, // Russian/Cyrillic/Ukraine + { 98, 7, 41, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 8684,28 , 8712,66 , 8778,14 , 8684,28 , 8712,66 , 8778,14 , 232,2 , 221,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 11606,25 , 4,4 , 36,5 , 3547,5 , 3552,22 , 0, 0, 1, 6, 7 }, // Sango/Latin/Central African Republic + { 99, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 7, 7 }, // Sanskrit/Devanagari/India + { 100, 2, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 8792,28 , 8820,52 , 8872,14 , 8792,28 , 8820,52 , 8872,14 , 234,9 , 223,8 , 782,7 , 5,17 , 22,23 , {82,83,68}, 0,0 , 11631,58 , 13,5 , 4,0 , 3574,6 , 3580,6 , 0, 0, 1, 6, 7 }, // Serbian/Cyrillic/Serbia + { 100, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 8886,26 , 8912,57 , 2102,14 , 8886,26 , 8912,57 , 2102,14 , 243,11 , 231,8 , 296,7 , 5,17 , 22,23 , {66,65,77}, 140,2 , 11689,174 , 13,5 , 4,0 , 3586,6 , 630,19 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Bosnia And Herzegowina + { 100, 7, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 8969,33 , 8912,57 , 2102,14 , 8969,33 , 8912,57 , 2102,14 , 243,11 , 231,8 , 296,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 11863,23 , 13,5 , 4,0 , 3586,6 , 3592,9 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Montenegro + { 100, 7, 243, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 9002,28 , 9030,54 , 2102,14 , 9002,28 , 9030,54 , 2102,14 , 254,9 , 231,8 , 296,7 , 5,17 , 22,23 , {82,83,68}, 0,0 , 11886,58 , 13,5 , 4,0 , 3586,6 , 3601,6 , 0, 0, 1, 6, 7 }, // Serbian/Latin/Serbia + { 100, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 9084,26 , 9110,55 , 8872,14 , 9084,26 , 9110,55 , 8872,14 , 263,11 , 223,8 , 782,7 , 5,17 , 22,23 , {66,65,77}, 281,2 , 11944,174 , 13,5 , 4,0 , 3574,6 , 3607,19 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Bosnia And Herzegowina + { 100, 2, 242, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 8792,28 , 9110,55 , 8872,14 , 8792,28 , 9110,55 , 8872,14 , 263,11 , 223,8 , 782,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12118,23 , 13,5 , 4,0 , 3574,6 , 3626,9 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Montenegro + { 100, 2, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 8792,28 , 8820,52 , 8872,14 , 8792,28 , 8820,52 , 8872,14 , 234,9 , 223,8 , 782,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12118,23 , 13,5 , 4,0 , 3574,6 , 3635,6 , 2, 1, 1, 6, 7 }, // Serbian/Cyrillic/Kosovo + { 100, 7, 257, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8216, 8216, 0,6 , 0,6 , 163,7 , 163,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 8969,33 , 9030,54 , 2102,14 , 8969,33 , 9030,54 , 2102,14 , 254,9 , 231,8 , 296,7 , 5,17 , 22,23 , {69,85,82}, 14,1 , 11863,23 , 13,5 , 4,0 , 3586,6 , 3641,6 , 2, 1, 1, 6, 7 }, // Serbian/Latin/Kosovo + { 101, 2, 81, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 618,9 , 618,9 , 156,8 , 1111,23 , 37,5 , 8,10 , 9165,28 , 9193,61 , 9254,14 , 9268,28 , 9296,61 , 9254,14 , 274,15 , 239,15 , 45,4 , 5,17 , 22,23 , {71,69,76}, 224,1 , 12141,17 , 8,5 , 4,0 , 3647,4 , 3651,11 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Georgia + { 101, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 618,9 , 618,9 , 156,8 , 1111,23 , 37,5 , 8,10 , 9165,28 , 9193,61 , 9254,14 , 9268,28 , 9296,61 , 9254,14 , 274,15 , 239,15 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 12158,17 , 8,5 , 4,0 , 3647,4 , 3662,6 , 2, 1, 1, 6, 7 }, // Ossetic/Cyrillic/Russia + { 102, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Southern Sotho/Latin/South Africa + { 103, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Tswana/Latin/South Africa + { 104, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 9357,28 , 9385,55 , 9440,14 , 9357,28 , 9385,55 , 9440,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 155,3 , 12175,22 , 4,4 , 4,0 , 3668,8 , 1820,8 , 2, 1, 7, 6, 7 }, // Shona/Latin/Zimbabwe + { 105, 1, 163, 1643, 1644, 1563, 37, 1632, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 627,8 , 635,7 , 53,10 , 63,17 , 18,7 , 25,12 , 9454,35 , 9454,35 , 9489,31 , 9454,35 , 9454,35 , 9489,31 , 289,11 , 254,11 , 789,6 , 795,61 , 22,23 , {80,75,82}, 175,2 , 12197,43 , 8,5 , 4,0 , 3676,4 , 3680,7 , 2, 0, 7, 6, 7 }, // Sindhi/Arabic/Pakistan + { 106, 32, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 642,9 , 651,8 , 53,10 , 63,17 , 228,5 , 233,10 , 9520,39 , 9559,62 , 9621,19 , 9520,39 , 9559,62 , 9621,19 , 300,5 , 265,4 , 856,5 , 861,42 , 22,23 , {76,75,82}, 283,3 , 12240,58 , 4,4 , 4,0 , 3687,5 , 3692,11 , 2, 1, 1, 6, 7 }, // Sinhala/Sinhala/Sri Lanka + { 107, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Swati/Latin/South Africa + { 108, 7, 191, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 659,7 , 1134,10 , 478,17 , 55,4 , 59,9 , 9640,21 , 9661,52 , 9713,14 , 9640,21 , 9661,52 , 9713,14 , 0,2 , 0,2 , 303,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12298,26 , 13,5 , 4,0 , 3703,10 , 3713,9 , 2, 1, 1, 6, 7 }, // Slovak/Latin/Slovakia + { 109, 7, 192, 44, 46, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 666,8 , 666,8 , 1144,9 , 1153,19 , 37,5 , 8,10 , 9727,35 , 9762,52 , 9814,14 , 9727,35 , 9762,52 , 9814,14 , 60,4 , 269,4 , 54,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 12324,28 , 13,5 , 4,0 , 3722,11 , 3733,9 , 2, 1, 1, 6, 7 }, // Slovenian/Latin/Slovenia + { 110, 7, 194, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 18,7 , 25,12 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {83,79,83}, 94,1 , 12352,27 , 4,4 , 4,0 , 3742,8 , 3750,10 , 0, 0, 1, 6, 7 }, // Somali/Latin/Somalia + { 110, 7, 59, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 18,7 , 25,12 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {68,74,70}, 38,3 , 12379,50 , 4,4 , 4,0 , 3742,8 , 3760,7 , 0, 0, 6, 6, 7 }, // Somali/Latin/Djibouti + { 110, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 18,7 , 25,12 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {69,84,66}, 0,2 , 12429,52 , 4,4 , 4,0 , 3742,8 , 3767,8 , 2, 1, 7, 6, 7 }, // Somali/Latin/Ethiopia + { 110, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 674,9 , 674,9 , 27,8 , 1172,19 , 37,5 , 8,10 , 9828,32 , 9860,47 , 9907,15 , 9828,32 , 9860,47 , 9907,15 , 305,2 , 273,2 , 903,6 , 909,17 , 22,23 , {75,69,83}, 2,3 , 12481,52 , 4,4 , 4,0 , 3742,8 , 1192,5 , 2, 1, 7, 6, 7 }, // Somali/Latin/Kenya + { 111, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3775,17 , 2432,6 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Spain + { 111, 7, 10, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {65,82,83}, 6,1 , 12533,51 , 8,5 , 4,0 , 3792,7 , 3799,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Argentina + { 111, 7, 22, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {66,90,68}, 6,1 , 12584,52 , 4,4 , 4,0 , 3792,7 , 3808,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Belize + { 111, 7, 26, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {66,79,66}, 274,2 , 12636,35 , 4,4 , 4,0 , 3792,7 , 3444,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Bolivia + { 111, 7, 30, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {66,82,76}, 263,2 , 12671,52 , 4,4 , 4,0 , 3792,7 , 3267,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Brazil + { 111, 7, 43, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 339,8 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {67,76,80}, 6,1 , 12723,45 , 4,4 , 36,5 , 3792,7 , 3814,5 , 0, 0, 1, 6, 7 }, // Spanish/Latin/Chile + { 111, 7, 47, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 571,7 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 4769,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {67,79,80}, 6,1 , 12768,54 , 8,5 , 4,0 , 3792,7 , 3819,8 , 2, 0, 7, 6, 7 }, // Spanish/Latin/Colombia + { 111, 7, 52, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {67,82,67}, 286,1 , 12822,67 , 4,4 , 4,0 , 3792,7 , 3827,10 , 2, 0, 1, 6, 7 }, // Spanish/Latin/Costa Rica + { 111, 7, 55, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {67,85,80}, 6,1 , 12889,42 , 4,4 , 4,0 , 3792,7 , 3837,4 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Cuba + { 111, 7, 61, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {68,79,80}, 287,3 , 12931,54 , 4,4 , 83,6 , 3792,7 , 3841,20 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Dominican Republic + { 111, 7, 63, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 4,4 , 36,5 , 3792,7 , 3451,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Ecuador + { 111, 7, 65, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 4,4 , 4,0 , 3792,7 , 3861,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/El Salvador + { 111, 7, 66, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {88,65,70}, 32,4 , 13055,92 , 4,4 , 4,0 , 3792,7 , 3872,17 , 0, 0, 1, 6, 7 }, // Spanish/Latin/Equatorial Guinea + { 111, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 571,7 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {71,84,81}, 290,1 , 13147,30 , 18,5 , 4,0 , 3792,7 , 3889,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Guatemala + { 111, 7, 96, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 1191,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {72,78,76}, 279,1 , 13177,60 , 4,4 , 4,0 , 3792,7 , 3898,8 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Honduras + { 111, 7, 139, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 27,8 , 669,27 , 55,4 , 59,9 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {77,88,78}, 6,1 , 13237,48 , 47,6 , 4,0 , 3906,17 , 3923,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Mexico + { 111, 7, 155, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {78,73,79}, 291,2 , 13285,69 , 4,4 , 4,0 , 3792,7 , 3929,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Nicaragua + { 111, 7, 166, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 1218,8 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,65,66}, 293,3 , 13354,54 , 4,4 , 4,0 , 3792,7 , 3938,6 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Panama + { 111, 7, 168, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,89,71}, 296,3 , 13408,61 , 8,5 , 23,6 , 3792,7 , 3944,8 , 0, 0, 7, 6, 7 }, // Spanish/Latin/Paraguay + { 111, 7, 169, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 571,7 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,69,78}, 272,2 , 13469,43 , 8,5 , 4,0 , 3792,7 , 3440,4 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Peru + { 111, 7, 170, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {80,72,80}, 178,1 , 13512,48 , 13,5 , 4,0 , 3792,7 , 3952,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Philippines + { 111, 7, 174, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 1218,8 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 4,4 , 4,0 , 3792,7 , 1447,11 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Puerto Rico + { 111, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 415,8 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 3080,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,83,68}, 6,1 , 12985,70 , 89,7 , 4,0 , 3792,7 , 3961,14 , 2, 1, 7, 6, 7 }, // Spanish/Latin/United States + { 111, 7, 227, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {85,89,85}, 6,1 , 13560,48 , 8,5 , 4,0 , 3792,7 , 3975,7 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Uruguay + { 111, 7, 231, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 18,7 , 25,12 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {86,69,83}, 299,4 , 13608,58 , 4,4 , 36,5 , 3792,7 , 3982,9 , 2, 1, 7, 6, 7 }, // Spanish/Latin/Venezuela + { 111, 7, 238, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3792,7 , 3991,8 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Canary Islands + { 111, 7, 246, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 37,5 , 8,10 , 9922,35 , 9957,53 , 3080,14 , 9922,35 , 9957,53 , 4769,14 , 64,4 , 61,4 , 0,5 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 4,4 , 4,0 , 3999,23 , 4022,13 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Latin America + { 111, 7, 250, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 669,27 , 55,4 , 430,11 , 9922,35 , 9957,53 , 8354,14 , 9922,35 , 9957,53 , 8354,14 , 53,5 , 50,5 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 3792,7 , 4035,15 , 2, 1, 1, 6, 7 }, // Spanish/Latin/Ceuta And Melilla + { 113, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {84,90,83}, 191,3 , 13666,67 , 8,5 , 4,0 , 4050,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Swahili/Latin/Tanzania + { 113, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {67,68,70}, 209,2 , 13733,55 , 8,5 , 4,0 , 4050,9 , 4059,32 , 2, 1, 1, 6, 7 }, // Swahili/Latin/Congo Kinshasa + { 113, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {75,69,83}, 2,3 , 13788,58 , 8,5 , 4,0 , 4050,9 , 1192,5 , 2, 1, 7, 6, 7 }, // Swahili/Latin/Kenya + { 113, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 690,8 , 690,8 , 119,10 , 10,17 , 37,5 , 8,10 , 10010,60 , 10010,60 , 85,14 , 10010,60 , 10010,60 , 85,14 , 0,2 , 0,2 , 627,5 , 926,51 , 22,23 , {85,71,88}, 196,3 , 13846,61 , 8,5 , 4,0 , 4050,9 , 1690,6 , 0, 0, 1, 6, 7 }, // Swahili/Latin/Uganda + { 114, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 698,9 , 698,9 , 53,10 , 97,16 , 228,5 , 441,16 , 10070,29 , 10099,50 , 2293,14 , 10070,29 , 10099,50 , 2293,14 , 307,2 , 275,2 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 13907,45 , 13,5 , 4,0 , 4091,7 , 4098,7 , 2, 0, 1, 6, 7 }, // Swedish/Latin/Sweden + { 114, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 698,9 , 698,9 , 528,10 , 97,16 , 228,5 , 441,16 , 10070,29 , 10099,50 , 2293,14 , 10070,29 , 10099,50 , 2293,14 , 307,2 , 275,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 4091,7 , 1089,7 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Finland + { 114, 7, 248, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 698,9 , 698,9 , 53,10 , 97,16 , 228,5 , 441,16 , 10070,29 , 10099,50 , 2293,14 , 10070,29 , 10099,50 , 2293,14 , 307,2 , 275,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8952,19 , 13,5 , 4,0 , 4091,7 , 4105,5 , 2, 1, 1, 6, 7 }, // Swedish/Latin/Aland Islands + { 115, 7, 106, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Sardinian/Latin/Italy + { 116, 2, 209, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 553,18 , 37,5 , 8,10 , 10149,28 , 10177,55 , 10232,14 , 10149,28 , 10177,55 , 10232,14 , 309,7 , 277,7 , 45,4 , 5,17 , 22,23 , {84,74,83}, 303,4 , 13952,19 , 13,5 , 4,0 , 4110,6 , 4116,10 , 2, 1, 1, 6, 7 }, // Tajik/Cyrillic/Tajikistan + { 117, 27, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 382,7 , 457,12 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {73,78,82}, 121,1 , 13971,49 , 8,5 , 4,0 , 4126,5 , 4131,7 , 2, 1, 7, 7, 7 }, // Tamil/Tamil/India + { 117, 27, 130, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 382,7 , 457,12 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {77,89,82}, 173,2 , 14020,61 , 8,5 , 4,0 , 4126,5 , 4138,7 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/Malaysia + { 117, 27, 190, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 382,7 , 457,12 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {83,71,68}, 6,1 , 14081,61 , 8,5 , 4,0 , 4126,5 , 4145,11 , 2, 1, 7, 6, 7 }, // Tamil/Tamil/Singapore + { 117, 27, 198, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 707,13 , 707,13 , 269,6 , 192,18 , 37,5 , 8,10 , 10246,39 , 10285,49 , 10334,20 , 10246,39 , 10285,49 , 10334,20 , 316,8 , 284,8 , 977,7 , 5,17 , 22,23 , {76,75,82}, 307,3 , 14142,49 , 8,5 , 4,0 , 4126,5 , 4156,6 , 2, 1, 1, 6, 7 }, // Tamil/Tamil/Sri Lanka + { 118, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 720,9 , 720,9 , 495,10 , 1226,23 , 55,4 , 59,9 , 10354,36 , 10390,56 , 10446,14 , 10354,36 , 10390,56 , 10446,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 14191,21 , 0,4 , 4,0 , 4162,5 , 3510,6 , 2, 1, 1, 6, 7 }, // Tatar/Cyrillic/Russia + { 119, 28, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 729,11 , 729,11 , 339,8 , 1249,18 , 18,7 , 25,12 , 10460,32 , 10492,60 , 10552,18 , 10460,32 , 10492,60 , 10552,18 , 0,2 , 0,2 , 984,7 , 991,29 , 22,23 , {73,78,82}, 121,1 , 14212,26 , 4,4 , 4,0 , 4167,6 , 4173,8 , 2, 1, 7, 7, 7 }, // Telugu/Telugu/India + { 120, 30, 211, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 123,5 , 123,5 , 740,8 , 748,7 , 269,6 , 1267,19 , 37,5 , 469,28 , 10570,23 , 10593,68 , 10661,16 , 10570,23 , 10593,68 , 10661,16 , 324,10 , 292,10 , 1020,4 , 5,17 , 22,23 , {84,72,66}, 310,1 , 14238,16 , 4,4 , 4,0 , 4181,3 , 4181,3 , 2, 1, 7, 6, 7 }, // Thai/Thai/Thailand + { 121, 31, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1286,23 , 18,7 , 25,12 , 10677,51 , 10728,79 , 10807,27 , 10677,51 , 10728,79 , 10807,27 , 334,7 , 302,8 , 45,4 , 5,17 , 22,23 , {67,78,89}, 311,1 , 14254,13 , 8,5 , 4,0 , 4184,8 , 4192,6 , 2, 1, 7, 6, 7 }, // Tibetan/Tibetan/China + { 121, 31, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1286,23 , 18,7 , 25,12 , 10677,51 , 10728,79 , 10807,27 , 10677,51 , 10728,79 , 10807,27 , 334,7 , 302,8 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 14267,19 , 8,5 , 4,0 , 4184,8 , 4198,7 , 2, 1, 7, 7, 7 }, // Tibetan/Tibetan/India + { 122, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1309,23 , 18,7 , 25,12 , 10834,21 , 10855,29 , 10884,14 , 10834,21 , 10855,29 , 10898,14 , 341,7 , 310,7 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,2 , 14286,16 , 4,4 , 4,0 , 4205,4 , 92,5 , 2, 1, 7, 6, 7 }, // Tigrinya/Ethiopic/Ethiopia + { 122, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1309,23 , 18,7 , 25,12 , 10834,21 , 10855,29 , 10898,14 , 10834,21 , 10855,29 , 10898,14 , 341,7 , 310,7 , 45,4 , 5,17 , 22,23 , {69,82,78}, 41,3 , 0,7 , 4,4 , 4,0 , 4205,4 , 4209,4 , 2, 1, 1, 6, 7 }, // Tigrinya/Ethiopic/Eritrea + { 123, 7, 214, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 755,8 , 755,8 , 755,8 , 755,8 , 269,6 , 97,16 , 18,7 , 25,12 , 10912,29 , 10941,60 , 11001,14 , 10912,29 , 10941,60 , 11001,14 , 348,10 , 317,6 , 1024,5 , 1029,59 , 1088,65 , {84,79,80}, 194,2 , 14302,41 , 13,5 , 4,0 , 4213,13 , 1640,5 , 2, 1, 1, 6, 7 }, // Tongan/Latin/Tonga + { 124, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Tsonga/Latin/South Africa + { 125, 7, 217, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 763,8 , 763,8 , 1332,9 , 1341,16 , 37,5 , 8,10 , 11015,28 , 11043,54 , 11097,14 , 11015,28 , 11043,54 , 11097,14 , 358,2 , 323,2 , 199,4 , 5,17 , 22,23 , {84,82,89}, 241,1 , 14343,40 , 4,4 , 4,0 , 4226,6 , 4232,7 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Turkey + { 125, 7, 56, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 763,8 , 763,8 , 1332,9 , 1341,16 , 18,7 , 25,12 , 11015,28 , 11043,54 , 11097,14 , 11015,28 , 11043,54 , 11097,14 , 358,2 , 323,2 , 199,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 4,4 , 4,0 , 4226,6 , 4239,6 , 2, 1, 1, 6, 7 }, // Turkish/Latin/Cyprus + { 126, 7, 218, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8220, 8221, 0,6 , 0,6 , 771,8 , 771,8 , 495,10 , 1341,16 , 37,5 , 8,10 , 11111,28 , 11139,54 , 11193,14 , 11207,28 , 11235,54 , 11193,14 , 360,13 , 325,14 , 1153,4 , 5,17 , 22,23 , {84,77,84}, 312,3 , 14383,49 , 13,5 , 4,0 , 4245,12 , 4257,12 , 2, 1, 1, 6, 7 }, // Turkmen/Latin/Turkmenistan + { 128, 1, 44, 46, 44, 59, 37, 48, 45, 43, 101, 187, 171, 8250, 8249, 0,6 , 0,6 , 200,10 , 210,9 , 53,10 , 1357,17 , 18,7 , 25,12 , 11289,21 , 11310,55 , 11365,14 , 11289,21 , 11310,55 , 11365,14 , 373,12 , 339,12 , 45,4 , 5,17 , 22,23 , {67,78,89}, 133,1 , 14432,40 , 4,4 , 4,0 , 4269,8 , 4277,5 , 2, 1, 7, 6, 7 }, // Uighur/Arabic/China + { 129, 2, 222, 44, 160, 59, 37, 48, 45, 43, 1077, 171, 187, 8222, 8220, 0,6 , 0,6 , 138,7 , 138,7 , 156,8 , 1374,22 , 37,5 , 8,10 , 1427,21 , 11379,56 , 11435,14 , 1427,21 , 11379,56 , 11435,14 , 385,2 , 351,2 , 1157,5 , 680,17 , 22,23 , {85,65,72}, 280,1 , 14472,49 , 13,5 , 4,0 , 4282,10 , 4292,7 , 2, 1, 1, 6, 7 }, // Ukrainian/Cyrillic/Ukraine + { 130, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 779,10 , 789,9 , 269,6 , 1396,18 , 18,7 , 25,12 , 11449,36 , 11449,36 , 85,14 , 11449,36 , 11449,36 , 85,14 , 0,2 , 0,2 , 1162,4 , 1166,20 , 22,23 , {80,75,82}, 175,2 , 14521,49 , 4,4 , 4,0 , 4299,4 , 3226,7 , 2, 0, 7, 6, 7 }, // Urdu/Arabic/Pakistan + { 130, 1, 100, 1643, 1644, 59, 37, 1776, 45, 43, 101, 8221, 8220, 8217, 8216, 46,6 , 46,6 , 798,6 , 798,6 , 269,6 , 1396,18 , 18,7 , 25,12 , 11449,36 , 11449,36 , 85,14 , 11449,36 , 11449,36 , 85,14 , 0,2 , 0,2 , 1162,4 , 1166,20 , 22,23 , {73,78,82}, 121,1 , 14570,42 , 8,5 , 4,0 , 4299,4 , 4303,5 , 2, 1, 7, 7, 7 }, // Urdu/Arabic/India + { 131, 7, 228, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8217, 8216, 0,6 , 0,6 , 804,8 , 804,8 , 27,8 , 1414,18 , 37,5 , 430,11 , 11485,32 , 11517,61 , 11578,14 , 11485,32 , 11517,61 , 11578,14 , 387,2 , 353,2 , 199,4 , 5,17 , 22,23 , {85,90,83}, 315,4 , 14612,58 , 13,5 , 4,0 , 4308,6 , 4314,11 , 2, 0, 1, 6, 7 }, // Uzbek/Latin/Uzbekistan + { 131, 1, 1, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 394,8 , 1432,33 , 55,4 , 430,11 , 11592,21 , 7766,49 , 85,14 , 11592,21 , 7766,49 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {65,70,78}, 256,1 , 14670,13 , 13,5 , 4,0 , 4325,6 , 3217,9 , 0, 0, 6, 4, 5 }, // Uzbek/Arabic/Afghanistan + { 131, 2, 228, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 696,19 , 37,5 , 87,12 , 11613,28 , 11641,53 , 11694,14 , 11613,28 , 11641,53 , 11694,14 , 389,2 , 355,2 , 45,4 , 5,17 , 22,23 , {85,90,83}, 319,3 , 14683,49 , 13,5 , 4,0 , 4331,7 , 4338,10 , 2, 0, 1, 6, 7 }, // Uzbek/Cyrillic/Uzbekistan + { 132, 7, 232, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 812,8 , 812,8 , 119,10 , 192,18 , 37,5 , 8,10 , 11708,33 , 11741,55 , 11796,21 , 11708,33 , 11741,55 , 11796,21 , 391,2 , 357,2 , 45,4 , 5,17 , 22,23 , {86,78,68}, 322,1 , 14732,33 , 13,5 , 4,0 , 4348,10 , 4358,8 , 0, 0, 1, 6, 7 }, // Vietnamese/Latin/Vietnam + { 133, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1465,23 , 37,5 , 8,10 , 11817,21 , 11838,43 , 11881,14 , 11895,28 , 11838,43 , 11881,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 4366,7 , 0,0 , 2, 1, 1, 6, 7 }, // Volapuk/Latin/World + { 134, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 820,11 , 831,10 , 27,8 , 10,17 , 37,5 , 8,10 , 11923,29 , 11952,77 , 12029,15 , 12044,30 , 11952,77 , 12029,15 , 393,2 , 359,2 , 1186,7 , 5,17 , 22,23 , {71,66,80}, 119,1 , 14765,92 , 4,4 , 4,0 , 4373,7 , 4380,16 , 2, 1, 1, 6, 7 }, // Welsh/Latin/United Kingdom + { 135, 7, 187, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 528,10 , 1488,17 , 37,5 , 8,10 , 12074,28 , 12102,50 , 12074,28 , 12074,28 , 12102,50 , 12074,28 , 395,3 , 361,3 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 14857,65 , 8,5 , 4,0 , 4396,5 , 4401,8 , 0, 0, 1, 6, 7 }, // Wolof/Latin/Senegal + { 136, 7, 195, 46, 160, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 12152,28 , 12180,61 , 85,14 , 12152,28 , 12180,61 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 14922,79 , 4,4 , 4,0 , 4409,8 , 4417,15 , 2, 1, 7, 6, 7 }, // Xhosa/Latin/South Africa + { 137, 18, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 841,9 , 841,9 , 27,8 , 1505,19 , 37,5 , 8,10 , 12241,54 , 12241,54 , 85,14 , 12241,54 , 12241,54 , 85,14 , 398,11 , 364,10 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 41,6 , 4,0 , 4432,6 , 4438,5 , 2, 1, 1, 6, 7 }, // Yiddish/Hebrew/World + { 138, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 1524,16 , 497,3 , 8,10 , 12295,33 , 12328,44 , 12372,14 , 12295,33 , 12386,69 , 12372,14 , 409,5 , 374,5 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 15001,35 , 4,4 , 4,0 , 4443,10 , 4453,19 , 2, 1, 1, 6, 7 }, // Yoruba/Latin/Nigeria + { 138, 7, 23, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 1524,16 , 497,3 , 8,10 , 12455,33 , 12488,44 , 12532,14 , 12455,33 , 12546,69 , 12532,14 , 414,5 , 379,5 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15036,34 , 4,4 , 4,0 , 4443,10 , 4472,16 , 0, 0, 1, 6, 7 }, // Yoruba/Latin/Benin + { 140, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 850,9 , 859,8 , 547,6 , 35,18 , 37,5 , 8,10 , 12615,28 , 12643,74 , 12717,14 , 12615,28 , 12643,74 , 12717,14 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {90,65,82}, 5,1 , 15070,67 , 4,4 , 4,0 , 4488,7 , 4495,17 , 2, 1, 7, 6, 7 }, // Zulu/Latin/South Africa + { 141, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 192,8 , 192,8 , 495,10 , 478,17 , 37,5 , 441,16 , 12731,28 , 12759,51 , 2293,14 , 12810,28 , 12759,51 , 2293,14 , 419,9 , 384,11 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 9895,44 , 13,5 , 4,0 , 4512,7 , 4519,5 , 2, 0, 1, 6, 7 }, // Norwegian Nynorsk/Latin/Norway + { 142, 7, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8221, 8216, 8217, 0,6 , 0,6 , 163,7 , 163,7 , 1540,11 , 450,19 , 37,5 , 8,10 , 2016,28 , 2044,58 , 2102,14 , 2016,28 , 2044,58 , 2116,14 , 428,10 , 395,7 , 296,7 , 5,17 , 22,23 , {66,65,77}, 140,2 , 15137,170 , 13,5 , 4,0 , 4524,8 , 630,19 , 2, 1, 1, 6, 7 }, // Bosnian/Latin/Bosnia And Herzegowina + { 142, 2, 27, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 116,7 , 116,7 , 1084,7 , 1091,20 , 37,5 , 8,10 , 12838,28 , 12866,56 , 8872,14 , 12838,28 , 12866,56 , 8872,14 , 234,9 , 402,7 , 45,4 , 5,17 , 22,23 , {66,65,77}, 281,2 , 15307,151 , 13,5 , 4,0 , 4532,8 , 3607,19 , 2, 1, 1, 6, 7 }, // Bosnian/Cyrillic/Bosnia And Herzegowina + { 143, 29, 131, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,86,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 5, 6, 7 }, // Divehi/Thaana/Maldives + { 144, 7, 251, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 80,17 , 37,5 , 8,10 , 12922,30 , 12952,57 , 85,14 , 12922,30 , 12952,57 , 85,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {71,66,80}, 119,1 , 0,7 , 4,4 , 4,0 , 4540,5 , 4545,12 , 2, 1, 1, 6, 7 }, // Manx/Latin/Isle Of Man + { 145, 7, 224, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 97,16 , 37,5 , 8,10 , 13009,28 , 13037,61 , 85,14 , 13009,28 , 13037,61 , 85,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {71,66,80}, 119,1 , 0,7 , 4,4 , 4,0 , 4557,8 , 4565,14 , 2, 1, 1, 6, 7 }, // Cornish/Latin/United Kingdom + { 146, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 1551,8 , 1559,18 , 18,7 , 25,12 , 13098,28 , 13126,49 , 13175,14 , 13098,28 , 13126,49 , 13175,14 , 438,2 , 409,2 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 15458,17 , 4,4 , 4,0 , 4579,4 , 4583,5 , 2, 1, 1, 6, 7 }, // Akan/Latin/Ghana + { 147, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 1577,6 , 97,16 , 18,7 , 25,12 , 13189,49 , 13189,49 , 13238,20 , 13189,49 , 13189,49 , 13238,20 , 187,5 , 411,5 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 15475,13 , 8,5 , 4,0 , 4588,6 , 2667,4 , 2, 1, 7, 7, 7 }, // Konkani/Devanagari/India + { 148, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,72,83}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Ga/Latin/Ghana + { 149, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 867,9 , 690,8 , 269,6 , 10,17 , 37,5 , 8,10 , 13258,33 , 13291,58 , 85,14 , 13258,33 , 13291,58 , 85,14 , 440,7 , 416,7 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 15488,12 , 4,4 , 4,0 , 4594,10 , 4604,8 , 2, 1, 1, 6, 7 }, // Igbo/Latin/Nigeria + { 150, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 13349,28 , 13377,74 , 13451,14 , 13349,28 , 13377,74 , 13451,14 , 447,9 , 423,7 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15500,23 , 4,4 , 4,0 , 4612,7 , 1192,5 , 2, 1, 7, 6, 7 }, // Kamba/Latin/Kenya + { 151, 33, 103, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,81,68}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 6 }, // Syriac/Syriac/Iraq + { 152, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Blin/Ethiopic/Eritrea + { 153, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Geez/Ethiopic/Ethiopia + { 155, 7, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Sidamo/Latin/Ethiopia + { 156, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Atsam/Latin/Nigeria + { 157, 14, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tigre/Ethiopic/Eritrea + { 158, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Jju/Latin/Nigeria + { 159, 7, 106, 44, 46, 59, 37, 48, 45, 43, 101, 8216, 8217, 8220, 8221, 0,6 , 0,6 , 254,7 , 254,7 , 27,8 , 1583,27 , 37,5 , 8,10 , 13465,28 , 13493,50 , 3080,14 , 13465,28 , 13493,50 , 3080,14 , 456,2 , 430,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 8,5 , 4,0 , 4619,6 , 4625,6 , 2, 1, 1, 6, 7 }, // Friulian/Latin/Italy + { 160, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Venda/Latin/South Africa + { 161, 7, 83, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 876,11 , 887,10 , 547,6 , 1610,23 , 500,12 , 512,17 , 13543,28 , 13571,44 , 13615,14 , 13543,28 , 13571,44 , 13615,14 , 458,3 , 432,5 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 15523,37 , 4,4 , 4,0 , 4631,6 , 4637,12 , 2, 1, 1, 6, 7 }, // Ewe/Latin/Ghana + { 161, 7, 212, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 876,11 , 887,10 , 547,6 , 1610,23 , 37,5 , 8,10 , 13543,28 , 13571,44 , 13615,14 , 13543,28 , 13571,44 , 13615,14 , 458,3 , 432,5 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15560,106 , 4,4 , 4,0 , 4631,6 , 4649,11 , 0, 0, 1, 6, 7 }, // Ewe/Latin/Togo + { 162, 14, 69, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,84,66}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Walamo/Ethiopic/Ethiopia + { 163, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 269,6 , 10,17 , 18,7 , 25,12 , 13629,21 , 13650,57 , 85,14 , 13629,21 , 13650,57 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 0,7 , 4,4 , 4,0 , 4660,14 , 4674,19 , 2, 1, 7, 6, 7 }, // Hawaiian/Latin/United States + { 164, 7, 157, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Tyap/Latin/Nigeria + { 165, 7, 129, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,87,75}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Nyanja/Latin/Malawi + { 166, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 897,9 , 906,8 , 547,6 , 35,18 , 18,7 , 25,12 , 13707,28 , 13735,55 , 13707,28 , 13707,28 , 13735,55 , 13707,28 , 0,2 , 0,2 , 0,5 , 5,17 , 22,23 , {80,72,80}, 178,1 , 15666,58 , 4,4 , 4,0 , 4693,8 , 4701,9 , 2, 1, 7, 6, 7 }, // Filipino/Latin/Philippines + { 167, 7, 206, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 13790,28 , 13818,63 , 3668,14 , 13790,28 , 13818,63 , 3668,14 , 461,12 , 437,11 , 45,4 , 5,17 , 22,23 , {67,72,70}, 225,3 , 15724,55 , 13,5 , 4,0 , 4710,16 , 4726,7 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Switzerland + { 167, 7, 74, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 13790,28 , 13818,63 , 3668,14 , 13790,28 , 13818,63 , 3668,14 , 461,12 , 437,11 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 4710,16 , 4733,10 , 2, 1, 1, 6, 7 }, // Swiss German/Latin/France + { 167, 7, 123, 46, 8217, 59, 37, 48, 8722, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 156,8 , 622,18 , 37,5 , 8,10 , 13790,28 , 13818,63 , 3668,14 , 13790,28 , 13818,63 , 3668,14 , 461,12 , 437,11 , 45,4 , 5,17 , 22,23 , {67,72,70}, 225,3 , 15724,55 , 13,5 , 4,0 , 4710,16 , 4743,13 , 2, 0, 1, 6, 7 }, // Swiss German/Latin/Liechtenstein + { 168, 34, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 18,7 , 25,12 , 13881,21 , 13902,28 , 13930,14 , 13881,21 , 13902,28 , 13930,14 , 473,2 , 448,2 , 45,4 , 5,17 , 22,23 , {67,78,89}, 311,1 , 0,7 , 8,5 , 4,0 , 4756,3 , 4759,2 , 2, 1, 7, 6, 7 }, // Sichuan Yi/Yi/China + { 169, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Kpelle/Latin/Liberia + { 170, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 461,8 , 461,8 , 365,7 , 1633,23 , 529,10 , 539,19 , 13944,28 , 13972,65 , 3668,14 , 13944,28 , 13972,65 , 3668,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 15779,15 , 13,5 , 4,0 , 4761,14 , 4775,11 , 2, 1, 1, 6, 7 }, // Low German/Latin/Germany + { 170, 7, 151, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 461,8 , 461,8 , 365,7 , 1633,23 , 529,10 , 539,19 , 13944,28 , 13972,65 , 3668,14 , 13944,28 , 13972,65 , 3668,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 15779,15 , 13,5 , 4,0 , 4761,14 , 4786,12 , 2, 1, 1, 6, 7 }, // Low German/Latin/Netherlands + { 171, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // South Ndebele/Latin/South Africa + { 172, 7, 195, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {90,65,82}, 5,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Northern Sotho/Latin/South Africa + { 173, 7, 161, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 53,10 , 63,17 , 37,5 , 8,10 , 14037,33 , 14070,75 , 14145,14 , 14037,33 , 14070,75 , 14145,14 , 475,11 , 450,13 , 45,4 , 5,17 , 22,23 , {78,79,75}, 189,2 , 15794,63 , 13,5 , 4,0 , 4798,15 , 4813,5 , 2, 0, 1, 6, 7 }, // Northern Sami/Latin/Norway + { 173, 7, 73, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 495,10 , 97,16 , 37,5 , 8,10 , 14159,21 , 14180,70 , 14250,14 , 14159,21 , 14180,70 , 14250,14 , 486,2 , 463,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 15857,23 , 13,5 , 4,0 , 4798,15 , 4818,6 , 2, 1, 1, 6, 7 }, // Northern Sami/Latin/Finland + { 173, 7, 205, 44, 160, 59, 37, 48, 8722, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 228,8 , 228,8 , 53,10 , 63,17 , 37,5 , 8,10 , 14037,33 , 14070,75 , 14145,14 , 14037,33 , 14070,75 , 14145,14 , 475,11 , 450,13 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 15880,63 , 13,5 , 4,0 , 4798,15 , 4824,6 , 2, 0, 1, 6, 7 }, // Northern Sami/Latin/Sweden + { 174, 7, 208, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {84,87,68}, 323,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Taroko/Latin/Taiwan + { 175, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 14264,28 , 14292,62 , 14354,14 , 14264,28 , 14292,62 , 14354,14 , 488,6 , 465,3 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 4830,8 , 1192,5 , 2, 1, 7, 6, 7 }, // Gusii/Latin/Kenya + { 176, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 14368,28 , 14396,105 , 14501,14 , 14368,28 , 14396,105 , 14501,14 , 494,10 , 468,10 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 4838,7 , 1192,5 , 2, 1, 7, 6, 7 }, // Taita/Latin/Kenya + { 177, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4401,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Senegal + { 177, 7, 34, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4851,14 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Burkina Faso + { 177, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 15993,25 , 13,5 , 4,0 , 4845,6 , 4865,8 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Cameroon + { 177, 7, 80, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {71,77,68}, 162,1 , 16018,20 , 13,5 , 4,0 , 4845,6 , 4873,6 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Gambia + { 177, 7, 83, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {71,72,83}, 163,3 , 0,7 , 13,5 , 4,0 , 4845,6 , 4879,5 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Ghana + { 177, 7, 91, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {71,78,70}, 215,2 , 0,7 , 13,5 , 4,0 , 4845,6 , 4884,4 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Guinea + { 177, 7, 92, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4888,12 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Guinea Bissau + { 177, 7, 121, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 16038,23 , 13,5 , 4,0 , 4845,6 , 4900,9 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Liberia + { 177, 7, 136, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {77,82,85}, 218,2 , 16061,22 , 13,5 , 4,0 , 4845,6 , 4909,8 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Mauritania + { 177, 7, 156, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 15967,26 , 13,5 , 4,0 , 4845,6 , 4917,6 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Niger + { 177, 7, 157, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {78,71,78}, 177,1 , 16083,23 , 13,5 , 4,0 , 4845,6 , 4923,9 , 2, 1, 1, 6, 7 }, // Fulah/Latin/Nigeria + { 177, 7, 189, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 18,7 , 25,12 , 14515,28 , 14543,59 , 14602,14 , 14515,28 , 14543,59 , 14602,14 , 504,6 , 478,7 , 45,4 , 5,17 , 22,23 , {83,76,76}, 186,2 , 16106,25 , 13,5 , 4,0 , 4845,6 , 4932,11 , 0, 0, 1, 6, 7 }, // Fulah/Latin/Sierra Leone + { 177, 134, 91, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,78,70}, 215,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Fulah/Adlam/Guinea + { 178, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 14616,28 , 14644,63 , 14707,14 , 14616,28 , 14644,63 , 14707,14 , 510,6 , 485,8 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16131,23 , 4,4 , 4,0 , 4943,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Kikuyu/Latin/Kenya + { 179, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 14721,28 , 14749,105 , 14854,14 , 14721,28 , 14749,105 , 14854,14 , 516,7 , 493,5 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16154,25 , 4,4 , 4,0 , 4949,8 , 1192,5 , 2, 1, 7, 6, 7 }, // Samburu/Latin/Kenya + { 180, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 669,27 , 37,5 , 8,10 , 14868,28 , 14896,55 , 14951,14 , 14868,28 , 14896,55 , 14951,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,90,78}, 266,3 , 16179,28 , 0,4 , 4,0 , 4957,4 , 3357,10 , 2, 1, 7, 6, 7 }, // Sena/Latin/Mozambique + { 181, 7, 240, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 14965,28 , 14993,50 , 15043,14 , 14965,28 , 14993,50 , 15043,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 155,3 , 16207,24 , 4,4 , 4,0 , 4961,10 , 1820,8 , 2, 1, 7, 6, 7 }, // North Ndebele/Latin/Zimbabwe + { 182, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15057,29 , 15086,65 , 15151,14 , 15057,29 , 15086,65 , 15151,14 , 523,8 , 498,7 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16231,25 , 4,4 , 4,0 , 4971,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Rombo/Latin/Tanzania + { 183, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 15165,30 , 15195,47 , 85,14 , 15165,30 , 15195,47 , 85,14 , 531,6 , 505,8 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16256,21 , 0,4 , 4,0 , 4980,7 , 4987,6 , 2, 1, 1, 6, 7 }, // Tachelhit/Tifinagh/Morocco + { 183, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 15242,30 , 15272,48 , 85,14 , 15242,30 , 15272,48 , 85,14 , 537,6 , 513,8 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16277,21 , 0,4 , 4,0 , 4993,10 , 5003,6 , 2, 1, 1, 6, 7 }, // Tachelhit/Latin/Morocco + { 184, 7, 3, 44, 160, 59, 37, 48, 45, 43, 122, 171, 187, 8220, 8221, 0,6 , 0,6 , 914,12 , 926,11 , 415,8 , 97,16 , 18,7 , 25,12 , 15320,28 , 15348,34 , 15382,14 , 15396,30 , 15426,51 , 15477,14 , 543,7 , 521,9 , 1193,7 , 1200,21 , 22,23 , {68,90,68}, 204,2 , 16298,53 , 0,4 , 4,0 , 5009,9 , 5018,8 , 2, 1, 6, 5, 6 }, // Kabyle/Latin/Algeria + { 185, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15491,28 , 15519,74 , 15593,14 , 15491,28 , 15519,74 , 15593,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16351,26 , 4,4 , 4,0 , 5026,10 , 1690,6 , 0, 0, 1, 6, 7 }, // Nyankole/Latin/Uganda + { 186, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15607,28 , 15635,82 , 15717,14 , 15607,28 , 15635,82 , 15717,14 , 550,7 , 530,7 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16377,29 , 0,4 , 4,0 , 5036,6 , 5042,10 , 2, 0, 1, 6, 7 }, // Bena/Latin/Tanzania + { 187, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15731,28 , 15759,62 , 15821,14 , 15731,28 , 15759,62 , 15821,14 , 557,5 , 537,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 4,4 , 4,0 , 5052,8 , 1625,8 , 2, 0, 1, 6, 7 }, // Vunjo/Latin/Tanzania + { 188, 7, 132, 46, 44, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 15835,28 , 15863,44 , 15907,14 , 15835,28 , 15863,44 , 15907,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16433,24 , 4,4 , 4,0 , 5060,9 , 2189,4 , 0, 0, 1, 6, 7 }, // Bambara/Latin/Mali + { 188, 75, 132, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Bambara/Nko/Mali + { 189, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15921,28 , 15949,64 , 16013,14 , 15921,28 , 15949,64 , 16013,14 , 562,2 , 546,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 5069,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Embu/Latin/Kenya + { 190, 12, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 937,9 , 946,8 , 547,6 , 35,18 , 18,7 , 25,12 , 16027,28 , 16055,49 , 16104,14 , 16027,28 , 16055,49 , 16104,14 , 564,3 , 548,6 , 1221,6 , 5,17 , 22,23 , {85,83,68}, 6,1 , 16457,25 , 4,4 , 4,0 , 5075,3 , 5078,15 , 2, 1, 7, 6, 7 }, // Cherokee/Cherokee/United States + { 191, 7, 137, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 16118,27 , 16145,48 , 16193,14 , 16118,27 , 16145,48 , 16193,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {77,85,82}, 175,2 , 16482,21 , 41,6 , 4,0 , 5093,14 , 5107,5 , 2, 0, 1, 6, 7 }, // Morisyen/Latin/Mauritius + { 192, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 16207,28 , 16235,133 , 15151,14 , 16207,28 , 16235,133 , 15151,14 , 567,4 , 554,5 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 4,4 , 4,0 , 5112,10 , 1625,8 , 2, 0, 1, 6, 7 }, // Makonde/Latin/Tanzania + { 193, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8221, 8221, 8217, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 16368,36 , 16404,63 , 16467,14 , 16368,36 , 16404,63 , 16467,14 , 571,3 , 559,3 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16503,29 , 41,6 , 4,0 , 5122,8 , 5130,9 , 2, 0, 1, 6, 7 }, // Langi/Latin/Tanzania + { 194, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 16481,28 , 16509,66 , 16575,14 , 16481,28 , 16509,66 , 16575,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16532,26 , 0,4 , 4,0 , 5139,7 , 5146,7 , 0, 0, 1, 6, 7 }, // Ganda/Latin/Uganda + { 195, 7, 239, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 16589,80 , 16589,80 , 85,14 , 16589,80 , 16589,80 , 85,14 , 574,8 , 562,7 , 45,4 , 5,17 , 22,23 , {90,77,87}, 131,1 , 0,7 , 4,4 , 4,0 , 5153,9 , 1814,6 , 2, 1, 1, 6, 7 }, // Bemba/Latin/Zambia + { 196, 7, 39, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 163,7 , 163,7 , 415,8 , 1656,27 , 37,5 , 8,10 , 16669,28 , 16697,73 , 16770,14 , 16669,28 , 16784,73 , 16770,14 , 68,2 , 65,2 , 45,4 , 5,17 , 22,23 , {67,86,69}, 265,1 , 16558,43 , 13,5 , 4,0 , 5162,12 , 5174,10 , 2, 1, 1, 6, 7 }, // Kabuverdianu/Latin/Cape Verde + { 197, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 16857,28 , 16885,51 , 16936,14 , 16857,28 , 16885,51 , 16936,14 , 582,2 , 569,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 15943,24 , 4,4 , 4,0 , 5184,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Meru/Latin/Kenya + { 198, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 16950,28 , 16978,53 , 17031,14 , 16950,28 , 16978,53 , 17031,14 , 584,6 , 571,10 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16601,26 , 4,4 , 4,0 , 5190,8 , 5198,12 , 2, 1, 7, 6, 7 }, // Kalenjin/Latin/Kenya + { 199, 7, 148, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 17045,23 , 17068,92 , 17160,14 , 17045,23 , 17068,92 , 17160,14 , 590,7 , 581,5 , 45,4 , 5,17 , 22,23 , {78,65,68}, 6,1 , 16627,22 , 4,4 , 4,0 , 5210,13 , 5223,8 , 2, 1, 1, 6, 7 }, // Nama/Latin/Namibia + { 200, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15731,28 , 15759,62 , 15821,14 , 15731,28 , 15759,62 , 15821,14 , 557,5 , 537,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 4,4 , 4,0 , 5231,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Machame/Latin/Tanzania + { 201, 7, 82, 44, 160, 59, 37, 48, 8722, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 461,8 , 461,8 , 1134,10 , 1683,23 , 37,5 , 8,10 , 17174,28 , 17202,72 , 3668,14 , 17174,28 , 17202,72 , 3668,14 , 597,16 , 586,16 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 16649,11 , 13,5 , 4,0 , 5240,6 , 5246,11 , 2, 1, 1, 6, 7 }, // Colognian/Latin/Germany + { 202, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15731,28 , 17274,58 , 15151,14 , 15731,28 , 17274,58 , 15151,14 , 613,9 , 602,6 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16660,25 , 4,4 , 4,0 , 5257,3 , 1192,5 , 2, 1, 7, 6, 7 }, // Masai/Latin/Kenya + { 202, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15731,28 , 17274,58 , 15151,14 , 15731,28 , 17274,58 , 15151,14 , 613,9 , 602,6 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16685,28 , 4,4 , 4,0 , 5257,3 , 5260,8 , 2, 0, 1, 6, 7 }, // Masai/Latin/Tanzania + { 203, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17332,35 , 17367,65 , 17432,14 , 17332,35 , 17367,65 , 17432,14 , 622,6 , 608,6 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16532,26 , 13,5 , 4,0 , 5268,7 , 5146,7 , 0, 0, 1, 6, 7 }, // Soga/Latin/Uganda + { 204, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17446,21 , 17467,75 , 85,14 , 17446,21 , 17467,75 , 85,14 , 64,4 , 61,4 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16713,23 , 4,4 , 96,6 , 5275,7 , 1192,5 , 2, 1, 7, 6, 7 }, // Luyia/Latin/Kenya + { 205, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17542,28 , 10010,60 , 15821,14 , 17542,28 , 10010,60 , 15821,14 , 628,9 , 614,8 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16736,28 , 13,5 , 4,0 , 5282,6 , 5288,8 , 2, 0, 1, 6, 7 }, // Asu/Latin/Tanzania + { 206, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17570,28 , 17598,69 , 17667,14 , 17570,28 , 17598,69 , 17667,14 , 637,9 , 622,6 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16764,28 , 4,4 , 4,0 , 5296,6 , 1690,6 , 0, 0, 1, 6, 7 }, // Teso/Latin/Uganda + { 206, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17570,28 , 17598,69 , 17667,14 , 17570,28 , 17598,69 , 17667,14 , 637,9 , 622,6 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16792,27 , 4,4 , 4,0 , 5296,6 , 5302,5 , 2, 1, 7, 6, 7 }, // Teso/Latin/Kenya + { 207, 7, 67, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,82,78}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Saho/Latin/Eritrea + { 208, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 17681,28 , 17709,53 , 17762,14 , 17681,28 , 17709,53 , 17762,14 , 646,6 , 628,6 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5307,11 , 5318,5 , 0, 0, 1, 6, 7 }, // Koyra Chiini/Latin/Mali + { 209, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15731,28 , 15759,62 , 15821,14 , 15731,28 , 15759,62 , 15821,14 , 557,5 , 537,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16406,27 , 0,4 , 4,0 , 5323,6 , 1625,8 , 2, 0, 1, 6, 7 }, // Rwa/Latin/Tanzania + { 210, 7, 111, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17776,28 , 17804,69 , 17873,14 , 17776,28 , 17804,69 , 17873,14 , 652,2 , 634,2 , 45,4 , 5,17 , 22,23 , {75,69,83}, 2,3 , 16842,23 , 0,4 , 4,0 , 5329,6 , 1192,5 , 2, 1, 7, 6, 7 }, // Luo/Latin/Kenya + { 211, 7, 221, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 15491,28 , 15519,74 , 15593,14 , 15491,28 , 15519,74 , 15593,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,71,88}, 196,3 , 16351,26 , 4,4 , 4,0 , 5335,6 , 1690,6 , 0, 0, 1, 6, 7 }, // Chiga/Latin/Uganda + { 212, 7, 145, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 17887,28 , 17915,48 , 17963,14 , 17887,28 , 17915,48 , 17963,14 , 654,9 , 636,10 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16865,22 , 13,5 , 4,0 , 5341,17 , 5358,6 , 2, 1, 1, 6, 7 }, // Central Morocco Tamazight/Latin/Morocco + { 213, 7, 132, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 17977,28 , 18005,54 , 17762,14 , 17977,28 , 18005,54 , 17762,14 , 646,6 , 628,6 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5364,15 , 5318,5 , 0, 0, 1, 6, 7 }, // Koyraboro Senni/Latin/Mali + { 214, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 18059,28 , 18087,63 , 18150,14 , 18059,28 , 18087,63 , 18150,14 , 663,5 , 646,8 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 16887,27 , 0,4 , 4,0 , 5379,9 , 1625,8 , 2, 0, 1, 6, 7 }, // Shambala/Latin/Tanzania + { 215, 13, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 547,6 , 35,18 , 18,7 , 25,12 , 18164,33 , 18197,54 , 18251,19 , 18164,33 , 18197,54 , 18251,19 , 668,3 , 654,6 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 16914,10 , 8,5 , 4,0 , 5388,4 , 2667,4 , 2, 1, 7, 7, 7 }, // Bodo/Devanagari/India + { 218, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 18270,25 , 18295,45 , 18340,17 , 18270,25 , 18295,45 , 18270,25 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 16924,43 , 13,5 , 4,0 , 5392,7 , 5399,5 , 2, 1, 1, 6, 7 }, // Chechen/Cyrillic/Russia + { 219, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 954,8 , 954,8 , 1010,10 , 1706,23 , 37,5 , 8,10 , 18357,37 , 18394,68 , 11435,14 , 18357,37 , 18394,68 , 11435,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 16967,44 , 13,5 , 4,0 , 5404,19 , 5423,7 , 2, 1, 1, 6, 7 }, // Church/Cyrillic/Russia + { 220, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Chuvash/Cyrillic/Russia + { 230, 7, 49, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 18462,28 , 18490,50 , 18540,14 , 18462,28 , 18490,50 , 18540,14 , 671,5 , 660,6 , 45,4 , 5,17 , 22,23 , {67,68,70}, 209,2 , 17011,24 , 0,4 , 4,0 , 5430,8 , 5438,16 , 2, 1, 1, 6, 7 }, // Luba Katanga/Latin/Congo Kinshasa + { 231, 7, 125, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 962,10 , 962,10 , 156,8 , 622,18 , 37,5 , 8,10 , 18554,28 , 18582,65 , 3668,14 , 18647,35 , 18582,65 , 3668,14 , 676,5 , 666,8 , 462,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 8439,19 , 13,5 , 4,0 , 5454,14 , 5468,10 , 2, 1, 1, 6, 7 }, // Luxembourgish/Latin/Luxembourg + { 236, 7, 21, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Walloon/Latin/Belgium + { 237, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 8218, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 18682,28 , 18710,72 , 18782,14 , 18682,28 , 18710,72 , 18782,14 , 681,3 , 674,3 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17035,21 , 0,4 , 4,0 , 5478,5 , 5483,7 , 0, 0, 1, 6, 7 }, // Aghem/Latin/Cameroon + { 238, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 18796,28 , 18824,70 , 18894,14 , 18796,28 , 18824,70 , 18894,14 , 684,10 , 677,9 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17056,22 , 13,5 , 4,0 , 5490,5 , 5495,8 , 0, 0, 1, 6, 7 }, // Basaa/Latin/Cameroon + { 239, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 17977,28 , 18908,53 , 18961,14 , 17977,28 , 18908,53 , 18961,14 , 694,8 , 686,10 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5503,10 , 5513,5 , 0, 0, 1, 6, 7 }, // Zarma/Latin/Niger + { 240, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 18975,28 , 19003,45 , 19048,14 , 18975,28 , 19003,45 , 19048,14 , 702,5 , 696,6 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 13,5 , 4,0 , 5518,5 , 1986,8 , 0, 0, 1, 6, 7 }, // Duala/Latin/Cameroon + { 241, 7, 187, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 19062,28 , 19090,50 , 19140,14 , 19062,28 , 19090,50 , 19140,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 17078,23 , 13,5 , 4,0 , 5523,5 , 5528,7 , 0, 0, 1, 6, 7 }, // Jola Fonyi/Latin/Senegal + { 242, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 19154,30 , 19184,85 , 19269,14 , 19154,30 , 19184,85 , 19269,14 , 707,7 , 702,9 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17101,23 , 13,5 , 4,0 , 5535,6 , 5541,7 , 0, 0, 1, 6, 7 }, // Ewondo/Latin/Cameroon + { 243, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 19283,29 , 19312,45 , 19357,14 , 19283,29 , 19312,45 , 19357,14 , 714,6 , 711,7 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17124,11 , 13,5 , 4,0 , 5548,5 , 5553,7 , 0, 0, 1, 6, 7 }, // Bafia/Latin/Cameroon + { 244, 7, 146, 44, 46, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19371,28 , 19399,59 , 19458,14 , 19371,28 , 19399,59 , 19458,14 , 720,8 , 718,10 , 45,4 , 5,17 , 22,23 , {77,90,78}, 266,3 , 0,7 , 41,6 , 4,0 , 5560,5 , 5565,10 , 2, 1, 7, 6, 7 }, // Makhuwa Meetto/Latin/Mozambique + { 245, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 19472,28 , 19500,74 , 19574,14 , 19472,28 , 19500,74 , 19574,14 , 728,5 , 728,5 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17135,17 , 4,4 , 4,0 , 5575,6 , 5581,7 , 0, 0, 1, 6, 7 }, // Mundang/Latin/Cameroon + { 246, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8221, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 19588,30 , 19618,89 , 19707,14 , 19588,30 , 19618,89 , 19707,14 , 733,4 , 733,4 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17152,20 , 13,5 , 4,0 , 5588,6 , 5594,7 , 0, 0, 1, 6, 7 }, // Kwasio/Latin/Cameroon + { 247, 7, 254, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 538,9 , 97,16 , 18,7 , 558,12 , 19721,38 , 19759,79 , 19838,14 , 19721,38 , 19759,79 , 19838,14 , 737,2 , 737,2 , 45,4 , 5,17 , 22,23 , {83,83,80}, 119,1 , 0,7 , 4,4 , 4,0 , 5601,9 , 0,0 , 2, 1, 1, 6, 7 }, // Nuer/Latin/South Sudan + { 248, 2, 178, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8220, 0,6 , 0,6 , 972,11 , 972,11 , 227,6 , 1729,30 , 37,5 , 8,10 , 19852,21 , 19873,71 , 19944,14 , 19852,21 , 19873,71 , 19944,14 , 739,2 , 739,2 , 1227,5 , 1232,17 , 22,23 , {82,85,66}, 123,1 , 17172,47 , 13,5 , 4,0 , 5610,9 , 5619,9 , 2, 1, 1, 6, 7 }, // Sakha/Cyrillic/Russia + { 249, 7, 210, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 37,5 , 8,10 , 19958,28 , 19986,60 , 20046,14 , 19958,28 , 19986,60 , 20046,14 , 741,9 , 741,9 , 45,4 , 5,17 , 22,23 , {84,90,83}, 191,3 , 17219,25 , 0,4 , 4,0 , 5628,9 , 5637,9 , 2, 0, 1, 6, 7 }, // Sangu/Latin/Tanzania + { 251, 7, 156, 46, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 17977,28 , 18005,54 , 17762,14 , 17977,28 , 18005,54 , 17762,14 , 694,8 , 686,10 , 45,4 , 5,17 , 22,23 , {88,79,70}, 206,3 , 16819,23 , 0,4 , 4,0 , 5646,13 , 5513,5 , 0, 0, 1, 6, 7 }, // Tasawaq/Latin/Niger + { 252, 35, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 20060,30 , 20060,30 , 85,14 , 20060,30 , 20060,30 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 17244,15 , 4,4 , 4,0 , 5659,2 , 5661,4 , 2, 1, 1, 6, 7 }, // Vai/Vai/Liberia + { 252, 7, 121, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 119,10 , 10,17 , 18,7 , 25,12 , 20090,48 , 20090,48 , 85,14 , 20090,48 , 20090,48 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {76,82,68}, 6,1 , 17259,20 , 4,4 , 4,0 , 5665,3 , 5668,8 , 2, 1, 1, 6, 7 }, // Vai/Latin/Liberia + { 253, 7, 206, 44, 8217, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 269,9 , 269,9 , 53,10 , 622,18 , 37,5 , 8,10 , 20138,28 , 20166,53 , 20219,14 , 20138,28 , 20166,53 , 20219,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,72,70}, 0,0 , 0,7 , 41,6 , 4,0 , 5676,6 , 5682,6 , 2, 0, 1, 6, 7 }, // Walser/Latin/Switzerland + { 254, 7, 37, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 171, 187, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 20233,21 , 20254,71 , 20325,14 , 20233,21 , 20254,71 , 20325,14 , 750,8 , 750,8 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 13,5 , 4,0 , 5688,6 , 5694,7 , 0, 0, 1, 6, 7 }, // Yangben/Latin/Cameroon + { 256, 7, 197, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 683,7 , 683,7 , 269,6 , 372,22 , 37,5 , 8,10 , 20339,28 , 20367,54 , 3364,14 , 20339,28 , 20367,54 , 3364,14 , 758,12 , 758,11 , 0,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 3102,20 , 13,5 , 4,0 , 5701,9 , 2432,6 , 2, 1, 1, 6, 7 }, // Asturian/Latin/Spain + { 257, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 983,11 , 983,11 , 994,16 , 1010,9 , 53,10 , 1559,18 , 37,5 , 8,10 , 20421,60 , 20421,60 , 20481,25 , 20421,60 , 20421,60 , 20481,25 , 770,8 , 769,13 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17279,12 , 8,5 , 4,0 , 5710,5 , 5715,7 , 0, 0, 1, 6, 7 }, // Ngomba/Latin/Cameroon + { 258, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 1759,10 , 80,17 , 37,5 , 8,10 , 20506,54 , 20506,54 , 20560,21 , 20506,54 , 20506,54 , 20560,21 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17291,16 , 41,6 , 4,0 , 5722,4 , 5726,7 , 0, 0, 1, 6, 7 }, // Kako/Latin/Cameroon + { 259, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 1559,18 , 37,5 , 8,10 , 20581,49 , 20581,49 , 20630,21 , 20581,49 , 20581,49 , 20630,21 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17307,12 , 8,5 , 4,0 , 5733,5 , 5738,7 , 0, 0, 1, 6, 7 }, // Meta/Latin/Cameroon + { 260, 7, 37, 44, 46, 59, 37, 48, 45, 43, 101, 171, 187, 8220, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 27,8 , 1769,32 , 37,5 , 8,10 , 20651,111 , 20651,111 , 85,14 , 20651,111 , 20651,111 , 85,14 , 778,9 , 782,8 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 17319,16 , 8,5 , 4,0 , 5745,16 , 5761,7 , 0, 0, 1, 6, 7 }, // Ngiemboon/Latin/Cameroon + { 290, 11, 100, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,78,82}, 121,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 7, 7 }, // Manipuri/Bengali/India + { 309, 100, 232, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {86,78,68}, 322,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Tai Dam/Tai Viet/Vietnam + { 312, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Akoose/Latin/Cameroon + { 313, 7, 225, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 547,6 , 35,18 , 18,7 , 25,12 , 20762,87 , 20762,87 , 85,14 , 20762,87 , 20762,87 , 20849,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {85,83,68}, 6,1 , 0,7 , 41,6 , 4,0 , 5768,12 , 5780,22 , 2, 1, 7, 6, 7 }, // Lakota/Latin/United States + { 314, 9, 145, 44, 160, 59, 37, 48, 45, 43, 101, 171, 187, 8222, 8221, 0,6 , 0,6 , 0,6 , 0,6 , 415,8 , 97,16 , 37,5 , 8,10 , 15165,30 , 20863,48 , 85,14 , 15165,30 , 20863,48 , 85,14 , 531,6 , 505,8 , 45,4 , 5,17 , 22,23 , {77,65,68}, 0,0 , 16256,21 , 0,4 , 4,0 , 5802,8 , 4987,6 , 2, 1, 1, 6, 7 }, // Standard Moroccan Tamazight/Tifinagh/Morocco + { 315, 7, 43, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,76,80}, 6,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Mapuche/Latin/Chile + { 316, 1, 103, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 18,7 , 25,12 , 20911,58 , 20911,58 , 20969,14 , 20911,58 , 20911,58 , 20969,14 , 787,3 , 790,3 , 45,4 , 5,17 , 22,23 , {73,81,68}, 44,5 , 17335,20 , 13,5 , 4,0 , 5810,14 , 5824,5 , 0, 0, 6, 5, 6 }, // Central Kurdish/Arabic/Iraq + { 316, 1, 102, 1643, 1644, 1563, 1642, 1632, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 20911,58 , 20911,58 , 20969,14 , 20911,58 , 20911,58 , 20969,14 , 787,3 , 790,3 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 17355,19 , 13,5 , 4,0 , 5810,14 , 5829,5 , 0, 0, 6, 5, 5 }, // Central Kurdish/Arabic/Iran + { 317, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 185,7 , 113,6 , 622,18 , 55,4 , 59,9 , 20983,28 , 21011,53 , 21064,14 , 20983,28 , 21011,53 , 21064,14 , 790,9 , 793,10 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 17374,27 , 13,5 , 4,0 , 5834,14 , 5848,6 , 2, 1, 1, 6, 7 }, // Lower Sorbian/Latin/Germany + { 318, 7, 82, 44, 46, 59, 37, 48, 45, 43, 101, 8222, 8220, 8218, 8216, 0,6 , 0,6 , 185,7 , 185,7 , 113,6 , 622,18 , 570,12 , 59,9 , 21078,28 , 21106,53 , 21159,14 , 21078,28 , 21106,53 , 21159,14 , 790,9 , 803,9 , 1249,5 , 5,17 , 22,23 , {69,85,82}, 14,1 , 17401,29 , 13,5 , 4,0 , 5854,15 , 5869,6 , 2, 1, 1, 6, 7 }, // Upper Sorbian/Latin/Germany + { 319, 7, 37, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {88,65,70}, 32,4 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Kenyang/Latin/Cameroon + { 320, 7, 38, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {67,65,68}, 233,3 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Mohawk/Latin/Canada + { 321, 75, 91, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,78,70}, 215,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 1, 6, 7 }, // Nko/Nko/Guinea + { 322, 7, 260, 44, 160, 59, 37, 48, 45, 43, 101, 8222, 8220, 8222, 8220, 0,6 , 0,6 , 1019,8 , 1019,8 , 156,8 , 1801,27 , 37,5 , 8,10 , 21173,28 , 21201,69 , 21270,14 , 21173,28 , 21201,69 , 21270,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 13,5 , 4,0 , 5875,9 , 5884,6 , 2, 1, 1, 6, 7 }, // Prussian/Latin/World + { 323, 7, 90, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {71,84,81}, 290,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Kiche/Latin/Guatemala + { 324, 7, 205, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 1, 6, 7 }, // Southern Sami/Latin/Sweden + { 325, 7, 205, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {83,69,75}, 189,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 1, 6, 7 }, // Lule Sami/Latin/Sweden + { 326, 7, 73, 44, 160, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 640,8 , 1828,18 , 243,4 , 247,9 , 21284,28 , 21312,70 , 85,14 , 21284,28 , 21382,73 , 21455,14 , 799,3 , 812,3 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 17430,11 , 13,5 , 4,0 , 5890,11 , 5901,5 , 2, 1, 1, 6, 7 }, // Inari Sami/Latin/Finland + { 327, 7, 73, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Skolt Sami/Latin/Finland + { 328, 7, 13, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {65,85,68}, 326,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 7, 6, 7 }, // Warlpiri/Latin/Australia + { 346, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 171, 187, 8249, 8250, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 726,4 , 1254,39 , 22,23 , {73,82,82}, 328,3 , 17441,27 , 8,5 , 4,0 , 5906,7 , 3238,5 , 0, 0, 6, 5, 5 }, // Mazanderani/Arabic/Iran + { 349, 1, 102, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 0,7 , 8,5 , 4,0 , 5913,11 , 0,0 , 0, 0, 6, 5, 5 }, // Northern Luri/Arabic/Iran + { 349, 1, 103, 1643, 1644, 1563, 1642, 1776, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 18,7 , 25,12 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,81,68}, 44,5 , 0,7 , 8,5 , 4,0 , 5913,11 , 0,0 , 0, 0, 6, 5, 6 }, // Northern Luri/Arabic/Iraq + { 357, 6, 97, 46, 44, 59, 37, 48, 45, 43, 101, 12300, 12301, 12302, 12303, 170,5 , 170,5 , 1027,5 , 1027,5 , 394,8 , 423,14 , 198,6 , 215,13 , 1953,28 , 1953,28 , 1981,14 , 1953,28 , 1953,28 , 1981,14 , 58,2 , 55,2 , 45,4 , 5,17 , 22,23 , {72,75,68}, 166,3 , 17468,11 , 4,4 , 4,0 , 5924,2 , 5926,14 , 2, 1, 7, 6, 7 }, // Cantonese/Traditional Han/Hong Kong + { 357, 5, 44, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 170,5 , 170,5 , 1027,5 , 1027,5 , 394,8 , 402,13 , 198,6 , 204,11 , 1932,21 , 1953,28 , 1981,14 , 1932,21 , 1953,28 , 1981,14 , 58,2 , 55,2 , 45,4 , 5,17 , 22,23 , {67,78,89}, 133,1 , 3122,13 , 4,4 , 4,0 , 5940,2 , 5942,7 , 2, 1, 7, 6, 7 }, // Cantonese/Simplified Han/China + { 360, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Ido/Latin/World + { 361, 7, 260, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {0,0,0}, 0,0 , 2586,0 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Lojban/Latin/World + { 362, 7, 106, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {69,85,82}, 14,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Sicilian/Latin/Italy + { 363, 1, 102, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {73,82,82}, 0,0 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 0, 0, 6, 5, 5 }, // Southern Kurdish/Arabic/Iran + { 364, 1, 163, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,75,82}, 175,2 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 0, 7, 6, 7 }, // Western Balochi/Arabic/Pakistan + { 365, 7, 170, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 897,9 , 906,8 , 547,6 , 35,18 , 18,7 , 25,12 , 21469,25 , 21494,56 , 21550,14 , 21469,25 , 21494,56 , 21550,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {80,72,80}, 178,1 , 0,7 , 4,4 , 4,0 , 5949,7 , 4701,9 , 2, 1, 7, 6, 7 }, // Cebuano/Latin/Philippines + { 366, 2, 178, 46, 44, 59, 37, 48, 45, 43, 101, 8220, 8221, 8216, 8217, 0,6 , 0,6 , 0,6 , 0,6 , 53,10 , 63,17 , 37,5 , 8,10 , 0,28 , 0,28 , 85,14 , 0,28 , 0,28 , 85,14 , 0,2 , 0,2 , 45,4 , 5,17 , 22,23 , {82,85,66}, 123,1 , 0,7 , 8,5 , 4,0 , 0,0 , 0,0 , 2, 1, 1, 6, 7 }, // Erzya/Cyrillic/Russia + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, {0,0,0}, 0,0, 0,0, 0,0, 0,0, 0,0, 0,0, 0, 0, 0, 0, 0 } // trailing 0s }; static const ushort list_pattern_part_data[] = { @@ -2043,1986 +2043,6 @@ static const ushort time_format_data[] = { 0x27, 0x2e }; -static const ushort months_data[] = { -0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, -0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x63, 0x74, 0x3b, -0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x3b, 0x46, 0x65, 0x62, 0x72, -0x75, 0x61, 0x72, 0x79, 0x3b, 0x4d, 0x61, 0x72, 0x63, 0x68, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, -0x3b, 0x4a, 0x75, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, -0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, -0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, -0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x31, 0x3b, -0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, 0x3b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, -0x31, 0x3b, 0x31, 0x32, 0x3b, 0x41, 0x6d, 0x61, 0x3b, 0x47, 0x75, 0x72, 0x3b, 0x42, 0x69, 0x74, 0x3b, 0x45, 0x6c, 0x62, -0x3b, 0x43, 0x61, 0x6d, 0x3b, 0x57, 0x61, 0x78, 0x3b, 0x41, 0x64, 0x6f, 0x3b, 0x48, 0x61, 0x67, 0x3b, 0x46, 0x75, 0x6c, -0x3b, 0x4f, 0x6e, 0x6b, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x4d, 0x75, 0x64, 0x3b, 0x41, 0x6d, 0x61, 0x6a, 0x6a, 0x69, 0x69, -0x3b, 0x47, 0x75, 0x72, 0x61, 0x61, 0x6e, 0x64, 0x68, 0x61, 0x6c, 0x61, 0x3b, 0x42, 0x69, 0x74, 0x6f, 0x6f, 0x74, 0x65, -0x65, 0x73, 0x73, 0x61, 0x3b, 0x45, 0x6c, 0x62, 0x61, 0x3b, 0x43, 0x61, 0x61, 0x6d, 0x73, 0x61, 0x3b, 0x57, 0x61, 0x78, -0x61, 0x62, 0x61, 0x6a, 0x6a, 0x69, 0x69, 0x3b, 0x41, 0x64, 0x6f, 0x6f, 0x6c, 0x65, 0x65, 0x73, 0x73, 0x61, 0x3b, 0x48, -0x61, 0x67, 0x61, 0x79, 0x79, 0x61, 0x3b, 0x46, 0x75, 0x75, 0x6c, 0x62, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6e, 0x6b, 0x6f, -0x6c, 0x6f, 0x6c, 0x65, 0x65, 0x73, 0x73, 0x61, 0x3b, 0x53, 0x61, 0x64, 0x61, 0x61, 0x73, 0x61, 0x3b, 0x4d, 0x75, 0x64, -0x64, 0x65, 0x65, 0x3b, 0x41, 0x3b, 0x47, 0x3b, 0x42, 0x3b, 0x45, 0x3b, 0x43, 0x3b, 0x57, 0x3b, 0x41, 0x3b, 0x48, 0x3b, -0x46, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x4d, 0x30, 0x31, 0x3b, 0x4d, 0x30, 0x32, 0x3b, 0x4d, 0x30, 0x33, 0x3b, -0x4d, 0x30, 0x34, 0x3b, 0x4d, 0x30, 0x35, 0x3b, 0x4d, 0x30, 0x36, 0x3b, 0x4d, 0x30, 0x37, 0x3b, 0x4d, 0x30, 0x38, 0x3b, -0x4d, 0x30, 0x39, 0x3b, 0x4d, 0x31, 0x30, 0x3b, 0x4d, 0x31, 0x31, 0x3b, 0x4d, 0x31, 0x32, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, -0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x72, 0x74, 0x2e, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, -0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, -0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x73, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, -0x72, 0x69, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x3b, -0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x65, 0x3b, 0x4a, 0x75, 0x6c, 0x69, -0x65, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, -0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, -0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x73, 0x68, 0x6b, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x70, -0x72, 0x69, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x71, 0x65, 0x72, 0x3b, 0x6b, 0x6f, 0x72, 0x72, 0x3b, 0x67, 0x75, 0x73, 0x68, -0x3b, 0x73, 0x68, 0x74, 0x3b, 0x74, 0x65, 0x74, 0x3b, 0x6e, 0xeb, 0x6e, 0x3b, 0x64, 0x68, 0x6a, 0x3b, 0x6a, 0x61, 0x6e, -0x61, 0x72, 0x3b, 0x73, 0x68, 0x6b, 0x75, 0x72, 0x74, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x70, 0x72, 0x69, 0x6c, 0x6c, -0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x71, 0x65, 0x72, 0x73, 0x68, 0x6f, 0x72, 0x3b, 0x6b, 0x6f, 0x72, 0x72, 0x69, 0x6b, 0x3b, -0x67, 0x75, 0x73, 0x68, 0x74, 0x3b, 0x73, 0x68, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x3b, 0x74, 0x65, 0x74, 0x6f, 0x72, 0x3b, -0x6e, 0xeb, 0x6e, 0x74, 0x6f, 0x72, 0x3b, 0x64, 0x68, 0x6a, 0x65, 0x74, 0x6f, 0x72, 0x3b, 0x6a, 0x3b, 0x73, 0x68, 0x3b, -0x6d, 0x3b, 0x70, 0x3b, 0x6d, 0x3b, 0x71, 0x3b, 0x6b, 0x3b, 0x67, 0x3b, 0x73, 0x68, 0x3b, 0x74, 0x3b, 0x6e, 0x3b, 0x64, -0x68, 0x3b, 0x1303, 0x1295, 0x12e9, 0x3b, 0x134c, 0x1265, 0x1229, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x3b, 0x121c, 0x12ed, -0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x3b, 0x1234, 0x1355, 0x1274, 0x3b, 0x12a6, 0x12ad, 0x1276, 0x3b, -0x1296, 0x126c, 0x121d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x3b, 0x1303, 0x1295, 0x12e9, 0x12c8, 0x122a, 0x3b, 0x134c, 0x1265, 0x1229, 0x12c8, 0x122a, 0x3b, -0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x120d, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, -0x1308, 0x1235, 0x1275, 0x3b, 0x1234, 0x1355, 0x1274, 0x121d, 0x1260, 0x122d, 0x3b, 0x12a6, 0x12ad, 0x1276, 0x1260, 0x122d, 0x3b, 0x1296, 0x126c, 0x121d, -0x1260, 0x122d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x1260, 0x122d, 0x3b, 0x1303, 0x3b, 0x134c, 0x3b, 0x121b, 0x3b, 0x12a4, 0x3b, 0x121c, 0x3b, 0x1301, -0x3b, 0x1301, 0x3b, 0x12a6, 0x3b, 0x1234, 0x3b, 0x12a6, 0x3b, 0x1296, 0x3b, 0x12f2, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, -0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, -0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x633, 0x637, 0x633, 0x3b, -0x633, 0x628, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, -0x3b, 0x62f, 0x64a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x648, 0x3b, 0x646, 0x3b, -0x644, 0x3b, 0x63a, 0x3b, 0x633, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x62c, 0x627, 0x646, 0x641, 0x64a, 0x3b, 0x641, 0x64a, -0x641, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x641, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x62c, -0x648, 0x627, 0x646, 0x3b, 0x62c, 0x648, 0x64a, 0x644, 0x64a, 0x629, 0x3b, 0x623, 0x648, 0x62a, 0x3b, 0x633, 0x628, 0x62a, 0x645, 0x628, -0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x64a, 0x633, 0x645, -0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x623, 0x3b, 0x633, -0x3b, 0x623, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, -0x634, 0x628, 0x627, 0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, 0x64a, 0x633, 0x627, 0x646, 0x3b, 0x623, 0x64a, 0x627, 0x631, -0x3b, 0x62d, 0x632, 0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, 0x632, 0x3b, 0x622, 0x628, 0x3b, 0x623, 0x64a, 0x644, 0x648, -0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, -0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x643, -0x3b, 0x634, 0x3b, 0x622, 0x3b, 0x646, 0x3b, 0x623, 0x3b, 0x62d, 0x3b, 0x62a, 0x3b, 0x622, 0x3b, 0x623, 0x3b, 0x62a, 0x3b, 0x62a, -0x3b, 0x643, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x634, 0x628, 0x627, 0x637, -0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, 0x64a, 0x633, 0x627, 0x646, 0x3b, 0x623, 0x64a, 0x627, 0x631, 0x3b, 0x62d, 0x632, 0x64a, -0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, 0x632, 0x3b, 0x622, 0x628, 0x3b, 0x623, 0x64a, 0x644, 0x648, 0x644, 0x3b, 0x62a, 0x634, -0x631, 0x64a, 0x646, 0xa0, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, -0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, -0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x625, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, -0x627, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x634, 0x62a, -0x3b, 0x634, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, -0x3b, 0x62f, 0x62c, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x625, 0x3b, 0x648, 0x3b, 0x646, 0x3b, 0x644, -0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, -0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x64a, -0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x632, 0x3b, 0x63a, 0x634, 0x62a, 0x3b, 0x634, 0x62a, 0x646, 0x628, -0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x646, 0x628, 0x631, 0x3b, 0x62f, 0x62c, 0x646, 0x628, 0x631, -0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x645, 0x3b, 0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, -0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x570, 0x576, 0x57e, 0x3b, 0x583, 0x57f, 0x57e, 0x3b, 0x574, 0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, -0x3b, 0x574, 0x575, 0x57d, 0x3b, 0x570, 0x576, 0x57d, 0x3b, 0x570, 0x56c, 0x57d, 0x3b, 0x585, 0x563, 0x57d, 0x3b, 0x57d, 0x565, 0x57a, -0x3b, 0x570, 0x578, 0x56f, 0x3b, 0x576, 0x578, 0x575, 0x3b, 0x564, 0x565, 0x56f, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, -0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x3b, 0x574, 0x561, 0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c, 0x3b, -0x574, 0x561, 0x575, 0x56b, 0x57d, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x56b, 0x57d, 0x3b, 0x570, 0x578, 0x582, 0x56c, 0x56b, 0x57d, 0x3b, -0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, 0x57d, 0x3b, 0x57d, 0x565, 0x57a, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x570, 0x578, -0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x576, 0x578, 0x575, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x564, 0x565, 0x56f, -0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x540, 0x3b, 0x553, 0x3b, 0x544, 0x3b, 0x531, 0x3b, 0x544, 0x3b, 0x540, 0x3b, 0x540, -0x3b, 0x555, 0x3b, 0x54d, 0x3b, 0x540, 0x3b, 0x546, 0x3b, 0x534, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, 0x56b, 0x3b, -0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x56b, 0x3b, 0x574, 0x561, 0x580, 0x57f, 0x56b, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c, -0x56b, 0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578, 0x582, -0x56c, 0x56b, 0x57d, 0x56b, 0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, 0x57d, 0x56b, 0x3b, 0x57d, 0x565, 0x57a, 0x57f, 0x565, 0x574, -0x562, 0x565, 0x580, 0x56b, 0x3b, 0x570, 0x578, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x576, 0x578, 0x575, 0x565, -0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x564, 0x565, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x99c, 0x9be, 0x9a8, -0x9c1, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x3b, 0x9ae, 0x9be, 0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, 0x9bf, -0x9b2, 0x3b, 0x9ae, 0x9c7, 0x2019, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x3b, 0x99b, -0x9c7, 0x9aa, 0x9cd, 0x9a4, 0x9c7, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x3b, 0x9a8, 0x9f1, 0x9c7, 0x3b, 0x9a1, 0x9bf, 0x99a, 0x9c7, -0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, -0x3b, 0x9ae, 0x9be, 0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x2019, 0x3b, 0x99c, 0x9c1, -0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b7, 0x9cd, 0x99f, 0x3b, 0x99b, 0x9c7, 0x9aa, 0x9cd, 0x9a4, 0x9c7, -0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9f0, 0x3b, 0x9a8, 0x9f1, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, -0x3b, 0x9a1, 0x9bf, 0x99a, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x99c, 0x3b, 0x9ab, 0x3b, 0x9ae, 0x3b, 0x98f, 0x3b, 0x9ae, 0x3b, -0x99c, 0x3b, 0x99c, 0x3b, 0x986, 0x3b, 0x99b, 0x3b, 0x985, 0x3b, 0x9a8, 0x3b, 0x9a1, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, -0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x6e, 0x3b, 0x69, 0x79, -0x6c, 0x3b, 0x61, 0x76, 0x71, 0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x79, 0x3b, 0x64, 0x65, -0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61, 0x72, 0x74, -0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x130, 0x79, 0x75, 0x6e, 0x3b, 0x130, 0x79, 0x75, 0x6c, -0x3b, 0x41, 0x76, 0x71, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b, 0x74, -0x79, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x79, -0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, -0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x75, 0x6e, 0x3b, 0x69, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x76, -0x71, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x79, 0x61, 0x62, -0x72, 0x3b, 0x6e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x458, 0x430, 0x43d, 0x3b, -0x444, 0x435, 0x432, 0x3b, 0x43c, 0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x458, 0x43d, 0x3b, -0x438, 0x458, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43d, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x458, 0x3b, -0x434, 0x435, 0x43a, 0x3b, 0x408, 0x430, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x41c, 0x430, -0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x458, 0x443, 0x43d, 0x3b, 0x418, 0x458, -0x443, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x41e, -0x43a, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x41d, 0x43e, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, -0x3b, 0x458, 0x430, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, -0x430, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x458, 0x443, 0x43d, 0x3b, 0x438, 0x458, 0x443, 0x43b, 0x3b, -0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x458, -0x430, 0x431, 0x440, 0x3b, 0x43d, 0x43e, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x75, 0x72, -0x74, 0x2e, 0x3b, 0x6f, 0x74, 0x73, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x69, 0x2e, 0x3b, 0x6d, 0x61, -0x69, 0x2e, 0x3b, 0x65, 0x6b, 0x61, 0x2e, 0x3b, 0x75, 0x7a, 0x74, 0x2e, 0x3b, 0x61, 0x62, 0x75, 0x2e, 0x3b, 0x69, 0x72, -0x61, 0x2e, 0x3b, 0x75, 0x72, 0x72, 0x2e, 0x3b, 0x61, 0x7a, 0x61, 0x2e, 0x3b, 0x61, 0x62, 0x65, 0x2e, 0x3b, 0x75, 0x72, -0x74, 0x61, 0x72, 0x72, 0x69, 0x6c, 0x61, 0x3b, 0x6f, 0x74, 0x73, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x74, -0x78, 0x6f, 0x61, 0x3b, 0x61, 0x70, 0x69, 0x72, 0x69, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x69, 0x61, 0x74, 0x7a, 0x61, 0x3b, -0x65, 0x6b, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x75, 0x7a, 0x74, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x61, 0x62, 0x75, 0x7a, 0x74, -0x75, 0x61, 0x3b, 0x69, 0x72, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x75, 0x72, 0x72, 0x69, 0x61, 0x3b, 0x61, 0x7a, 0x61, 0x72, -0x6f, 0x61, 0x3b, 0x61, 0x62, 0x65, 0x6e, 0x64, 0x75, 0x61, 0x3b, 0x55, 0x3b, 0x4f, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, -0x3b, 0x45, 0x3b, 0x55, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x55, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x9af, -0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9b0, 0x9c1, 0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ae, 0x9be, 0x9b0, -0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9b0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, -0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b8, 0x9cd, 0x99f, 0x3b, 0x9b8, 0x9c7, 0x9aa, 0x9cd, 0x99f, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, -0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9b0, 0x3b, 0x9a8, 0x9ad, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, -0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x99c, 0x9be, 0x3b, 0x9ab, 0x9c7, 0x3b, 0x9ae, 0x9be, 0x3b, 0x98f, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, -0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x3b, 0x986, 0x3b, 0x9b8, 0x9c7, 0x3b, 0x985, 0x3b, 0x9a8, 0x3b, 0x9a1, 0x9bf, 0x3b, 0x99c, 0x9be, -0x9a8, 0x9c1, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x3b, 0x9ae, 0x9be, 0x9b0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9b0, 0x9bf, 0x9b2, 0x3b, -0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b8, 0x9cd, 0x99f, 0x3b, 0x9b8, -0x9c7, 0x9aa, 0x9cd, 0x99f, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9b0, 0x3b, 0x9a8, 0x9ad, -0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0x3b, -0xf5f, 0xfb3, 0xf0b, 0xf22, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf23, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf24, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf25, 0x3b, -0xf5f, 0xfb3, 0xf0b, 0xf26, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf27, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf28, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf29, 0x3b, -0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf20, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf21, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf22, 0x3b, 0xf66, 0xfa4, -0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, -0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, -0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, -0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, -0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, -0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, -0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, -0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, -0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, -0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0xf24, 0x3b, 0xf25, 0x3b, 0xf26, -0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0xf21, 0xf22, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, -0xf23, 0x3b, 0xf24, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, -0x31, 0x32, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, -0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, -0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, -0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, -0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, -0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, -0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, -0x3b, 0x34, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0x39, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0xf21, -0xf22, 0x3b, 0x47, 0x65, 0x6e, 0x2e, 0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x2e, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x2e, 0x3b, -0x45, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, 0x65, 0x7a, 0x68, 0x2e, 0x3b, 0x47, 0x6f, 0x75, 0x65, 0x2e, -0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x2e, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, -0x4b, 0x7a, 0x75, 0x2e, 0x3b, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x76, 0x72, 0x65, -0x72, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x7a, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, -0x65, 0x7a, 0x68, 0x65, 0x76, 0x65, 0x6e, 0x3b, 0x47, 0x6f, 0x75, 0x65, 0x72, 0x65, 0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, -0x47, 0x77, 0x65, 0x6e, 0x67, 0x6f, 0x6c, 0x6f, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x72, -0x7a, 0x75, 0x3b, 0x30, 0x31, 0x3b, 0x30, 0x32, 0x3b, 0x30, 0x33, 0x3b, 0x30, 0x34, 0x3b, 0x30, 0x35, 0x3b, 0x30, 0x36, -0x3b, 0x30, 0x37, 0x3b, 0x30, 0x38, 0x3b, 0x30, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x44f, -0x43d, 0x443, 0x3b, 0x444, 0x435, 0x432, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x439, 0x3b, -0x44e, 0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, -0x43d, 0x43e, 0x435, 0x3b, 0x434, 0x435, 0x43a, 0x3b, 0x44f, 0x43d, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, -0x430, 0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x44e, -0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, -0x432, 0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, -0x3b, 0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x44f, 0x3b, 0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, -0x44e, 0x3b, 0x44e, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b, 0x43d, 0x3b, 0x434, 0x3b, 0x1007, 0x1014, 0x103a, 0x3b, 0x1016, 0x1031, -0x3b, 0x1019, 0x1010, 0x103a, 0x3b, 0x1027, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, 0x103d, 0x1014, 0x103a, 0x3b, 0x1007, 0x1030, 0x3b, 0x1029, 0x3b, -0x1005, 0x1000, 0x103a, 0x3b, 0x1021, 0x1031, 0x102c, 0x1000, 0x103a, 0x3b, 0x1014, 0x102d, 0x102f, 0x3b, 0x1012, 0x102e, 0x3b, 0x1007, 0x1014, 0x103a, -0x1014, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1016, 0x1031, 0x1016, 0x1031, 0x102c, 0x103a, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1019, 0x1010, 0x103a, -0x3b, 0x1027, 0x1015, 0x103c, 0x102e, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, 0x103d, 0x1014, 0x103a, 0x3b, 0x1007, 0x1030, 0x101c, 0x102d, 0x102f, 0x1004, -0x103a, 0x3b, 0x1029, 0x1002, 0x102f, 0x1010, 0x103a, 0x3b, 0x1005, 0x1000, 0x103a, 0x1010, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1021, 0x1031, 0x102c, -0x1000, 0x103a, 0x1010, 0x102d, 0x102f, 0x1018, 0x102c, 0x3b, 0x1014, 0x102d, 0x102f, 0x101d, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1012, 0x102e, 0x1007, -0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1007, 0x3b, 0x1016, 0x3b, 0x1019, 0x3b, 0x1027, 0x3b, 0x1019, 0x3b, 0x1007, 0x3b, 0x1007, 0x3b, 0x1029, -0x3b, 0x1005, 0x3b, 0x1021, 0x3b, 0x1014, 0x3b, 0x1012, 0x3b, 0x441, 0x442, 0x443, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, -0x3b, 0x43a, 0x440, 0x430, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x447, 0x44d, 0x440, 0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, -0x3b, 0x432, 0x435, 0x440, 0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, 0x441, 0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, -0x434, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x44e, 0x442, 0x44b, 0x3b, 0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43a, -0x440, 0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44c, 0x3b, -0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x436, 0x43d, 0x456, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, -0x435, 0x43d, 0x44c, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, 0x43d, 0x456, 0x43a, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, -0x43f, 0x430, 0x434, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x430, 0x43d, 0x44c, 0x3b, 0x441, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x43a, 0x3b, -0x43c, 0x3b, 0x447, 0x3b, 0x43b, 0x3b, 0x436, 0x3b, 0x432, 0x3b, 0x43a, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x441, 0x442, 0x443, 0x3b, -0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x3b, -0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, 0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, 0x441, 0x3b, -0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, 0x44f, 0x3b, 0x43b, 0x44e, 0x442, 0x430, 0x433, 0x430, 0x3b, -0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43a, 0x440, 0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43c, -0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44f, 0x3b, 0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44f, 0x3b, 0x436, 0x43d, -0x456, 0x45e, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, 0x43d, 0x44f, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, -0x43d, 0x456, 0x43a, 0x430, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, 0x43f, 0x430, 0x434, 0x430, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x43d, -0x44f, 0x3b, 0x1798, 0x1780, 0x179a, 0x17b6, 0x3b, 0x1780, 0x17bb, 0x1798, 0x17d2, 0x1797, 0x17c8, 0x3b, 0x1798, 0x17b8, 0x1793, 0x17b6, 0x3b, 0x1798, -0x17c1, 0x179f, 0x17b6, 0x3b, 0x17a7, 0x179f, 0x1797, 0x17b6, 0x3b, 0x1798, 0x17b7, 0x1790, 0x17bb, 0x1793, 0x17b6, 0x3b, 0x1780, 0x1780, 0x17d2, 0x1780, -0x178a, 0x17b6, 0x3b, 0x179f, 0x17b8, 0x17a0, 0x17b6, 0x3b, 0x1780, 0x1789, 0x17d2, 0x1789, 0x17b6, 0x3b, 0x178f, 0x17bb, 0x179b, 0x17b6, 0x3b, 0x179c, -0x17b7, 0x1785, 0x17d2, 0x1786, 0x17b7, 0x1780, 0x17b6, 0x3b, 0x1792, 0x17d2, 0x1793, 0x17bc, 0x3b, 0x1798, 0x3b, 0x1780, 0x3b, 0x1798, 0x3b, 0x1798, -0x3b, 0x17a7, 0x3b, 0x1798, 0x3b, 0x1780, 0x3b, 0x179f, 0x3b, 0x1780, 0x3b, 0x178f, 0x3b, 0x179c, 0x3b, 0x1792, 0x3b, 0x67, 0x65, 0x6e, -0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, -0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x74, -0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x67, 0x65, 0x6e, -0x65, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, -0x3b, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c, 0x3b, 0x61, 0x67, -0x6f, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, -0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x47, -0x4e, 0x3b, 0x46, 0x42, 0x3b, 0x4d, 0xc7, 0x3b, 0x41, 0x42, 0x3b, 0x4d, 0x47, 0x3b, 0x4a, 0x4e, 0x3b, 0x4a, 0x4c, 0x3b, -0x41, 0x47, 0x3b, 0x53, 0x54, 0x3b, 0x4f, 0x43, 0x3b, 0x4e, 0x56, 0x3b, 0x44, 0x53, 0x3b, 0x64, 0x65, 0x20, 0x67, 0x65, -0x6e, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0xe7, 0x3b, -0x64, 0x2019, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, -0x6e, 0x79, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x64, 0x2019, 0x61, 0x67, 0x2e, 0x3b, 0x64, 0x65, 0x20, -0x73, 0x65, 0x74, 0x2e, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, -0x64, 0x65, 0x20, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x20, -0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x64, 0x2019, 0x61, 0x62, 0x72, -0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x64, -0x65, 0x20, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c, 0x3b, 0x64, 0x2019, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x3b, 0x64, 0x65, 0x20, -0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x64, -0x65, 0x20, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, -0x72, 0x65, 0x3b, 0x31, 0x6708, 0x3b, 0x32, 0x6708, 0x3b, 0x33, 0x6708, 0x3b, 0x34, 0x6708, 0x3b, 0x35, 0x6708, 0x3b, 0x36, 0x6708, -0x3b, 0x37, 0x6708, 0x3b, 0x38, 0x6708, 0x3b, 0x39, 0x6708, 0x3b, 0x31, 0x30, 0x6708, 0x3b, 0x31, 0x31, 0x6708, 0x3b, 0x31, 0x32, -0x6708, 0x3b, 0x4e00, 0x6708, 0x3b, 0x4e8c, 0x6708, 0x3b, 0x4e09, 0x6708, 0x3b, 0x56db, 0x6708, 0x3b, 0x4e94, 0x6708, 0x3b, 0x516d, 0x6708, 0x3b, -0x4e03, 0x6708, 0x3b, 0x516b, 0x6708, 0x3b, 0x4e5d, 0x6708, 0x3b, 0x5341, 0x6708, 0x3b, 0x5341, 0x4e00, 0x6708, 0x3b, 0x5341, 0x4e8c, 0x6708, 0x3b, -0x73, 0x69, 0x6a, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x3b, 0x6f, 0x17e, 0x75, 0x3b, 0x74, 0x72, 0x61, 0x3b, 0x73, 0x76, 0x69, -0x3b, 0x6c, 0x69, 0x70, 0x3b, 0x73, 0x72, 0x70, 0x3b, 0x6b, 0x6f, 0x6c, 0x3b, 0x72, 0x75, 0x6a, 0x3b, 0x6c, 0x69, 0x73, -0x3b, 0x73, 0x74, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x3b, 0x73, 0x69, 0x6a, 0x65, 0x10d, 0x61, 0x6e, 0x6a, 0x3b, 0x76, 0x65, -0x6c, 0x6a, 0x61, 0x10d, 0x61, 0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x61, 0x6b, 0x3b, 0x74, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x6a, -0x3b, 0x73, 0x76, 0x69, 0x62, 0x61, 0x6e, 0x6a, 0x3b, 0x6c, 0x69, 0x70, 0x61, 0x6e, 0x6a, 0x3b, 0x73, 0x72, 0x70, 0x61, -0x6e, 0x6a, 0x3b, 0x6b, 0x6f, 0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x3b, 0x72, 0x75, 0x6a, 0x61, 0x6e, 0x3b, 0x6c, 0x69, 0x73, -0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x69, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, -0x61, 0x63, 0x3b, 0x31, 0x2e, 0x3b, 0x32, 0x2e, 0x3b, 0x33, 0x2e, 0x3b, 0x34, 0x2e, 0x3b, 0x35, 0x2e, 0x3b, 0x36, 0x2e, -0x3b, 0x37, 0x2e, 0x3b, 0x38, 0x2e, 0x3b, 0x39, 0x2e, 0x3b, 0x31, 0x30, 0x2e, 0x3b, 0x31, 0x31, 0x2e, 0x3b, 0x31, 0x32, -0x2e, 0x3b, 0x73, 0x69, 0x6a, 0x65, 0x10d, 0x6e, 0x6a, 0x61, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x61, 0x10d, 0x65, 0x3b, 0x6f, -0x17e, 0x75, 0x6a, 0x6b, 0x61, 0x3b, 0x74, 0x72, 0x61, 0x76, 0x6e, 0x6a, 0x61, 0x3b, 0x73, 0x76, 0x69, 0x62, 0x6e, 0x6a, -0x61, 0x3b, 0x6c, 0x69, 0x70, 0x6e, 0x6a, 0x61, 0x3b, 0x73, 0x72, 0x70, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x6f, 0x6c, 0x6f, -0x76, 0x6f, 0x7a, 0x61, 0x3b, 0x72, 0x75, 0x6a, 0x6e, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61, -0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x6f, 0x67, 0x61, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x63, 0x61, 0x3b, -0x6c, 0x65, 0x64, 0x3b, 0xfa, 0x6e, 0x6f, 0x3b, 0x62, 0x159, 0x65, 0x3b, 0x64, 0x75, 0x62, 0x3b, 0x6b, 0x76, 0x11b, 0x3b, -0x10d, 0x76, 0x6e, 0x3b, 0x10d, 0x76, 0x63, 0x3b, 0x73, 0x72, 0x70, 0x3b, 0x7a, 0xe1, 0x159, 0x3b, 0x159, 0xed, 0x6a, 0x3b, -0x6c, 0x69, 0x73, 0x3b, 0x70, 0x72, 0x6f, 0x3b, 0x6c, 0x65, 0x64, 0x65, 0x6e, 0x3b, 0xfa, 0x6e, 0x6f, 0x72, 0x3b, 0x62, -0x159, 0x65, 0x7a, 0x65, 0x6e, 0x3b, 0x64, 0x75, 0x62, 0x65, 0x6e, 0x3b, 0x6b, 0x76, 0x11b, 0x74, 0x65, 0x6e, 0x3b, 0x10d, -0x65, 0x72, 0x76, 0x65, 0x6e, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x65, 0x63, 0x3b, 0x73, 0x72, 0x70, 0x65, 0x6e, -0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, 0x6a, 0x65, 0x6e, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, -0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x65, 0x63, 0x3b, 0x6c, 0x65, 0x64, 0x6e, 0x61, 0x3b, 0xfa, 0x6e, 0x6f, 0x72, -0x61, 0x3b, 0x62, 0x159, 0x65, 0x7a, 0x6e, 0x61, 0x3b, 0x64, 0x75, 0x62, 0x6e, 0x61, 0x3b, 0x6b, 0x76, 0x11b, 0x74, 0x6e, -0x61, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x6e, 0x61, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x63, 0x65, 0x3b, 0x73, 0x72, -0x70, 0x6e, 0x61, 0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, 0x6a, 0x6e, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, -0x70, 0x61, 0x64, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, -0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, -0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, -0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, -0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, -0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, -0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, -0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, -0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x72, 0x74, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x65, 0x69, -0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, -0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, -0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x61, -0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, -0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, -0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, -0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, -0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x75, -0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, -0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, -0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x16d, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, -0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x6f, 0x3b, 0x66, -0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x6f, -0x3b, 0x6d, 0x61, 0x6a, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x16d, -0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, -0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, -0x6f, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x3b, 0x76, 0x65, 0x65, 0x62, 0x72, 0x3b, 0x6d, 0xe4, 0x72, 0x74, 0x73, 0x3b, 0x61, -0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, -0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x74, 0x73, -0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x76, 0x65, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0xe4, -0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, 0x69, -0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, -0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, -0x72, 0x3b, 0x64, 0x65, 0x74, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x56, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, -0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, -0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, -0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, -0x64, 0x65, 0x73, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, -0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, -0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, -0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, -0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, -0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, -0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, -0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x3b, 0x6d, 0x61, -0x61, 0x6c, 0x69, 0x73, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x3b, 0x6b, 0x65, 0x73, -0xe4, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x3b, 0x65, 0x6c, 0x6f, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x3b, 0x6c, 0x6f, 0x6b, -0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, -0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, -0x75, 0x75, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x75, 0x75, -0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x65, 0x6c, -0x6f, 0x6b, 0x75, 0x75, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, -0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x75, 0x75, 0x3b, -0x54, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x48, 0x3b, 0x45, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, -0x4d, 0x3b, 0x4a, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x2e, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x2e, 0x3b, -0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x2e, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x2e, 0x3b, 0x74, 0x6f, 0x75, -0x6b, 0x6f, 0x6b, 0x2e, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x2e, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x2e, 0x3b, -0x65, 0x6c, 0x6f, 0x6b, 0x2e, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x2e, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x2e, 0x3b, -0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x2e, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x2e, 0x3b, 0x74, 0x61, 0x6d, -0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, -0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x74, -0x61, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, -0x74, 0x61, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, -0x74, 0x61, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, -0x74, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, -0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, -0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, -0x6c, 0x2e, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, -0x6f, 0x76, 0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x72, 0x3b, 0x66, 0xe9, 0x76, -0x72, 0x69, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, -0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x6c, 0x65, 0x74, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, -0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, -0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0xe9, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, -0x66, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, -0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x6c, 0x2e, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, -0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x6a, 0x61, -0x6e, 0x2e, 0x3b, 0x66, 0xe9, 0x76, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, -0x69, 0x3b, 0x6a, 0x75, 0x69, 0x2e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x2e, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, -0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x4a, -0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, -0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, -0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x65, 0x77, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x46, 0x65, -0x62, 0x72, 0x65, 0x77, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, -0x3b, 0x4d, 0x61, 0x61, 0x69, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x79, 0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x3b, 0x41, 0x75, 0x67, -0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x69, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, -0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x69, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x73, 0x69, 0x6d, 0x62, 0x65, -0x72, 0x3b, 0x46, 0x61, 0x6f, 0x69, 0x3b, 0x47, 0x65, 0x61, 0x72, 0x72, 0x3b, 0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x47, 0x69, -0x62, 0x6c, 0x3b, 0x43, 0xe8, 0x69, 0x74, 0x3b, 0xd2, 0x67, 0x6d, 0x68, 0x3b, 0x49, 0x75, 0x63, 0x68, 0x3b, 0x4c, 0xf9, -0x6e, 0x61, 0x3b, 0x53, 0x75, 0x6c, 0x74, 0x3b, 0x44, 0xe0, 0x6d, 0x68, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x3b, 0x44, 0xf9, -0x62, 0x68, 0x3b, 0x41, 0x6d, 0x20, 0x46, 0x61, 0x6f, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x63, 0x68, 0x3b, 0x41, 0x6e, 0x20, -0x47, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b, 0x41, 0x6d, 0x20, 0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x41, 0x6e, 0x20, 0x47, -0x69, 0x62, 0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x43, 0xe8, 0x69, 0x74, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, -0x20, 0x74, 0x2d, 0xd2, 0x67, 0x6d, 0x68, 0x69, 0x6f, 0x73, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x49, 0x75, 0x63, 0x68, -0x61, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x4c, 0xf9, 0x6e, 0x61, 0x73, 0x74, 0x61, 0x6c, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, -0x53, 0x75, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x44, 0xe0, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x41, -0x6e, 0x20, 0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x44, 0xf9, 0x62, 0x68, 0x6c, -0x61, 0x63, 0x68, 0x64, 0x3b, 0x46, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x43, 0x3b, 0xd2, 0x3b, 0x49, 0x3b, 0x4c, -0x3b, 0x53, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x44, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x46, 0x68, 0x61, 0x6f, 0x69, 0x6c, -0x6c, 0x65, 0x61, 0x63, 0x68, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x47, 0x68, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b, -0x64, 0x68, 0x65, 0x6e, 0x20, 0x4d, 0x68, 0xe0, 0x72, 0x74, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x47, 0x68, 0x69, 0x62, -0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x43, 0x68, 0xe8, 0x69, 0x74, 0x65, 0x61, 0x6e, 0x3b, 0x64, -0x68, 0x65, 0x6e, 0x20, 0xd2, 0x67, 0x6d, 0x68, 0x69, 0x6f, 0x73, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x75, 0x63, -0x68, 0x61, 0x72, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x4c, 0xf9, 0x6e, 0x61, 0x73, 0x74, 0x61, 0x6c, 0x3b, 0x64, 0x68, -0x65, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x75, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x44, 0xe0, -0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, -0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x44, 0xf9, 0x62, 0x68, 0x6c, 0x61, 0x63, 0x68, 0x64, 0x3b, 0x58, 0x61, 0x6e, 0x2e, -0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x6f, -0x3b, 0x58, 0x75, 0xf1, 0x6f, 0x3b, 0x58, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x67, 0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x74, 0x2e, -0x3b, 0x4f, 0x75, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x63, 0x2e, 0x3b, 0x58, 0x61, 0x6e, 0x65, -0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, -0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x58, 0x75, 0xf1, 0x6f, 0x3b, 0x58, 0x75, 0x6c, 0x6c, 0x6f, -0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4f, 0x75, 0x74, -0x75, 0x62, 0x72, 0x6f, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, -0x72, 0x6f, 0x3b, 0x58, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x58, 0x3b, 0x41, 0x3b, 0x53, -0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x78, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, -0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x78, 0x75, 0xf1, 0x6f, 0x3b, 0x78, 0x75, 0x6c, -0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, 0x75, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, -0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x78, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, -0x69, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, -0x3b, 0x78, 0x75, 0xf1, 0x6f, 0x3b, 0x78, 0x75, 0x6c, 0x6c, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, -0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, -0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x78, 0x2e, 0x3b, 0x66, 0x2e, 0x3b, -0x6d, 0x2e, 0x3b, 0x61, 0x2e, 0x3b, 0x6d, 0x2e, 0x3b, 0x78, 0x2e, 0x3b, 0x78, 0x2e, 0x3b, 0x61, 0x2e, 0x3b, 0x73, 0x2e, -0x3b, 0x6f, 0x2e, 0x3b, 0x6e, 0x2e, 0x3b, 0x64, 0x2e, 0x3b, 0x10d8, 0x10d0, 0x10dc, 0x3b, 0x10d7, 0x10d4, 0x10d1, 0x3b, 0x10db, 0x10d0, -0x10e0, 0x3b, 0x10d0, 0x10de, 0x10e0, 0x3b, 0x10db, 0x10d0, 0x10d8, 0x3b, 0x10d8, 0x10d5, 0x10dc, 0x3b, 0x10d8, 0x10d5, 0x10da, 0x3b, 0x10d0, 0x10d2, -0x10d5, 0x3b, 0x10e1, 0x10d4, 0x10e5, 0x3b, 0x10dd, 0x10e5, 0x10e2, 0x3b, 0x10dc, 0x10dd, 0x10d4, 0x3b, 0x10d3, 0x10d4, 0x10d9, 0x3b, 0x10d8, 0x10d0, -0x10dc, 0x10d5, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x10d7, 0x10d4, 0x10d1, 0x10d4, 0x10e0, 0x10d5, 0x10d0, 0x10da, 0x10d8, 0x3b, 0x10db, 0x10d0, 0x10e0, 0x10e2, -0x10d8, 0x3b, 0x10d0, 0x10de, 0x10e0, 0x10d8, 0x10da, 0x10d8, 0x3b, 0x10db, 0x10d0, 0x10d8, 0x10e1, 0x10d8, 0x3b, 0x10d8, 0x10d5, 0x10dc, 0x10d8, 0x10e1, -0x10d8, 0x3b, 0x10d8, 0x10d5, 0x10da, 0x10d8, 0x10e1, 0x10d8, 0x3b, 0x10d0, 0x10d2, 0x10d5, 0x10d8, 0x10e1, 0x10e2, 0x10dd, 0x3b, 0x10e1, 0x10d4, 0x10e5, -0x10e2, 0x10d4, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10dd, 0x10e5, 0x10e2, 0x10dd, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10dc, 0x10dd, -0x10d4, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10d3, 0x10d4, 0x10d9, 0x10d4, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10d8, 0x3b, 0x10d7, -0x3b, 0x10db, 0x3b, 0x10d0, 0x3b, 0x10db, 0x3b, 0x10d8, 0x3b, 0x10d8, 0x3b, 0x10d0, 0x3b, 0x10e1, 0x3b, 0x10dd, 0x3b, 0x10dc, 0x3b, 0x10d3, -0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0xe4, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, -0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, -0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, -0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, -0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, -0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, -0x2e, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, -0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, -0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, 0x3b, 0x4a, 0xe4, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, -0x4d, 0xe4, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, -0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, -0x4a, 0xe4, 0x6e, 0x6e, 0x65, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, -0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, -0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, -0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x4a, 0xe4, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, -0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, -0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, -0x2e, 0x3b, 0x399, 0x3b1, 0x3bd, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3b, 0x39c, 0x3ac, 0x3c1, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3b, 0x39c, 0x3ac, -0x3b9, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bd, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bb, 0x3b, 0x391, 0x3cd, 0x3b3, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3b, -0x39f, 0x3ba, 0x3c4, 0x3b, 0x39d, 0x3bf, 0x3ad, 0x3b, 0x394, 0x3b5, 0x3ba, 0x3b, 0x399, 0x3b1, 0x3bd, 0x3bf, 0x3c5, 0x3ac, 0x3c1, 0x3b9, -0x3bf, 0x3c2, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3c1, 0x3bf, 0x3c5, 0x3ac, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39c, 0x3ac, 0x3c1, 0x3c4, 0x3b9, -0x3bf, 0x3c2, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3af, 0x3bb, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39c, 0x3ac, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x399, 0x3bf, -0x3cd, 0x3bd, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bb, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x391, 0x3cd, 0x3b3, 0x3bf, 0x3c5, 0x3c3, -0x3c4, 0x3bf, 0x3c2, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3c4, 0x3ad, 0x3bc, 0x3b2, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39f, 0x3ba, 0x3c4, 0x3ce, -0x3b2, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39d, 0x3bf, 0x3ad, 0x3bc, 0x3b2, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x394, 0x3b5, 0x3ba, 0x3ad, -0x3bc, 0x3b2, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x399, 0x3b, 0x3a6, 0x3b, 0x39c, 0x3b, 0x391, 0x3b, 0x39c, 0x3b, 0x399, 0x3b, 0x399, -0x3b, 0x391, 0x3b, 0x3a3, 0x3b, 0x39f, 0x3b, 0x39d, 0x3b, 0x394, 0x3b, 0x399, 0x3b1, 0x3bd, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3b, 0x39c, -0x3b1, 0x3c1, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3b, 0x39c, 0x3b1, 0x390, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bd, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bb, -0x3b, 0x391, 0x3c5, 0x3b3, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3b, 0x39f, 0x3ba, 0x3c4, 0x3b, 0x39d, 0x3bf, 0x3b5, 0x3b, 0x394, 0x3b5, 0x3ba, -0x3b, 0x399, 0x3b1, 0x3bd, 0x3bf, 0x3c5, 0x3b1, 0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3c1, 0x3bf, 0x3c5, 0x3b1, 0x3c1, -0x3af, 0x3bf, 0x3c5, 0x3b, 0x39c, 0x3b1, 0x3c1, 0x3c4, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3b9, 0x3bb, 0x3af, 0x3bf, 0x3c5, -0x3b, 0x39c, 0x3b1, 0x390, 0x3bf, 0x3c5, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bd, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bb, 0x3af, -0x3bf, 0x3c5, 0x3b, 0x391, 0x3c5, 0x3b3, 0x3bf, 0x3cd, 0x3c3, 0x3c4, 0x3bf, 0x3c5, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3c4, 0x3b5, 0x3bc, 0x3b2, -0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x39f, 0x3ba, 0x3c4, 0x3c9, 0x3b2, 0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x39d, 0x3bf, 0x3b5, 0x3bc, 0x3b2, -0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x394, 0x3b5, 0x3ba, 0x3b5, 0x3bc, 0x3b2, 0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, -0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, -0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, -0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, -0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x69, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x3b, 0x6d, 0x61, 0x6a, 0x69, 0x3b, -0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x69, 0x3b, -0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x69, 0x3b, -0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, -0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0x3b, 0xaab, 0xac7, 0xaac, 0xacd, 0xab0, 0xac1, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, -0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, 0xa88, 0x3b, -0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb, 0x3b, 0xaa8, 0xab5, -0xac7, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaab, 0xac7, 0xaac, -0xacd, 0xab0, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, -0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8, -0xaaa, 0xacd, 0xa9f, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb, 0xaac, 0xab0, 0x3b, 0xaa8, 0xab5, 0xac7, -0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa9c, 0xabe, 0x3b, 0xaab, 0xac7, 0x3b, -0xaae, 0xabe, 0x3b, 0xa8f, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0x3b, 0xa9c, 0xac1, 0x3b, 0xa91, 0x3b, 0xab8, 0x3b, 0xa91, 0x3b, -0xaa8, 0x3b, 0xaa1, 0xabf, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x61, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x66, 0x69, -0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x61, 0x74, -0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x75, 0x77, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x61, 0x69, 0x72, 0x75, -0x3b, 0x46, 0x61, 0x62, 0x75, 0x72, 0x61, 0x69, 0x72, 0x75, 0x3b, 0x4d, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x41, 0x66, 0x69, -0x72, 0x69, 0x6c, 0x75, 0x3b, 0x4d, 0x61, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x69, 0x3b, 0x59, 0x75, 0x6c, 0x69, 0x3b, -0x41, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x53, 0x61, 0x74, 0x75, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, -0x61, 0x3b, 0x4e, 0x75, 0x77, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, -0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, -0x44, 0x3b, 0x5d9, 0x5e0, 0x5d5, 0x5f3, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x5f3, 0x3b, 0x5de, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x5f3, -0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x5f3, 0x3b, -0x5e1, 0x5e4, 0x5d8, 0x5f3, 0x3b, 0x5d0, 0x5d5, 0x5e7, 0x5f3, 0x3b, 0x5e0, 0x5d5, 0x5d1, 0x5f3, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5f3, 0x3b, -0x5d9, 0x5e0, 0x5d5, 0x5d0, 0x5e8, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x5d5, 0x5d0, 0x5e8, 0x3b, 0x5de, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, -0x5d9, 0x5dc, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d2, -0x5d5, 0x5e1, 0x5d8, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d0, 0x5d5, 0x5e7, 0x5d8, 0x5d5, 0x5d1, 0x5e8, 0x3b, 0x5e0, -0x5d5, 0x5d1, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x91c, 0x928, 0x970, 0x3b, 0x92b, 0x93c, 0x930, 0x970, -0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x948, 0x932, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, -0x3b, 0x91c, 0x941, 0x932, 0x970, 0x3b, 0x905, 0x917, 0x970, 0x3b, 0x938, 0x93f, 0x924, 0x970, 0x3b, 0x905, 0x915, 0x94d, 0x924, 0x942, -0x970, 0x3b, 0x928, 0x935, 0x970, 0x3b, 0x926, 0x93f, 0x938, 0x970, 0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x93c, 0x930, -0x935, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x948, 0x932, 0x3b, 0x92e, 0x908, 0x3b, -0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x924, 0x3b, 0x938, 0x93f, 0x924, 0x902, -0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x924, 0x942, 0x92c, 0x930, 0x3b, 0x928, 0x935, 0x902, 0x92c, 0x930, 0x3b, 0x926, 0x93f, 0x938, -0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x3b, 0x92b, 0x93c, 0x3b, 0x92e, 0x93e, 0x3b, 0x905, 0x3b, 0x92e, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, -0x941, 0x3b, 0x905, 0x3b, 0x938, 0x93f, 0x3b, 0x905, 0x3b, 0x928, 0x3b, 0x926, 0x93f, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, -0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x2e, 0x3b, 0xe1, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x6a, 0x2e, -0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, 0xfa, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x7a, 0x65, 0x70, -0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, -0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x69, 0x75, 0x73, -0x3b, 0xe1, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x73, 0x3b, 0x6d, 0xe1, 0x6a, 0x75, 0x73, 0x3b, 0x6a, 0xfa, 0x6e, 0x69, 0x75, -0x73, 0x3b, 0x6a, 0xfa, 0x6c, 0x69, 0x75, 0x73, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x7a, 0x74, 0x75, 0x73, 0x3b, 0x73, -0x7a, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, -0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, -0x4d, 0x3b, 0xc1, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x7a, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, -0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, -0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, 0xfa, 0x6c, 0x2e, 0x3b, 0xe1, 0x67, 0xfa, 0x2e, 0x3b, -0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0xf3, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, -0x6a, 0x61, 0x6e, 0xfa, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0xfa, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, -0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, 0xfa, 0x6e, 0xed, 0x3b, 0x6a, 0xfa, 0x6c, 0xed, 0x3b, -0xe1, 0x67, 0xfa, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, -0x62, 0x65, 0x72, 0x3b, 0x6e, 0xf3, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, -0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0xc1, 0x3b, 0x53, 0x3b, -0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, -0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x65, -0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, -0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x72, 0x65, 0x74, 0x3b, 0x41, 0x70, 0x72, -0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x67, 0x75, -0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, -0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, -0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, -0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x63, 0x74, -0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x66, 0x65, -0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, -0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x75, -0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, -0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, -0x65, 0x3b, 0x6a, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x6a, 0x3b, 0x61, 0x3b, 0x73, 0x3b, -0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x45, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x61, 0x62, 0x68, 0x3b, 0x4d, 0xe1, 0x72, 0x74, -0x61, 0x3b, 0x41, 0x69, 0x62, 0x3b, 0x42, 0x65, 0x61, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x74, 0x68, 0x3b, 0x49, 0xfa, 0x69, -0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x3b, 0x4d, 0x46, 0xf3, 0x6d, 0x68, 0x3b, 0x44, 0x46, 0xf3, 0x6d, 0x68, 0x3b, 0x53, 0x61, -0x6d, 0x68, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x3b, 0x45, 0x61, 0x6e, 0xe1, 0x69, 0x72, 0x3b, 0x46, 0x65, 0x61, 0x62, 0x68, -0x72, 0x61, 0x3b, 0x4d, 0xe1, 0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, 0x62, 0x72, 0x65, 0xe1, 0x6e, 0x3b, 0x42, 0x65, 0x61, -0x6c, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x74, 0x68, 0x65, 0x61, 0x6d, 0x68, 0x3b, 0x49, 0xfa, 0x69, -0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x61, 0x73, 0x61, 0x3b, 0x4d, 0x65, 0xe1, 0x6e, 0x20, 0x46, 0xf3, 0x6d, 0x68, 0x61, 0x69, -0x72, 0x3b, 0x44, 0x65, 0x69, 0x72, 0x65, 0x61, 0x64, 0x68, 0x20, 0x46, 0xf3, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x53, -0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x61, 0x69, 0x67, 0x3b, 0x45, 0x3b, 0x46, 0x3b, 0x4d, -0x3b, 0x41, 0x3b, 0x42, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x67, -0x65, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x67, 0x3b, 0x67, -0x69, 0x75, 0x3b, 0x6c, 0x75, 0x67, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x74, 0x74, 0x3b, 0x6e, -0x6f, 0x76, 0x3b, 0x64, 0x69, 0x63, 0x3b, 0x67, 0x65, 0x6e, 0x6e, 0x61, 0x69, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x62, 0x72, -0x61, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x65, 0x3b, 0x6d, 0x61, 0x67, -0x67, 0x69, 0x6f, 0x3b, 0x67, 0x69, 0x75, 0x67, 0x6e, 0x6f, 0x3b, 0x6c, 0x75, 0x67, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, -0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x74, 0x74, 0x6f, 0x62, -0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, -0x3b, 0x47, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, -0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, -0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, -0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0xc9c, 0xca8, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, -0xcb0, 0x3b, 0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, -0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0x3b, 0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0x3b, 0xc85, -0xc95, 0xccd, 0xc9f, 0xccb, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0x3b, 0xc9c, 0xca8, 0xcb5, 0xcb0, -0xcbf, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, -0xccd, 0xcb0, 0xcbf, 0xcb2, 0xccd, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, -0xc97, 0xcb8, 0xccd, 0xc9f, 0xccd, 0x3b, 0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc85, 0xc95, 0xccd, -0xc9f, 0xccb, 0xcac, 0xcb0, 0xccd, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0xcac, -0xcb0, 0xccd, 0x3b, 0xc9c, 0x3b, 0xcab, 0xcc6, 0x3b, 0xcae, 0xcbe, 0x3b, 0xc8f, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0x3b, 0xc9c, -0xcc1, 0x3b, 0xc86, 0x3b, 0xcb8, 0xcc6, 0x3b, 0xc85, 0x3b, 0xca8, 0x3b, 0xca1, 0xcbf, 0x3b, 0xc9c, 0xca8, 0xcb5, 0xcb0, 0xcbf, 0x3b, -0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd, 0xcb0, -0xcbf, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0x3b, 0xcb8, 0xcc6, -0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0x3b, 0xca1, 0xcbf, 0xcb8, -0xcc6, 0xc82, 0x3b, 0x62c, 0x646, 0x624, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x624, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x655, 0x686, -0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x654, 0x3b, 0x62c, 0x648, 0x657, 0x646, 0x3b, 0x62c, 0x648, 0x657, 0x644, -0x627, 0x6cc, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x657, -0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, -0x3b, 0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x49b, -0x430, 0x4a3, 0x2e, 0x3b, 0x430, 0x49b, 0x43f, 0x2e, 0x3b, 0x43d, 0x430, 0x443, 0x2e, 0x3b, 0x441, 0x4d9, 0x443, 0x2e, 0x3b, 0x43c, -0x430, 0x43c, 0x2e, 0x3b, 0x43c, 0x430, 0x443, 0x2e, 0x3b, 0x448, 0x456, 0x43b, 0x2e, 0x3b, 0x442, 0x430, 0x43c, 0x2e, 0x3b, 0x49b, -0x44b, 0x440, 0x2e, 0x3b, 0x49b, 0x430, 0x437, 0x2e, 0x3b, 0x49b, 0x430, 0x440, 0x2e, 0x3b, 0x436, 0x435, 0x43b, 0x2e, 0x3b, 0x49a, -0x430, 0x4a3, 0x442, 0x430, 0x440, 0x3b, 0x410, 0x49b, 0x43f, 0x430, 0x43d, 0x3b, 0x41d, 0x430, 0x443, 0x440, 0x44b, 0x437, 0x3b, 0x421, -0x4d9, 0x443, 0x456, 0x440, 0x3b, 0x41c, 0x430, 0x43c, 0x44b, 0x440, 0x3b, 0x41c, 0x430, 0x443, 0x441, 0x44b, 0x43c, 0x3b, 0x428, 0x456, -0x43b, 0x434, 0x435, 0x3b, 0x422, 0x430, 0x43c, 0x44b, 0x437, 0x3b, 0x49a, 0x44b, 0x440, 0x43a, 0x4af, 0x439, 0x435, 0x43a, 0x3b, 0x49a, -0x430, 0x437, 0x430, 0x43d, 0x3b, 0x49a, 0x430, 0x440, 0x430, 0x448, 0x430, 0x3b, 0x416, 0x435, 0x43b, 0x442, 0x43e, 0x49b, 0x441, 0x430, -0x43d, 0x3b, 0x49a, 0x3b, 0x410, 0x3b, 0x41d, 0x3b, 0x421, 0x3b, 0x41c, 0x3b, 0x41c, 0x3b, 0x428, 0x3b, 0x422, 0x3b, 0x49a, 0x3b, -0x49a, 0x3b, 0x49a, 0x3b, 0x416, 0x3b, 0x49b, 0x430, 0x4a3, 0x442, 0x430, 0x440, 0x3b, 0x430, 0x49b, 0x43f, 0x430, 0x43d, 0x3b, 0x43d, -0x430, 0x443, 0x440, 0x44b, 0x437, 0x3b, 0x441, 0x4d9, 0x443, 0x456, 0x440, 0x3b, 0x43c, 0x430, 0x43c, 0x44b, 0x440, 0x3b, 0x43c, 0x430, -0x443, 0x441, 0x44b, 0x43c, 0x3b, 0x448, 0x456, 0x43b, 0x434, 0x435, 0x3b, 0x442, 0x430, 0x43c, 0x44b, 0x437, 0x3b, 0x49b, 0x44b, 0x440, -0x43a, 0x4af, 0x439, 0x435, 0x43a, 0x3b, 0x49b, 0x430, 0x437, 0x430, 0x43d, 0x3b, 0x49b, 0x430, 0x440, 0x430, 0x448, 0x430, 0x3b, 0x436, -0x435, 0x43b, 0x442, 0x43e, 0x49b, 0x441, 0x430, 0x43d, 0x3b, 0x6d, 0x75, 0x74, 0x2e, 0x3b, 0x67, 0x61, 0x73, 0x2e, 0x3b, 0x77, -0x65, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x74, 0x2e, 0x3b, 0x67, 0x69, 0x63, 0x2e, 0x3b, 0x6b, 0x61, 0x6d, 0x2e, 0x3b, 0x6e, -0x79, 0x61, 0x2e, 0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x6e, 0x7a, 0x65, 0x2e, 0x3b, 0x75, 0x6b, 0x77, 0x2e, 0x3b, 0x75, -0x67, 0x75, 0x2e, 0x3b, 0x75, 0x6b, 0x75, 0x2e, 0x3b, 0x4d, 0x75, 0x74, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0x47, 0x61, -0x73, 0x68, 0x79, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x3b, 0x57, 0x65, 0x72, 0x75, 0x72, 0x77, 0x65, 0x3b, 0x4d, 0x61, -0x74, 0x61, 0x3b, 0x47, 0x69, 0x63, 0x75, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x3b, 0x4b, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x3b, -0x4e, 0x79, 0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x4b, 0x61, 0x6e, 0x61, 0x6d, 0x61, 0x3b, 0x4e, 0x7a, 0x65, 0x6c, -0x69, 0x3b, 0x55, 0x6b, 0x77, 0x61, 0x6b, 0x69, 0x72, 0x61, 0x3b, 0x55, 0x67, 0x75, 0x73, 0x68, 0x79, 0x69, 0x6e, 0x67, -0x6f, 0x3b, 0x55, 0x6b, 0x75, 0x62, 0x6f, 0x7a, 0x61, 0x3b, 0x42f, 0x43d, 0x432, 0x3b, 0x424, 0x435, 0x432, 0x3b, 0x41c, 0x430, -0x440, 0x3b, 0x410, 0x43f, 0x440, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x3b, 0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, -0x433, 0x3b, 0x421, 0x435, 0x43d, 0x3b, 0x41e, 0x43a, 0x442, 0x3b, 0x41d, 0x43e, 0x44f, 0x3b, 0x414, 0x435, 0x43a, 0x3b, 0x42f, 0x43d, -0x432, 0x430, 0x440, 0x44c, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, -0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, -0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, -0x440, 0x44c, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x42f, 0x3b, -0x424, 0x3b, 0x41c, 0x3b, 0x410, 0x3b, 0x41c, 0x3b, 0x418, 0x3b, 0x418, 0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x41e, 0x3b, 0x41d, 0x3b, -0x414, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, -0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x2e, 0x3b, 0x438, 0x44e, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, -0x3b, 0x441, 0x435, 0x43d, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, -0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x440, 0x442, -0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, -0x44c, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43e, 0x43a, -0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, -0x3b, 0x31, 0xc6d4, 0x3b, 0x32, 0xc6d4, 0x3b, 0x33, 0xc6d4, 0x3b, 0x34, 0xc6d4, 0x3b, 0x35, 0xc6d4, 0x3b, 0x36, 0xc6d4, 0x3b, 0x37, -0xc6d4, 0x3b, 0x38, 0xc6d4, 0x3b, 0x39, 0xc6d4, 0x3b, 0x31, 0x30, 0xc6d4, 0x3b, 0x31, 0x31, 0xc6d4, 0x3b, 0x31, 0x32, 0xc6d4, 0x3b, -0x72, 0xea, 0x62, 0x3b, 0x72, 0x65, 0x15f, 0x3b, 0x61, 0x64, 0x61, 0x3b, 0x61, 0x76, 0x72, 0x3b, 0x67, 0x75, 0x6c, 0x3b, -0x70, 0xfb, 0x15f, 0x3b, 0x74, 0xee, 0x72, 0x3b, 0x67, 0x65, 0x6c, 0x3b, 0x72, 0x65, 0x7a, 0x3b, 0x6b, 0x65, 0x77, 0x3b, -0x73, 0x65, 0x72, 0x3b, 0x62, 0x65, 0x72, 0x3b, 0x72, 0xea, 0x62, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0x3b, 0x72, 0x65, 0x15f, -0x65, 0x6d, 0xee, 0x3b, 0x61, 0x64, 0x61, 0x72, 0x3b, 0x61, 0x76, 0x72, 0xea, 0x6c, 0x3b, 0x67, 0x75, 0x6c, 0x61, 0x6e, -0x3b, 0x70, 0xfb, 0x15f, 0x70, 0x65, 0x72, 0x3b, 0x74, 0xee, 0x72, 0x6d, 0x65, 0x68, 0x3b, 0x67, 0x65, 0x6c, 0x61, 0x77, -0xea, 0x6a, 0x3b, 0x72, 0x65, 0x7a, 0x62, 0x65, 0x72, 0x3b, 0x6b, 0x65, 0x77, 0xe7, 0xea, 0x72, 0x3b, 0x73, 0x65, 0x72, -0x6d, 0x61, 0x77, 0x65, 0x7a, 0x3b, 0x62, 0x65, 0x72, 0x66, 0x61, 0x6e, 0x62, 0x61, 0x72, 0x3b, 0x52, 0x3b, 0x52, 0x3b, -0x41, 0x3b, 0x41, 0x3b, 0x47, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x47, 0x3b, 0x52, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x42, 0x3b, -0x72, 0xea, 0x62, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0xea, 0x3b, 0x72, 0x65, 0x15f, 0x65, 0x6d, 0x69, 0x79, 0xea, 0x3b, 0x61, -0x64, 0x61, 0x72, 0xea, 0x3b, 0x61, 0x76, 0x72, 0xea, 0x6c, 0xea, 0x3b, 0x67, 0x75, 0x6c, 0x61, 0x6e, 0xea, 0x3b, 0x70, -0xfb, 0x15f, 0x70, 0x65, 0x72, 0xea, 0x3b, 0x74, 0xee, 0x72, 0x6d, 0x65, 0x68, 0xea, 0x3b, 0x67, 0x65, 0x6c, 0x61, 0x77, -0xea, 0x6a, 0xea, 0x3b, 0x72, 0x65, 0x7a, 0x62, 0x65, 0x72, 0xea, 0x3b, 0x6b, 0x65, 0x77, 0xe7, 0xea, 0x72, 0xea, 0x3b, -0x73, 0x65, 0x72, 0x6d, 0x61, 0x77, 0x65, 0x7a, 0xea, 0x3b, 0x62, 0x65, 0x72, 0x66, 0x61, 0x6e, 0x62, 0x61, 0x72, 0xea, -0x3b, 0x4d, 0x75, 0x74, 0x2e, 0x3b, 0x47, 0x61, 0x73, 0x2e, 0x3b, 0x57, 0x65, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x74, 0x2e, -0x3b, 0x47, 0x69, 0x63, 0x2e, 0x3b, 0x4b, 0x61, 0x6d, 0x2e, 0x3b, 0x4e, 0x79, 0x61, 0x2e, 0x3b, 0x4b, 0x61, 0x6e, 0x2e, -0x3b, 0x4e, 0x7a, 0x65, 0x2e, 0x3b, 0x55, 0x6b, 0x77, 0x2e, 0x3b, 0x55, 0x67, 0x75, 0x2e, 0x3b, 0x55, 0x6b, 0x75, 0x2e, -0x3b, 0x4e, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x52, 0x75, 0x68, 0x75, 0x68, 0x75, 0x6d, 0x61, 0x3b, 0x4e, 0x74, 0x77, 0x61, -0x72, 0x61, 0x6e, 0x74, 0x65, 0x3b, 0x4e, 0x64, 0x61, 0x6d, 0x75, 0x6b, 0x69, 0x7a, 0x61, 0x3b, 0x52, 0x75, 0x73, 0x61, -0x6d, 0x61, 0x3b, 0x52, 0x75, 0x68, 0x65, 0x73, 0x68, 0x69, 0x3b, 0x4d, 0x75, 0x6b, 0x61, 0x6b, 0x61, 0x72, 0x6f, 0x3b, -0x4e, 0x79, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x61, 0x72, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, -0x47, 0x69, 0x74, 0x75, 0x67, 0x75, 0x74, 0x75, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x6f, 0x6e, 0x79, 0x6f, 0x3b, 0x4b, 0x69, -0x67, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0xea1, 0x2e, 0xe81, 0x2e, 0x3b, 0xe81, 0x2e, 0xe9e, 0x2e, 0x3b, 0xea1, 0x2e, 0xe99, -0x2e, 0x3b, 0xea1, 0x2e, 0xeaa, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe9e, 0x2e, 0x3b, 0xea1, 0xeb4, 0x2e, 0xe96, 0x2e, 0x3b, 0xe81, 0x2e, -0xea5, 0x2e, 0x3b, 0xeaa, 0x2e, 0xeab, 0x2e, 0x3b, 0xe81, 0x2e, 0xe8d, 0x2e, 0x3b, 0xe95, 0x2e, 0xea5, 0x2e, 0x3b, 0xe9e, 0x2e, -0xe88, 0x2e, 0x3b, 0xe97, 0x2e, 0xea7, 0x2e, 0x3b, 0xea1, 0xeb1, 0xe87, 0xe81, 0xead, 0xe99, 0x3b, 0xe81, 0xeb8, 0xea1, 0xe9e, 0xeb2, -0x3b, 0xea1, 0xeb5, 0xe99, 0xeb2, 0x3b, 0xec0, 0xea1, 0xeaa, 0xeb2, 0x3b, 0xe9e, 0xeb6, 0xe94, 0xeaa, 0xeb0, 0xe9e, 0xeb2, 0x3b, 0xea1, -0xeb4, 0xe96, 0xeb8, 0xe99, 0xeb2, 0x3b, 0xe81, 0xecd, 0xea5, 0xeb0, 0xe81, 0xebb, 0xe94, 0x3b, 0xeaa, 0xeb4, 0xe87, 0xeab, 0xeb2, 0x3b, -0xe81, 0xeb1, 0xe99, 0xe8d, 0xeb2, 0x3b, 0xe95, 0xeb8, 0xea5, 0xeb2, 0x3b, 0xe9e, 0xeb0, 0xe88, 0xeb4, 0xe81, 0x3b, 0xe97, 0xeb1, 0xe99, -0xea7, 0xeb2, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, -0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x2e, 0x3b, 0x6a, 0x16b, 0x6c, -0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, -0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x66, 0x65, 0x62, -0x72, 0x75, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x12b, 0x6c, 0x69, 0x73, -0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6c, 0x69, 0x6a, 0x73, -0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x73, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, -0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x64, -0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x62, 0x6c, 0x3b, 0x6d, 0x73, 0x69, -0x3b, 0x61, 0x70, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x74, -0x3b, 0x73, 0x74, 0x62, 0x3b, 0x254, 0x74, 0x62, 0x3b, 0x6e, 0x76, 0x62, 0x3b, 0x64, 0x73, 0x62, 0x3b, 0x73, 0xe1, 0x6e, -0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x79, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, -0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x73, -0xe1, 0x74, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x6e, 0x65, 0x69, 0x3b, 0x73, -0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x74, 0xe1, 0x6e, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, -0x20, 0x79, 0x61, 0x20, 0x6d, 0x6f, 0x74, 0xf3, 0x62, 0xe1, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, -0x6e, 0x73, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x77, 0x61, 0x6d, -0x62, 0x65, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6c, 0x69, 0x62, 0x77, 0x61, 0x3b, 0x73, 0xe1, -0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, -0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x254, 0x30c, 0x6b, 0x254, 0x301, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, -0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, -0x79, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x79, 0x3b, 0x79, 0x3b, 0x61, 0x3b, 0x73, 0x3b, 0x254, 0x3b, -0x6e, 0x3b, 0x64, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x2e, 0x3b, 0x76, 0x61, 0x73, 0x2e, 0x3b, 0x6b, 0x6f, 0x76, 0x2e, 0x3b, -0x62, 0x61, 0x6c, 0x2e, 0x3b, 0x67, 0x65, 0x67, 0x2e, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x2e, 0x3b, 0x6c, 0x69, 0x65, 0x70, -0x2e, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67, 0x73, 0x2e, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x2e, 0x3b, -0x6c, 0x61, 0x70, 0x6b, 0x72, 0x2e, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x2e, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x69, 0x73, -0x3b, 0x76, 0x61, 0x73, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x6b, 0x6f, 0x76, 0x61, 0x73, 0x3b, 0x62, 0x61, 0x6c, 0x61, 0x6e, -0x64, 0x69, 0x73, 0x3b, 0x67, 0x65, 0x67, 0x75, 0x17e, 0x117, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c, 0x69, 0x73, 0x3b, -0x6c, 0x69, 0x65, 0x70, 0x61, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x6a, 0x16b, 0x74, 0x69, 0x73, 0x3b, 0x72, 0x75, 0x67, 0x73, -0x117, 0x6a, 0x69, 0x73, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x69, 0x73, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x69, 0x74, 0x69, -0x73, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x69, 0x73, 0x3b, 0x53, 0x3b, 0x56, 0x3b, 0x4b, 0x3b, 0x42, 0x3b, 0x47, 0x3b, -0x42, 0x3b, 0x4c, 0x3b, 0x52, 0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x47, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x69, 0x6f, -0x3b, 0x76, 0x61, 0x73, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x6b, 0x6f, 0x76, 0x6f, 0x3b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x64, -0x17e, 0x69, 0x6f, 0x3b, 0x67, 0x65, 0x67, 0x75, 0x17e, 0x117, 0x73, 0x3b, 0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c, 0x69, 0x6f, -0x3b, 0x6c, 0x69, 0x65, 0x70, 0x6f, 0x73, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x6a, 0x16b, 0x10d, 0x69, 0x6f, 0x3b, 0x72, 0x75, -0x67, 0x73, 0x117, 0x6a, 0x6f, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x69, 0x6f, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x69, 0x10d, -0x69, 0x6f, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x17e, 0x69, 0x6f, 0x3b, 0x458, 0x430, 0x43d, 0x2e, 0x3b, 0x444, 0x435, 0x432, -0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x2e, -0x3b, 0x458, 0x443, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, -0x2e, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x438, -0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, -0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, -0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432, 0x440, 0x438, -0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x458, 0x3b, -0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x458, 0x3b, 0x458, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b, 0x43d, 0x3b, -0x434, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, -0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x3b, 0x4a, 0x6f, 0x6c, 0x3b, 0x41, 0x6f, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, -0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6f, 0x61, 0x72, 0x79, 0x3b, 0x46, 0x65, -0x62, 0x72, 0x6f, 0x61, 0x72, 0x79, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x73, 0x61, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x79, -0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x61, 0x3b, 0x4a, 0x6f, 0x6c, 0x61, 0x79, 0x3b, 0x41, 0x6f, 0x67, 0x6f, -0x73, 0x69, 0x74, 0x72, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, -0x62, 0x72, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x61, 0x6d, 0x62, 0x72, -0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, -0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, -0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, -0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, -0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x4f, 0x67, 0x6f, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, -0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, -0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0xd1c, 0xd28, 0xd41, 0x3b, -0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0x3b, 0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd47, 0xd2f, -0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0xd32, 0xd48, 0x3b, 0xd13, 0xd17, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31, 0xd4d, -0xd31, 0xd02, 0x3b, 0xd12, 0xd15, 0xd4d, 0xd1f, 0xd4b, 0x3b, 0xd28, 0xd35, 0xd02, 0x3b, 0xd21, 0xd3f, 0xd38, 0xd02, 0x3b, 0xd1c, 0xd28, -0xd41, 0xd35, 0xd30, 0xd3f, 0x3b, 0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, 0xd35, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0xd1a, 0xd4d, -0xd1a, 0xd4d, 0x3b, 0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0xd7d, 0x3b, 0xd2e, 0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, -0xd42, 0xd32, 0xd48, 0x3b, 0xd13, 0xd17, 0xd38, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd4d, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31, 0xd4d, 0xd31, -0xd02, 0xd2c, 0xd7c, 0x3b, 0xd12, 0xd15, 0xd4d, 0x200c, 0xd1f, 0xd4b, 0xd2c, 0xd7c, 0x3b, 0xd28, 0xd35, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd21, -0xd3f, 0xd38, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd1c, 0x3b, 0xd2b, 0xd46, 0x3b, 0xd2e, 0xd3e, 0x3b, 0xd0f, 0x3b, 0xd2e, 0xd46, 0x3b, 0xd1c, -0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0x3b, 0xd13, 0x3b, 0xd38, 0xd46, 0x3b, 0xd12, 0x3b, 0xd28, 0x3b, 0xd21, 0xd3f, 0x3b, 0x4a, 0x61, -0x6e, 0x3b, 0x46, 0x72, 0x61, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x6a, 0x3b, 0x120, 0x75, -0x6e, 0x3b, 0x4c, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x77, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x74, 0x3b, 0x4e, 0x6f, -0x76, 0x3b, 0x44, 0x69, 0x10b, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x61, 0x72, 0x3b, 0x46, 0x72, 0x61, 0x72, 0x3b, 0x4d, 0x61, -0x72, 0x7a, 0x75, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x6a, 0x6a, 0x75, 0x3b, 0x120, 0x75, 0x6e, 0x6a, -0x75, 0x3b, 0x4c, 0x75, 0x6c, 0x6a, 0x75, 0x3b, 0x41, 0x77, 0x77, 0x69, 0x73, 0x73, 0x75, 0x3b, 0x53, 0x65, 0x74, 0x74, -0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x4f, 0x74, 0x74, 0x75, 0x62, 0x72, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, -0x72, 0x75, 0x3b, 0x44, 0x69, 0x10b, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x4a, 0x6e, 0x3b, 0x46, 0x72, 0x3b, 0x4d, 0x7a, -0x3b, 0x41, 0x70, 0x3b, 0x4d, 0x6a, 0x3b, 0x120, 0x6e, 0x3b, 0x4c, 0x6a, 0x3b, 0x41, 0x77, 0x3b, 0x53, 0x74, 0x3b, 0x4f, -0x62, 0x3b, 0x4e, 0x76, 0x3b, 0x44, 0x10b, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x120, 0x3b, -0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4b, 0x6f, 0x68, 0x69, 0x3b, 0x48, 0x75, 0x69, -0x3b, 0x50, 0x6f, 0x75, 0x3b, 0x50, 0x61, 0x65, 0x3b, 0x48, 0x61, 0x72, 0x61, 0x3b, 0x50, 0x69, 0x70, 0x69, 0x3b, 0x48, -0x14d, 0x6e, 0x67, 0x6f, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x4d, 0x61, 0x68, 0x75, 0x3b, 0x4e, 0x75, 0x6b, 0x75, 0x3b, -0x52, 0x61, 0x6e, 0x67, 0x69, 0x3b, 0x48, 0x61, 0x6b, 0x69, 0x3b, 0x4b, 0x6f, 0x68, 0x69, 0x74, 0x101, 0x74, 0x65, 0x61, -0x3b, 0x48, 0x75, 0x69, 0x74, 0x61, 0x6e, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x50, 0x6f, 0x75, 0x74, 0x16b, 0x74, 0x65, 0x72, -0x61, 0x6e, 0x67, 0x69, 0x3b, 0x50, 0x61, 0x65, 0x6e, 0x67, 0x61, 0x77, 0x68, 0x101, 0x77, 0x68, 0x101, 0x3b, 0x48, 0x61, -0x72, 0x61, 0x74, 0x75, 0x61, 0x3b, 0x50, 0x69, 0x70, 0x69, 0x72, 0x69, 0x3b, 0x48, 0x14d, 0x6e, 0x67, 0x6f, 0x6e, 0x67, -0x6f, 0x69, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x74, 0x75, 0x72, 0x69, 0x6b, 0x14d, 0x6b, 0x101, 0x3b, 0x4d, 0x61, 0x68, 0x75, -0x72, 0x75, 0x3b, 0x57, 0x68, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x2d, 0x101, 0x2d, 0x6e, 0x75, 0x6b, 0x75, 0x3b, 0x57, -0x68, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x2d, 0x101, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x69, 0x3b, 0x48, 0x61, 0x6b, 0x69, -0x68, 0x65, 0x61, 0x3b, 0x4b, 0x3b, 0x48, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x48, 0x3b, 0x50, 0x3b, 0x48, 0x3b, 0x48, 0x3b, -0x4d, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x48, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x3b, -0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, -0x941, 0x932, 0x948, 0x3b, 0x911, 0x917, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x3b, -0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x935, 0x93e, -0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, -0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x911, -0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, -0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x92c, 0x930, 0x3b, -0x91c, 0x93e, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, 0x941, 0x3b, -0x911, 0x3b, 0x938, 0x3b, 0x911, 0x3b, 0x928, 0x94b, 0x3b, 0x921, 0x93f, 0x3b, 0x31, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, -0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x33, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x34, 0x2d, 0x440, 0x20, -0x441, 0x430, 0x440, 0x3b, 0x35, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x36, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, -0x37, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x38, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x39, 0x2d, 0x440, 0x20, -0x441, 0x430, 0x440, 0x3b, 0x31, 0x30, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x31, 0x2d, 0x440, 0x20, 0x441, 0x430, -0x440, 0x3b, 0x31, 0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x41d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, -0x20, 0x441, 0x430, 0x440, 0x3b, 0x425, 0x43e, 0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, -0x413, 0x443, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x414, 0x4e9, 0x440, 0x4e9, -0x432, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x422, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, -0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x417, 0x443, 0x440, 0x433, 0x430, 0x430, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, -0x430, 0x440, 0x3b, 0x414, 0x43e, 0x43b, 0x43e, 0x43e, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x41d, -0x430, 0x439, 0x43c, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x415, 0x441, 0x434, 0x4af, 0x433, 0x44d, -0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, -0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x43d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, -0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x445, 0x43e, 0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, -0x430, 0x440, 0x3b, 0x49, 0x3b, 0x49, 0x49, 0x3b, 0x49, 0x49, 0x49, 0x3b, 0x49, 0x56, 0x3b, 0x56, 0x3b, 0x56, 0x49, 0x3b, -0x56, 0x49, 0x49, 0x3b, 0x56, 0x49, 0x49, 0x49, 0x3b, 0x49, 0x58, 0x3b, 0x58, 0x3b, 0x58, 0x49, 0x3b, 0x58, 0x49, 0x49, -0x3b, 0x43d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x445, 0x43e, 0x451, 0x440, 0x434, -0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x433, 0x443, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, -0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x434, 0x4e9, 0x440, 0x4e9, 0x432, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, -0x440, 0x3b, 0x442, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x437, 0x443, 0x440, 0x433, -0x430, 0x430, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x434, 0x43e, 0x43b, 0x43e, 0x43e, 0x434, 0x443, -0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x43d, 0x430, 0x439, 0x43c, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, -0x441, 0x430, 0x440, 0x3b, 0x435, 0x441, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x430, 0x440, 0x430, -0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x430, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x43d, 0x44d, -0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x430, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x445, 0x43e, -0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, -0x947, 0x92c, 0x94d, 0x930, 0x941, 0x905, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x93f, -0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x91f, -0x3b, 0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, -0x928, 0x94b, 0x92d, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x91c, 0x928, -0x3b, 0x92b, 0x947, 0x947, 0x92c, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x3b, 0x92e, 0x947, 0x3b, -0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x3b, 0x905, 0x917, 0x3b, 0x938, 0x947, 0x92a, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, -0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x3b, 0x91c, 0x928, 0x3b, 0x92b, 0x947, 0x92c, 0x3b, 0x92e, 0x93e, -0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x3b, -0x905, 0x917, 0x3b, 0x938, 0x947, 0x92a, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x3b, 0x921, 0x93f, -0x938, 0x947, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, -0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, -0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, -0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, -0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0xb1c, 0xb3e, 0xb28, 0xb41, 0xb06, 0xb30, 0xb40, 0x3b, 0xb2b, 0xb47, 0xb2c, 0xb43, 0xb06, 0xb30, -0xb40, 0x3b, 0xb2e, 0xb3e, 0xb30, 0xb4d, 0xb1a, 0xb4d, 0xb1a, 0x3b, 0xb05, 0xb2a, 0xb4d, 0xb30, 0xb47, 0xb32, 0x3b, 0xb2e, 0xb07, 0x3b, -0xb1c, 0xb41, 0xb28, 0x3b, 0xb1c, 0xb41, 0xb32, 0xb3e, 0xb07, 0x3b, 0xb05, 0xb17, 0xb37, 0xb4d, 0xb1f, 0x3b, 0xb38, 0xb47, 0xb2a, 0xb4d, -0xb1f, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb05, 0xb15, 0xb4d, 0xb1f, 0xb4b, 0xb2c, 0xb30, 0x3b, 0xb28, 0xb2d, 0xb47, 0xb2e, 0xb4d, -0xb2c, 0xb30, 0x3b, 0xb21, 0xb3f, 0xb38, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb1c, 0xb3e, 0x3b, 0xb2b, 0xb47, 0x3b, 0xb2e, 0xb3e, -0x3b, 0xb05, 0x3b, 0xb2e, 0xb07, 0x3b, 0xb1c, 0xb41, 0x3b, 0xb1c, 0xb41, 0x3b, 0xb05, 0x3b, 0xb38, 0xb47, 0x3b, 0xb05, 0x3b, 0xb28, -0x3b, 0xb21, 0xb3f, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, -0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cd, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, -0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, -0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x6d0, -0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cd, 0x3b, -0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, -0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, -0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, -0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cd, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6af, -0x633, 0x62a, 0x3b, 0x633, 0x6d0, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, -0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x627, 0x3b, 0x645, 0x3b, -0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x698, 0x627, 0x646, 0x648, 0x6cc, 0x647, -0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x647, -0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc, 0x647, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, -0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x627, -0x645, 0x628, 0x631, 0x3b, 0x698, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x622, 0x3b, 0x645, 0x3b, 0x698, 0x3b, 0x698, 0x3b, 0x627, 0x3b, -0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x698, 0x627, 0x646, 0x648, 0x6cc, 0x647, 0x654, 0x3b, 0x641, 0x648, 0x631, 0x6cc, -0x647, 0x654, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x647, 0x654, 0x3b, 0x698, 0x648, -0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc, 0x647, 0x654, 0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, 0x645, 0x628, -0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x627, 0x645, 0x628, -0x631, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, -0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, -0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, -0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x646, 0x648, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x6cc, -0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, -0x648, 0x644, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, -0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x3b, 0x73, 0x74, 0x79, 0x3b, 0x6c, 0x75, 0x74, 0x3b, -0x6d, 0x61, 0x72, 0x3b, 0x6b, 0x77, 0x69, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x63, 0x7a, 0x65, 0x3b, 0x6c, 0x69, 0x70, 0x3b, -0x73, 0x69, 0x65, 0x3b, 0x77, 0x72, 0x7a, 0x3b, 0x70, 0x61, 0x17a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75, 0x3b, -0x73, 0x74, 0x79, 0x63, 0x7a, 0x65, 0x144, 0x3b, 0x6c, 0x75, 0x74, 0x79, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x65, 0x63, 0x3b, -0x6b, 0x77, 0x69, 0x65, 0x63, 0x69, 0x65, 0x144, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x63, 0x7a, 0x65, 0x72, 0x77, 0x69, 0x65, -0x63, 0x3b, 0x6c, 0x69, 0x70, 0x69, 0x65, 0x63, 0x3b, 0x73, 0x69, 0x65, 0x72, 0x70, 0x69, 0x65, 0x144, 0x3b, 0x77, 0x72, -0x7a, 0x65, 0x73, 0x69, 0x65, 0x144, 0x3b, 0x70, 0x61, 0x17a, 0x64, 0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x3b, 0x6c, -0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x67, 0x72, 0x75, 0x64, 0x7a, 0x69, 0x65, 0x144, 0x3b, 0x53, 0x3b, 0x4c, -0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x57, 0x3b, 0x50, 0x3b, 0x4c, 0x3b, 0x47, -0x3b, 0x73, 0x74, 0x79, 0x63, 0x7a, 0x6e, 0x69, 0x61, 0x3b, 0x6c, 0x75, 0x74, 0x65, 0x67, 0x6f, 0x3b, 0x6d, 0x61, 0x72, -0x63, 0x61, 0x3b, 0x6b, 0x77, 0x69, 0x65, 0x74, 0x6e, 0x69, 0x61, 0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x63, 0x7a, 0x65, -0x72, 0x77, 0x63, 0x61, 0x3b, 0x6c, 0x69, 0x70, 0x63, 0x61, 0x3b, 0x73, 0x69, 0x65, 0x72, 0x70, 0x6e, 0x69, 0x61, 0x3b, -0x77, 0x72, 0x7a, 0x65, 0x15b, 0x6e, 0x69, 0x61, 0x3b, 0x70, 0x61, 0x17a, 0x64, 0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, -0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61, 0x3b, 0x67, 0x72, 0x75, 0x64, 0x6e, 0x69, 0x61, 0x3b, -0x73, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x63, 0x3b, 0x6c, 0x3b, 0x73, 0x3b, 0x77, 0x3b, 0x70, 0x3b, -0x6c, 0x3b, 0x67, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x62, 0x72, 0x3b, -0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, -0x6f, 0x75, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x7a, 0x3b, 0x6a, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, -0x66, 0x65, 0x76, 0x65, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0xe7, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, -0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x68, 0x6f, 0x3b, 0x61, -0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x75, 0x74, 0x75, 0x62, -0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x64, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x72, 0x6f, -0x3b, 0xa1c, 0xa28, 0x3b, 0xa2b, 0xa3c, 0xa30, 0x3b, 0xa2e, 0xa3e, 0xa30, 0xa1a, 0x3b, 0xa05, 0xa2a, 0xa4d, 0xa30, 0xa48, 0x3b, 0xa2e, -0xa08, 0x3b, 0xa1c, 0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0x3b, 0xa05, 0xa17, 0x3b, 0xa38, 0xa24, 0xa70, 0x3b, 0xa05, 0xa15, -0xa24, 0xa42, 0x3b, 0xa28, 0xa35, 0xa70, 0x3b, 0xa26, 0xa38, 0xa70, 0x3b, 0xa1c, 0xa28, 0xa35, 0xa30, 0xa40, 0x3b, 0xa2b, 0xa3c, 0xa30, -0xa35, 0xa30, 0xa40, 0x3b, 0xa2e, 0xa3e, 0xa30, 0xa1a, 0x3b, 0xa05, 0xa2a, 0xa4d, 0xa30, 0xa48, 0xa32, 0x3b, 0xa2e, 0xa08, 0x3b, 0xa1c, -0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0xa08, 0x3b, 0xa05, 0xa17, 0xa38, 0xa24, 0x3b, 0xa38, 0xa24, 0xa70, 0xa2c, 0xa30, 0x3b, -0xa05, 0xa15, 0xa24, 0xa42, 0xa2c, 0xa30, 0x3b, 0xa28, 0xa35, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa26, 0xa38, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa1c, -0x3b, 0xa2b, 0xa3c, 0x3b, 0xa2e, 0xa3e, 0x3b, 0xa05, 0x3b, 0xa2e, 0x3b, 0xa1c, 0xa42, 0x3b, 0xa1c, 0xa41, 0x3b, 0xa05, 0x3b, 0xa38, -0x3b, 0xa05, 0x3b, 0xa28, 0x3b, 0xa26, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, -0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, -0x627, 0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, -0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x45, 0x6e, 0x65, 0x3b, 0x46, 0x65, -0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, -0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x63, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, -0x63, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, -0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x4a, -0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, -0x65, 0x3b, 0x4f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, -0x44, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x73, 0x63, 0x68, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x61, 0x76, -0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, -0x72, 0x63, 0x6c, 0x2e, 0x3b, 0x66, 0x61, 0x6e, 0x2e, 0x3b, 0x61, 0x76, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x74, -0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x73, 0x63, 0x68, -0x61, 0x6e, 0x65, 0x72, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, -0x69, 0x67, 0x6c, 0x3b, 0x6d, 0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, 0x72, 0x63, 0x6c, 0x61, 0x64, 0x75, 0x72, 0x3b, 0x66, -0x61, 0x6e, 0x61, 0x64, 0x75, 0x72, 0x3b, 0x61, 0x76, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, -0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x5a, -0x3b, 0x46, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x69, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, -0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x69, 0x75, 0x6e, -0x2e, 0x3b, 0x69, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, -0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x69, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, -0x65, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x65, 0x3b, 0x61, -0x70, 0x72, 0x69, 0x6c, 0x69, 0x65, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x69, 0x75, 0x6e, 0x69, 0x65, 0x3b, 0x69, 0x75, 0x6c, -0x69, 0x65, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, -0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x6e, 0x6f, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, -0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x49, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, -0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, -0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, -0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, -0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, -0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, -0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x2e, 0x3b, 0x438, 0x44e, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, -0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, -0x43d, 0x432, 0x430, 0x440, 0x44f, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44f, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x430, 0x3b, -0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44f, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x44f, 0x3b, 0x438, 0x44e, 0x43b, 0x44f, -0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x430, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43e, 0x43a, -0x442, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44f, -0x3b, 0x4e, 0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x3b, 0x4d, 0x62, 0xe4, 0x3b, 0x4e, 0x67, 0x75, 0x3b, 0x42, 0xea, 0x6c, -0x3b, 0x46, 0xf6, 0x6e, 0x3b, 0x4c, 0x65, 0x6e, 0x3b, 0x4b, 0xfc, 0x6b, 0x3b, 0x4d, 0x76, 0x75, 0x3b, 0x4e, 0x67, 0x62, -0x3b, 0x4e, 0x61, 0x62, 0x3b, 0x4b, 0x61, 0x6b, 0x3b, 0x4e, 0x79, 0x65, 0x6e, 0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x75, -0x6e, 0x64, 0xef, 0x67, 0x69, 0x3b, 0x4d, 0x62, 0xe4, 0x6e, 0x67, 0xfc, 0x3b, 0x4e, 0x67, 0x75, 0x62, 0xf9, 0x65, 0x3b, -0x42, 0xea, 0x6c, 0xe4, 0x77, 0xfc, 0x3b, 0x46, 0xf6, 0x6e, 0x64, 0x6f, 0x3b, 0x4c, 0x65, 0x6e, 0x67, 0x75, 0x61, 0x3b, -0x4b, 0xfc, 0x6b, 0xfc, 0x72, 0xfc, 0x3b, 0x4d, 0x76, 0x75, 0x6b, 0x61, 0x3b, 0x4e, 0x67, 0x62, 0x65, 0x72, 0x65, 0x72, -0x65, 0x3b, 0x4e, 0x61, 0x62, 0xe4, 0x6e, 0x64, 0xfc, 0x72, 0x75, 0x3b, 0x4b, 0x61, 0x6b, 0x61, 0x75, 0x6b, 0x61, 0x3b, -0x4e, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x42, 0x3b, 0x46, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, -0x4e, 0x3b, 0x4b, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c, 0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, -0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x3b, -0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x3b, 0x444, -0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, -0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, -0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x431, 0x430, 0x440, 0x3b, 0x43d, 0x43e, 0x432, 0x435, 0x43c, -0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, -0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, -0x6c, 0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, -0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, -0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, -0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6f, 0x6b, -0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, -0x62, 0x61, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, -0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, -0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, -0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, -0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, -0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c, 0x430, -0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, -0x432, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, 0x3b, -0x42f, 0x43d, 0x432, 0x2e, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x2e, 0x3b, 0x410, 0x43f, 0x440, -0x2e, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x2e, -0x3b, 0x421, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x41e, 0x43a, 0x442, 0x2e, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x414, 0x435, -0x43a, 0x2e, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, -0x440, 0x442, 0x44a, 0x438, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, -0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, -0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, -0x430, 0x431, 0x440, 0x44c, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, -0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x44b, 0x3b, 0x438, 0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, -0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x2e, 0x3b, -0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44b, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44b, 0x3b, -0x43c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x439, 0x44b, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x439, 0x44b, -0x3b, 0x438, 0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x44b, 0x3b, 0x441, -0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, -0x440, 0x44b, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44b, 0x3b, 0x4e, 0x64, 0x69, 0x3b, 0x4b, 0x75, 0x6b, 0x3b, 0x4b, -0x75, 0x72, 0x3b, 0x4b, 0x75, 0x62, 0x3b, 0x43, 0x68, 0x76, 0x3b, 0x43, 0x68, 0x6b, 0x3b, 0x43, 0x68, 0x67, 0x3b, 0x4e, -0x79, 0x61, 0x3b, 0x47, 0x75, 0x6e, 0x3b, 0x47, 0x75, 0x6d, 0x3b, 0x4d, 0x62, 0x75, 0x3b, 0x5a, 0x76, 0x69, 0x3b, 0x4e, -0x64, 0x69, 0x72, 0x61, 0x3b, 0x4b, 0x75, 0x6b, 0x61, 0x64, 0x7a, 0x69, 0x3b, 0x4b, 0x75, 0x72, 0x75, 0x6d, 0x65, 0x3b, -0x4b, 0x75, 0x62, 0x76, 0x75, 0x6d, 0x62, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x76, 0x61, 0x62, 0x76, 0x75, 0x3b, 0x43, 0x68, -0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75, 0x6e, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4e, 0x79, 0x61, -0x6d, 0x61, 0x76, 0x68, 0x75, 0x76, 0x68, 0x75, 0x3b, 0x47, 0x75, 0x6e, 0x79, 0x61, 0x6e, 0x61, 0x3b, 0x47, 0x75, 0x6d, -0x69, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4d, 0x62, 0x75, 0x64, 0x7a, 0x69, 0x3b, 0x5a, 0x76, 0x69, 0x74, 0x61, 0x3b, 0x4e, -0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x43, 0x3b, 0x4e, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, -0x3b, 0x5a, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x64a, 0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, -0x686, 0x3b, 0x627, 0x67e, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x626, 0x64a, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, -0x621, 0x650, 0x3b, 0x622, 0x6af, 0x633, 0x67d, 0x3b, 0x633, 0x64a, 0x67e, 0x67d, 0x645, 0x628, 0x631, 0x3b, 0x622, 0x6aa, 0x67d, 0x648, -0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x68a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0xda2, 0xdb1, 0x3b, 0xdb4, 0xdd9, -0xdb6, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, -0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, -0xd94, 0xd9a, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0x3b, 0xda2, 0xdb1, 0xdc0, 0xdcf, 0xdbb, 0xdd2, -0x3b, 0xdb4, 0xdd9, 0xdb6, 0xdbb, 0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, -0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, -0x3b, 0xd85, 0xd9c, 0xddd, 0xdc3, 0xdca, 0xdad, 0xdd4, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0xdad, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, -0x3b, 0xd94, 0xd9a, 0xdca, 0xdad, 0xddd, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, -0xdaf, 0xdd9, 0xdc3, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xda2, 0x3b, 0xdb4, 0xdd9, 0x3b, 0xdb8, 0xdcf, 0x3b, 0xd85, 0x3b, -0xdb8, 0xdd0, 0x3b, 0xda2, 0xdd6, 0x3b, 0xda2, 0xdd6, 0x3b, 0xd85, 0x3b, 0xdc3, 0xdd0, 0x3b, 0xd94, 0x3b, 0xdb1, 0xdd9, 0x3b, 0xdaf, -0xdd9, 0x3b, 0xda2, 0xdb1, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, -0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, -0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, -0xdc3, 0xdd0, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, -0xe1, 0x6a, 0x3b, 0x6a, 0xfa, 0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, -0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, -0x62, 0x72, 0x75, 0xe1, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65, 0x63, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0xe1, -0x6a, 0x3b, 0x6a, 0xfa, 0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, -0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, -0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x61, -0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0xed, -0x6c, 0x61, 0x3b, 0x6d, 0xe1, 0x6a, 0x61, 0x3b, 0x6a, 0xfa, 0x6e, 0x61, 0x3b, 0x6a, 0xfa, 0x6c, 0x61, 0x3b, 0x61, 0x75, -0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, -0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, -0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, -0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x76, 0x67, 0x2e, -0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, -0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65, -0x63, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, -0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, -0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, -0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, -0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4c, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x73, 0x3b, 0x53, -0x65, 0x62, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x66, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x61, -0x61, 0x79, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x61, 0x61, 0x79, 0x6f, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x73, 0x6f, 0x3b, -0x41, 0x62, 0x72, 0x69, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x3b, 0x4c, 0x75, 0x75, 0x6c, -0x69, 0x79, 0x6f, 0x3b, 0x4f, 0x67, 0x6f, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x62, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, -0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x66, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x65, -0x73, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4c, -0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4b, 0x6f, 0x6f, -0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, -0x73, 0x68, 0x61, 0x20, 0x53, 0x61, 0x64, 0x64, 0x65, 0x78, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, -0x41, 0x66, 0x72, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x68, 0x61, 0x6e, 0x61, 0x61, 0x64, -0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x69, 0x78, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, -0x54, 0x6f, 0x64, 0x6f, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x69, 0x64, 0x65, 0x65, -0x64, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x61, 0x67, 0x61, 0x61, 0x6c, 0x61, 0x61, 0x64, -0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, -0x20, 0x4b, 0x6f, 0x77, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, -0x68, 0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, -0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, -0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, -0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, -0x3b, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, -0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a, 0x75, -0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, -0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, -0x64, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, -0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, -0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, -0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, -0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, 0x3b, 0x45, 0x6e, 0x65, 0x2e, 0x3b, 0x46, -0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x2e, 0x3b, 0x4a, -0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x67, 0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x74, 0x2e, 0x3b, 0x4f, -0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x69, 0x63, 0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, -0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, -0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, -0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x3b, -0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, -0x6d, 0x61, 0x79, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, -0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, -0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, -0x65, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, -0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, -0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, -0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x3b, -0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, -0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, -0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, -0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, -0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, -0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, -0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, -0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, -0x74, 0x69, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, -0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x42f, -0x43d, 0x432, 0x430, 0x440, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, -0x435, 0x43b, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x3b, 0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, -0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41d, 0x43e, 0x44f, -0x431, 0x440, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0xb9c, 0xba9, 0x2e, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0x2e, 0x3b, -0xbae, 0xbbe, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, -0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0x2e, 0x3b, 0xb9a, 0xbc6, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xb85, 0xb95, 0xbcd, 0x2e, 0x3b, 0xba8, -0xbb5, 0x2e, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0x2e, 0x3b, 0xb9c, 0xba9, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0xbb0, 0xbb5, -0xbb0, 0xbbf, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd, 0xb9a, 0xbcd, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0xbb0, 0xbb2, 0xbcd, 0x3b, 0xbae, 0xbc7, 0x3b, -0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0xbb8, 0xbcd, 0xb9f, 0xbcd, 0x3b, 0xb9a, 0xbc6, 0xbaa, -0xbcd, 0xb9f, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xb95, 0xbcd, 0xb9f, 0xbcb, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xba8, 0xbb5, 0xbae, -0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9c, 0x3b, 0xbaa, 0xbbf, 0x3b, 0xbae, -0xbbe, 0x3b, 0xb8f, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb86, 0x3b, 0xb9a, 0xbc6, 0x3b, 0xb85, 0x3b, -0xba8, 0x3b, 0xb9f, 0xbbf, 0x3b, 0x433, 0x44b, 0x439, 0x43d, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, -0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, -0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, -0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x433, 0x44b, 0x439, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, -0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, -0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, -0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, -0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0xc1c, 0xc28, 0x3b, 0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0x3b, 0xc2e, 0xc3e, 0xc30, -0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, -0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0x3b, -0xc28, 0xc35, 0xc02, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0x3b, 0xc1c, 0xc28, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2b, 0xc3f, 0xc2c, 0xc4d, -0xc30, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0xc32, 0xc4d, 0x3b, -0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d, 0xc1f, 0xc41, 0x3b, -0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0xc2c, 0xc30, 0xc4d, 0x3b, -0xc28, 0xc35, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc1c, 0x3b, 0xc2b, 0xc3f, -0x3b, 0xc2e, 0xc3e, 0x3b, 0xc0f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0x3b, 0xc1c, 0xc41, 0x3b, 0xc06, 0x3b, 0xc38, 0xc46, 0x3b, -0xc05, 0x3b, 0xc28, 0x3b, 0xc21, 0xc3f, 0x3b, 0xe21, 0x2e, 0xe04, 0x2e, 0x3b, 0xe01, 0x2e, 0xe1e, 0x2e, 0x3b, 0xe21, 0xe35, 0x2e, -0xe04, 0x2e, 0x3b, 0xe40, 0xe21, 0x2e, 0xe22, 0x2e, 0x3b, 0xe1e, 0x2e, 0xe04, 0x2e, 0x3b, 0xe21, 0xe34, 0x2e, 0xe22, 0x2e, 0x3b, -0xe01, 0x2e, 0xe04, 0x2e, 0x3b, 0xe2a, 0x2e, 0xe04, 0x2e, 0x3b, 0xe01, 0x2e, 0xe22, 0x2e, 0x3b, 0xe15, 0x2e, 0xe04, 0x2e, 0x3b, -0xe1e, 0x2e, 0xe22, 0x2e, 0x3b, 0xe18, 0x2e, 0xe04, 0x2e, 0x3b, 0xe21, 0xe01, 0xe23, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe38, 0xe21, -0xe20, 0xe32, 0xe1e, 0xe31, 0xe19, 0xe18, 0xe4c, 0x3b, 0xe21, 0xe35, 0xe19, 0xe32, 0xe04, 0xe21, 0x3b, 0xe40, 0xe21, 0xe29, 0xe32, 0xe22, -0xe19, 0x3b, 0xe1e, 0xe24, 0xe29, 0xe20, 0xe32, 0xe04, 0xe21, 0x3b, 0xe21, 0xe34, 0xe16, 0xe38, 0xe19, 0xe32, 0xe22, 0xe19, 0x3b, 0xe01, -0xe23, 0xe01, 0xe0e, 0xe32, 0xe04, 0xe21, 0x3b, 0xe2a, 0xe34, 0xe07, 0xe2b, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe31, 0xe19, 0xe22, 0xe32, -0xe22, 0xe19, 0x3b, 0xe15, 0xe38, 0xe25, 0xe32, 0xe04, 0xe21, 0x3b, 0xe1e, 0xe24, 0xe28, 0xe08, 0xe34, 0xe01, 0xe32, 0xe22, 0xe19, 0x3b, -0xe18, 0xe31, 0xe19, 0xe27, 0xe32, 0xe04, 0xe21, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf44, 0xf0b, 0xf54, 0xf7c, 0xf0b, 0x3b, -0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf66, -0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, -0xf0b, 0xf56, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, -0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, -0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, -0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, -0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, -0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf44, 0xf0b, 0xf54, 0xf7c, 0x3b, 0xf5f, 0xfb3, -0xf0b, 0xf56, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, -0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf63, 0xf94, -0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, -0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0x3b, -0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, -0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, -0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x3b, -0x1218, 0x130b, 0x3b, 0x121a, 0x12eb, 0x3b, 0x130d, 0x1295, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d, 0x3b, 0x1290, 0x1213, 0x3b, 0x1218, 0x1235, -0x3b, 0x1325, 0x1245, 0x3b, 0x1215, 0x12f3, 0x3b, 0x1273, 0x1215, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x1272, 0x1275, 0x3b, 0x1218, 0x130b, -0x1262, 0x1275, 0x3b, 0x121a, 0x12eb, 0x12dd, 0x12eb, 0x3b, 0x130d, 0x1295, 0x1266, 0x1275, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d, 0x1208, 0x3b, -0x1290, 0x1213, 0x1230, 0x3b, 0x1218, 0x1235, 0x12a8, 0x1228, 0x121d, 0x3b, 0x1325, 0x1245, 0x121d, 0x1272, 0x3b, 0x1215, 0x12f3, 0x122d, 0x3b, 0x1273, -0x1215, 0x1233, 0x1235, 0x3b, 0x1325, 0x3b, 0x1208, 0x3b, 0x1218, 0x3b, 0x121a, 0x3b, 0x130d, 0x3b, 0x1230, 0x3b, 0x1213, 0x3b, 0x1290, 0x3b, -0x1218, 0x3b, 0x1325, 0x3b, 0x1215, 0x3b, 0x1273, 0x3b, 0x53, 0x101, 0x6e, 0x3b, 0x46, 0x113, 0x70, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, -0x3b, 0x2bb, 0x45, 0x70, 0x65, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x3b, 0x53, 0x69, 0x75, 0x3b, 0x2bb, 0x41, 0x6f, -0x6b, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x3b, 0x4e, 0x14d, 0x76, 0x3b, 0x54, 0x12b, 0x73, 0x3b, 0x53, -0x101, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x46, 0x113, 0x70, 0x75, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x73, -0x69, 0x3b, 0x2bb, 0x45, 0x70, 0x65, 0x6c, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x65, 0x3b, 0x53, -0x69, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x6f, 0x73, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x69, 0x74, 0x65, -0x6d, 0x61, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x74, 0x6f, 0x70, 0x61, 0x3b, 0x4e, 0x14d, 0x76, 0x65, 0x6d, 0x61, 0x3b, 0x54, -0x12b, 0x73, 0x65, 0x6d, 0x61, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, -0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4f, 0x63, 0x61, 0x3b, 0x15e, 0x75, 0x62, 0x3b, 0x4d, 0x61, -0x72, 0x3b, 0x4e, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x61, 0x7a, 0x3b, 0x54, 0x65, 0x6d, 0x3b, 0x41, 0x11f, -0x75, 0x3b, 0x45, 0x79, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x41, 0x72, 0x61, 0x3b, 0x4f, 0x63, -0x61, 0x6b, 0x3b, 0x15e, 0x75, 0x62, 0x61, 0x74, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x4e, 0x69, 0x73, 0x61, 0x6e, 0x3b, -0x4d, 0x61, 0x79, 0x131, 0x73, 0x3b, 0x48, 0x61, 0x7a, 0x69, 0x72, 0x61, 0x6e, 0x3b, 0x54, 0x65, 0x6d, 0x6d, 0x75, 0x7a, -0x3b, 0x41, 0x11f, 0x75, 0x73, 0x74, 0x6f, 0x73, 0x3b, 0x45, 0x79, 0x6c, 0xfc, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x6d, 0x3b, -0x4b, 0x61, 0x73, 0x131, 0x6d, 0x3b, 0x41, 0x72, 0x61, 0x6c, 0x131, 0x6b, 0x3b, 0x4f, 0x3b, 0x15e, 0x3b, 0x4d, 0x3b, 0x4e, -0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x45, 0x3b, 0x45, 0x3b, 0x4b, 0x3b, 0x41, 0x3b, 0xdd, 0x61, 0x6e, -0x3b, 0x46, 0x65, 0x77, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0xfd, 0x3b, 0x49, 0xfd, 0x75, -0x6e, 0x3b, 0x49, 0xfd, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x67, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, -0x6f, 0xfd, 0x3b, 0x44, 0x65, 0x6b, 0x3b, 0xdd, 0x61, 0x6e, 0x77, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x77, 0x72, 0x61, 0x6c, -0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0xfd, 0x3b, 0x49, 0xfd, 0x75, 0x6e, -0x3b, 0x49, 0xfd, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0xfd, 0x61, 0x62, -0x72, 0x3b, 0x4f, 0x6b, 0x74, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, -0x61, 0x62, 0x72, 0x3b, 0xdd, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, -0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0xfd, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x77, 0x3b, 0x6d, 0x61, 0x72, 0x74, -0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0xfd, 0x3b, 0x69, 0xfd, 0x75, 0x6e, 0x3b, 0x69, 0xfd, 0x75, 0x6c, 0x3b, 0x61, -0x77, 0x67, 0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0xfd, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0xfd, -0x61, 0x6e, 0x77, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x77, 0x72, 0x61, 0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, -0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61, 0xfd, 0x3b, 0x69, 0xfd, 0x75, 0x6e, 0x3b, 0x69, 0xfd, 0x75, 0x6c, 0x3b, 0x61, 0x77, -0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xfd, 0x61, 0x62, -0x72, 0x3b, 0x6e, 0x6f, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x64a, 0x627, 0x646, 0x6cb, -0x627, 0x631, 0x3b, 0x641, 0x6d0, 0x6cb, 0x631, 0x627, 0x644, 0x3b, 0x645, 0x627, 0x631, 0x62a, 0x3b, 0x626, 0x627, 0x67e, 0x631, 0x6d0, -0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x646, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x644, 0x3b, 0x626, 0x627, -0x6cb, 0x63a, 0x6c7, 0x633, 0x62a, 0x3b, 0x633, 0x6d0, 0x646, 0x62a, 0x6d5, 0x628, 0x649, 0x631, 0x3b, 0x626, 0x6c6, 0x643, 0x62a, 0x6d5, -0x628, 0x649, 0x631, 0x3b, 0x646, 0x648, 0x64a, 0x627, 0x628, 0x649, 0x631, 0x3b, 0x62f, 0x6d0, 0x643, 0x627, 0x628, 0x649, 0x631, 0x3b, -0x441, 0x456, 0x447, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x431, 0x435, 0x440, 0x3b, 0x43a, 0x432, 0x456, 0x3b, 0x442, 0x440, 0x430, 0x3b, -0x447, 0x435, 0x440, 0x3b, 0x43b, 0x438, 0x43f, 0x3b, 0x441, 0x435, 0x440, 0x3b, 0x432, 0x435, 0x440, 0x3b, 0x436, 0x43e, 0x432, 0x3b, -0x43b, 0x438, 0x441, 0x3b, 0x433, 0x440, 0x443, 0x3b, 0x441, 0x456, 0x447, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x44e, 0x442, 0x438, 0x439, -0x3b, 0x431, 0x435, 0x440, 0x435, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x435, 0x43d, 0x44c, 0x3b, 0x442, 0x440, -0x430, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x438, 0x43f, 0x435, 0x43d, 0x44c, -0x3b, 0x441, 0x435, 0x440, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x432, 0x435, 0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c, 0x3b, 0x436, 0x43e, -0x432, 0x442, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, 0x434, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x435, -0x43d, 0x44c, 0x3b, 0x421, 0x3b, 0x41b, 0x3b, 0x411, 0x3b, 0x41a, 0x3b, 0x422, 0x3b, 0x427, 0x3b, 0x41b, 0x3b, 0x421, 0x3b, 0x412, -0x3b, 0x416, 0x3b, 0x41b, 0x3b, 0x413, 0x3b, 0x441, 0x456, 0x447, 0x2e, 0x3b, 0x43b, 0x44e, 0x442, 0x2e, 0x3b, 0x431, 0x435, 0x440, -0x2e, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x2e, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x2e, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x2e, 0x3b, -0x43b, 0x438, 0x43f, 0x2e, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x2e, 0x3b, 0x432, 0x435, 0x440, 0x2e, 0x3b, 0x436, 0x43e, 0x432, 0x442, -0x2e, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x2e, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x2e, 0x3b, 0x441, 0x456, 0x447, 0x43d, 0x44f, 0x3b, -0x43b, 0x44e, 0x442, 0x43e, 0x433, 0x43e, 0x3b, 0x431, 0x435, 0x440, 0x435, 0x437, 0x43d, 0x44f, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x43d, -0x44f, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x43d, 0x44f, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x43d, 0x44f, 0x3b, 0x43b, 0x438, 0x43f, 0x43d, -0x44f, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x435, 0x441, 0x43d, 0x44f, 0x3b, 0x436, 0x43e, 0x432, -0x442, 0x43d, 0x44f, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, 0x434, 0x430, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x43d, 0x44f, -0x3b, 0x441, 0x3b, 0x43b, 0x3b, 0x431, 0x3b, 0x43a, 0x3b, 0x442, 0x3b, 0x447, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x432, 0x3b, 0x436, -0x3b, 0x43b, 0x3b, 0x433, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, -0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, -0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, -0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x59, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, -0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, 0x79, 0x6e, 0x3b, 0x49, 0x79, 0x6c, -0x3b, 0x41, 0x76, 0x67, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x79, 0x3b, 0x44, 0x65, 0x6b, -0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, -0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, 0x79, 0x75, 0x6e, 0x3b, 0x49, 0x79, 0x75, 0x6c, 0x3b, -0x41, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x61, 0x62, -0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x59, 0x3b, 0x46, 0x3b, -0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, -0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, -0x69, 0x79, 0x6e, 0x3b, 0x69, 0x79, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, -0x6e, 0x6f, 0x79, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x79, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x61, -0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x75, -0x6e, 0x3b, 0x69, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x62, -0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x61, 0x62, 0x72, 0x3b, 0x6e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, 0x6b, 0x61, -0x62, 0x72, 0x3b, 0x62c, 0x646, 0x648, 0x3b, 0x641, 0x628, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x3b, 0x627, 0x67e, 0x631, 0x3b, 0x645, -0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x3b, 0x627, 0x6af, 0x633, 0x3b, 0x633, 0x67e, 0x62a, 0x3b, 0x627, 0x6a9, -0x62a, 0x3b, 0x646, 0x648, 0x645, 0x3b, 0x62f, 0x633, 0x645, 0x3b, 0x44f, 0x43d, 0x432, 0x3b, 0x444, 0x435, 0x432, 0x3b, 0x43c, 0x430, -0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x3b, 0x438, 0x44e, 0x43b, 0x3b, 0x430, 0x432, -0x433, 0x3b, 0x441, 0x435, 0x43d, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x44f, 0x3b, 0x434, 0x435, 0x43a, 0x3b, 0x44f, 0x43d, -0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, -0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x3b, 0x438, 0x44e, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, -0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, -0x440, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x32, -0x3b, 0x54, 0x68, 0x67, 0x20, 0x33, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x34, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x35, 0x3b, 0x54, -0x68, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x37, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x38, 0x3b, 0x54, 0x68, 0x67, -0x20, 0x39, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x54, 0x68, 0x67, -0x20, 0x31, 0x32, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x32, 0x3b, -0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x34, 0x3b, 0x54, 0x68, 0xe1, 0x6e, -0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x37, 0x3b, -0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x39, 0x3b, 0x54, 0x68, 0xe1, 0x6e, -0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, -0x31, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x33, -0x3b, 0x74, 0x68, 0x67, 0x20, 0x34, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x35, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x36, 0x3b, 0x74, -0x68, 0x67, 0x20, 0x37, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x38, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x39, 0x3b, 0x74, 0x68, 0x67, -0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x74, 0x68, -0xe1, 0x6e, 0x67, 0x20, 0x31, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x32, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, -0x33, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x34, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x35, 0x3b, 0x74, 0x68, -0xe1, 0x6e, 0x67, 0x20, 0x36, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x37, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, -0x38, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x39, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x74, -0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x79, 0x61, 0x6e, -0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0xe4, 0x7a, 0x3b, 0x70, 0x72, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x79, 0x75, 0x6e, -0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x67, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x74, 0x6f, 0x62, 0x3b, 0x6e, 0x6f, 0x76, -0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x79, 0x61, 0x6e, 0x75, 0x6c, 0x3b, 0x66, 0x65, 0x62, 0x75, 0x6c, 0x3b, 0x6d, 0xe4, 0x7a, -0x75, 0x6c, 0x3b, 0x70, 0x72, 0x69, 0x6c, 0x75, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x75, 0x6c, 0x3b, 0x79, 0x75, 0x6e, 0x75, -0x6c, 0x3b, 0x79, 0x75, 0x6c, 0x75, 0x6c, 0x3b, 0x67, 0x75, 0x73, 0x74, 0x75, 0x6c, 0x3b, 0x73, 0x65, 0x74, 0x75, 0x6c, -0x3b, 0x74, 0x6f, 0x62, 0x75, 0x6c, 0x3b, 0x6e, 0x6f, 0x76, 0x75, 0x6c, 0x3b, 0x64, 0x65, 0x6b, 0x75, 0x6c, 0x3b, 0x59, -0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4e, -0x3b, 0x44, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0xe4, 0x7a, 0x3b, 0x70, 0x72, 0x6c, 0x3b, 0x6d, -0x61, 0x79, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x67, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x74, -0x6f, 0x6e, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, 0x43, 0x68, 0x77, 0x3b, 0x4d, -0x61, 0x77, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x41, -0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, -0x61, 0x67, 0x3b, 0x49, 0x6f, 0x6e, 0x61, 0x77, 0x72, 0x3b, 0x43, 0x68, 0x77, 0x65, 0x66, 0x72, 0x6f, 0x72, 0x3b, 0x4d, -0x61, 0x77, 0x72, 0x74, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, -0x65, 0x66, 0x69, 0x6e, 0x3b, 0x47, 0x6f, 0x72, 0x66, 0x66, 0x65, 0x6e, 0x6e, 0x61, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, -0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x72, 0x65, 0x66, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x77, 0x65, 0x64, -0x64, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x66, 0x79, 0x72, 0x3b, 0x49, 0x3b, 0x43, 0x68, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, -0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x52, 0x68, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, -0x43, 0x68, 0x77, 0x65, 0x66, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x45, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, -0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x66, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, -0x3b, 0x48, 0x79, 0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x46, -0x65, 0x77, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x77, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x77, 0x3b, 0x53, -0x75, 0x6c, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0xe0, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x77, 0x3b, 0x44, 0x65, -0x73, 0x3b, 0x53, 0x61, 0x6d, 0x77, 0x69, 0x79, 0x65, 0x65, 0x3b, 0x46, 0x65, 0x77, 0x72, 0x69, 0x79, 0x65, 0x65, 0x3b, -0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x77, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x77, 0x65, 0x3b, -0x53, 0x75, 0x6c, 0x65, 0x74, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0xe0, 0x74, 0x74, 0x75, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, -0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x77, 0xe0, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x73, -0xe0, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x74, 0x3b, 0x45, 0x70, -0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x61, 0x3b, 0x53, 0x65, -0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x79, 0x75, 0x77, -0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x74, 0x73, 0x68, 0x69, -0x3b, 0x45, 0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, -0x6c, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, -0x3b, 0x4f, 0x6b, 0x74, 0x68, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, -0x65, 0x6d, 0x62, 0x61, 0x3b, 0x5d9, 0x5d0, 0x5b7, 0x5e0, 0x3b, 0x5e4, 0x5bf, 0x5e2, 0x5d1, 0x3b, 0x5de, 0x5e2, 0x5e8, 0x5e5, 0x3b, -0x5d0, 0x5b7, 0x5e4, 0x5bc, 0x5e8, 0x3b, 0x5de, 0x5d9, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, -0x5d0, 0x5d5, 0x5d9, 0x5d2, 0x3b, 0x5e1, 0x5e2, 0x5e4, 0x5bc, 0x3b, 0x5d0, 0x5e7, 0x5d8, 0x3b, 0x5e0, 0x5d0, 0x5d5, 0x5d5, 0x3b, 0x5d3, -0x5e2, 0x5e6, 0x3b, 0x5d9, 0x5d0, 0x5b7, 0x5e0, 0x5d5, 0x5d0, 0x5b7, 0x5e8, 0x3b, 0x5e4, 0x5bf, 0x5e2, 0x5d1, 0x5e8, 0x5d5, 0x5d0, 0x5b7, -0x5e8, 0x3b, 0x5de, 0x5e2, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5b7, 0x5e4, 0x5bc, 0x5e8, 0x5d9, 0x5dc, 0x3b, 0x5de, 0x5d9, 0x5d9, 0x3b, 0x5d9, -0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d9, 0x5d2, 0x5d5, 0x5e1, 0x5d8, 0x3b, 0x5e1, 0x5e2, 0x5e4, -0x5bc, 0x5d8, 0x5e2, 0x5de, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x5d0, 0x5e7, 0x5d8, 0x5d0, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x5e0, 0x5d0, 0x5d5, 0x5d5, -0x5e2, 0x5de, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x5d3, 0x5e2, 0x5e6, 0x5e2, 0x5de, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x3b, 0xc8, -0x72, 0x3b, 0x1eb8, 0x72, 0x3b, 0xcc, 0x67, 0x3b, 0x1eb8, 0x300, 0x62, 0x3b, 0xd2, 0x6b, 0x3b, 0x41, 0x67, 0x3b, 0xd2, 0x67, -0x3b, 0x4f, 0x77, 0x3b, 0x1ecc, 0x300, 0x77, 0x3b, 0x42, 0xe9, 0x3b, 0x1ecc, 0x300, 0x70, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, -0x301, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, -0x1eb8, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x41, 0x67, 0x1eb9, 0x6d, 0x1ecd, 0x3b, 0xd2, -0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x1ecc, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, -0xfa, 0x3b, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300, 0x3b, 0x53, 0x3b, 0xc8, 0x3b, 0x1eb8, 0x3b, 0xcc, 0x3b, 0x1eb8, 0x300, 0x3b, 0xd2, -0x3b, 0x41, 0x3b, 0xd2, 0x3b, 0x4f, 0x3b, 0x1ecc, 0x300, 0x3b, 0x42, 0x3b, 0x1ecc, 0x300, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x72, 0x3b, -0xc8, 0x72, 0xe8, 0x6c, 0x3b, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0x3b, 0xcc, 0x67, 0x62, 0x3b, 0x1eb8, 0x300, 0x62, 0x69, 0x3b, -0xd2, 0x6b, 0xfa, 0x3b, 0x41, 0x67, 0x1eb9, 0x3b, 0xd2, 0x67, 0xfa, 0x3b, 0x4f, 0x77, 0x65, 0x3b, 0x1ecc, 0x300, 0x77, 0xe0, -0x3b, 0x42, 0xe9, 0x6c, 0x3b, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, 0x301, -0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, -0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x300, 0x62, 0x69, 0x62, -0x69, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x41, 0x67, 0x1eb9, 0x6d, -0x1ecd, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65, -0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, -0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300, 0x3b, 0x53, 0x68, 0x25b, 0x301, 0x3b, 0xc8, 0x72, 0x3b, 0x190, -0x72, 0x3b, 0xcc, 0x67, 0x3b, 0x190, 0x300, 0x62, 0x3b, 0xd2, 0x6b, 0x3b, 0x41, 0x67, 0x3b, 0xd2, 0x67, 0x3b, 0x4f, 0x77, -0x3b, 0x186, 0x300, 0x77, 0x3b, 0x42, 0xe9, 0x3b, 0x186, 0x300, 0x70, 0x3b, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, -0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x190, 0x300, -0x62, 0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0xd2, 0x67, 0xfa, -0x6e, 0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x186, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, -0x186, 0x300, 0x70, 0x25b, 0x300, 0x3b, 0x53, 0x3b, 0xc8, 0x3b, 0x190, 0x3b, 0xcc, 0x3b, 0x190, 0x300, 0x3b, 0xd2, 0x3b, 0x41, -0x3b, 0xd2, 0x3b, 0x4f, 0x3b, 0x186, 0x300, 0x3b, 0x42, 0x3b, 0x186, 0x300, 0x3b, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x3b, 0xc8, -0x72, 0xe8, 0x6c, 0x3b, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0x3b, 0xcc, 0x67, 0x62, 0x3b, 0x190, 0x300, 0x62, 0x69, 0x3b, 0xd2, -0x6b, 0xfa, 0x3b, 0x41, 0x67, 0x25b, 0x3b, 0xd2, 0x67, 0xfa, 0x3b, 0x4f, 0x77, 0x65, 0x3b, 0x186, 0x300, 0x77, 0xe0, 0x3b, -0x42, 0xe9, 0x6c, 0x3b, 0x186, 0x300, 0x70, 0x25b, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, -0x301, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x72, -0x25b, 0x300, 0x6e, 0xe0, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, -0x190, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x4f, 0x73, -0x68, 0xf9, 0x20, 0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, -0x73, 0x68, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x77, 0xe0, 0x72, -0xe0, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x70, -0x25b, 0x300, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x73, 0x3b, 0x45, 0x70, 0x68, 0x3b, 0x4d, -0x65, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, -0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, -0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x73, 0x68, 0x69, 0x3b, 0x45, 0x70, 0x68, 0x72, -0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, -0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, -0x74, 0x68, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, -0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, -0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, -0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, -0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, -0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, -0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, -0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, -0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x64, -0x65, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c, 0x430, 0x440, 0x3b, -0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x443, 0x433, 0x3b, -0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, 0x3b, 0x458, 0x430, 0x43d, 0x443, -0x430, 0x440, 0x3b, 0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, -0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430, 0x443, 0x433, 0x443, -0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x431, 0x430, 0x440, -0x3b, 0x43d, 0x43e, 0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x4a, -0x2d, 0x67, 0x75, 0x65, 0x72, 0x3b, 0x54, 0x2d, 0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74, -0x3b, 0x41, 0x76, 0x72, 0x72, 0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d, 0x2d, 0x73, 0x6f, -0x75, 0x72, 0x65, 0x65, 0x3b, 0x4a, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x69, 0x73, -0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4a, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, -0x72, 0x3b, 0x4d, 0x2d, 0x48, 0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, 0x4d, 0x2d, 0x4e, 0x6f, 0x6c, 0x6c, 0x69, 0x63, 0x6b, -0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x67, 0x65, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x54, 0x6f, 0x73, 0x68, 0x69, -0x61, 0x67, 0x68, 0x74, 0x2d, 0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74, 0x3b, 0x41, 0x76, -0x65, 0x72, 0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e, 0x2d, 0x73, 0x6f, -0x75, 0x72, 0x65, 0x65, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4c, -0x75, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, -0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x20, 0x48, -0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, 0x4d, 0x65, 0x65, 0x20, 0x6e, 0x79, 0x20, 0x4e, 0x6f, 0x6c, 0x6c, 0x69, 0x63, 0x6b, -0x3b, 0x47, 0x65, 0x6e, 0x3b, 0x48, 0x77, 0x65, 0x3b, 0x4d, 0x65, 0x75, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x3b, -0x4d, 0x65, 0x74, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x45, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x6e, 0x3b, 0x48, 0x65, 0x64, 0x3b, -0x44, 0x75, 0x3b, 0x4b, 0x65, 0x76, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x3b, 0x6d, 0x69, -0x73, 0x20, 0x48, 0x77, 0x65, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65, 0x75, 0x72, 0x74, 0x68, -0x3b, 0x6d, 0x69, 0x73, 0x20, 0x45, 0x62, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65, 0x3b, 0x6d, 0x69, -0x73, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x65, 0x76, 0x65, 0x6e, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x47, 0x6f, 0x72, 0x74, 0x68, -0x65, 0x72, 0x65, 0x6e, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x45, 0x73, 0x74, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x47, 0x77, 0x79, -0x6e, 0x6e, 0x67, 0x61, 0x6c, 0x61, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x48, 0x65, 0x64, 0x72, 0x61, 0x3b, 0x6d, 0x69, 0x73, -0x20, 0x44, 0x75, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4b, 0x65, 0x76, 0x61, 0x72, 0x64, 0x68, 0x75, 0x3b, 0x53, 0x2d, 0x186, -0x3b, 0x4b, 0x2d, 0x186, 0x3b, 0x45, 0x2d, 0x186, 0x3b, 0x45, 0x2d, 0x4f, 0x3b, 0x45, 0x2d, 0x4b, 0x3b, 0x4f, 0x2d, 0x41, -0x3b, 0x41, 0x2d, 0x4b, 0x3b, 0x44, 0x2d, 0x186, 0x3b, 0x46, 0x2d, 0x190, 0x3b, 0x186, 0x2d, 0x41, 0x3b, 0x186, 0x2d, 0x4f, -0x3b, 0x4d, 0x2d, 0x186, 0x3b, 0x53, 0x61, 0x6e, 0x64, 0x61, 0x2d, 0x186, 0x70, 0x25b, 0x70, 0x254, 0x6e, 0x3b, 0x4b, 0x77, -0x61, 0x6b, 0x77, 0x61, 0x72, 0x2d, 0x186, 0x67, 0x79, 0x65, 0x66, 0x75, 0x6f, 0x3b, 0x45, 0x62, 0x254, 0x77, 0x2d, 0x186, -0x62, 0x65, 0x6e, 0x65, 0x6d, 0x3b, 0x45, 0x62, 0x254, 0x62, 0x69, 0x72, 0x61, 0x2d, 0x4f, 0x66, 0x6f, 0x72, 0x69, 0x73, -0x75, 0x6f, 0x3b, 0x45, 0x73, 0x75, 0x73, 0x6f, 0x77, 0x20, 0x41, 0x6b, 0x65, 0x74, 0x73, 0x65, 0x61, 0x62, 0x61, 0x2d, -0x4b, 0x254, 0x74, 0x254, 0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x62, 0x69, 0x72, 0x61, 0x64, 0x65, 0x2d, 0x41, 0x79, -0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x6d, 0x75, 0x6d, 0x75, 0x3b, 0x41, 0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x2d, 0x4b, 0x69, -0x74, 0x61, 0x77, 0x6f, 0x6e, 0x73, 0x61, 0x3b, 0x44, 0x69, 0x66, 0x75, 0x75, 0x2d, 0x186, 0x73, 0x61, 0x6e, 0x64, 0x61, -0x61, 0x3b, 0x46, 0x61, 0x6e, 0x6b, 0x77, 0x61, 0x2d, 0x190, 0x62, 0x254, 0x3b, 0x186, 0x62, 0x25b, 0x73, 0x25b, 0x2d, 0x41, -0x68, 0x69, 0x6e, 0x69, 0x6d, 0x65, 0x3b, 0x186, 0x62, 0x65, 0x72, 0x25b, 0x66, 0x25b, 0x77, 0x2d, 0x4f, 0x62, 0x75, 0x62, -0x75, 0x6f, 0x3b, 0x4d, 0x75, 0x6d, 0x75, 0x2d, 0x186, 0x70, 0x25b, 0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x91c, 0x93e, 0x928, -0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, -0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, -0x93e, 0x92f, 0x3b, 0x906, 0x917, 0x94b, 0x938, 0x94d, 0x924, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x911, -0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, -0x947, 0x902, 0x92c, 0x930, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x61, 0x3b, 0x45, 0x70, 0x72, -0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x1ecc, 0x67, 0x1ecd, 0x3b, 0x53, 0x65, 0x70, -0x3b, 0x1ecc, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x65, 0x6e, 0x1ee5, 0x77, 0x61, 0x72, -0x1ecb, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x1ee5, 0x77, 0x61, 0x72, 0x1ecb, 0x3b, 0x4d, 0x61, 0x61, 0x63, 0x68, 0x1ecb, 0x3b, 0x45, -0x70, 0x72, 0x65, 0x65, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x1ecb, -0x3b, 0x1ecc, 0x67, 0x1ecd, 0x1ecd, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x1ecc, 0x6b, 0x74, -0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, -0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x1ecc, 0x3b, 0x53, 0x3b, 0x1ecc, 0x3b, -0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x65, 0x6c, 0x3b, 0x4b, 0x74, 0x169, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, -0x4b, 0x74, 0x6e, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x4b, 0x6e, 0x64, 0x3b, -0x128, 0x6b, 0x75, 0x3b, 0x128, 0x6b, 0x6d, 0x3b, 0x128, 0x6b, 0x6c, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, -0x6d, 0x62, 0x65, 0x65, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6c, 0x129, 0x3b, 0x4d, 0x77, -0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, -0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x6e, 0x6f, -0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x4d, -0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x75, 0x6f, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, -0x61, 0x20, 0x6e, 0x79, 0x61, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, -0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, -0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x129, 0x6d, 0x77, 0x65, 0x3b, -0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x6c, 0x129, -0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x128, -0x3b, 0x128, 0x3b, 0x128, 0x3b, 0x5a, 0x65, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x76, 0x72, -0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x67, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x41, 0x76, 0x6f, 0x3b, 0x53, 0x65, 0x74, -0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x63, 0x3b, 0x5a, 0x65, 0x6e, 0xe2, 0x72, 0x3b, 0x46, -0x65, 0x76, 0x72, 0xe2, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0xe7, 0x3b, 0x41, 0x76, 0x72, 0xee, 0x6c, 0x3b, 0x4d, 0x61, 0x69, -0x3b, 0x4a, 0x75, 0x67, 0x6e, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x41, 0x76, 0x6f, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x65, -0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, -0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, -0x4a, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, -0x64, 0x3b, 0x74, 0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, 0x61, 0x6d, 0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, -0x61, 0x3b, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, 0x65, 0x6c, 0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, -0x6d, 0x3b, 0x64, 0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x64, 0x7a, 0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, -0x65, 0x3b, 0x61, 0x66, 0x254, 0x66, 0x129, 0x65, 0x3b, 0x64, 0x61, 0x6d, 0x61, 0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, -0x69, 0x61, 0x6d, 0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, 0x69, 0x61, 0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, -0x79, 0x254, 0x6e, 0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, 0x61, 0x64, 0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, -0x78, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x64, 0x3b, 0x64, 0x3b, 0x74, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x6d, -0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x61, 0x3b, 0x6b, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x49, 0x61, 0x6e, 0x2e, 0x3b, 0x50, 0x65, -0x70, 0x2e, 0x3b, 0x4d, 0x61, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x70, 0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, 0x75, 0x6e, -0x2e, 0x3b, 0x49, 0x75, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x75, 0x2e, 0x3b, 0x4b, 0x65, 0x70, 0x2e, 0x3b, 0x2bb, 0x4f, 0x6b, -0x2e, 0x3b, 0x4e, 0x6f, 0x77, 0x2e, 0x3b, 0x4b, 0x65, 0x6b, 0x2e, 0x3b, 0x49, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, -0x50, 0x65, 0x70, 0x65, 0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x6c, 0x61, 0x6b, 0x69, 0x3b, 0x2bb, 0x41, 0x70, -0x65, 0x6c, 0x69, 0x6c, 0x61, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, 0x75, 0x6e, 0x65, 0x3b, 0x49, 0x75, 0x6c, 0x61, 0x69, -0x3b, 0x2bb, 0x41, 0x75, 0x6b, 0x61, 0x6b, 0x65, 0x3b, 0x4b, 0x65, 0x70, 0x61, 0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, -0x2bb, 0x4f, 0x6b, 0x61, 0x6b, 0x6f, 0x70, 0x61, 0x3b, 0x4e, 0x6f, 0x77, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x4b, 0x65, -0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x45, 0x6e, 0x65, 0x3b, 0x50, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, -0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x75, 0x6e, 0x3b, 0x48, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, -0x65, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, -0x3b, 0x50, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, -0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6e, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6c, 0x79, 0x6f, 0x3b, 0x41, 0x67, -0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x6b, 0x74, 0x75, 0x62, -0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x62, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x73, 0x79, 0x65, 0x6d, 0x62, -0x72, 0x65, 0x3b, 0x45, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x75, 0x6e, 0x3b, 0x48, 0x75, 0x6c, -0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, -0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, -0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, -0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x63, 0x68, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, -0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, -0x7a, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0xa2cd, 0xa1aa, 0x3b, 0xa44d, 0xa1aa, 0x3b, 0xa315, 0xa1aa, 0x3b, 0xa1d6, 0xa1aa, 0x3b, 0xa26c, -0xa1aa, 0x3b, 0xa0d8, 0xa1aa, 0x3b, 0xa3c3, 0xa1aa, 0x3b, 0xa246, 0xa1aa, 0x3b, 0xa22c, 0xa1aa, 0x3b, 0xa2b0, 0xa1aa, 0x3b, 0xa2b0, 0xa2aa, 0xa1aa, -0x3b, 0xa2b0, 0xa44b, 0xa1aa, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, -0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, -0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, -0x65, 0x7a, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x61, 0x72, -0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, -0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x76, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, -0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x111, 0x111, 0x6a, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x3b, 0x6e, -0x6a, 0x75, 0x6b, 0x3b, 0x63, 0x75, 0x6f, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x3b, 0x73, 0x75, -0x6f, 0x69, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x3b, 0x73, 0x6b, -0xe1, 0x62, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x3b, 0x6f, 0x111, 0x111, 0x61, 0x6a, 0x61, 0x67, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, -0x75, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x76, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x10d, 0x61, -0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x6f, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6d, 0x69, 0x65, -0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, -0x3b, 0x73, 0x75, 0x6f, 0x69, 0x64, 0x6e, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x65, 0x6d, -0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x6f, 0x6c, 0x67, -0x67, 0x6f, 0x74, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x6d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, -0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x4f, 0x3b, 0x47, 0x3b, 0x4e, 0x3b, 0x43, -0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x10c, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x6f, 0x111, 0x111, -0x6a, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x3b, 0x6d, 0x69, 0x65, -0x73, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x3b, 0x73, 0x75, 0x6f, 0x69, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x3b, 0x10d, 0x61, 0x6b, -0x10d, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x3b, 0x43, 0x61, 0x6e, -0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, -0x3b, 0x43, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, -0x3b, 0x44, 0x69, 0x73, 0x3b, 0x43, 0x68, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x75, 0x72, 0x61, -0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x69, 0x72, 0x69, 0x72, 0x69, 0x3b, 0x4d, 0x65, 0x69, -0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x43, 0x68, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, -0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x69, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x62, -0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x43, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, -0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x49, 0x6d, 0x62, -0x3b, 0x4b, 0x61, 0x77, 0x3b, 0x4b, 0x61, 0x64, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x4b, 0x61, 0x72, -0x3b, 0x4d, 0x66, 0x75, 0x3b, 0x57, 0x75, 0x6e, 0x3b, 0x49, 0x6b, 0x65, 0x3b, 0x49, 0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, -0x3b, 0x49, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6d, 0x62, 0x69, 0x72, -0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, -0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, -0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, -0x61, 0x73, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x72, 0x61, -0x6e, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6d, 0x66, 0x75, 0x6e, -0x67, 0x61, 0x64, 0x65, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x77, 0x75, 0x6e, 0x79, 0x61, -0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x65, 0x6e, 0x64, 0x61, -0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x6f, 0x72, -0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x6d, 0x77, 0x65, -0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, -0x61, 0x20, 0x69, 0x77, 0x69, 0x3b, 0x49, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, -0x57, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x73, 0x69, 0x69, 0x3b, 0x63, 0x6f, 0x6c, 0x3b, 0x6d, 0x62, -0x6f, 0x3b, 0x73, 0x65, 0x65, 0x3b, 0x64, 0x75, 0x75, 0x3b, 0x6b, 0x6f, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x3b, 0x6a, 0x75, -0x6b, 0x3b, 0x73, 0x6c, 0x74, 0x3b, 0x79, 0x61, 0x72, 0x3b, 0x6a, 0x6f, 0x6c, 0x3b, 0x62, 0x6f, 0x77, 0x3b, 0x73, 0x69, -0x69, 0x6c, 0x6f, 0x3b, 0x63, 0x6f, 0x6c, 0x74, 0x65, 0x3b, 0x6d, 0x62, 0x6f, 0x6f, 0x79, 0x3b, 0x73, 0x65, 0x65, 0x257, -0x74, 0x6f, 0x3b, 0x64, 0x75, 0x75, 0x6a, 0x61, 0x6c, 0x3b, 0x6b, 0x6f, 0x72, 0x73, 0x65, 0x3b, 0x6d, 0x6f, 0x72, 0x73, -0x6f, 0x3b, 0x6a, 0x75, 0x6b, 0x6f, 0x3b, 0x73, 0x69, 0x69, 0x6c, 0x74, 0x6f, 0x3b, 0x79, 0x61, 0x72, 0x6b, 0x6f, 0x6d, -0x61, 0x61, 0x3b, 0x6a, 0x6f, 0x6c, 0x61, 0x6c, 0x3b, 0x62, 0x6f, 0x77, 0x74, 0x65, 0x3b, 0x73, 0x3b, 0x63, 0x3b, 0x6d, -0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, 0x73, 0x3b, 0x79, 0x3b, 0x6a, 0x3b, 0x62, 0x3b, 0x4a, -0x45, 0x4e, 0x3b, 0x57, 0x4b, 0x52, 0x3b, 0x57, 0x47, 0x54, 0x3b, 0x57, 0x4b, 0x4e, 0x3b, 0x57, 0x54, 0x4e, 0x3b, 0x57, -0x54, 0x44, 0x3b, 0x57, 0x4d, 0x4a, 0x3b, 0x57, 0x4e, 0x4e, 0x3b, 0x57, 0x4b, 0x44, 0x3b, 0x57, 0x49, 0x4b, 0x3b, 0x57, -0x4d, 0x57, 0x3b, 0x44, 0x49, 0x54, 0x3b, 0x4e, 0x6a, 0x65, 0x6e, 0x75, 0x61, 0x72, 0x129, 0x3b, 0x4d, 0x77, 0x65, 0x72, -0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x72, 0x129, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, -0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, -0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x72, -0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, -0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, -0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, -0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x3b, 0x4d, -0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x169, 0x6d, 0x77, -0x65, 0x3b, 0x4e, 0x64, 0x69, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x4b, 0x3b, -0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x44, 0x3b, 0x4f, 0x62, 0x6f, 0x3b, -0x57, 0x61, 0x61, 0x3b, 0x4f, 0x6b, 0x75, 0x3b, 0x4f, 0x6e, 0x67, 0x3b, 0x49, 0x6d, 0x65, 0x3b, 0x49, 0x6c, 0x65, 0x3b, -0x53, 0x61, 0x70, 0x3b, 0x49, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x61, 0x3b, 0x54, 0x6f, 0x6d, 0x3b, 0x54, 0x6f, 0x62, 0x3b, -0x54, 0x6f, 0x77, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x62, 0x6f, 0x3b, 0x4c, 0x61, 0x70, 0x61, -0x20, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x6b, -0x75, 0x6e, 0x69, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x6e, 0x67, 0x2019, 0x77, 0x61, 0x6e, 0x3b, -0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6d, 0x65, 0x74, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, -0x20, 0x69, 0x6c, 0x65, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x73, 0x61, 0x70, 0x61, 0x3b, 0x4c, 0x61, -0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x69, 0x65, 0x74, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, -0x73, 0x61, 0x61, 0x6c, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x3b, 0x4c, -0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x6f, 0x62, 0x6f, 0x3b, 0x4c, 0x61, 0x70, -0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, 0x77, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4f, 0x3b, 0x57, -0x3b, 0x4f, 0x3b, 0x4f, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54, -0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, -0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, -0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x76, -0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x63, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, -0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x68, 0x6f, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, -0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x4e, -0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x5a, 0x69, 0x62, -0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x3b, 0x4d, 0x62, 0x69, 0x3b, 0x4d, 0x61, 0x62, 0x3b, 0x4e, 0x6b, 0x77, 0x3b, 0x4e, 0x68, -0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x3b, 0x4e, 0x63, 0x77, 0x3b, 0x4d, 0x70, 0x61, 0x6e, 0x3b, 0x4d, 0x66, 0x75, 0x3b, -0x4c, 0x77, 0x65, 0x3b, 0x4d, 0x70, 0x61, 0x6c, 0x3b, 0x5a, 0x69, 0x62, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x6c, 0x61, 0x3b, -0x4e, 0x68, 0x6c, 0x6f, 0x6c, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x62, 0x69, 0x6d, 0x62, 0x69, 0x74, 0x68, 0x6f, 0x3b, -0x4d, 0x61, 0x62, 0x61, 0x73, 0x61, 0x3b, 0x4e, 0x6b, 0x77, 0x65, 0x6e, 0x6b, 0x77, 0x65, 0x7a, 0x69, 0x3b, 0x4e, 0x68, -0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x6c, 0x69, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4e, 0x63, -0x77, 0x61, 0x62, 0x61, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4d, 0x70, 0x61, 0x6e, 0x64, 0x75, 0x6c, 0x61, 0x3b, 0x4d, 0x66, -0x75, 0x6d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x7a, 0x69, 0x3b, 0x4d, 0x70, 0x61, 0x6c, 0x61, 0x6b, 0x61, 0x7a, 0x69, -0x3b, 0x5a, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, -0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x31, 0x3b, 0x4d, 0x32, 0x3b, 0x4d, 0x33, 0x3b, 0x4d, 0x34, 0x3b, 0x4d, 0x35, 0x3b, -0x4d, 0x36, 0x3b, 0x4d, 0x37, 0x3b, 0x4d, 0x38, 0x3b, 0x4d, 0x39, 0x3b, 0x4d, 0x31, 0x30, 0x3b, 0x4d, 0x31, 0x31, 0x3b, -0x4d, 0x31, 0x32, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, -0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, -0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, -0x6b, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b, -0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, -0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6e, 0x61, 0x6e, -0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, -0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, -0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, -0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x4b, 0x3b, -0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x49, 0x3b, 0x49, 0x3b, -0x49, 0x3b, 0x2d49, 0x2d4f, 0x2d4f, 0x3b, 0x2d31, 0x2d55, 0x2d30, 0x3b, 0x2d4e, 0x2d30, 0x2d55, 0x3b, 0x2d49, 0x2d31, 0x2d54, 0x3b, 0x2d4e, 0x2d30, -0x2d62, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x3b, 0x2d56, 0x2d53, 0x2d5b, 0x3b, 0x2d5b, 0x2d53, 0x2d5c, 0x3b, 0x2d3d, 0x2d5c, -0x2d53, 0x3b, 0x2d4f, 0x2d53, 0x2d61, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x3b, 0x2d49, 0x2d4f, 0x2d4f, 0x2d30, 0x2d62, 0x2d54, 0x3b, 0x2d31, 0x2d55, 0x2d30, -0x2d62, 0x2d55, 0x3b, 0x2d4e, 0x2d30, 0x2d55, 0x2d5a, 0x3b, 0x2d49, 0x2d31, 0x2d54, 0x2d49, 0x2d54, 0x3b, 0x2d4e, 0x2d30, 0x2d62, 0x2d62, 0x2d53, 0x3b, -0x2d62, 0x2d53, 0x2d4f, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x2d62, 0x2d53, 0x2d63, 0x3b, 0x2d56, 0x2d53, 0x2d5b, 0x2d5c, 0x3b, 0x2d5b, 0x2d53, -0x2d5c, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x2d31, 0x2d54, 0x3b, 0x2d4f, 0x2d53, 0x2d61, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, -0x2d54, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d49, 0x3b, 0x2d31, 0x3b, 0x2d4e, 0x3b, 0x2d49, 0x3b, 0x2d4e, -0x3b, 0x2d62, 0x3b, 0x2d62, 0x3b, 0x2d56, 0x3b, 0x2d5b, 0x3b, 0x2d3d, 0x3b, 0x2d4f, 0x3b, 0x2d37, 0x3b, 0x69, 0x6e, 0x6e, 0x3b, 0x62, -0x1e5b, 0x61, 0x3b, 0x6d, 0x61, 0x1e5b, 0x3b, 0x69, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, -0x75, 0x6c, 0x3b, 0x263, 0x75, 0x63, 0x3b, 0x63, 0x75, 0x74, 0x3b, 0x6b, 0x74, 0x75, 0x3b, 0x6e, 0x75, 0x77, 0x3b, 0x64, -0x75, 0x6a, 0x3b, 0x69, 0x6e, 0x6e, 0x61, 0x79, 0x72, 0x3b, 0x62, 0x1e5b, 0x61, 0x79, 0x1e5b, 0x3b, 0x6d, 0x61, 0x1e5b, 0x1e63, -0x3b, 0x69, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x79, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x79, -0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x263, 0x75, 0x63, 0x74, 0x3b, 0x63, 0x75, 0x74, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, -0x6b, 0x74, 0x75, 0x62, 0x72, 0x3b, 0x6e, 0x75, 0x77, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x64, 0x75, 0x6a, 0x61, 0x6e, -0x62, 0x69, 0x72, 0x3b, 0x69, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x69, 0x3b, 0x6d, 0x3b, 0x79, 0x3b, 0x79, 0x3b, 0x263, 0x3b, -0x63, 0x3b, 0x6b, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x46, 0x75, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x3b, -0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, -0x43, 0x74, 0x65, 0x3b, 0x54, 0x75, 0x62, 0x3b, 0x57, 0x61, 0x6d, 0x3b, 0x44, 0x75, 0x6a, 0x3b, 0x59, 0x65, 0x6e, 0x6e, -0x61, 0x79, 0x65, 0x72, 0x3b, 0x46, 0x75, 0x1e5b, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x72, 0x65, 0x73, 0x3b, 0x59, 0x65, -0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, -0x79, 0x75, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x54, 0x75, 0x62, 0x65, -0x1e5b, 0x3b, 0x57, 0x61, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x44, 0x75, 0x1e7, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x59, 0x3b, -0x46, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x194, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, -0x44, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x46, 0x75, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, -0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, 0x43, 0x74, 0x65, 0x3b, 0x54, 0x75, -0x62, 0x3b, 0x4e, 0x75, 0x6e, 0x3b, 0x44, 0x75, 0x1e7, 0x3b, 0x59, 0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x46, -0x75, 0x1e5b, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x72, 0x65, 0x73, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, -0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, 0x79, 0x75, 0x3b, 0x194, 0x75, 0x63, -0x74, 0x3b, 0x43, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x54, 0x75, 0x62, 0x65, 0x1e5b, 0x3b, 0x4e, 0x75, 0x6e, 0x65, -0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x44, 0x75, 0x1e7, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x194, 0x3b, -0x42, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4c, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x52, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x4b, 0x42, -0x5a, 0x3b, 0x4b, 0x42, 0x52, 0x3b, 0x4b, 0x53, 0x54, 0x3b, 0x4b, 0x4b, 0x4e, 0x3b, 0x4b, 0x54, 0x4e, 0x3b, 0x4b, 0x4d, -0x4b, 0x3b, 0x4b, 0x4d, 0x53, 0x3b, 0x4b, 0x4d, 0x4e, 0x3b, 0x4b, 0x4d, 0x57, 0x3b, 0x4b, 0x4b, 0x4d, 0x3b, 0x4b, 0x4e, -0x4b, 0x3b, 0x4b, 0x4e, 0x42, 0x3b, 0x4f, 0x6b, 0x77, 0x6f, 0x6b, 0x75, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4f, 0x6b, -0x77, 0x61, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x73, 0x68, 0x61, 0x74, 0x75, -0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x74, 0x61, 0x61, 0x6e, -0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x61, 0x67, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, -0x73, 0x68, 0x61, 0x6e, 0x6a, 0x75, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x6e, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, -0x6b, 0x77, 0x61, 0x6d, 0x77, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, -0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x77, 0x65, 0x3b, 0x4f, -0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x48, 0x75, -0x74, 0x3b, 0x56, 0x69, 0x6c, 0x3b, 0x44, 0x61, 0x74, 0x3b, 0x54, 0x61, 0x69, 0x3b, 0x48, 0x61, 0x6e, 0x3b, 0x53, 0x69, -0x74, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, 0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4b, 0x6d, -0x6a, 0x3b, 0x4b, 0x6d, 0x62, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, -0x68, 0x75, 0x74, 0x61, 0x6c, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, -0x20, 0x77, 0x75, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, -0x61, 0x20, 0x77, 0x75, 0x64, 0x61, 0x74, 0x75, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, -0x77, 0x61, 0x20, 0x77, 0x75, 0x74, 0x61, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, -0x77, 0x61, 0x20, 0x77, 0x75, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, -0x67, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, -0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, -0x61, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, -0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, -0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, -0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, -0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, -0x48, 0x3b, 0x56, 0x3b, 0x44, 0x3b, 0x54, 0x3b, 0x48, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, -0x4b, 0x3b, 0x4b, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, -0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x79, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, -0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x53, -0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, -0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, -0x61, 0x72, 0x3b, 0x61, 0x77, 0x69, 0x3b, 0x6d, 0x25b, 0x3b, 0x7a, 0x75, 0x77, 0x3b, 0x7a, 0x75, 0x6c, 0x3b, 0x75, 0x74, -0x69, 0x3b, 0x73, 0x25b, 0x74, 0x3b, 0x254, 0x6b, 0x75, 0x3b, 0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, -0x6e, 0x77, 0x75, 0x79, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x75, 0x72, 0x75, 0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x69, 0x73, -0x69, 0x3b, 0x61, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x69, 0x3b, 0x6d, 0x25b, 0x3b, 0x7a, 0x75, 0x77, 0x25b, 0x6e, 0x3b, 0x7a, -0x75, 0x6c, 0x75, 0x79, 0x65, 0x3b, 0x75, 0x74, 0x69, 0x3b, 0x73, 0x25b, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, -0x254, 0x6b, 0x75, 0x74, 0x254, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x6e, 0x6f, 0x77, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, -0x64, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, -0x5a, 0x3b, 0x5a, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x186, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x61, -0x69, 0x3b, 0x4b, 0x61, 0x74, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x47, 0x61, 0x74, 0x3b, 0x47, 0x61, 0x6e, 0x3b, 0x4d, 0x75, -0x67, 0x3b, 0x4b, 0x6e, 0x6e, 0x3b, 0x4b, 0x65, 0x6e, 0x3b, 0x49, 0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x67, -0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x3b, 0x4d, 0x77, 0x65, -0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x129, 0x72, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, -0x20, 0x6b, 0x61, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, -0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, -0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, -0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, -0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, -0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, -0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, -0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, -0x6e, 0x61, 0x20, 0x4b, 0x61, 0x129, 0x72, 0x129, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, -0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x13a4, 0x13c3, 0x3b, 0x13a7, 0x13a6, 0x3b, 0x13a0, -0x13c5, 0x3b, 0x13a7, 0x13ec, 0x3b, 0x13a0, 0x13c2, 0x3b, 0x13d5, 0x13ad, 0x3b, 0x13ab, 0x13f0, 0x3b, 0x13a6, 0x13b6, 0x3b, 0x13da, 0x13b5, 0x3b, -0x13da, 0x13c2, 0x3b, 0x13c5, 0x13d3, 0x3b, 0x13a5, 0x13cd, 0x3b, 0x13a4, 0x13c3, 0x13b8, 0x13d4, 0x13c5, 0x3b, 0x13a7, 0x13a6, 0x13b5, 0x3b, 0x13a0, -0x13c5, 0x13f1, 0x3b, 0x13a7, 0x13ec, 0x13c2, 0x3b, 0x13a0, 0x13c2, 0x13cd, 0x13ac, 0x13d8, 0x3b, 0x13d5, 0x13ad, 0x13b7, 0x13f1, 0x3b, 0x13ab, 0x13f0, -0x13c9, 0x13c2, 0x3b, 0x13a6, 0x13b6, 0x13c2, 0x3b, 0x13da, 0x13b5, 0x13cd, 0x13d7, 0x3b, 0x13da, 0x13c2, 0x13c5, 0x13d7, 0x3b, 0x13c5, 0x13d3, 0x13d5, -0x13c6, 0x3b, 0x13a5, 0x13cd, 0x13a9, 0x13f1, 0x3b, 0x13a4, 0x3b, 0x13a7, 0x3b, 0x13a0, 0x3b, 0x13a7, 0x3b, 0x13a0, 0x3b, 0x13d5, 0x3b, 0x13ab, -0x3b, 0x13a6, 0x3b, 0x13da, 0x3b, 0x13da, 0x3b, 0x13c5, 0x3b, 0x13a5, 0x3b, 0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, -0x61, 0x72, 0x3b, 0x61, 0x76, 0x72, 0x3b, 0x6d, 0x65, 0x3b, 0x7a, 0x69, 0x6e, 0x3b, 0x7a, 0x69, 0x6c, 0x3b, 0x6f, 0x75, -0x74, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, -0x6e, 0x76, 0x69, 0x65, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x69, 0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, -0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x3b, 0x7a, 0x69, 0x6e, 0x3b, 0x7a, 0x69, 0x6c, 0x79, 0x65, 0x3b, 0x6f, 0x75, 0x74, -0x3b, 0x73, 0x65, 0x70, 0x74, 0x61, 0x6d, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x3b, 0x6e, 0x6f, 0x76, 0x61, 0x6d, 0x3b, -0x64, 0x65, 0x73, 0x61, 0x6d, 0x3b, 0x7a, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x7a, 0x3b, 0x7a, 0x3b, -0x6f, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x4e, 0x74, 0x61, 0x6e, -0x64, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x50, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, -0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x54, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, -0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, -0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, -0x6e, 0x61, 0x20, 0x55, 0x6d, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, -0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x69, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, -0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, -0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x63, -0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, -0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, -0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, -0x20, 0x55, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, -0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x3b, 0x46, 0xfa, 0x6e, 0x67, 0x61, 0x74, -0x268, 0x3b, 0x4e, 0x61, 0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x65, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x49, 0x6b, 0xfa, 0x6d, 0x69, -0x3b, 0x49, 0x6e, 0x79, 0x61, 0x6d, 0x62, 0x61, 0x6c, 0x61, 0x3b, 0x49, 0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4d, -0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b, 0x56, 0x268, 0x268, 0x72, 0x268, 0x3b, 0x53, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x49, -0x6e, 0x79, 0x69, 0x3b, 0x53, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x53, 0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x289, 0x66, -0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b, 0x4b, 0x289, 0x6e, 0x61, 0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x289, 0x6b, 0x65, 0x65, -0x6e, 0x64, 0x61, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x61, -0x6d, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4b, 0x289, 0x6d, -0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b, 0x4b, 0x289, 0x76, 0x268, 0x268, 0x72, 0x268, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, -0x74, 0x289, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x69, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x4b, -0x289, 0x73, 0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x46, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, -0x4d, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, -0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x75, 0x3b, 0x4d, 0x61, 0x61, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, -0x41, 0x67, 0x75, 0x3b, 0x53, 0x65, 0x62, 0x3b, 0x4f, 0x6b, 0x69, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, -0x4a, 0x61, 0x6e, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b, -0x4d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b, 0x41, 0x70, 0x75, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x61, 0x79, 0x69, 0x3b, 0x4a, -0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x69, 0x74, 0x6f, -0x3b, 0x53, 0x65, 0x62, 0x75, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x69, 0x74, 0x6f, 0x62, 0x62, 0x61, -0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x61, 0x6e, -0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x45, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, -0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, -0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, -0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x45, 0x70, 0x72, 0x65, 0x6f, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, -0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x4f, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, -0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, -0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, -0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, -0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, -0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x75, 0x76, 0x3b, 0x44, 0x69, 0x7a, 0x3b, -0x4a, 0x61, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x75, -0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x75, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x75, 0x3b, 0x4a, 0x75, -0x6c, 0x68, 0x75, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x75, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, -0x4f, 0x74, 0x75, 0x62, 0x72, 0x75, 0x3b, 0x4e, 0x75, 0x76, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x44, 0x69, 0x7a, 0x65, -0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4a, 0x41, 0x4e, 0x3b, 0x46, 0x45, 0x42, 0x3b, 0x4d, 0x41, 0x43, 0x3b, 0x128, 0x50, 0x55, -0x3b, 0x4d, 0x128, 0x128, 0x3b, 0x4e, 0x4a, 0x55, 0x3b, 0x4e, 0x4a, 0x52, 0x3b, 0x41, 0x47, 0x41, 0x3b, 0x53, 0x50, 0x54, -0x3b, 0x4f, 0x4b, 0x54, 0x3b, 0x4e, 0x4f, 0x56, 0x3b, 0x44, 0x45, 0x43, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x129, -0x3b, 0x46, 0x65, 0x62, 0x75, 0x72, 0x75, 0x61, 0x72, 0x129, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x128, 0x70, 0x75, -0x72, 0x169, 0x3b, 0x4d, 0x129, 0x129, 0x3b, 0x4e, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x72, 0x61, 0x129, 0x3b, -0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x169, -0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, -0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x128, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, -0x3b, 0x44, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x4e, 0x67, 0x61, 0x74, 0x3b, 0x54, 0x61, 0x61, 0x3b, 0x49, 0x77, 0x6f, 0x3b, -0x4d, 0x61, 0x6d, 0x3b, 0x50, 0x61, 0x61, 0x3b, 0x4e, 0x67, 0x65, 0x3b, 0x52, 0x6f, 0x6f, 0x3b, 0x42, 0x75, 0x72, 0x3b, -0x45, 0x70, 0x65, 0x3b, 0x4b, 0x70, 0x74, 0x3b, 0x4b, 0x70, 0x61, 0x3b, 0x4d, 0x75, 0x6c, 0x67, 0x75, 0x6c, 0x3b, 0x4e, -0x67, 0x2019, 0x61, 0x74, 0x79, 0x61, 0x61, 0x74, 0x6f, 0x3b, 0x4b, 0x69, 0x70, 0x74, 0x61, 0x61, 0x6d, 0x6f, 0x3b, 0x49, -0x77, 0x6f, 0x6f, 0x74, 0x6b, 0x75, 0x75, 0x74, 0x3b, 0x4d, 0x61, 0x6d, 0x75, 0x75, 0x74, 0x3b, 0x50, 0x61, 0x61, 0x67, -0x69, 0x3b, 0x4e, 0x67, 0x2019, 0x65, 0x69, 0x79, 0x65, 0x65, 0x74, 0x3b, 0x52, 0x6f, 0x6f, 0x70, 0x74, 0x75, 0x69, 0x3b, -0x42, 0x75, 0x72, 0x65, 0x65, 0x74, 0x3b, 0x45, 0x70, 0x65, 0x65, 0x73, 0x6f, 0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x75, -0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x20, 0x74, 0x61, 0x61, 0x69, 0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x75, 0x6e, 0x64, -0x65, 0x20, 0x6e, 0x65, 0x62, 0x6f, 0x20, 0x61, 0x65, 0x6e, 0x67, 0x2019, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x49, -0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x42, 0x3b, 0x45, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x1c3, 0x4b, 0x68, -0x61, 0x6e, 0x6e, 0x69, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x6e, 0x1c0, 0x67, 0xf4, 0x61, 0x62, 0x3b, 0x1c0, 0x4b, 0x68, 0x75, -0x75, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c3, 0x48, 0xf4, 0x61, 0x1c2, 0x6b, 0x68, 0x61, 0x69, 0x62, 0x3b, 0x1c3, 0x4b, -0x68, 0x61, 0x69, 0x74, 0x73, 0xe2, 0x62, 0x3b, 0x47, 0x61, 0x6d, 0x61, 0x1c0, 0x61, 0x65, 0x62, 0x3b, 0x1c2, 0x4b, 0x68, -0x6f, 0x65, 0x73, 0x61, 0x6f, 0x62, 0x3b, 0x41, 0x6f, 0x1c1, 0x6b, 0x68, 0x75, 0x75, 0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2, -0x62, 0x3b, 0x54, 0x61, 0x72, 0x61, 0x1c0, 0x6b, 0x68, 0x75, 0x75, 0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c2, -0x4e, 0xfb, 0x1c1, 0x6e, 0xe2, 0x69, 0x73, 0x65, 0x62, 0x3b, 0x1c0, 0x48, 0x6f, 0x6f, 0x1c2, 0x67, 0x61, 0x65, 0x62, 0x3b, -0x48, 0xf4, 0x61, 0x73, 0x6f, 0x72, 0x65, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0xe4, -0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x7a, 0x2e, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, -0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x4f, 0x75, 0x6a, 0x2e, 0x3b, 0x53, 0xe4, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, -0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x65, 0x77, 0x61, 0x3b, -0x46, 0xe4, 0x62, 0x72, 0x6f, 0x77, 0x61, 0x3b, 0x4d, 0xe4, 0xe4, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x6c, 0x3b, -0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x4f, 0x75, 0x6a, 0x6f, -0xdf, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x68, 0x62, 0x65, 0x72, -0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, -0x61, 0x6e, 0x3b, 0x46, 0xe4, 0x62, 0x3b, 0x4d, 0xe4, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, -0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x75, 0x6a, 0x3b, 0x53, 0xe4, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, -0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x44, 0x61, 0x6c, 0x3b, 0x41, 0x72, 0xe1, 0x3b, 0x186, 0x25b, 0x6e, 0x3b, 0x44, -0x6f, 0x79, 0x3b, 0x4c, 0xe9, 0x70, 0x3b, 0x52, 0x6f, 0x6b, 0x3b, 0x53, 0xe1, 0x73, 0x3b, 0x42, 0x254, 0x301, 0x72, 0x3b, -0x4b, 0xfa, 0x73, 0x3b, 0x47, 0xed, 0x73, 0x3b, 0x53, 0x68, 0x289, 0x301, 0x3b, 0x4e, 0x74, 0x289, 0x301, 0x3b, 0x4f, 0x6c, -0x61, 0x64, 0x61, 0x6c, 0x289, 0x301, 0x3b, 0x41, 0x72, 0xe1, 0x74, 0x3b, 0x186, 0x25b, 0x6e, 0x268, 0x301, 0x254, 0x268, 0x14b, -0x254, 0x6b, 0x3b, 0x4f, 0x6c, 0x6f, 0x64, 0x6f, 0x79, 0xed, 0xf3, 0x72, 0xed, 0xea, 0x20, 0x69, 0x6e, 0x6b, 0xf3, 0x6b, -0xfa, 0xe2, 0x3b, 0x4f, 0x6c, 0x6f, 0x69, 0x6c, 0xe9, 0x70, 0x16b, 0x6e, 0x79, 0x12b, 0x113, 0x20, 0x69, 0x6e, 0x6b, 0xf3, -0x6b, 0xfa, 0xe2, 0x3b, 0x4b, 0xfa, 0x6a, 0xfa, 0x254, 0x72, 0x254, 0x6b, 0x3b, 0x4d, 0xf3, 0x72, 0x75, 0x73, 0xe1, 0x73, -0x69, 0x6e, 0x3b, 0x186, 0x6c, 0x254, 0x301, 0x268, 0x301, 0x62, 0x254, 0x301, 0x72, 0xe1, 0x72, 0x25b, 0x3b, 0x4b, 0xfa, 0x73, -0x68, 0xee, 0x6e, 0x3b, 0x4f, 0x6c, 0x67, 0xed, 0x73, 0x61, 0x6e, 0x3b, 0x50, 0x289, 0x73, 0x68, 0x289, 0x301, 0x6b, 0x61, -0x3b, 0x4e, 0x74, 0x289, 0x301, 0x14b, 0x289, 0x301, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, -0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, -0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, -0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, -0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, -0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x52, 0x61, 0x72, 0x3b, 0x4d, 0x75, 0x6b, 0x3b, 0x4b, 0x77, 0x61, 0x3b, 0x44, 0x75, -0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x6f, 0x64, 0x3b, 0x4a, 0x6f, 0x6c, 0x3b, 0x50, 0x65, 0x64, 0x3b, 0x53, 0x6f, -0x6b, 0x3b, 0x54, 0x69, 0x62, 0x3b, 0x4c, 0x61, 0x62, 0x3b, 0x50, 0x6f, 0x6f, 0x3b, 0x4f, 0x72, 0x61, 0x72, 0x61, 0x3b, -0x4f, 0x6d, 0x75, 0x6b, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x67, 0x2019, 0x3b, 0x4f, 0x64, 0x75, 0x6e, 0x67, 0x2019, 0x65, -0x6c, 0x3b, 0x4f, 0x6d, 0x61, 0x72, 0x75, 0x6b, 0x3b, 0x4f, 0x6d, 0x6f, 0x64, 0x6f, 0x6b, 0x2019, 0x6b, 0x69, 0x6e, 0x67, -0x2019, 0x6f, 0x6c, 0x3b, 0x4f, 0x6a, 0x6f, 0x6c, 0x61, 0x3b, 0x4f, 0x70, 0x65, 0x64, 0x65, 0x6c, 0x3b, 0x4f, 0x73, 0x6f, -0x6b, 0x6f, 0x73, 0x6f, 0x6b, 0x6f, 0x6d, 0x61, 0x3b, 0x4f, 0x74, 0x69, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6c, 0x61, 0x62, -0x6f, 0x72, 0x3b, 0x4f, 0x70, 0x6f, 0x6f, 0x3b, 0x52, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x44, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, -0x4a, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x50, 0x3b, 0x17d, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x65, 0x3b, -0x4d, 0x61, 0x72, 0x3b, 0x41, 0x77, 0x69, 0x3b, 0x4d, 0x65, 0x3b, 0x17d, 0x75, 0x77, 0x3b, 0x17d, 0x75, 0x79, 0x3b, 0x55, -0x74, 0x3b, 0x53, 0x65, 0x6b, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x6f, 0x3b, 0x44, 0x65, 0x65, 0x3b, 0x17d, 0x61, -0x6e, 0x77, 0x69, 0x79, 0x65, 0x3b, 0x46, 0x65, 0x65, 0x77, 0x69, 0x72, 0x69, 0x79, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, -0x69, 0x3b, 0x41, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x3b, 0x17d, 0x75, 0x77, 0x65, 0x14b, 0x3b, 0x17d, 0x75, -0x79, 0x79, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x4f, 0x6b, 0x74, -0x6f, 0x6f, 0x62, 0x75, 0x72, 0x3b, 0x4e, 0x6f, 0x6f, 0x77, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x44, 0x65, 0x65, 0x73, -0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x17d, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x17d, 0x3b, 0x17d, 0x3b, -0x55, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x44, 0x41, 0x43, 0x3b, 0x44, 0x41, 0x52, 0x3b, 0x44, 0x41, -0x44, 0x3b, 0x44, 0x41, 0x4e, 0x3b, 0x44, 0x41, 0x48, 0x3b, 0x44, 0x41, 0x55, 0x3b, 0x44, 0x41, 0x4f, 0x3b, 0x44, 0x41, -0x42, 0x3b, 0x44, 0x4f, 0x43, 0x3b, 0x44, 0x41, 0x50, 0x3b, 0x44, 0x47, 0x49, 0x3b, 0x44, 0x41, 0x47, 0x3b, 0x44, 0x77, -0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, -0x20, 0x41, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x64, 0x65, 0x6b, 0x3b, -0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x6e, 0x67, 0x2019, 0x77, 0x65, 0x6e, 0x3b, 0x44, 0x77, 0x65, 0x20, -0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x63, 0x68, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x75, -0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x72, 0x69, 0x79, -0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x6f, 0x72, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, -0x6d, 0x61, 0x72, 0x20, 0x4f, 0x63, 0x68, 0x69, 0x6b, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, -0x70, 0x61, 0x72, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x67, 0x69, 0x20, 0x61, 0x63, 0x68, 0x69, 0x65, -0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x70, 0x61, 0x72, 0x20, 0x67, 0x69, 0x20, 0x61, 0x72, -0x69, 0x79, 0x6f, 0x3b, 0x43, 0x3b, 0x52, 0x3b, 0x44, 0x3b, 0x4e, 0x3b, 0x42, 0x3b, 0x55, 0x3b, 0x42, 0x3b, 0x42, 0x3b, -0x43, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, -0x49, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, -0x43, 0x75, 0x74, 0x3b, 0x4b, 0x1e6d, 0x75, 0x3b, 0x4e, 0x77, 0x61, 0x3b, 0x44, 0x75, 0x6a, 0x3b, 0x59, 0x65, 0x6e, 0x6e, -0x61, 0x79, 0x65, 0x72, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x49, -0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, -0x79, 0x75, 0x7a, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x75, 0x74, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x4b, 0x1e6d, -0x75, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x77, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x44, 0x75, 0x6a, 0x61, 0x6e, 0x62, 0x69, -0x72, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x194, 0x3b, 0x43, 0x3b, -0x4b, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x6c, 0x75, 0x61, -0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x6c, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, -0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, -0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, -0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x91c, 0x93e, 0x928, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, -0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x938, 0x3b, 0x90f, 0x92b, 0x94d, 0x930, -0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x907, 0x3b, 0x906, 0x917, 0x938, 0x94d, -0x925, 0x3b, 0x938, 0x947, 0x92c, 0x925, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x905, 0x916, 0x925, 0x92c, 0x930, 0x3b, 0x928, -0x92c, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x926, 0x93f, 0x938, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x91c, 0x3b, -0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x3b, 0x91c, 0x941, 0x3b, 0x906, 0x3b, 0x938, -0x947, 0x3b, 0x905, 0x3b, 0x928, 0x3b, 0x926, 0x93f, 0x3b, 0x456, 0x486, 0x430, 0x2de9, 0x487, 0x3b, 0x444, 0x435, 0x2de1, 0x487, 0x3b, -0x43c, 0x430, 0x2dec, 0x487, 0x3b, 0x430, 0x486, 0x43f, 0x2dec, 0x487, 0x3b, 0x43c, 0x430, 0xa675, 0x3b, 0x456, 0x486, 0xa64b, 0x2de9, 0x487, -0x3b, 0x456, 0x486, 0xa64b, 0x2de7, 0x487, 0x3b, 0x430, 0x486, 0x301, 0x475, 0x2de2, 0x487, 0x3b, 0x441, 0x435, 0x2deb, 0x487, 0x3b, 0x47b, -0x486, 0x43a, 0x2dee, 0x3b, 0x43d, 0x43e, 0x435, 0x2de8, 0x3b, 0x434, 0x435, 0x2de6, 0x487, 0x3b, 0x456, 0x486, 0x430, 0x43d, 0x43d, 0xa64b, -0x430, 0x301, 0x440, 0x457, 0x439, 0x3b, 0x444, 0x435, 0x432, 0x440, 0xa64b, 0x430, 0x301, 0x440, 0x457, 0x439, 0x3b, 0x43c, 0x430, 0x301, -0x440, 0x442, 0x44a, 0x3b, 0x430, 0x486, 0x43f, 0x440, 0x456, 0x301, 0x43b, 0x43b, 0x457, 0x439, 0x3b, 0x43c, 0x430, 0x301, 0x457, 0x439, -0x3b, 0x456, 0x486, 0xa64b, 0x301, 0x43d, 0x457, 0x439, 0x3b, 0x456, 0x486, 0xa64b, 0x301, 0x43b, 0x457, 0x439, 0x3b, 0x430, 0x486, 0x301, -0x475, 0x433, 0xa64b, 0x441, 0x442, 0x44a, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x439, 0x3b, 0x47b, -0x486, 0x43a, 0x442, 0x461, 0x301, 0x432, 0x440, 0x457, 0x439, 0x3b, 0x43d, 0x43e, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x439, 0x3b, -0x434, 0x435, 0x43a, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x439, 0x3b, 0x406, 0x486, 0x3b, 0x424, 0x3b, 0x41c, 0x3b, 0x410, 0x486, -0x3b, 0x41c, 0x3b, 0x406, 0x486, 0x3b, 0x406, 0x486, 0x3b, 0x410, 0x486, 0x3b, 0x421, 0x3b, 0x47a, 0x486, 0x3b, 0x41d, 0x3b, 0x414, -0x3b, 0x456, 0x486, 0x430, 0x43d, 0x43d, 0xa64b, 0x430, 0x301, 0x440, 0x457, 0x430, 0x3b, 0x444, 0x435, 0x432, 0x440, 0xa64b, 0x430, 0x301, -0x440, 0x457, 0x430, 0x3b, 0x43c, 0x430, 0x301, 0x440, 0x442, 0x430, 0x3b, 0x430, 0x486, 0x43f, 0x440, 0x456, 0x301, 0x43b, 0x43b, 0x457, -0x430, 0x3b, 0x43c, 0x430, 0x301, 0x457, 0x430, 0x3b, 0x456, 0x486, 0xa64b, 0x301, 0x43d, 0x457, 0x430, 0x3b, 0x456, 0x486, 0xa64b, 0x301, -0x43b, 0x457, 0x430, 0x3b, 0x430, 0x486, 0x301, 0x475, 0x433, 0xa64b, 0x441, 0x442, 0x430, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x301, -0x43c, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x47b, 0x486, 0x43a, 0x442, 0x461, 0x301, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x43d, 0x43e, 0x435, -0x301, 0x43c, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x43, 0x69, -0x6f, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x4c, 0x75, 0x73, 0x3b, 0x4d, 0x75, 0x75, 0x3b, 0x4c, 0x75, 0x6d, 0x3b, 0x4c, 0x75, -0x66, 0x3b, 0x4b, 0x61, 0x62, 0x3b, 0x4c, 0x75, 0x73, 0x68, 0x3b, 0x4c, 0x75, 0x74, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4b, -0x61, 0x73, 0x3b, 0x43, 0x69, 0x73, 0x3b, 0x43, 0x69, 0x6f, 0x6e, 0x67, 0x6f, 0x3b, 0x4c, 0xf9, 0x69, 0x73, 0x68, 0x69, -0x3b, 0x4c, 0x75, 0x73, 0xf2, 0x6c, 0x6f, 0x3b, 0x4d, 0xf9, 0x75, 0x79, 0xe0, 0x3b, 0x4c, 0x75, 0x6d, 0xf9, 0x6e, 0x67, -0xf9, 0x6c, 0xf9, 0x3b, 0x4c, 0x75, 0x66, 0x75, 0x69, 0x6d, 0x69, 0x3b, 0x4b, 0x61, 0x62, 0xe0, 0x6c, 0xe0, 0x73, 0x68, -0xec, 0x70, 0xf9, 0x3b, 0x4c, 0xf9, 0x73, 0x68, 0xec, 0x6b, 0xe0, 0x3b, 0x4c, 0x75, 0x74, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, -0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x67, 0xf9, 0x64, 0x69, 0x3b, 0x4b, 0x61, 0x73, 0x77, 0xe8, 0x6b, 0xe8, 0x73, 0xe8, 0x3b, -0x43, 0x69, 0x73, 0x77, 0xe0, 0x3b, 0x43, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, -0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0xe4, -0x65, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, -0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x4a, 0x61, -0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x65, 0x72, 0x7a, 0x3b, 0x41, -0x62, 0x72, 0xeb, 0x6c, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, -0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, -0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x65, 0x2e, 0x3b, 0x41, 0x62, -0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, -0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, -0x2e, 0x3b, 0x6e, 0xf9, 0x6d, 0x3b, 0x6b, 0x268, 0x7a, 0x3b, 0x74, 0x268, 0x64, 0x3b, 0x74, 0x61, 0x61, 0x3b, 0x73, 0x65, -0x65, 0x3b, 0x6e, 0x7a, 0x75, 0x3b, 0x64, 0x75, 0x6d, 0x3b, 0x66, 0x254, 0x65, 0x3b, 0x64, 0x7a, 0x75, 0x3b, 0x6c, 0x254, -0x6d, 0x3b, 0x6b, 0x61, 0x61, 0x3b, 0x66, 0x77, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6e, 0xf9, -0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6b, 0x197, 0x300, 0x7a, 0xf9, 0x294, 0x3b, 0x6e, 0x64, 0x7a, -0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197, 0x300, 0x64, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, -0x14b, 0x254, 0x300, 0x74, 0x1ce, 0x61, 0x66, 0x289, 0x304, 0x67, 0x68, 0x101, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0xe8, -0x73, 0xe8, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6e, 0x7a, 0xf9, 0x67, 0x68, 0xf2, 0x3b, 0x6e, -0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x64, 0xf9, 0x6d, 0x6c, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, -0x300, 0x6b, 0x77, 0xee, 0x66, 0x254, 0x300, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197, 0x300, -0x66, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x64, 0x7a, 0x75, 0x67, 0x68, 0xf9, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, -0x300, 0x67, 0x68, 0x1d4, 0x75, 0x77, 0x65, 0x6c, 0x254, 0x300, 0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, -0x63, 0x68, 0x77, 0x61, 0x294, 0xe0, 0x6b, 0x61, 0x61, 0x20, 0x77, 0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0xe8, -0x66, 0x77, 0xf2, 0x6f, 0x3b, 0x6e, 0x3b, 0x6b, 0x3b, 0x74, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6b, 0x3b, 0x66, -0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x63, 0x3b, 0x66, 0x3b, 0x6b, 0x254, 0x6e, 0x3b, 0x6d, 0x61, 0x63, 0x3b, 0x6d, 0x61, 0x74, -0x3b, 0x6d, 0x74, 0x6f, 0x3b, 0x6d, 0x70, 0x75, 0x3b, 0x68, 0x69, 0x6c, 0x3b, 0x6e, 0x6a, 0x65, 0x3b, 0x68, 0x69, 0x6b, -0x3b, 0x64, 0x69, 0x70, 0x3b, 0x62, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x6c, 0x69, 0x253, 0x3b, 0x4b, 0x254, 0x6e, -0x64, 0x254, 0x14b, 0x3b, 0x4d, 0xe0, 0x63, 0x25b, 0x302, 0x6c, 0x3b, 0x4d, 0xe0, 0x74, 0xf9, 0x6d, 0x62, 0x3b, 0x4d, 0xe0, -0x74, 0x6f, 0x70, 0x3b, 0x4d, 0x300, 0x70, 0x75, 0x79, 0x25b, 0x3b, 0x48, 0xec, 0x6c, 0xf2, 0x6e, 0x64, 0x25b, 0x300, 0x3b, -0x4e, 0x6a, 0xe8, 0x62, 0xe0, 0x3b, 0x48, 0xec, 0x6b, 0x61, 0x14b, 0x3b, 0x44, 0xec, 0x70, 0x254, 0x300, 0x73, 0x3b, 0x42, -0xec, 0xf2, 0xf4, 0x6d, 0x3b, 0x4d, 0xe0, 0x79, 0x25b, 0x73, 0xe8, 0x70, 0x3b, 0x4c, 0xec, 0x62, 0x75, 0x79, 0x20, 0x6c, -0x69, 0x20, 0x144, 0x79, 0xe8, 0x65, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x68, 0x3b, 0x6e, -0x3b, 0x68, 0x3b, 0x64, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x6c, 0x3b, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e, 0x3b, 0x73, -0x254, 0x14b, 0x3b, 0x64, 0x69, 0x253, 0x3b, 0x65, 0x6d, 0x69, 0x3b, 0x65, 0x73, 0x254, 0x3b, 0x6d, 0x61, 0x64, 0x3b, 0x64, -0x69, 0x14b, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x74, 0x69, 0x6e, 0x3b, 0x65, 0x6c, 0xe1, 0x3b, -0x64, 0x69, 0x6d, 0x254, 0x301, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e, 0x64, 0x25b, 0x3b, 0x73, 0x254, 0x14b, 0x25b, 0x3b, -0x64, 0x69, 0x253, 0xe1, 0x253, 0xe1, 0x3b, 0x65, 0x6d, 0x69, 0x61, 0x73, 0x65, 0x6c, 0x65, 0x3b, 0x65, 0x73, 0x254, 0x70, -0x25b, 0x73, 0x254, 0x70, 0x25b, 0x3b, 0x6d, 0x61, 0x64, 0x69, 0x253, 0x25b, 0x301, 0x64, 0xed, 0x253, 0x25b, 0x301, 0x3b, 0x64, -0x69, 0x14b, 0x67, 0x69, 0x6e, 0x64, 0x69, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x25b, 0x6b, 0x69, 0x3b, 0x6d, 0x61, 0x79, 0xe9, -0x73, 0x25b, 0x301, 0x3b, 0x74, 0x69, 0x6e, 0xed, 0x6e, 0xed, 0x3b, 0x65, 0x6c, 0xe1, 0x14b, 0x67, 0x25b, 0x301, 0x3b, 0x64, -0x3b, 0x14b, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x65, 0x3b, 0x65, 0x3b, 0x6d, 0x3b, 0x64, 0x3b, 0x6e, 0x3b, 0x6d, 0x3b, 0x74, -0x3b, 0x65, 0x3b, 0x53, 0x61, 0x3b, 0x46, 0x65, 0x3b, 0x4d, 0x61, 0x3b, 0x41, 0x62, 0x3b, 0x4d, 0x65, 0x3b, 0x53, 0x75, -0x3b, 0x53, 0xfa, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x3b, 0x4f, 0x6b, 0x3b, 0x4e, 0x6f, 0x3b, 0x44, 0x65, 0x3b, 0x53, -0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x46, 0xe9, 0x62, 0x69, 0x72, 0x69, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, -0x62, 0x75, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x65, 0x14b, 0x3b, 0x53, 0xfa, 0x75, 0x79, 0x65, -0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, -0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x61, 0x72, -0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x4f, -0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6e, 0x67, 0x6f, 0x3b, 0x6e, 0x67, 0x62, 0x3b, 0x6e, 0x67, 0x6c, 0x3b, 0x6e, 0x67, 0x6e, -0x3b, 0x6e, 0x67, 0x74, 0x3b, 0x6e, 0x67, 0x73, 0x3b, 0x6e, 0x67, 0x7a, 0x3b, 0x6e, 0x67, 0x6d, 0x3b, 0x6e, 0x67, 0x65, -0x3b, 0x6e, 0x67, 0x61, 0x3b, 0x6e, 0x67, 0x61, 0x64, 0x3b, 0x6e, 0x67, 0x61, 0x62, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, -0x6f, 0x73, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6c, 0xe1, -0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6e, 0x79, 0x69, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x74, -0xe1, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x73, 0x61, 0x6d, 0x259, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, -0x20, 0x7a, 0x61, 0x6d, 0x67, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6d, 0x77, 0x6f, 0x6d, 0x3b, -0x6e, 0x67, 0x254, 0x6e, 0x20, 0x65, 0x62, 0x75, 0x6c, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, -0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, 0x20, 0x64, 0x7a, 0x69, 0xe1, 0x3b, 0x6e, -0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, 0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6f, 0x3b, 0x62, 0x3b, -0x6c, 0x3b, 0x6e, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6d, 0x3b, 0x65, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x62, 0x3b, -0x14b, 0x31, 0x3b, 0x14b, 0x32, 0x3b, 0x14b, 0x33, 0x3b, 0x14b, 0x34, 0x3b, 0x14b, 0x35, 0x3b, 0x14b, 0x36, 0x3b, 0x14b, 0x37, -0x3b, 0x14b, 0x38, 0x3b, 0x14b, 0x39, 0x3b, 0x14b, 0x31, 0x30, 0x3b, 0x14b, 0x31, 0x31, 0x3b, 0x14b, 0x31, 0x32, 0x3b, 0x14b, -0x77, 0xed, 0xed, 0x20, 0x61, 0x20, 0x6e, 0x74, 0x254, 0x301, 0x6e, 0x74, 0x254, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, -0x6b, 0x1dd, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x72, 0xe1, 0xe1, -0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, -0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, -0x66, 0x254, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x62, 0x25b, 0x25b, 0x3b, -0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x72, 0x61, 0x61, 0x3b, 0x14b, 0x77, 0xed, 0xed, -0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, -0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x20, -0x64, 0x69, 0x20, 0x62, 0x254, 0x301, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, -0x6b, 0x20, 0x64, 0x69, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x4b, 0x77, 0x61, 0x3b, 0x55, 0x6e, 0x61, 0x3b, 0x52, 0x61, -0x72, 0x3b, 0x43, 0x68, 0x65, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x63, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, -0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4d, 0x6f, 0x6a, 0x3b, 0x59, 0x65, 0x6c, 0x3b, 0x4d, 0x77, -0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, -0x77, 0x6f, 0x20, 0x75, 0x6e, 0x61, 0x79, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, -0x75, 0x6e, 0x65, 0x72, 0x61, 0x72, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x65, -0x63, 0x68, 0x65, 0x73, 0x68, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x65, 0x74, -0x68, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x75, 0x20, -0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x63, 0x68, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x73, 0x61, -0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d, 0x77, 0x65, -0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, -0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, -0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, -0x20, 0x6e, 0x61, 0x20, 0x79, 0x65, 0x6c, 0x2019, 0x6c, 0x69, 0x3b, 0x4b, 0x3b, 0x55, 0x3b, 0x52, 0x3b, 0x43, 0x3b, 0x54, -0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x46, 0x4c, 0x4f, 0x3b, 0x43, -0x4c, 0x41, 0x3b, 0x43, 0x4b, 0x49, 0x3b, 0x46, 0x4d, 0x46, 0x3b, 0x4d, 0x41, 0x44, 0x3b, 0x4d, 0x42, 0x49, 0x3b, 0x4d, -0x4c, 0x49, 0x3b, 0x4d, 0x41, 0x4d, 0x3b, 0x46, 0x44, 0x45, 0x3b, 0x46, 0x4d, 0x55, 0x3b, 0x46, 0x47, 0x57, 0x3b, 0x46, -0x59, 0x55, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4c, 0x6f, 0x6f, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, 0x6c, 0x61, -0x14b, 0x6e, 0x65, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, 0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4d, -0x61, 0x72, 0x66, 0x6f, 0x6f, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x1dd, 0x75, 0x75, 0x74, 0x1dd, 0x62, 0x69, 0x6a, 0x61, 0x14b, -0x3b, 0x4d, 0x61, 0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x66, 0x61, 0x68, 0x62, 0x69, 0x69, 0x3b, 0x4d, 0x61, 0x6d, -0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x6c, 0x69, 0x69, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x6d, 0x62, 0x69, 0x69, 0x3b, 0x46, -0x129, 0x69, 0x20, 0x44, 0x1dd, 0x253, 0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4d, 0x75, 0x6e, 0x64, 0x61, 0x14b, -0x3b, 0x46, 0x129, 0x69, 0x20, 0x47, 0x77, 0x61, 0x68, 0x6c, 0x6c, 0x65, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x59, 0x75, 0x72, -0x75, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x46, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, -0x55, 0x3b, 0x57, 0x3b, 0x59, 0x3b, 0x6e, 0x67, 0x31, 0x3b, 0x6e, 0x67, 0x32, 0x3b, 0x6e, 0x67, 0x33, 0x3b, 0x6e, 0x67, -0x34, 0x3b, 0x6e, 0x67, 0x35, 0x3b, 0x6e, 0x67, 0x36, 0x3b, 0x6e, 0x67, 0x37, 0x3b, 0x6e, 0x67, 0x38, 0x3b, 0x6e, 0x67, -0x39, 0x3b, 0x6e, 0x67, 0x31, 0x30, 0x3b, 0x6e, 0x67, 0x31, 0x31, 0x3b, 0x6b, 0x72, 0x69, 0x73, 0x3b, 0x6e, 0x67, 0x77, -0x25b, 0x6e, 0x20, 0x6d, 0x61, 0x74, 0xe1, 0x68, 0x72, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6d, 0x62, -0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6c, 0x61, 0x6c, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, -0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x74, 0x61, 0x6e, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, -0x144, 0x74, 0x75, 0xf3, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x68, 0x25b, 0x6d, 0x62, 0x75, 0x25b, 0x72, 0xed, 0x3b, -0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x6c, 0x254, 0x6d, 0x62, 0x69, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x72, 0x25b, -0x62, 0x76, 0x75, 0xe2, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x77, 0x75, 0x6d, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, -0x20, 0x77, 0x75, 0x6d, 0x20, 0x6e, 0x61, 0x76, 0x1d4, 0x72, 0x3b, 0x6b, 0x72, 0xed, 0x73, 0x69, 0x6d, 0x69, 0x6e, 0x3b, -0x54, 0x69, 0x6f, 0x70, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331, 0x3b, 0x47, 0x75, 0x61, 0x6b, -0x3b, 0x44, 0x75, 0xe4, 0x3b, 0x4b, 0x6f, 0x72, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x54, 0x68, 0x6f, 0x6f, 0x3b, 0x54, 0x25b, -0x25b, 0x3b, 0x4c, 0x61, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, 0x69, 0x64, 0x3b, 0x54, 0x69, 0x6f, 0x70, 0x20, 0x74, -0x68, 0x61, 0x72, 0x20, 0x70, 0x25b, 0x74, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331, 0x14b, 0x3b, -0x47, 0x75, 0x61, 0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x74, 0x3b, 0x4b, 0x6f, 0x72, 0x6e, 0x79, 0x6f, 0x6f, 0x74, 0x3b, 0x50, -0x61, 0x79, 0x20, 0x79, 0x69, 0x65, 0x331, 0x74, 0x6e, 0x69, 0x3b, 0x54, 0x68, 0x6f, 0x331, 0x6f, 0x331, 0x72, 0x3b, 0x54, -0x25b, 0x25b, 0x72, 0x3b, 0x4c, 0x61, 0x61, 0x74, 0x68, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, 0x69, 0x6f, 0x331, 0x70, 0x20, -0x69, 0x6e, 0x20, 0x64, 0x69, 0x331, 0x69, 0x331, 0x74, 0x3b, 0x54, 0x3b, 0x50, 0x3b, 0x44, 0x3b, 0x47, 0x3b, 0x44, 0x3b, -0x4b, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x3b, 0x41e, -0x43b, 0x443, 0x43d, 0x3b, 0x41a, 0x43b, 0x43d, 0x3b, 0x41c, 0x441, 0x443, 0x3b, 0x42b, 0x430, 0x43c, 0x3b, 0x411, 0x44d, 0x441, 0x3b, -0x41e, 0x442, 0x439, 0x3b, 0x410, 0x442, 0x440, 0x3b, 0x411, 0x43b, 0x495, 0x3b, 0x410, 0x43b, 0x442, 0x3b, 0x421, 0x44d, 0x442, 0x3b, -0x410, 0x445, 0x441, 0x3b, 0x442, 0x43e, 0x445, 0x441, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b, 0x43e, 0x43b, 0x443, 0x43d, 0x43d, 0x44c, -0x443, 0x3b, 0x43a, 0x443, 0x43b, 0x443, 0x43d, 0x20, 0x442, 0x443, 0x442, 0x430, 0x440, 0x3b, 0x43c, 0x443, 0x443, 0x441, 0x20, 0x443, -0x441, 0x442, 0x430, 0x440, 0x3b, 0x44b, 0x430, 0x43c, 0x20, 0x44b, 0x439, 0x430, 0x3b, 0x431, 0x44d, 0x441, 0x20, 0x44b, 0x439, 0x430, -0x3b, 0x43e, 0x442, 0x20, 0x44b, 0x439, 0x430, 0x3b, 0x430, 0x442, 0x44b, 0x440, 0x434, 0x44c, 0x44b, 0x445, 0x20, 0x44b, 0x439, 0x430, -0x3b, 0x431, 0x430, 0x43b, 0x430, 0x495, 0x430, 0x43d, 0x20, 0x44b, 0x439, 0x430, 0x3b, 0x430, 0x43b, 0x442, 0x44b, 0x43d, 0x43d, 0x44c, -0x44b, 0x3b, 0x441, 0x44d, 0x442, 0x438, 0x43d, 0x43d, 0x44c, 0x438, 0x3b, 0x430, 0x445, 0x441, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, -0x422, 0x3b, 0x41e, 0x3b, 0x41a, 0x3b, 0x41c, 0x3b, 0x42b, 0x3b, 0x411, 0x3b, 0x41e, 0x3b, 0x410, 0x3b, 0x411, 0x3b, 0x410, 0x3b, -0x421, 0x3b, 0x410, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b, 0x41e, 0x43b, 0x443, 0x43d, 0x43d, 0x44c, -0x443, 0x3b, 0x41a, 0x443, 0x43b, 0x443, 0x43d, 0x20, 0x442, 0x443, 0x442, 0x430, 0x440, 0x3b, 0x41c, 0x443, 0x443, 0x441, 0x20, 0x443, -0x441, 0x442, 0x430, 0x440, 0x3b, 0x42b, 0x430, 0x43c, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x411, 0x44d, 0x441, 0x20, 0x44b, 0x439, -0x44b, 0x43d, 0x3b, 0x41e, 0x442, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x442, 0x44b, 0x440, 0x434, 0x44c, 0x44b, 0x445, 0x20, -0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x411, 0x430, 0x43b, 0x430, 0x495, 0x430, 0x43d, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x43b, -0x442, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x421, 0x44d, 0x442, 0x438, 0x43d, 0x43d, 0x44c, 0x438, 0x3b, 0x430, 0x445, 0x441, 0x44b, -0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x4d, 0x75, 0x70, 0x3b, 0x4d, 0x77, 0x69, 0x3b, 0x4d, 0x73, 0x68, 0x3b, 0x4d, 0x75, 0x6e, -0x3b, 0x4d, 0x61, 0x67, 0x3b, 0x4d, 0x75, 0x6a, 0x3b, 0x4d, 0x73, 0x70, 0x3b, 0x4d, 0x70, 0x67, 0x3b, 0x4d, 0x79, 0x65, -0x3b, 0x4d, 0x6f, 0x6b, 0x3b, 0x4d, 0x75, 0x73, 0x3b, 0x4d, 0x75, 0x68, 0x3b, 0x4d, 0x75, 0x70, 0x61, 0x6c, 0x61, 0x6e, -0x67, 0x75, 0x6c, 0x77, 0x61, 0x3b, 0x4d, 0x77, 0x69, 0x74, 0x6f, 0x70, 0x65, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x65, 0x6e, -0x64, 0x65, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x20, 0x4d, 0x61, -0x67, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x75, 0x6a, 0x69, 0x6d, 0x62, 0x69, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x69, 0x70, 0x65, -0x70, 0x6f, 0x3b, 0x4d, 0x75, 0x70, 0x75, 0x67, 0x75, 0x74, 0x6f, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x65, 0x6e, 0x73, 0x65, -0x3b, 0x4d, 0x6f, 0x6b, 0x68, 0x75, 0x3b, 0x4d, 0x75, 0x73, 0x6f, 0x6e, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x6d, 0x62, 0x77, -0x65, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0xa5a8, 0xa595, 0xa51e, 0x3b, 0xa552, 0xa561, 0x3b, 0xa57e, 0xa5ba, 0x3b, -0xa5a2, 0xa595, 0x3b, 0xa591, 0xa571, 0x3b, 0xa5b1, 0xa60b, 0x3b, 0xa5b1, 0xa55e, 0x3b, 0xa5db, 0xa515, 0x3b, 0xa562, 0xa54c, 0x3b, 0xa56d, 0xa583, -0x3b, 0xa51e, 0xa60b, 0x3b, 0xa5a8, 0xa595, 0xa5cf, 0x3b, 0xa5a8, 0xa595, 0x20, 0xa56a, 0xa574, 0x20, 0xa51e, 0xa500, 0xa56e, 0xa54a, 0x3b, 0xa552, -0xa561, 0xa59d, 0xa595, 0x3b, 0xa57e, 0xa5ba, 0x3b, 0xa5a2, 0xa595, 0x3b, 0xa591, 0xa571, 0x3b, 0xa5b1, 0xa60b, 0x3b, 0xa5b1, 0xa55e, 0xa524, 0x3b, -0xa5db, 0xa515, 0x3b, 0xa562, 0xa54c, 0x3b, 0xa56d, 0xa583, 0x3b, 0xa51e, 0xa60b, 0xa554, 0xa57f, 0x20, 0xa578, 0xa583, 0xa5cf, 0x3b, 0xa5a8, 0xa595, -0x20, 0xa56a, 0xa574, 0x20, 0xa5cf, 0xa5ba, 0xa56e, 0xa54a, 0x3b, 0x6c, 0x75, 0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6b, 0x65, 0x6d, 0xe3, -0x3b, 0x253, 0x61, 0x6e, 0x64, 0x61, 0x253, 0x75, 0x3b, 0x76, 0x254, 0x254, 0x3b, 0x66, 0x75, 0x6c, 0x75, 0x3b, 0x67, 0x6f, -0x6f, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x6b, 0x254, 0x6e, 0x64, 0x65, 0x3b, 0x73, 0x61, 0x61, 0x68, 0x3b, 0x67, 0x61, 0x6c, -0x6f, 0x3b, 0x6b, 0x65, 0x6e, 0x70, 0x6b, 0x61, 0x74, 0x6f, 0x20, 0x253, 0x6f, 0x6c, 0x6f, 0x6c, 0x254, 0x3b, 0x6c, 0x75, -0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6c, 0x254, 0x6d, 0x61, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x48, 0x6f, 0x72, 0x3b, 0x4d, 0xe4, -0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x42, 0x72, 0xe1, 0x3b, 0x48, 0x65, 0x69, 0x3b, 0xd6, 0x69, -0x67, 0x3b, 0x48, 0x65, 0x72, 0x3b, 0x57, 0xed, 0x6d, 0x3b, 0x57, 0x69, 0x6e, 0x3b, 0x43, 0x68, 0x72, 0x3b, 0x4a, 0x65, -0x6e, 0x6e, 0x65, 0x72, 0x3b, 0x48, 0x6f, 0x72, 0x6e, 0x69, 0x67, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x65, 0x3b, 0x41, 0x62, -0x72, 0x69, 0x6c, 0x6c, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x6a, 0x65, 0x3b, 0x42, 0x72, 0xe1, 0x10d, 0x65, 0x74, 0x3b, 0x48, -0x65, 0x69, 0x77, 0x65, 0x74, 0x3b, 0xd6, 0x69, 0x67, 0x161, 0x74, 0x65, 0x3b, 0x48, 0x65, 0x72, 0x62, 0x161, 0x74, 0x6d, -0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0xed, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, -0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x43, 0x68, 0x72, 0x69, 0x161, 0x74, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x4a, 0x3b, 0x48, -0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x42, 0x3b, 0x48, 0x3b, 0xd6, 0x3b, 0x48, 0x3b, 0x57, 0x3b, 0x57, 0x3b, 0x43, -0x3b, 0x6f, 0x2e, 0x31, 0x3b, 0x6f, 0x2e, 0x32, 0x3b, 0x6f, 0x2e, 0x33, 0x3b, 0x6f, 0x2e, 0x34, 0x3b, 0x6f, 0x2e, 0x35, -0x3b, 0x6f, 0x2e, 0x36, 0x3b, 0x6f, 0x2e, 0x37, 0x3b, 0x6f, 0x2e, 0x38, 0x3b, 0x6f, 0x2e, 0x39, 0x3b, 0x6f, 0x2e, 0x31, -0x30, 0x3b, 0x6f, 0x2e, 0x31, 0x31, 0x3b, 0x6f, 0x2e, 0x31, 0x32, 0x3b, 0x70, 0x69, 0x6b, 0xed, 0x74, 0xed, 0x6b, 0xed, -0x74, 0x69, 0x65, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0xed, 0x20, 0xfa, 0x20, 0x6b, 0x75, 0x74, 0xfa, 0x61, 0x6e, 0x3b, 0x73, -0x69, 0x25b, 0x79, 0x25b, 0x301, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x6e, 0x64, 0xed, 0x25b, -0x3b, 0x254, 0x6e, 0x73, 0xfa, 0x6d, 0x62, 0x254, 0x6c, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, -0x74, 0xe1, 0x74, 0xfa, 0x25b, 0x3b, 0x6d, 0x65, 0x73, 0x69, 0x14b, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, -0x6b, 0xe9, 0x6e, 0x69, 0x65, 0x3b, 0x65, 0x6e, 0x73, 0x69, 0x6c, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, -0x6b, 0xe1, 0x74, 0xe1, 0x6e, 0x75, 0x25b, 0x3b, 0x254, 0x73, 0x254, 0x6e, 0x3b, 0x65, 0x66, 0x75, 0x74, 0x65, 0x3b, 0x70, -0x69, 0x73, 0x75, 0x79, 0xfa, 0x3b, 0x69, 0x6d, 0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x254, 0x73, 0x3b, 0x69, 0x6d, -0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x74, 0xfa, 0x6b, 0x2c, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, -0x74, 0xed, 0x25b, 0x3b, 0x6d, 0x61, 0x6b, 0x61, 0x6e, 0x64, 0x69, 0x6b, 0x25b, 0x3b, 0x70, 0x69, 0x6c, 0x254, 0x6e, 0x64, -0x254, 0x301, 0x3b, 0x58, 0x69, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, -0x61, 0x79, 0x3b, 0x58, 0x75, 0x6e, 0x3b, 0x58, 0x6e, 0x74, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, -0x63, 0x68, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x41, 0x76, 0x69, 0x3b, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x66, 0x65, -0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, -0x79, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, -0x75, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x68, 0x6f, 0x62, 0x72, 0x65, 0x3b, -0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x61, 0x76, 0x69, 0x65, 0x6e, 0x74, 0x75, 0x3b, 0x58, 0x3b, 0x46, 0x3b, -0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x58, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x50, 0x3b, 0x41, 0x3b, -0x78, 0x69, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, -0x78, 0x75, 0x6e, 0x3b, 0x78, 0x6e, 0x74, 0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x63, 0x68, 0x3b, -0x70, 0x61, 0x79, 0x3b, 0x61, 0x76, 0x69, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x64, 0x65, -0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x64, 0x2019, -0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x79, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, -0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, 0x3b, 0x64, 0x2019, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x75, -0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x68, 0x6f, -0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x64, 0x2019, 0x61, 0x76, 0x69, -0x65, 0x6e, 0x74, 0x75, 0x3b, 0x4e, 0x64, 0x75, 0x14b, 0x6d, 0x62, 0x69, 0x20, 0x53, 0x61, 0x14b, 0x3b, 0x50, 0x25b, 0x73, -0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x70, 0xe1, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x74, 0xe1, -0x74, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x6b, 0x77, 0x61, 0x3b, 0x50, 0x25b, -0x73, 0x61, 0x14b, 0x20, 0x50, 0x61, 0x74, 0x61, 0x61, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, -0x25b, 0x301, 0x6e, 0x74, 0xfa, 0x6b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x53, 0x61, 0x61, 0x6d, 0x62, 0xe1, -0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x66, 0x254, 0x6d, 0x3b, 0x50, 0x25b, 0x73, -0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x70, 0x66, 0xfa, 0xa78b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, -0x20, 0x4e, 0x25b, 0x67, 0x25b, 0x301, 0x6d, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254, 0x30c, 0x70, -0x6d, 0x254, 0x301, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254, 0x30c, 0x70, 0x70, 0xe1, 0x3b, 0x70, -0x61, 0x6d, 0x62, 0x61, 0x3b, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6d, 0x62, 0x69, 0x79, 0x254, 0x20, 0x6d, 0x25b, 0x6e, -0x64, 0x6f, 0x14b, 0x67, 0x254, 0x3b, 0x4e, 0x79, 0x254, 0x6c, 0x254, 0x6d, 0x62, 0x254, 0x14b, 0x67, 0x254, 0x3b, 0x4d, 0x254, -0x6e, 0x254, 0x20, 0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4e, 0x79, 0x61, 0x14b, 0x67, 0x77, 0x25b, 0x20, 0x14b, -0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x75, 0x14b, 0x67, 0x77, 0x25b, 0x3b, 0x66, 0x25b, 0x3b, 0x6e, 0x6a, 0x61, -0x70, 0x69, 0x3b, 0x6e, 0x79, 0x75, 0x6b, 0x75, 0x6c, 0x3b, 0x31, 0x31, 0x3b, 0x253, 0x75, 0x6c, 0x253, 0x75, 0x73, 0x25b, -0x3b, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9, 0x62, 0xec, 0x3b, -0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, -0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69, 0x6d, 0x259, 0x67, -0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64, 0xf9, 0x6d, 0x62, -0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69, 0x6d, 0x259, 0x67, -0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b, 0x69, 0x6d, 0x259, -0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64, 0x3b, 0x69, 0x6d, -0x259, 0x67, 0x20, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9, 0x62, -0xec, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d, 0x259, -0x67, 0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69, 0x6d, -0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64, 0xf9, -0x6d, 0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69, 0x6d, -0x259, 0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b, 0x69, -0x6d, 0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64, 0x3b, -0x4d, 0x31, 0x3b, 0x41, 0x32, 0x3b, 0x4d, 0x33, 0x3b, 0x4e, 0x34, 0x3b, 0x46, 0x35, 0x3b, 0x49, 0x36, 0x3b, 0x41, 0x37, -0x3b, 0x49, 0x38, 0x3b, 0x4b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x73, 0x61, 0x14b, 0x20, -0x74, 0x73, 0x65, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0xf9, 0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6b, 0xe0, 0x67, -0x20, 0x6e, 0x67, 0x77, 0xf3, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0x65, 0x70, 0x79, 0xe8, 0x20, 0x73, 0x68, 0xfa, -0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, -0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x6a, 0xff, 0x6f, 0x6c, 0xe1, 0x2bc, 0x3b, 0x73, 0x61, 0x14b, 0x20, -0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x14b, 0x3b, 0x73, 0x61, -0x14b, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x67, 0x77, 0x254, 0x300, 0x2bc, 0x20, 0x6d, -0x62, 0xff, 0x25b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0xe0, 0x14b, 0x61, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0xe1, 0x2bc, -0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6d, 0x65, 0x6a, 0x77, 0x6f, 0x14b, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0xf9, 0x6d, -0x3b, 0x57, 0x69, 0xf3, 0x74, 0x68, 0x65, 0x21f, 0x69, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x68, 0x69, 0x79, 0xf3, -0x21f, 0x65, 0x79, 0x75, 0x14b, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x49, 0x161, 0x74, 0xe1, 0x77, 0x69, 0x10d, 0x68, 0x61, -0x79, 0x61, 0x7a, 0x61, 0x14b, 0x20, 0x57, 0xed, 0x3b, 0x50, 0x21f, 0x65, 0x17e, 0xed, 0x74, 0x21f, 0x6f, 0x20, 0x57, 0xed, -0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x74, 0x21f, 0x6f, 0x20, 0x57, 0xed, 0x3b, 0x57, 0xed, 0x70, 0x61, -0x7a, 0x75, 0x6b, 0x21f, 0x61, 0x2d, 0x77, 0x61, 0x161, 0x74, 0xe9, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x70, -0x21f, 0xe1, 0x73, 0x61, 0x70, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x57, 0x61, 0x73, 0xfa, 0x74, 0x21f, 0x75, 0x14b, 0x20, 0x57, -0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x1e7, 0x69, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, -0x77, 0xe1, 0x70, 0x65, 0x2d, 0x6b, 0x61, 0x73, 0x6e, 0xe1, 0x20, 0x57, 0xed, 0x3b, 0x57, 0x61, 0x6e, 0xed, 0x79, 0x65, -0x74, 0x75, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x21f, 0x61, 0x68, 0xe9, 0x6b, 0x61, 0x70, 0x161, 0x75, 0x14b, 0x20, 0x57, 0xed, -0x3b, 0x6a9, 0x627, 0x646, 0x648, 0x648, 0x646, 0x6cc, 0x20, 0x62f, 0x648, 0x648, 0x6d5, 0x645, 0x3b, 0x634, 0x648, 0x628, 0x627, 0x62a, -0x3b, 0x626, 0x627, 0x632, 0x627, 0x631, 0x3b, 0x646, 0x6cc, 0x633, 0x627, 0x646, 0x3b, 0x626, 0x627, 0x6cc, 0x627, 0x631, 0x3b, 0x62d, -0x648, 0x632, 0x6d5, 0x6cc, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x6d5, 0x645, 0x648, 0x648, 0x632, 0x3b, 0x626, 0x627, 0x628, 0x3b, 0x626, -0x6d5, 0x6cc, 0x644, 0x648, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x6cc, 0x646, 0x6cc, 0x20, 0x6cc, 0x6d5, 0x6a9, 0x6d5, 0x645, 0x3b, -0x62a, 0x634, 0x631, 0x6cc, 0x646, 0x6cc, 0x20, 0x62f, 0x648, 0x648, 0x6d5, 0x645, 0x3b, 0x6a9, 0x627, 0x646, 0x648, 0x646, 0x6cc, 0x20, -0x6cc, 0x6d5, 0x6a9, 0x6d5, 0x645, 0x3b, 0x6a9, 0x3b, 0x634, 0x3b, 0x626, 0x3b, 0x646, 0x3b, 0x626, 0x3b, 0x62d, 0x3b, 0x62a, 0x3b, -0x626, 0x3b, 0x626, 0x3b, 0x62a, 0x3b, 0x62a, 0x3b, 0x6a9, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x11b, -0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x77, -0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, -0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x3b, 0x61, 0x70, -0x72, 0x79, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, -0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, -0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, -0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x11b, 0x72, 0x2e, 0x3b, 0x61, 0x70, -0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x77, -0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x77, 0x2e, 0x3b, 0x64, 0x65, -0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x61, 0x3b, -0x6d, 0x11b, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x6a, 0x75, -0x6e, 0x69, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x61, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, -0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, -0x77, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, -0x66, 0x65, 0x62, 0x3b, 0x6d, 0x11b, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x65, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, -0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x77, 0x3b, -0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, -0x11b, 0x72, 0x63, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x3b, 0x6d, 0x65, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, -0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, -0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x65, 0x72, -0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, -0x6d, 0x11b, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x65, 0x6a, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, -0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x77, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, -0x6e, 0x6f, 0x77, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x66, 0x65, -0x62, 0x72, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x61, 0x3b, -0x6d, 0x65, 0x6a, 0x65, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x61, 0x3b, 0x61, -0x77, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, -0x6f, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, -0x72, 0x61, 0x3b, 0x72, 0x61, 0x67, 0x3b, 0x77, 0x61, 0x73, 0x3b, 0x70, 0x16b, 0x6c, 0x3b, 0x73, 0x61, 0x6b, 0x3b, 0x7a, -0x61, 0x6c, 0x3b, 0x73, 0x12b, 0x6d, 0x3b, 0x6c, 0x12b, 0x70, 0x3b, 0x64, 0x61, 0x67, 0x3b, 0x73, 0x69, 0x6c, 0x3b, 0x73, -0x70, 0x61, 0x3b, 0x6c, 0x61, 0x70, 0x3b, 0x73, 0x61, 0x6c, 0x3b, 0x72, 0x61, 0x67, 0x73, 0x3b, 0x77, 0x61, 0x73, 0x73, -0x61, 0x72, 0x69, 0x6e, 0x73, 0x3b, 0x70, 0x16b, 0x6c, 0x69, 0x73, 0x3b, 0x73, 0x61, 0x6b, 0x6b, 0x69, 0x73, 0x3b, 0x7a, -0x61, 0x6c, 0x6c, 0x61, 0x77, 0x73, 0x3b, 0x73, 0x12b, 0x6d, 0x65, 0x6e, 0x69, 0x73, 0x3b, 0x6c, 0x12b, 0x70, 0x61, 0x3b, -0x64, 0x61, 0x67, 0x67, 0x69, 0x73, 0x3b, 0x73, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x73, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x6c, -0x69, 0x6e, 0x73, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x16b, 0x74, 0x69, 0x73, 0x3b, 0x73, 0x61, 0x6c, 0x6c, 0x61, 0x77, -0x73, 0x3b, 0x52, 0x3b, 0x57, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x5a, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x44, 0x3b, 0x53, 0x3b, -0x53, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x75, 0x111, 0x69, 0x76, 0x3b, 0x6b, 0x75, 0x6f, 0x76, 0xe2, 0x3b, 0x6e, 0x6a, 0x75, -0x68, 0x10d, 0xe2, 0x3b, 0x63, 0x75, 0xe1, 0x14b, 0x75, 0x69, 0x3b, 0x76, 0x79, 0x65, 0x73, 0x69, 0x3b, 0x6b, 0x65, 0x73, -0x69, 0x3b, 0x73, 0x79, 0x65, 0x69, 0x6e, 0x69, 0x3b, 0x70, 0x6f, 0x72, 0x67, 0x65, 0x3b, 0x10d, 0x6f, 0x68, 0x10d, 0xe2, -0x3b, 0x72, 0x6f, 0x6f, 0x76, 0x76, 0xe2, 0x64, 0x3b, 0x73, 0x6b, 0x61, 0x6d, 0x6d, 0xe2, 0x3b, 0x6a, 0x75, 0x6f, 0x76, -0x6c, 0xe2, 0x3b, 0x75, 0x111, 0x111, 0xe2, 0x69, 0x76, 0x65, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6b, 0x75, 0x6f, 0x76, -0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6e, 0x6a, 0x75, 0x68, 0x10d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x63, -0x75, 0xe1, 0x14b, 0x75, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x76, 0x79, 0x65, 0x73, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, -0x75, 0x3b, 0x6b, 0x65, 0x73, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x73, 0x79, 0x65, 0x69, 0x6e, 0x69, 0x6d, 0xe1, -0xe1, 0x6e, 0x75, 0x3b, 0x70, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x10d, 0x6f, 0x68, 0x10d, 0xe2, -0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x72, 0x6f, 0x6f, 0x76, 0x76, 0xe2, 0x64, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x73, -0x6b, 0x61, 0x6d, 0x6d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0xe2, 0x6d, 0xe1, 0xe1, -0x6e, 0x75, 0x3b, 0x55, 0x3b, 0x4b, 0x3b, 0x4e, 0x4a, 0x3b, 0x43, 0x3b, 0x56, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x50, 0x3b, -0x10c, 0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x62c, 0x627, 0x646, 0x6a4, 0x6cc, 0x6d5, 0x3b, 0x641, 0x626, 0x6a4, 0x631, 0x6cc, -0x6d5, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x6a4, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x6cc, 0x3b, 0x62c, 0x648, 0x659, -0x623, 0x646, 0x3b, 0x62c, 0x648, 0x659, 0x644, 0x627, 0x3b, 0x622, 0x6af, 0x648, 0x633, 0x62a, 0x3b, 0x633, 0x626, 0x67e, 0x62a, 0x627, -0x645, 0x631, 0x3b, 0x626, 0x648, 0x6a9, 0x62a, 0x648, 0x6a4, 0x631, 0x3b, 0x646, 0x648, 0x6a4, 0x627, 0x645, 0x631, 0x3b, 0x62f, 0x626, -0x633, 0x627, 0x645, 0x631, 0x3b, 0x45, 0x6e, 0x3b, 0x50, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, -0x4d, 0x61, 0x79, 0x3b, 0x48, 0x75, 0x6e, 0x3b, 0x48, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, -0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x50, 0x65, 0x62, -0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x6f, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, -0x6f, 0x3b, 0x48, 0x75, 0x6e, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6c, 0x79, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, -0x3b, 0x53, 0x65, 0x74, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, -0x6f, 0x62, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x73, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, -0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x48, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, -0x3b, 0x44, 0x3b -}; - static const ushort days_data[] = { 0x53, 0x75, 0x6e, 0x3b, 0x4d, 0x6f, 0x6e, 0x3b, 0x54, 0x75, 0x65, 0x3b, 0x57, 0x65, 0x64, 0x3b, 0x54, 0x68, 0x75, 0x3b, 0x46, 0x72, 0x69, 0x3b, 0x53, 0x61, 0x74, 0x3b, 0x53, 0x75, 0x6e, 0x64, 0x61, 0x79, 0x3b, 0x4d, 0x6f, 0x6e, 0x64, 0x61, diff --git a/src/corelib/text/qlocale_p.h b/src/corelib/text/qlocale_p.h index 37afb8542b..5ebed9b385 100644 --- a/src/corelib/text/qlocale_p.h +++ b/src/corelib/text/qlocale_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Copyright (C) 2016 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** @@ -57,6 +57,7 @@ #include "QtCore/qvarlengtharray.h" #include "QtCore/qvariant.h" #include "QtCore/qnumeric.h" +#include #include "qlocale.h" @@ -171,9 +172,14 @@ Q_DECLARE_TYPEINFO(QLocaleId, Q_PRIMITIVE_TYPE); struct QLocaleData { public: + // TODO: Remove this? static const QLocaleData *findLocaleData(QLocale::Language language, QLocale::Script script, QLocale::Country country); + // Having an offset of current locale, enables us to have multiple sources of data, i.e. user-provided calendar locales + static uint findLocaleOffset(QLocale::Language language, + QLocale::Script script, + QLocale::Country country); static const QLocaleData *c(); // Maximum number of significant digits needed to represent a double. @@ -297,12 +303,6 @@ public: quint16 m_long_date_format_idx, m_long_date_format_size; quint16 m_short_time_format_idx, m_short_time_format_size; quint16 m_long_time_format_idx, m_long_time_format_size; - quint16 m_standalone_short_month_names_idx, m_standalone_short_month_names_size; - quint16 m_standalone_long_month_names_idx, m_standalone_long_month_names_size; - quint16 m_standalone_narrow_month_names_idx, m_standalone_narrow_month_names_size; - quint16 m_short_month_names_idx, m_short_month_names_size; - quint16 m_long_month_names_idx, m_long_month_names_size; - quint16 m_narrow_month_names_idx, m_narrow_month_names_size; quint16 m_standalone_short_day_names_idx, m_standalone_short_day_names_size; quint16 m_standalone_long_day_names_idx, m_standalone_long_day_names_size; quint16 m_standalone_narrow_day_names_idx, m_standalone_narrow_day_names_size; @@ -328,22 +328,23 @@ public: quint16 m_weekend_end : 3; }; -class Q_CORE_EXPORT QLocalePrivate +class Q_CORE_EXPORT QLocalePrivate // A POD type { public: static QLocalePrivate *create( - const QLocaleData *data, + const QLocaleData *data, const uint data_offset = 0, QLocale::NumberOptions numberOptions = QLocale::DefaultNumberOptions) { - QLocalePrivate *retval = new QLocalePrivate; + auto *retval = new QLocalePrivate; retval->m_data = data; retval->ref.storeRelaxed(0); + retval->m_data_offset = data_offset; retval->m_numberOptions = numberOptions; return retval; } static QLocalePrivate *get(QLocale &l) { return l.d; } - static const QLocalePrivate *get(const QLocale &l) { return l.d; } + static const QLocalePrivate *get(const QLocale &l) { return l.d; } QChar decimal() const { return QChar(m_data->m_decimal); } QChar group() const { return QChar(m_data->m_group); } @@ -374,12 +375,9 @@ public: QLocale::MeasurementSystem measurementSystem() const; - QString dateTimeToString(QStringView format, const QDateTime &datetime, - const QDate &dateOnly, const QTime &timeOnly, - const QLocale *q) const; - const QLocaleData *m_data; QBasicAtomicInt ref; + uint m_data_offset; QLocale::NumberOptions m_numberOptions; }; @@ -392,7 +390,7 @@ inline QLocalePrivate *QSharedDataPointer::clone() { // cannot use QLocalePrivate's copy constructor // since it is deleted in C++11 - return QLocalePrivate::create(d->m_data, d->m_numberOptions); + return QLocalePrivate::create(d->m_data, d->m_data_offset, d->m_numberOptions); } inline char QLocaleData::digitToCLocale(QChar in) const diff --git a/src/corelib/time/qcalendar.cpp b/src/corelib/time/qcalendar.cpp new file mode 100644 index 0000000000..06dd1c671f --- /dev/null +++ b/src/corelib/time/qcalendar.cpp @@ -0,0 +1,1060 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qcalendar.h" +#include "qcalendarbackend_p.h" +#include "qgregoriancalendar_p.h" + +#include "qdatetime.h" +#include "qcalendarmath_p.h" +#include +#include + +#include + +QT_BEGIN_NAMESPACE + +namespace { + +struct CalendarName : public QString +{ + CalendarName(const QString &name) : QString(name) {} +}; + +inline bool operator==(const CalendarName &u, const CalendarName &v) +{ + return u.compare(v, Qt::CaseInsensitive) == 0; +} + +inline uint qHash(const CalendarName &key, uint seed = 0) noexcept +{ + return qHash(key.toLower(), seed); +} + +struct Registry { + std::vector byId; + QHash byName; + QCalendarBackend *gregorianCalendar = nullptr; + bool populated = false; + + Registry() + { + byId.resize(int(QCalendar::System::Last) + 1); + } + + ~Registry() + { + qDeleteAll(byId); + } + + bool registerName(QCalendarBackend *calendar, const QString &name) + { + if (byName.find(name) != byName.end()) { + qWarning() << "Calendar name" << name + << "is already taken, new calendar will not be registered."; + return false; + } + byName.insert(name, calendar); + return true; + } + void addCalendar(QCalendarBackend *calendar, const QString &name, QCalendar::System id) + { + if (!registerName(calendar, name)) + return; + Q_ASSERT(byId.size() >= size_t(id)); + if (id == QCalendar::System::User) { + byId.push_back(calendar); + } else { + Q_ASSERT(byId.at(size_t(id)) == nullptr); + byId[size_t(id)] = calendar; + } + if (id == QCalendar::System::Gregorian) { + Q_ASSERT(!gregorianCalendar); + gregorianCalendar = calendar; + } + } + /* + \internal + Ensures each enum-available calendar has been instantiated. + + This arranges for each to register itself by name; it only does anything on + its first call, which ensures that name-based lookups can always find all + the calendars available via the enum. + */ + void populate() + { + if (populated) + return; + + for (int i = 0; i <= int(QCalendar::System::Last); ++i) + (void)QCalendar(QCalendar::System(i)); + } +}; + +} + +Q_GLOBAL_STATIC(Registry, calendarRegistry); + + +/*! + \since 5.14 + + \class QCalendarBackend + \inmodule QtCore + \reentrant + \brief The QCalendarBackend class provides basic calendaring functions. + + QCalendarBackend provides the base class on which all calendar types are + implemented. On construction, the backend is registered with its primary + name. + + A backend may also be registered with aliases, where the calendar is known + by several names. Registering with the name used by CLDR (the Unicode + consortium's Common Locale Data Repository) is recommended, particularly + when interacting with third-party software. Once a backend is registered for + a name, QCalendar can be constructed using that name to select the backend. + + Each calendar backend must inherit from QCalendarBackend and implement its + pure virtual methods. It may also override some other virtual methods, as + needed. + + Most backends are pure code, with no data elements. Such backends should + normally be implemented as singletons. For a backend to be added to the + QCalendar::System enum, it should be such a singleton, with a case in + QCalendar::fromEnum()'s switch statement to instantiate it. + + Non-singleton calendar backends should ensure that each instance is created + with a distinct primary name. Later instances attempting to register with a + name already in use shall fail to register and be unavailable to QCalendar, + hence unusable. + + \sa registerAlias(), QDate, QDateTime, QDateEdit, QDateTimeEdit, QCalendarWidget +*/ + +/*! + Constructs the calendar and registers it. +*/ +QCalendarBackend::QCalendarBackend(const QString &name, QCalendar::System id) +{ + calendarRegistry->addCalendar(this, name, id); +} + +/*! + Destroys the calendar. + + Never call this from user code. Each calendar backend, once instantiated, + shall exist for the lifetime of the program. Its destruction is taken care + of by destruction of the registry of calendar backends and their names. +*/ +QCalendarBackend::~QCalendarBackend() +{ +} + +/*! + The calendar system of this calendar. + + Each calendar backend constructible from the QCalendar::System enum should + return the member of that enum that produces it. Other calendars should + return User. + + \sa QCalendar::fromEnum() +*/ +QCalendar::System QCalendarBackend::calendarSystem() const +{ + return QCalendar::System::User; +} + +/*! + The primary name of this calendar. + */ +QString QCalendar::name() const +{ + return d ? d->name() : QString(); +} + +// date queries +/*! + \fn int QCalendarBackend::daysInMonth(int month, int year) const + + Returns number of days in the month number \a month, in year \a year. + + An implementation should return 0 if the given year had no such month. If + year is QCalendar::Unspecified, return the usual number of days for the + month, in those years that include it. + + Calendars with intercallary days may represent these as extra days of the + preceding month, or as short months separate from the usual ones. In the + former case, daysInMonth(month, year) should be the number of ordinary days + in the month, although \c{isDateValid(year, month, day)} might return \c true for + some larger values of \c day. + + \sa daysInYear(), monthsInYear(), minDaysInMonth(), maxDaysInMonth() +*/ + +// properties of the calendar + +/*! + \fn bool QCalendarBackend::isLeapYear(int year) const + + Returns \c true if the specified \a year is a leap year for this calendar. + + \sa daysInYear(), isDateValid() +*/ + +/*! + \fn bool QCalendarBackend::isLunar() const + + Returns \c true if this calendar is a lunar calendar. Otherwise returns \c + false. + + A lunar calendar is a calendar based upon the monthly cycles of the Moon's + phases (synodic months). This contrasts with solar calendars, whose annual + cycles are based only upon the solar year. + + \sa isLuniSolar(), isSolar(), isProleptic() +*/ + +/*! + \fn bool QCalendarBackend::isLuniSolar() const + + Returns \c true if this calendar is a lunisolar calendar. Otherwise returns + \c false. + + A lunisolar calendar is a calendar whose date indicates both the moon phase + and the time of the solar year. + + \sa isLunar(), isSolar(), isProleptic() +*/ + +/*! + \fn bool QCalendarBackend::isSolar() const + + Returns \c true if this calendar is a solar calendar. Otherwise returns + \c false. + + A solar calendar is a calendar whose dates indicate the season or almost + equivalently the apparent position of the sun relative to the fixed stars. + The Gregorian calendar, widely accepted as standard in the world, + is an example of solar calendar. + + \sa isLuniSolar(), isLunar(), isProleptic() +*/ + +/*! + Returns the total number of days in the year number \a year. + Returns zero if there is no such year in this calendar. + + This base implementation returns 366 for leap years and 365 for ordinary + years. + + \sa monthsInYear(), daysInMonth(), isLeapYear() +*/ +int QCalendarBackend::daysInYear(int year) const +{ + return monthsInYear(year) ? isLeapYear(year) ? 366 : 365 : 0; +} + +/*! + Returns the total number of months in the year number \a year. + Returns zero if there is no such year in this calendar. + + This base implementation returns 12 for any valid year. + + \sa daysInYear(), maxMonthsInYear(), isDateValid() +*/ +int QCalendarBackend::monthsInYear(int year) const +{ + return year > 0 || (year < 0 ? isProleptic() : hasYearZero()) ? 12 : 0; +} + +/*! + Returns \c true if the date specified by \a year, \a month, and \a day is + valid for this calendar; otherwise returns \c false. For example, + the date 2018-04-19 is valid for the Gregorian calendar, but 2018-16-19 and + 2018-04-38 are invalid. + + Calendars with intercallary days may represent these as extra days of the + preceding month or as short months separate from the usual ones. In the + former case, a \a day value greater than \c{daysInMonth(\a{month}, + \a{year})} may be valid. + + \sa daysInMonth(), monthsInYear() +*/ +bool QCalendarBackend::isDateValid(int year, int month, int day) const +{ + return day > 0 && day <= daysInMonth(month, year); +} + +/*! + Returns \c true if this calendar is a proleptic calendar. Otherwise returns + \c false. + + A proleptic calendar results from allowing negative year numbers to indicate + years before the nominal start of the calendar system. + + \sa isLuniSolar(), isSolar(), isLunar(), hasYearZero() +*/ + +bool QCalendarBackend::isProleptic() const +{ + return true; +} + +/*! + Returns \c true if year number \c 0 is considered a valid year in this + calendar. Otherwise returns \c false. + + \sa isDateValid(), isProleptic() +*/ + +bool QCalendarBackend::hasYearZero() const +{ + return false; +} + +/*! + Returns the maximum number of days in a month for any year. + + This base implementation returns 31, as this is a common case. + + For calendars with intercallary days, although daysInMonth() doesn't include + the intercallary days in its count for an individual month, maxDaysInMonth() + should include intercallary days, so that it is the maximum value of \c day + for which \c{isDateValid(year, month, day)} can be true. + + \sa maxMonthsInYear(), daysInMonth() +*/ +int QCalendarBackend::maxDaysInMonth() const +{ + return 31; +} + +/*! + Returns the minimum number of days in any valid month of any valid year. + + This base implementation returns 29, as this is a common case. + + \sa maxMonthsInYear(), daysInMonth() +*/ +int QCalendarBackend::minDaysInMonth() const +{ + return 29; +} + +/*! + Returns the maximum number of months possible in any year. + + This base implementation returns 12, as this is a common case. + + \sa maxDaysInMonth(), monthsInYear() +*/ +int QCalendarBackend::maxMonthsInYear() const +{ + return 12; +} + +// Julian day number calculations + +/*! + \fn bool dateToJulianDay(int year, int month, int day, qint64 *jd) const + + Computes the Julian day number corresponding to the specified \a year, \a + month, and \a day. Returns true and sets \a jd if there is such a date in + this calendar; otherwise, returns false. + + \sa QCalendar::partsFromDate(), julianDayToDate() +*/ + +/*! + \fn QCalendar::YearMonthDay julianDayToDate(qint64 jd) const + + Computes the year, month, and day in this calendar for the given Julian day + number \a jd. If the given day falls outside this calendar's scope + (e.g. before the start-date of a non-proleptic calendar), the returned + structure's isValid() is false; otherwise, its year, month, and day fields + provide this calendar's description of the date. + + \sa QCalendar::dateFromParts(), dateToJulianDay() +*/ + +/*! + Returns the day of the week for a given Julian Day Number. + + This is 1 for Monday through 7 for Sunday. + + Calendars with intercallary days may return larger values for these + intercallary days. They should avoid using 0 for any special purpose (it is + already used in QDate::dayOfWeek() to mean an invalid date). The calendar + should treat the numbers used as an \c enum, whose values need not be + contiguous, nor need they follow closely from the 1 through 7 of the usual + returns. It suffices that weekDayName() can recognize each such number as + identifying a distinct name, that it returns to identify the particular + intercallary day. + + This base implementation uses the day-numbering that various calendars have + borrowed off the Hebrew calendar. + + \sa weekDayName(), standaloneWeekDayName(), QDate::dayOfWeek() + */ +int QCalendarBackend::dayOfWeek(qint64 jd) const +{ + return QRoundingDown::qMod(jd, 7) + 1; +} + +// Month and week-day name look-ups (implemented in qlocale.cpp): +/*! + \fn QString QCalendarBackend::monthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const + + Returns the name of the specified \a month in the given \a year for the chosen + \a locale, using the given \a format to determine how complete the name is. + + If \a year is Unspecified, return the name for the month that usually has this + number within a typical year. Calendars with a leap month that isn't always + the last may need to take account of the year to map the month number to the + particular year's month with that number. + + \note Backends for which CLDR provides data can configure the default + implementation of the two month name look-up methods by arranging for + localeMonthIndexData() and localeMonthData() to provide access to the CLDR + data (see cldr2qlocalexml.py, qlocalexml2cpp.py and existing backends). + Conversely, backends that override both month name look-up methods need not + return anything meaningful from localeMonthIndexData() or localeMonthData(). + + \sa standaloneMonthName(), QLocale::monthName() +*/ + +/*! + \fn QString QCalendarBackend::standaloneMonthName(const QLocale &locale, int month, int year + QLocale::FormatType format) const + + Returns the standalone name of the specified \a month in the chosen \a locale, + using the specified \a format to determine how complete the name is. + + If \a year is Unspecified, return the standalone name for the month that + usually has this number within a typical year. Calendars with a leap month + that isn't always the last may need to take account of the year to map the + month number to the particular year's month with that number. + + \sa monthName(), QLocale::standaloneMonthName() +*/ + +/*! + \fn QString QCalendarBackend::weekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const + + Returns the name of the specified \a day of the week in the chosen \a locale, + using the specified \a format to determine how complete the name is. + + The base implementation handles \a day values from 1 to 7 using the day names + CLDR provides, which are suitable for calendards that use the same + (Hebrew-derived) week as the Gregorian calendar. + + Calendars whose dayOfWeek() returns a value outside the range from 1 to 7 need + to reimplement this method to handle such extra week-day values. They can + assume that \a day is a value returned by the same calendar's dayOfWeek(). + + \sa dayOfWeek(), standaloneWeekDayName(), QLocale::dayName() +*/ + +/*! + \fn QString QCalendarBackend::standaloneWeekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const + + Returns the standalone name of the specified \a day of the week in the chosen + \a locale, using the specified \a format to determine how complete the name + is. + + The base implementation handles \a day values from 1 to 7 using the standalone + day names CLDR provides, which are suitable for calendards that use the same + (Hebrew-derived) week as the Gregorian calendar. + + Calendars whose dayOfWeek() returns a value outside the range from 1 to 7 need + to reimplement this method to handle such extra week-day values. They can + assume that \a day is a value returned by the same calendar's dayOfWeek(). + + \sa dayOfWeek(), weekDayName(), QLocale::standaloneDayName() +*/ + +/*! + \fn QString QCalendarBackend::dateTimeToString(QStringView format, const QDateTime &datetime, + const QDate &dateOnly, const QTime &timeOnly, + const QLocale &locale) const + + Returns a string representing a given date, time or date-time. + + If \a datetime is specified and valid, it is used and both date and time + format tokens are converted to appropriate representations of the parts of the + datetime. Otherwise, if \a dateOnly is valid, only date format tokens are + converted; else, if \a timeOnly is valid, only time format tokens are + converted. If none are valid, an empty string is returned. + + The specified \a locale influences how some format tokens are converted; for + example, when substituting day and month names and their short-forms. For the + supported formatting tokens, see QDate::toString() and QTime::toString(). As + described above, the provided date, time and date-time determine which of + these tokens are recognized: where these appear in \a format they are replaced + by data. Any text in \a format not recognized as a format token is copied + verbatim into the result string. + + \sa QDate::toString(), QTime::toString(), QDateTime::toString() +*/ +// End of methods implemented in qlocale.cpp + +/*! + Returns a list of names of the available calendar systems. Any + QCalendarBackend sub-class must be registered before being exposed to Date + and Time APIs. + + \sa registerCalendar(), fromName() +*/ +QStringList QCalendarBackend::availableCalendars() +{ + if (calendarRegistry.isDestroyed()) + return {}; + calendarRegistry->populate(); + return QStringList(calendarRegistry->byName.keyBegin(), calendarRegistry->byName.keyEnd()); +} + +/*! + Registers an alias for this calendar backend. Once a backend is registered, + its name will be included in the list of available calendars and the + calendar can be instantiated by name. + + Returns \c false if the given \a name is already in use, otherwise it + registers this calendar backend and returns \c true. + + \sa availableCalendars(), fromName() +*/ +bool QCalendarBackend::registerAlias(const QString &name) +{ + if (calendarRegistry.isDestroyed()) + return false; + return calendarRegistry->registerName(this, name); +} + +/*! + Returns a pointer to a named calendar backend. + + If the given \a name is present in availableCalendars(), the backend matching + it is returned; otherwise, \c nullptr is returned. Matching of names ignores + case. Note that this won't provoke construction of a calendar backend, it will + only return ones that have been instantiated (and not yet destroyed) by some + other means. However, calendars available via the QCalendar::System enum are + always registered when this is called. + + \sa availableCalendars(), registerCalendar(), fromEnum() +*/ +const QCalendarBackend *QCalendarBackend::fromName(QStringView name) +{ + if (calendarRegistry.isDestroyed()) + return nullptr; + calendarRegistry->populate(); + auto it = calendarRegistry->byName.find(name.toString()); + return it == calendarRegistry->byName.end() ? nullptr : *it; +} + +/*! + \overload + */ +const QCalendarBackend *QCalendarBackend::fromName(QLatin1String name) +{ + if (calendarRegistry.isDestroyed()) + return nullptr; + calendarRegistry->populate(); + auto it = calendarRegistry->byName.find(QString(name)); + return it == calendarRegistry->byName.end() ? nullptr : *it; +} + +/*! + Returns a pointer to a calendar backend, specified by enum. + + This will instantiate the indicated calendar (which will enable fromName() to + return it subsequently), but only for the Qt-supported calendars for which + (where relevant) the appropriate feature has been enabled. +*/ +const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) +{ + if (calendarRegistry.isDestroyed() || system == QCalendar::System::User) + return nullptr; + Q_ASSERT(calendarRegistry->byId.size() >= size_t(system)); + if (auto *c = calendarRegistry->byId.at(size_t(system))) + return c; + switch (system) { + case QCalendar::System::Gregorian: + return new QGregorianCalendar; + case QCalendar::System::User: + Q_UNREACHABLE(); + } + return nullptr; +} + +/*! + \since 5.14 + + \class QCalendar + \inmodule QtCore + \reentrant + \brief The QCalendar class describes calendar systems. + + A QCalendar object maps a year, month, and day-number to a specific day + (ultimately identified by its Julian day number), using the rules of a + particular system. + + The default QCalendar() is a proleptic Gregorian calendar, which has no year + zero. Other calendars may be supported by enabling suitable features or + loading plugins. Calendars supported as features can be constructed by passing + the QCalendar::System enumeration to the constructor. All supported calendars + may be constructed by name, once they have been constructed. (Thus plugins + instantiate their calendar backend to register it.) Built-in backends, + accessible via QCalendar::System, are also always available by name. + + A QCalendar value is immutable. + + \sa QCalendarBackend, QDate, QDateTime +*/ + +/*! + \enum QCalendar::System + + This enumerated type is used to specify a choice of calendar system. + + \value Gregorian The default calendar, used internationally. + + \sa QCalendar +*/ + +/*! + \fn QCalendar::QCalendar() + \fn QCalendar::QCalendar(QCalendar::System system) + \fn QCalendar::QCalendar(QLatin1String name) + \fn QCalendar::QCalendar(QStringView name) + + Constructs a calendar object. + + The choice of calendar to use may be indicated as \a system, using the + enumeration QCalendar::System, or by \a name, using a string (either Unicode + or Latin 1). Construction by name may depend on an instance of the given + calendar being constructed by other means first. With no argument, the default + constructor returns the Gregorian calendar. + + \sa QCalendar, System +*/ + +QCalendar::QCalendar() + : d(nullptr) +{ + if (calendarRegistry.isDestroyed()) + return; + d = calendarRegistry->gregorianCalendar; + if (!d) + d = new QGregorianCalendar; +} + +QCalendar::QCalendar(QCalendar::System system) + : d(QCalendarBackend::fromEnum(system)) {} + +QCalendar::QCalendar(QLatin1String name) + : d(QCalendarBackend::fromName(name)) {} + +QCalendar::QCalendar(QStringView name) + : d(QCalendarBackend::fromName(name)) {} + +// Date queries: + +/*! + Returns the number of days in the given \a month of the given \a year. + + Months are numbered consecutively, starting with 1 for the first month of each + year. + + \sa maxDaysInMonth(), minDaysInMonth() +*/ +int QCalendar::daysInMonth(int month, int year) const +{ + return d ? d->daysInMonth(month, year) : 0; +} + +/*! + Returns the number of days in the given \a year. +*/ +int QCalendar::daysInYear(int year) const +{ + return d ? d->daysInYear(year) : 0; +} + +/*! + Returns the number of months in the given \a year. +*/ +int QCalendar::monthsInYear(int year) const +{ + return d ? d->monthsInYear(year) : 0; +} + +/*! + Returns \c true precisely if the given \a year, \a month, and \a day specify a + valid date in this calendar. + + Usually this means 1 <= month <= monthsInYear(year) and 1 <= day <= + daysInMonth(month, year). However, calendars with intercallary days or months + may complicate that. +*/ +bool QCalendar::isDateValid(int year, int month, int day) const +{ + return d && d->isDateValid(year, month, day); +} + +// properties of the calendar + +/*! + Returns \c true if this calendar object is the Gregorian calendar object + used as default calendar by other Qt APIs, e.g. in QDate. +*/ +bool QCalendar::isGregorian() const +{ + Q_ASSERT(!calendarRegistry.isDestroyed()); + return d == calendarRegistry->gregorianCalendar; +} + +/*! + Returns \c true if the given year is a leap year. + + Since the year is not a whole number of days long, some years are longer than + others. The difference may be a whole month or just a single day; the details + vary between calendars. + + \sa isDateValid() +*/ +bool QCalendar::isLeapYear(int year) const +{ + return d && d->isLeapYear(year); +} + +/*! + Returns \c true if this calendar is a lunar calendar. + + A lunar calendar is one based primarily on the phases of the moon. +*/ +bool QCalendar::isLunar() const +{ + return d && d->isLunar(); +} + +/*! + Returns \c true if this calendar is luni-solar. + + A luni-solar calendar expresses the phases of the moon but adapts itself to + also keep track of the Sun's varying position in the sky, relative to the + fixed stars. +*/ +bool QCalendar::isLuniSolar() const +{ + return d && d->isLuniSolar(); +} + +/*! + Returns \c true if this calendar is solar. + + A solar calendar is based primaril on the Sun's varying position in the sky, + relative to the fixed stars. +*/ +bool QCalendar::isSolar() const +{ + return d && d->isSolar(); +} + +/*! + Returns \c true if this calendar is proleptic. + + A proleptic calendar is able to describe years arbitrarily long before its + first. These are represented by negative year numbers and possibly by a year + zero. + + \sa hasYearZero() +*/ +bool QCalendar::isProleptic() const +{ + return d && d->isProleptic(); +} + +/*! + Returns \c true if this calendar has a year zero. + + A non-proleptic calendar with no year zero represents years from its first + year onwards but provides no way to describe years before its first; such a + calendar has no year zero and is not proleptic. + + A calendar which represents years before its first may number these years + simply by following the usual integer counting, so that the year before the + first is year zero, with negative-numbered years preceding this; such a + calendar is proleptic and has a year zero. A calendar might also have a year + zero (for example, the year of some great event, with subsequent years being + the first year after that event, the second year after, and so on) without + describing years before its year zero. Such a calendar would have a year zero + without being proleptic. + + Some calendars, however, represent years before their first by an alternate + numbering; for example, the proleptic Gregorian calendar's first year is 1 CE + and the year before it is 1 BCE, preceded by 2 BCE and so on. In this case, + we use negative year numbers, with year -1 as the year before year 1, year -2 + as the year before year -1 and so on. Such a calendar is proleptic but has no + year zero. + + \sa isProleptic() +*/ +bool QCalendar::hasYearZero() const +{ + return d && d->hasYearZero(); +} + +/*! + Returns the number of days in the longest month in the calendar, in any year. + + \sa daysInMonth(), minDaysInMonth() +*/ +int QCalendar::maxDaysInMonth() const +{ + return d ? d->maxDaysInMonth() : 0; +} + +/*! + Returns the number of days in the shortest month in the calendar, in any year. + + \sa daysInMonth(), maxDaysInMonth() +*/ +int QCalendar::minDaysInMonth() const +{ + return d ? d->minDaysInMonth() : 0; +} + +/*! + Returns the largest number of months that any year may contain. + + \sa monthName(), standaloneMonthName(), monthsInYear() +*/ +int QCalendar::maxMonthsInYear() const +{ + return d ? d->maxMonthsInYear() : 0; +} + +// Julian Day conversions: + +/*! + \fn QDate QCalendar::dateFromParts(int year, int month, int day) const + \fn QDate QCalendar::dateFromParts(QCalendar::YearMonthDay parts) const + + Converts a year, month, and day to a QDate. + + The \a year, \a month, and \a day may be passed as separate numbers or + packaged together as the members of \a parts. Returns a QDate with the given + year, month, and day of the month in this calendar, if there is one. + Otherwise, including the case where any of the values is + QCalendar::Unspecified, returns a QDate whose isNull() is true. + + \sa isDateValid(), partsFromDate() +*/ +QDate QCalendar::dateFromParts(int year, int month, int day) const +{ + qint64 jd; + return d && d->dateToJulianDay(year, month, day, &jd) + ? QDate::fromJulianDay(jd) : QDate(); +} + +QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const +{ + return parts.isValid() ? dateFromParts(parts.year, parts.month, parts.day) : QDate(); +} + +/*! + Converts a QDate to a year, month, and day of the month. + + The returned structure's isValid() shall be false if the calendar is unable + to represent the given \a date. Otherwise its \a year, \a month, and \a day + members record the so-named parts of its representation. + + \sa dateFromParts(), isProleptic(), hasYearZero() +*/ +QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const +{ + return d ? d->julianDayToDate(date.toJulianDay()) : YearMonthDay(); +} + +/*! + Returns the day of the week number for the given \a date. + + Returns zero if the calendar is unable to represent the indicated date. + Returns 1 for Monday through 7 for Sunday. Calendars with intercallary days + may use other numbers to represent these. + + \sa partsFromDate(), Qt::DayOfWeek +*/ +int QCalendar::dayOfWeek(QDate date) const +{ + return d ? d->dayOfWeek(date.toJulianDay()) : 0; +} + +// Locale data access + +/*! + Returns a suitably localised name for a month. + + The month is indicated by a number, with \a month = 1 meaning the first month + of the year and subsequent months numbered accordingly. Returns an empty + string if the \a month number is unrecognized. + + The \a year may be Unspecified, in which case the mapping from numbers to + names for a typical year's months should be used. Some calendars have leap + months that aren't always at the end of the year; their mapping of month + numbers to names may then depend on the placement of a leap month. Thus the + year should normally be specified, if known. + + The name is returned in the form that would normally be used in a full date, + in the specified \a locale; the \a format determines how fully it shall be + expressed (i.e. to what extent it is abbreviated). + + \sa standaloneMonthName(), maxMonthsInYear(), dateTimeString() +*/ +QString QCalendar::monthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const +{ + const int maxMonth = year == Unspecified ? maxMonthsInYear() : monthsInYear(year); + if (!d || month < 1 || month > maxMonth) + return QString(); + + return d->monthName(locale, month, year, format); +} + +/*! + Returns a suitably localised standalone name for a month. + + The month is indicated by a number, with \a month = 1 meaning the first month + of the year and subsequent months numbered accordingly. Returns an empty + string if the \a month number is unrecognized. + + The \a year may be Unspecified, in which case the mapping from numbers to + names for a typical year's months should be used. Some calendars have leap + months that aren't always at the end of the year; their mapping of month + numbers to names may then depend on the placement of a leap month. Thus the + year should normally be specified, if known. + + The name is returned in the form that would be used in isolation in the + specified \a locale; the \a format determines how fully it shall be expressed + (i.e. to what extent it is abbreviated). + + \sa monthName(), maxMonthsInYear(), dateTimeString() +*/ +QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const +{ + const int maxMonth = year == Unspecified ? maxMonthsInYear() : monthsInYear(year); + if (!d || month < 1 || month > maxMonth) + return QString(); + + return d->standaloneMonthName(locale, month, year, format); +} + +/*! + Returns a suitably localised name for a day of the week. + + The days of the week are numbered from 1 for Monday through 7 for Sunday. Some + calendars may support higher numbers for other days (e.g. intercallary days, + that are not part of any week). Returns an empty string if the \a day number + is unrecognized. + + The name is returned in the form that would normally be used in a full date, + in the specified \a locale; the \a format determines how fully it shall be + expressed (i.e. to what extent it is abbreviated). + + \sa standaloneWeekDayName(), dayOfWeek() +*/ +QString QCalendar::weekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const +{ + return d ? d->weekDayName(locale, day, format) : QString(); +} + +/*! + Returns a suitably localised standalone name for a day of the week. + + The days of the week are numbered from 1 for Monday through 7 for Sunday. Some + calendars may support higher numbers for other days (e.g. intercallary days, + that are not part of any week). Returns an empty string if the \a day number + is unrecognized. + + The name is returned in the form that would be used in isolation (for example + as a column heading in a calendar's tabular display of a month with successive + weeks as rows) in the specified \a locale; the \a format determines how fully + it shall be expressed (i.e. to what extent it is abbreviated). + + \sa weekDayName(), dayOfWeek() +*/ +QString QCalendar::standaloneWeekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const +{ + return d ? d->standaloneWeekDayName(locale, day, format) : QString(); +} + +/*! + Returns a string representing a given date, time or date-time. + + If \a datetime is valid, it is represented and format specifiers for both date + and time fields are recognized; otherwise, if \a dateOnly is valid, it is + represented and only format specifiers for date fields are recognized; + finally, if \a timeOnly is valid, it is represented and only format specifiers + for time fields are recognized. If none of these is valid, an empty string is + returned. + + See QDate::toString and QTime::toString() for the supported field specifiers. + Characters in \a format that are recognized as field specifiers are replaced + by text representing appropriate data from the date and/or time being + represented. The texts to represent them may depend on the \a locale + specified. Other charagers in \a format are copied verbatim into the returned + string. + + \sa monthName(), weekDayName(), QDate::toString(), QTime::toString() +*/ +QString QCalendar::dateTimeToString(QStringView format, const QDateTime &datetime, + const QDate &dateOnly, const QTime &timeOnly, + const QLocale &locale) const +{ + return d ? d->dateTimeToString(format, datetime, dateOnly, timeOnly, locale) : QString(); +} + +/*! + Returns a list of names of the available calendar systems. + + These may be supplied by plugins or other code linked into an application, + in addition to the ones provided by Qt, some of which are controlled by + features. +*/ +QStringList QCalendar::availableCalendars() +{ + return QCalendarBackend::availableCalendars(); +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qcalendar.h b/src/corelib/time/qcalendar.h new file mode 100644 index 0000000000..1f85647cab --- /dev/null +++ b/src/corelib/time/qcalendar.h @@ -0,0 +1,174 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QCALENDAR_H +#define QCALENDAR_H + +#include + +#include +#include +#include +#include + +/* Suggested enum names for other calendars known to CLDR (v33.1) + + Not yet implemented - see QCalendar::System - contributions welcome: + + * Buddhist -- Thai Buddhist, to be specific + * Chinese + * Coptic + * Dangi -- Korean + * Ethiopic (Amete Mihret - epoch approx. 8 C.E.) + * EthiopicAmeteAlem (Amete Alem - epoch approx. 5493 B.C.E; data from + type="ethiopic-amete-alem", an alias for type="ethioaa") + * Hebrew + * Indian -- National + * Islamic -- Based on astronomical observations, not predictions, so hard to + implement. CLDR's data for type="islamic" apply, unless overridden, to the + other Islamic calendar variants. + * IslamicTabular -- tabular, astronomical epoch, CLDR type="islamic-tbla" + * Saudi -- Saudi Arabia, sighting; CLDR type="islamic-rgsa" + * UmmAlQura -- Umm al-Qura, Saudi Arabia, calculated; CLDR type="islamic-umalqura" + * Iso8601 -- as Gregorian, but treating ISO 8601 weeks as "months" + * Japanese -- Imperial calendar + * Minguo -- Republic of China, Taiwan; CLDR type="roc" + + See: + http://www.unicode.org/repos/cldr/tags/latest/common/bcp47/calendar.xml + + These can potentially be supported, as features, using CLDR's data; any + others shall need hand-crafted localization data; it would probably be best + to do that by contributing data for them to CLDR. +*/ + +QT_BEGIN_NAMESPACE + +class QCalendarBackend; +class QDate; + +class Q_CORE_EXPORT QCalendar +{ + Q_GADGET +public: + // (Extra parentheses to suppress bogus reading of min() as a macro.) + enum : int { Unspecified = (std::numeric_limits::min)() }; + struct YearMonthDay + { + YearMonthDay() = default; + YearMonthDay(int y, int m = 1, int d = 1) : year(y), month(m), day(d) {} + + bool isValid() const + { return month != Unspecified && day != Unspecified; } + // (The first year supported by QDate has year == Unspecified.) + + int year = Unspecified; + int month = Unspecified; + int day = Unspecified; + }; + // Feature (\w+)calendar uses CLDR type="\1" data, except as noted in type="..." comments below + enum class System { + Gregorian, // CLDR: type = "gregory", alias = "gregorian" + Last = Gregorian, + User = -1 + }; + // New entries must be added to the \enum doc in qcalendar.cpp and + // handled in QCalendar::fromEnum() + Q_ENUM(System) + + explicit QCalendar(); // Gregorian, optimised + explicit QCalendar(System system); + explicit QCalendar(QLatin1String name); + explicit QCalendar(QStringView name); + + // QCalendar is a trivially copyable value type. + bool isValid() { return d != nullptr; } + + // Date queries: + int daysInMonth(int month, int year = Unspecified) const; + int daysInYear(int year) const; + int monthsInYear(int year) const; + bool isDateValid(int year, int month, int day) const; + + // Leap years: + bool isLeapYear(int year) const; + + // Properties of the calendar: + bool isGregorian() const; + bool isLunar() const; + bool isLuniSolar() const; + bool isSolar() const; + bool isProleptic() const; + bool hasYearZero() const; + int maxDaysInMonth() const; + int minDaysInMonth() const; + int maxMonthsInYear() const; + QString name() const; + + // QDate conversions: + QDate dateFromParts(int year, int month, int day) const; + QDate dateFromParts(const YearMonthDay &parts) const; + YearMonthDay partsFromDate(QDate date) const; + int dayOfWeek(QDate date) const; + + // Month and week-day names (as in QLocale): + QString monthName(const QLocale &locale, int month, int year = Unspecified, + QLocale::FormatType format=QLocale::LongFormat) const; + QString standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, + QLocale::FormatType format = QLocale::LongFormat) const; + QString weekDayName(const QLocale &locale, int day, + QLocale::FormatType format = QLocale::LongFormat) const; + QString standaloneWeekDayName(const QLocale &locale, int day, + QLocale::FormatType format=QLocale::LongFormat) const; + + // Formatting of date-times: + QString dateTimeToString(QStringView format, const QDateTime &datetime, + const QDate &dateOnly, const QTime &timeOnly, + const QLocale &locale) const; + + // What's available ? + static QStringList availableCalendars(); +private: + // Always supplied by QCalendarBackend and expected to be a singleton + const QCalendarBackend *d; +}; + +QT_END_NAMESPACE + +#endif // QCALENDAR_H diff --git a/src/corelib/time/qcalendarbackend_p.h b/src/corelib/time/qcalendarbackend_p.h new file mode 100644 index 0000000000..12db8928ca --- /dev/null +++ b/src/corelib/time/qcalendarbackend_p.h @@ -0,0 +1,144 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QCALENDAR_BACKEND_P_H +#define QCALENDAR_BACKEND_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include +#include +#include +#include + +QT_BEGIN_NAMESPACE + +// Locale-related parts, mostly handled in ../text/qlocale.cpp +struct QLocaleDataEntry { + quint16 index, size; +}; + +struct QCalendarLocale { + quint16 m_language_id, m_script_id, m_country_id; + // Month name indexes: + QLocaleDataEntry m_standalone_short; + QLocaleDataEntry m_standalone_long; + QLocaleDataEntry m_standalone_narrow; + QLocaleDataEntry m_short; + QLocaleDataEntry m_long; + QLocaleDataEntry m_narrow; +}; + +// Partial implementation, of methods with common forms, in qcalendar.cpp +class Q_CORE_EXPORT QCalendarBackend +{ + friend class QCalendar; +public: + virtual ~QCalendarBackend(); + virtual QString name() const = 0; + virtual QCalendar::System calendarSystem() const; + // Date queries: + virtual int daysInMonth(int month, int year = QCalendar::Unspecified) const = 0; + virtual int daysInYear(int year) const; + virtual int monthsInYear(int year) const; + virtual bool isDateValid(int year, int month, int day) const; + // Properties of the calendar: + virtual bool isLeapYear(int year) const = 0; + virtual bool isLunar() const = 0; + virtual bool isLuniSolar() const = 0; + virtual bool isSolar() const = 0; + virtual bool isProleptic() const; + virtual bool hasYearZero() const; + virtual int maxDaysInMonth() const; + virtual int minDaysInMonth() const; + virtual int maxMonthsInYear() const; + // Julian Day conversions: + virtual bool dateToJulianDay(int year, int month, int day, qint64 *jd) const = 0; + virtual QCalendar::YearMonthDay julianDayToDate(qint64 jd) const = 0; + // Day of week and week numbering: + virtual int dayOfWeek(qint64 jd) const; + + // Names of months and week-days (implemented in qlocale.cpp): + virtual QString monthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const; + virtual QString standaloneMonthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const; + virtual QString weekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const; + virtual QString standaloneWeekDayName(const QLocale &locale, int day, + QLocale::FormatType format) const; + + // Formatting of date-times (implemented in qlocale.cpp): + virtual QString dateTimeToString(QStringView format, const QDateTime &datetime, + const QDate &dateOnly, const QTime &timeOnly, + const QLocale &locale) const; + + // Calendar enumeration by name: + static QStringList availableCalendars(); + +protected: + QCalendarBackend(const QString &name, QCalendar::System id = QCalendar::System::User); + + // Locale support: + virtual const QCalendarLocale *localeMonthIndexData() const = 0; + virtual const ushort *localeMonthData() const = 0; + + bool registerAlias(const QString &name); + +private: + // QCalendar's access to its registry: + static const QCalendarBackend *fromName(QStringView name); + static const QCalendarBackend *fromName(QLatin1String name); + // QCalendar's access to singletons: + static const QCalendarBackend *fromEnum(QCalendar::System system); +}; + +QT_END_NAMESPACE + +#endif // QCALENDAR_BACKEND_P_H diff --git a/src/corelib/time/qcalendarmath_p.h b/src/corelib/time/qcalendarmath_p.h new file mode 100644 index 0000000000..61c2c5d2b5 --- /dev/null +++ b/src/corelib/time/qcalendarmath_p.h @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QCALENDARMATH_P_H +#define QCALENDARMATH_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of q*calendar.cpp. This header file may change from version to version +// without notice, or even be removed. +// +// We mean it. +// + +#include + +QT_BEGIN_NAMESPACE + +namespace QRoundingDown { +/* + Division, rounding down (rather than towards zero). + + From C++11 onwards, integer division is defined to round towards zero, so we + can rely on that when implementing this. This is only used with denominator b + > 0, so we only have to treat negative numerator, a, specially. +*/ + +template constexpr Int qDiv(Int a, unsigned b) +{ return (a - (a < 0 ? int(b - 1) : 0)) / int(b); } + +template constexpr Int qMod(Int a, unsigned b) +{ return a - qDiv(a, b) * b; } + +} // QRoundingDown + +QT_END_NAMESPACE + +#endif // QCALENDARMATH_P_H diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index ecc7e85610..020eac6dec 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -73,6 +73,8 @@ #include #endif +#include "qcalendar.h" + QT_BEGIN_NAMESPACE /***************************************************************************** @@ -94,78 +96,13 @@ enum { QDate static helper functions *****************************************************************************/ -static inline QDate fixedDate(int y, int m, int d) -{ - QDate result(y, m, 1); - result.setDate(y, m, qMin(d, result.daysInMonth())); - return result; -} - -/* - Division, rounding down (rather than towards zero). - - From C++11 onwards, integer division is defined to round towards zero, so we - can rely on that when implementing this. This is only used with denominator b - > 0, so we only have to treat negative numerator, a, specially. - */ -static inline qint64 floordiv(qint64 a, int b) +static inline QDate fixedDate(QCalendar::YearMonthDay &&parts, QCalendar cal) { - return (a - (a < 0 ? b - 1 : 0)) / b; -} - -static inline int floordiv(int a, int b) -{ - return (a - (a < 0 ? b - 1 : 0)) / b; -} - -static inline qint64 julianDayFromDate(int year, int month, int day) -{ - // Adjust for no year 0 - if (year < 0) - ++year; - -/* - * Math from The Calendar FAQ at http://www.tondering.dk/claus/cal/julperiod.php - * This formula is correct for all julian days, when using mathematical integer - * division (round to negative infinity), not c++11 integer division (round to zero) - */ - int a = floordiv(14 - month, 12); - qint64 y = (qint64)year + 4800 - a; - int m = month + 12 * a - 3; - return day + floordiv(153 * m + 2, 5) + 365 * y + floordiv(y, 4) - floordiv(y, 100) + floordiv(y, 400) - 32045; -} - -struct ParsedDate -{ - int year, month, day; -}; - -// prevent this function from being inlined into all 10 users -Q_NEVER_INLINE -static ParsedDate getDateFromJulianDay(qint64 julianDay) -{ -/* - * Math from The Calendar FAQ at http://www.tondering.dk/claus/cal/julperiod.php - * This formula is correct for all julian days, when using mathematical integer - * division (round to negative infinity), not c++11 integer division (round to zero) - */ - qint64 a = julianDay + 32044; - qint64 b = floordiv(4 * a + 3, 146097); - int c = a - floordiv(146097 * b, 4); - - int d = floordiv(4 * c + 3, 1461); - int e = c - floordiv(1461 * d, 4); - int m = floordiv(5 * e + 2, 153); - - int day = e - floordiv(153 * m + 2, 5) + 1; - int month = m + 3 - 12 * floordiv(m, 10); - int year = 100 * b + d - 4800 + floordiv(m, 10); - - // Adjust for no year 0 - if (year <= 0) - --year ; + if ((parts.year < 0 && !cal.isProleptic()) || (parts.year == 0 && !cal.hasYearZero())) + return QDate(); - return { year, month, day }; + parts.day = qMin(parts.day, cal.daysInMonth(parts.month, parts.year)); + return cal.dateFromParts(parts); } /***************************************************************************** @@ -189,7 +126,7 @@ static int qt_monthNumberFromShortName(QStringRef shortName) static int qt_monthNumberFromShortName(const QString &shortName) { return qt_monthNumberFromShortName(QStringRef(&shortName)); } -static int fromShortMonthName(const QStringRef &monthName) +static int fromShortMonthName(const QStringRef &monthName, int year) { // Assume that English monthnames are the default int month = qt_monthNumberFromShortName(monthName); @@ -197,7 +134,7 @@ static int fromShortMonthName(const QStringRef &monthName) return month; // If English names can't be found, search the localized ones for (int i = 1; i <= 12; ++i) { - if (monthName == QLocale::system().monthName(i, QLocale::ShortFormat)) + if (monthName == QCalendar().monthName(QLocale::system(), i, year, QLocale::ShortFormat)) return i; } return -1; @@ -303,12 +240,6 @@ static int fromOffsetString(const QStringRef &offsetString, bool *valid) noexcep } #endif // datestring -static constexpr int daysInUsualMonth(int month) // (February isn't usual.) -{ - // Long if odd up to July = 7, or if even from 8 = August onwards: - return Q_ASSERT(month != 2 && month > 0 && month <= 12), 30 | ((month & 1) ^ (month >> 3)); -} - /***************************************************************************** QDate member functions *****************************************************************************/ @@ -385,7 +316,7 @@ static constexpr int daysInUsualMonth(int month) // (February isn't usual.) for technical reasons limited to between -784350574879 and 784354017364, which means from before 2 billion BCE to after 2 billion CE. - \sa QTime, QDateTime, QDateTime::YearRange, QDateEdit, QDateTimeEdit, QCalendarWidget + \sa QTime, QDateTime, QCalendar, QDateTime::YearRange, QDateEdit, QDateTimeEdit, QCalendarWidget */ /*! @@ -399,19 +330,23 @@ static constexpr int daysInUsualMonth(int month) // (February isn't usual.) /*! Constructs a date with year \a y, month \a m and day \a d. - If the specified date is invalid, the date is not set and - isValid() returns \c false. + The date is understood in terms of the Gregorian calendar. If the specified + date is invalid, the date is not set and isValid() returns \c false. \warning Years 1 to 99 are interpreted as is. Year 0 is invalid. - \sa isValid() + \sa isValid(), QCalendar::dateFromParts() */ QDate::QDate(int y, int m, int d) { - setDate(y, m, d); + *this = QCalendar().dateFromParts(y, m, d); } +QDate::QDate(int y, int m, int d, QCalendar cal) +{ + *this = cal.dateFromParts(y, m, d); +} /*! \fn bool QDate::isNull() const @@ -429,29 +364,56 @@ QDate::QDate(int y, int m, int d) Returns \c true if this date is valid; otherwise returns \c false. - \sa isNull() + \sa isNull(), QCalendar::isDateValid() */ /*! - Returns the year of this date. Negative numbers indicate years - before 1 CE, such that year -44 is 44 BCE. + Returns the year of this date. - Returns 0 if the date is invalid. + Uses \a cal as calendar, if supplied, else the Gregorian calendar. + + Returns 0 if the date is invalid. For some calendars, dates before their + first year may all be invalid. + + If using a calendar which has a year 0, check using isValid() if the return + is 0. Such calendars use negative year numbers in the obvious way, with + year 1 preceded by year 0, in turn preceded by year -1 and so on. + + Some calendars, despite having no year 0, have a conventional numbering of + the years before their first year, counting backwards from 1. For example, + in the proleptic Gregorian calendar, successive years before 1 CE (the first + year) are identified as 1 BCE, 2 BCE, 3 BCE and so on. For such calendars, + negative year numbers are used to indicate these years before year 1, with + -1 indicating the year before 1. - \sa month(), day() + \sa month(), day(), QCalendar::hasYearZero(), QCalendar::isProleptic() */ -int QDate::year() const +int QDate::year(QCalendar cal) const { - if (isNull()) - return 0; + if (isValid()) { + const auto parts = cal.partsFromDate(*this); + if (parts.isValid()) + return parts.year; + } + return 0; +} + +/*! + \overload + */ - return getDateFromJulianDay(jd).year; +int QDate::year() const +{ + return year(QCalendar()); } /*! - Returns the number corresponding to the month of this date, using - the following convention: + Returns the month-number for the date. + + Numbers the months of the year starting with 1 for the first. Uses \a cal + as calendar if supplied, else the Gregorian calendar, for which the month + numbering is as follows: \list \li 1 = "January" @@ -468,105 +430,166 @@ int QDate::year() const \li 12 = "December" \endlist - Returns 0 if the date is invalid. + Returns 0 if the date is invalid. Note that some calendars may have more + than 12 months in some years. \sa year(), day() */ -int QDate::month() const +int QDate::month(QCalendar cal) const { - if (isNull()) - return 0; + if (isValid()) { + const auto parts = cal.partsFromDate(*this); + if (parts.isValid()) + return parts.month; + } + return 0; +} - return getDateFromJulianDay(jd).month; +/*! + \overload + */ + +int QDate::month() const +{ + return month(QCalendar()); } /*! - Returns the day of the month (1 to 31) of this date. + Returns the day of the month for this date. - Returns 0 if the date is invalid. + Uses \a cal as calendar if supplied, else the Gregorian calendar (for which + the return ranges from 1 to 31). Returns 0 if the date is invalid. \sa year(), month(), dayOfWeek() */ -int QDate::day() const +int QDate::day(QCalendar cal) const { - if (isNull()) - return 0; + if (isValid()) { + const auto parts = cal.partsFromDate(*this); + if (parts.isValid()) + return parts.day; + } + return 0; +} + +/*! + \overload + */ - return getDateFromJulianDay(jd).day; +int QDate::day() const +{ + return day(QCalendar()); } /*! Returns the weekday (1 = Monday to 7 = Sunday) for this date. - Returns 0 if the date is invalid. + Uses \a cal as calendar if supplied, else the Gregorian calendar. Returns 0 + if the date is invalid. Some calendars may give special meaning + (e.g. intercallary days) to values greater than 7. \sa day(), dayOfYear(), Qt::DayOfWeek */ -int QDate::dayOfWeek() const +int QDate::dayOfWeek(QCalendar cal) const { if (isNull()) return 0; - if (jd >= 0) - return (jd % 7) + 1; - else - return ((jd + 1) % 7) + 7; + return cal.dayOfWeek(*this); +} + +/*! + \overload + */ + +int QDate::dayOfWeek() const +{ + return dayOfWeek(QCalendar()); } /*! - Returns the day of the year (1 to 365 or 366 on leap years) for - this date. + Returns the day of the year (1 for the first day) for this date. - Returns 0 if the date is invalid. + Uses \a cal as calendar if supplied, else the Gregorian calendar. + Returns 0 if either the date or the first day of its year is invalid. \sa day(), dayOfWeek() */ -int QDate::dayOfYear() const +int QDate::dayOfYear(QCalendar cal) const { - if (isNull()) - return 0; + if (isValid()) { + QDate firstDay = cal.dateFromParts(year(cal), 1, 1); + if (firstDay.isValid()) + return firstDay.daysTo(*this) + 1; + } + return 0; +} - return jd - julianDayFromDate(year(), 1, 1) + 1; +/*! + \overload + */ + +int QDate::dayOfYear() const +{ + return dayOfYear(QCalendar()); } /*! - Returns the number of days in the month (28 to 31) for this date. + Returns the number of days in the month for this date. - Returns 0 if the date is invalid. + Uses \a cal as calendar if supplied, else the Gregorian calendar (for which + the result ranges from 28 to 31). Returns 0 if the date is invalid. \sa day(), daysInYear() */ -int QDate::daysInMonth() const +int QDate::daysInMonth(QCalendar cal) const { - if (isNull()) - return 0; + if (isValid()) { + const auto parts = cal.partsFromDate(*this); + if (parts.isValid()) + return cal.daysInMonth(parts.month, parts.year); + } + return 0; +} - const ParsedDate pd = getDateFromJulianDay(jd); - if (pd.month == 2) - return isLeapYear(pd.year) ? 29 : 28; +/*! + \overload + */ - return daysInUsualMonth(pd.month); +int QDate::daysInMonth() const +{ + return daysInMonth(QCalendar()); } /*! - Returns the number of days in the year (365 or 366) for this date. + Returns the number of days in the year for this date. - Returns 0 if the date is invalid. + Uses \a cal as calendar if supplied, else the Gregorian calendar (for which + the result is 365 or 366). Returns 0 if the date is invalid. \sa day(), daysInMonth() */ -int QDate::daysInYear() const +int QDate::daysInYear(QCalendar cal) const { if (isNull()) return 0; - return isLeapYear(getDateFromJulianDay(jd).year) ? 366 : 365; + return cal.daysInYear(year(cal)); +} + +/*! + \overload + */ + +int QDate::daysInYear() const +{ + return daysInYear(QCalendar()); } /*! @@ -593,6 +616,7 @@ int QDate::weekNumber(int *yearNumber) const if (!isValid()) return 0; + // This could be replaced by use of QIso8601Calendar, once we implement it. // The Thursday of the same week determines our answer: QDate thursday(addDays(4 - dayOfWeek())); int year = thursday.year(); @@ -904,9 +928,11 @@ QString QDate::shortMonthName(int month, QDate::MonthNameType type) { switch (type) { case QDate::DateFormat: - return QLocale::system().monthName(month, QLocale::ShortFormat); + return QCalendar().monthName(QLocale::system(), month, + QCalendar::Unspecified, QLocale::ShortFormat); case QDate::StandaloneFormat: - return QLocale::system().standaloneMonthName(month, QLocale::ShortFormat); + return QCalendar().standaloneMonthName(QLocale::system(), month, + QCalendar::Unspecified, QLocale::ShortFormat); } return QString(); } @@ -947,9 +973,11 @@ QString QDate::longMonthName(int month, MonthNameType type) { switch (type) { case QDate::DateFormat: - return QLocale::system().monthName(month, QLocale::LongFormat); + return QCalendar().monthName(QLocale::system(), month, + QCalendar::Unspecified, QLocale::LongFormat); case QDate::StandaloneFormat: - return QLocale::system().standaloneMonthName(month, QLocale::LongFormat); + return QCalendar().standaloneMonthName(QLocale::system(), month, + QCalendar::Unspecified, QLocale::LongFormat); } return QString(); } @@ -1034,24 +1062,32 @@ QString QDate::longDayName(int weekday, MonthNameType type) #if QT_CONFIG(datestring) #if QT_CONFIG(textdate) +static QString toStringTextDate(QDate date, QCalendar cal) +{ + if (date.isValid()) { + const auto parts = cal.partsFromDate(date); + if (parts.isValid()) { + const QLatin1Char sp(' '); + return QLocale::system().dayName(cal.dayOfWeek(date), QLocale::ShortFormat) + sp + + cal.monthName(QLocale::system(), parts.month, parts.year, QLocale::ShortFormat) + + sp + QString::number(parts.day) + sp + QString::number(parts.year); + } + } + return QString(); +} + static QString toStringTextDate(QDate date) { - const ParsedDate pd = getDateFromJulianDay(date.toJulianDay()); - static const QLatin1Char sp(' '); - return QLocale::system().dayName(date.dayOfWeek(), QLocale::ShortFormat) + sp - + QLocale::system().monthName(pd.month, QLocale::ShortFormat) + sp - + QString::number(pd.day) + sp - + QString::number(pd.year); + return toStringTextDate(date, QCalendar()); } #endif // textdate -static QString toStringIsoDate(qint64 jd) +static QString toStringIsoDate(const QDate &date) { - const ParsedDate pd = getDateFromJulianDay(jd); - if (pd.year >= 0 && pd.year <= 9999) - return QString::asprintf("%04d-%02d-%02d", pd.year, pd.month, pd.day); - else - return QString(); + const auto parts = QCalendar().partsFromDate(date); + if (parts.isValid() && parts.year >= 0 && parts.year <= 9999) + return QString::asprintf("%04d-%02d-%02d", parts.year, parts.month, parts.day); + return QString(); } /*! @@ -1124,7 +1160,7 @@ QString QDate::toString(Qt::DateFormat format) const #endif case Qt::ISODate: case Qt::ISODateWithMs: - return toStringIsoDate(jd); + return toStringIsoDate(*this); } } @@ -1198,6 +1234,47 @@ QString QDate::toString(const QString &format) const } #endif +QString QDate::toString(Qt::DateFormat format, QCalendar cal) const +{ + if (!isValid()) + return QString(); + + switch (format) { + case Qt::SystemLocaleDate: + case Qt::SystemLocaleShortDate: + return QLocale::system().toString(*this, QLocale::ShortFormat, cal); + case Qt::SystemLocaleLongDate: + return QLocale::system().toString(*this, QLocale::LongFormat, cal); + case Qt::LocaleDate: + case Qt::DefaultLocaleShortDate: + return QLocale().toString(*this, QLocale::ShortFormat, cal); + case Qt::DefaultLocaleLongDate: + return QLocale().toString(*this, QLocale::LongFormat, cal); + case Qt::RFC2822Date: + return QLocale::c().toString(*this, QStringView(u"dd MMM yyyy"), cal); + default: +#ifndef QT_NO_TEXTDATE + case Qt::TextDate: + return toStringTextDate(*this, cal); +#endif + case Qt::ISODate: + case Qt::ISODateWithMs: + return toStringIsoDate(*this); + } +} + +QString QDate::toString(QStringView format, QCalendar cal) const +{ + return QLocale::system().toString(*this, format, cal); // QLocale::c() ### Qt6 +} + +#if QT_STRINGVIEW_LEVEL < 2 +QString QDate::toString(const QString &format, QCalendar cal) const +{ + return toString(qToStringViewIgnoringNull(format), cal); +} +#endif + #endif // datestring /*! @@ -1217,21 +1294,32 @@ QString QDate::toString(const QString &format) const /*! \since 4.2 - Sets the date's \a year, \a month, and \a day. Returns \c true if - the date is valid; otherwise returns \c false. - - If the specified date is invalid, the QDate object is set to be - invalid. + Sets this to represent the date, in the Gregorian calendar, with the given + \a year, \a month and \a day numbers. Returns true if the resulting date is + valid, otherwise it sets this to represent an invalid date and returns + false. - \sa isValid() + \sa isValid(), QCalendar::dateFromParts() */ bool QDate::setDate(int year, int month, int day) { - if (isValid(year, month, day)) - jd = julianDayFromDate(year, month, day); - else - jd = nullJd(); + return setDate(year, month, day, QCalendar()); +} +/*! + \since 5.14 + + Sets this to represent the date, in the given calendar \a cal, with the + given \a year, \a month and \a day numbers. Returns true if the resulting + date is valid, otherwise it sets this to represent an invalid date and + returns false. + + \sa isValid(), QCalendar::dateFromParts() +*/ + +bool QDate::setDate(int year, int month, int day, QCalendar cal) +{ + *this = QDate(year, month, day, cal); return isValid(); } @@ -1245,20 +1333,21 @@ bool QDate::setDate(int year, int month, int day) \note In Qt versions prior to 5.7, this function is marked as non-\c{const}. - \sa year(), month(), day(), isValid() + \sa year(), month(), day(), isValid(), QCalendar::partsFromDate() */ void QDate::getDate(int *year, int *month, int *day) const { - ParsedDate pd = { 0, 0, 0 }; + QCalendar::YearMonthDay parts; // invalid by default if (isValid()) - pd = getDateFromJulianDay(jd); + parts = QCalendar().partsFromDate(*this); + const bool ok = parts.isValid(); if (year) - *year = pd.year; + *year = ok ? parts.year : 0; if (month) - *month = pd.month; + *month = ok ? parts.month : 0; if (day) - *day = pd.day; + *day = ok ? parts.day : 0; } #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) @@ -1296,96 +1385,92 @@ QDate QDate::addDays(qint64 ndays) const Returns a QDate object containing a date \a nmonths later than the date of this object (or earlier if \a nmonths is negative). - \note If the ending day/month combination does not exist in the - resulting month/year, this function will return a date that is the - latest valid date. + Uses \a cal as calendar, if supplied, else the Gregorian calendar. + + \note If the ending day/month combination does not exist in the resulting + month/year, this function will return a date that is the latest valid date + in the selected month. \sa addDays(), addYears() */ -QDate QDate::addMonths(int nmonths) const +QDate QDate::addMonths(int nmonths, QCalendar cal) const { if (!isValid()) return QDate(); - if (!nmonths) + + if (nmonths == 0) return *this; - int old_y, y, m, d; - { - const ParsedDate pd = getDateFromJulianDay(jd); - y = pd.year; - m = pd.month; - d = pd.day; + auto parts = cal.partsFromDate(*this); + + if (!parts.isValid()) + return QDate(); + Q_ASSERT(parts.year || cal.hasYearZero()); + + parts.month += nmonths; + while (parts.month <= 0) { + if (--parts.year || cal.hasYearZero()) + parts.month += cal.monthsInYear(parts.year); } - old_y = y; - - bool increasing = nmonths > 0; - - while (nmonths != 0) { - if (nmonths < 0 && nmonths + 12 <= 0) { - y--; - nmonths+=12; - } else if (nmonths < 0) { - m+= nmonths; - nmonths = 0; - if (m <= 0) { - --y; - m += 12; - } - } else if (nmonths - 12 >= 0) { - y++; - nmonths -= 12; - } else if (m == 12) { - y++; - m = 0; - } else { - m += nmonths; - nmonths = 0; - if (m > 12) { - ++y; - m -= 12; - } - } + int count = cal.monthsInYear(parts.year); + while (parts.month > count) { + parts.month -= count; + count = (++parts.year || cal.hasYearZero()) ? cal.monthsInYear(parts.year) : 0; } - // was there a sign change? - if ((old_y > 0 && y <= 0) || - (old_y < 0 && y >= 0)) - // yes, adjust the date by +1 or -1 years - y += increasing ? +1 : -1; + return fixedDate(std::move(parts), cal); +} - return fixedDate(y, m, d); +/*! + \override +*/ + +QDate QDate::addMonths(int nmonths) const +{ + return addMonths(nmonths, QCalendar()); } /*! Returns a QDate object containing a date \a nyears later than the date of this object (or earlier if \a nyears is negative). - \note If the ending day/month combination does not exist in the - resulting year (i.e., if the date was Feb 29 and the final year is - not a leap year), this function will return a date that is the - latest valid date (that is, Feb 28). + Uses \a cal as calendar, if supplied, else the Gregorian calendar. + + \note If the ending day/month combination does not exist in the resulting + year (e.g., for the Gregorian calendar, if the date was Feb 29 and the final + year is not a leap year), this function will return a date that is the + latest valid date in the given month (in the example, Feb 28). \sa addDays(), addMonths() */ -QDate QDate::addYears(int nyears) const +QDate QDate::addYears(int nyears, QCalendar cal) const { if (!isValid()) return QDate(); - ParsedDate pd = getDateFromJulianDay(jd); + auto parts = cal.partsFromDate(*this); + if (!parts.isValid()) + return QDate(); - int old_y = pd.year; - pd.year += nyears; + int old_y = parts.year; + parts.year += nyears; - // was there a sign change? - if ((old_y > 0 && pd.year <= 0) || - (old_y < 0 && pd.year >= 0)) - // yes, adjust the date by +1 or -1 years - pd.year += nyears > 0 ? +1 : -1; + // If we just crossed (or hit) a missing year zero, adjust year by +/- 1: + if (!cal.hasYearZero() && ((old_y > 0) != (parts.year > 0) || !parts.year)) + parts.year += nyears > 0 ? +1 : -1; - return fixedDate(pd.year, pd.month, pd.day); + return fixedDate(std::move(parts), cal); +} + +/*! + \override +*/ + +QDate QDate::addYears(int nyears) const +{ + return addYears(nyears, QCalendar()); } /*! @@ -1505,7 +1590,7 @@ QDate QDate::fromString(const QString &string, Qt::DateFormat format) if (!ok || !day) return QDate(); - const int month = fromShortMonthName(parts.at(1)); + const int month = fromShortMonthName(parts.at(1), year); if (month == -1) // Month name matches no English or localised name. return QDate(); @@ -1531,6 +1616,10 @@ QDate QDate::fromString(const QString &string, Qt::DateFormat format) Returns the QDate represented by the \a string, using the \a format given, or an invalid date if the string cannot be parsed. + Uses \a cal as calendar if supplied, else the Gregorian calendar. Ranges of + values in the format descriptions below are for the latter; they may be + different for other calendars. + These expressions may be used for the format: \table @@ -1590,55 +1679,61 @@ QDate QDate::fromString(const QString &string, Qt::DateFormat format) QLocale::toDate() */ -QDate QDate::fromString(const QString &string, const QString &format) +QDate QDate::fromString(const QString &string, const QString &format, QCalendar cal) { QDate date; #if QT_CONFIG(datetimeparser) - QDateTimeParser dt(QVariant::Date, QDateTimeParser::FromString); + QDateTimeParser dt(QVariant::Date, QDateTimeParser::FromString, cal); // dt.setDefaultLocale(QLocale::c()); ### Qt 6 if (dt.parseFormat(format)) dt.fromString(string, &date, 0); #else Q_UNUSED(string); Q_UNUSED(format); + Q_UNUSED(cal); #endif return date; } + +/*! + \overload +*/ + +QDate QDate::fromString(const QString &string, const QString &format) +{ + return fromString(string, format, QCalendar()); +} #endif // datestring /*! \overload - Returns \c true if the specified date (\a year, \a month, and \a - day) is valid; otherwise returns \c false. + Returns \c true if the specified date (\a year, \a month, and \a day) is + valid in the Gregorian calendar; otherwise returns \c false. Example: \snippet code/src_corelib_tools_qdatetime.cpp 4 - \sa isNull(), setDate() + \sa isNull(), setDate(), QCalendar::isDateValid() */ bool QDate::isValid(int year, int month, int day) { - // There is no year 0 in the Gregorian calendar. - return year && day > 0 && month > 0 && month <= 12 && - day <= (month == 2 ? isLeapYear(year) ? 29 : 28 : daysInUsualMonth(month)); + return QCalendar().isDateValid(year, month, day); } /*! \fn bool QDate::isLeapYear(int year) - Returns \c true if the specified \a year is a leap year; otherwise - returns \c false. + Returns \c true if the specified \a year is a leap year in the Gregorian + calendar; otherwise returns \c false. + + \sa QCalendar::isLeapYear() */ bool QDate::isLeapYear(int y) { - // No year 0 in Gregorian calendar, so -1, -5, -9 etc are leap years - if ( y < 1) - ++y; - - return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0; + return QCalendar().isLeapYear(y); } /*! \fn static QDate QDate::fromJulianDay(qint64 jd) @@ -2311,7 +2406,7 @@ QTime QTime::fromString(const QString &string, const QString &format) { QTime time; #if QT_CONFIG(datetimeparser) - QDateTimeParser dt(QVariant::Time, QDateTimeParser::FromString); + QDateTimeParser dt(QVariant::Time, QDateTimeParser::FromString, QCalendar()); // dt.setDefaultLocale(QLocale::c()); ### Qt 6 if (dt.parseFormat(format)) dt.fromString(string, 0, &time); @@ -4686,12 +4781,10 @@ static inline uint msecsFromDecomposed(int hour, int minute, int sec, int msec = QDate QDate::currentDate() { - QDate d; SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); GetLocalTime(&st); - d.jd = julianDayFromDate(st.wYear, st.wMonth, st.wDay); - return d; + return QDate(st.wYear, st.wMonth, st.wDay); } QTime QTime::currentTime() @@ -4706,24 +4799,22 @@ QTime QTime::currentTime() QDateTime QDateTime::currentDateTime() { - QDate d; QTime t; SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); GetLocalTime(&st); - d.jd = julianDayFromDate(st.wYear, st.wMonth, st.wDay); + QDate d(st.wYear, st.wMonth, st.wDay); t.mds = msecsFromDecomposed(st.wHour, st.wMinute, st.wSecond, st.wMilliseconds); return QDateTime(d, t); } QDateTime QDateTime::currentDateTimeUtc() { - QDate d; QTime t; SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); GetSystemTime(&st); - d.jd = julianDayFromDate(st.wYear, st.wMonth, st.wDay); + QDate d(st.wYear, st.wMonth, st.wDay); t.mds = msecsFromDecomposed(st.wHour, st.wMinute, st.wSecond, st.wMilliseconds); return QDateTime(d, t, Qt::UTC); } @@ -4733,10 +4824,10 @@ qint64 QDateTime::currentMSecsSinceEpoch() noexcept SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); GetSystemTime(&st); + const qint64 daysAfterEpoch = QDate(1970, 1, 1).daysTo(QDate(st.wYear, st.wMonth, st.wDay)); return msecsFromDecomposed(st.wHour, st.wMinute, st.wSecond, st.wMilliseconds) + - qint64(julianDayFromDate(st.wYear, st.wMonth, st.wDay) - - julianDayFromDate(1970, 1, 1)) * Q_INT64_C(86400000); + daysAfterEpoch * Q_INT64_C(86400000); } qint64 QDateTime::currentSecsSinceEpoch() noexcept @@ -4744,10 +4835,10 @@ qint64 QDateTime::currentSecsSinceEpoch() noexcept SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); GetSystemTime(&st); + const qint64 daysAfterEpoch = QDate(1970, 1, 1).daysTo(QDate(st.wYear, st.wMonth, st.wDay)); return st.wHour * SECS_PER_HOUR + st.wMinute * SECS_PER_MIN + st.wSecond + - qint64(julianDayFromDate(st.wYear, st.wMonth, st.wDay) - - julianDayFromDate(1970, 1, 1)) * Q_INT64_C(86400); + daysAfterEpoch * Q_INT64_C(86400); } #elif defined(Q_OS_UNIX) @@ -5126,13 +5217,13 @@ QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format) return QDateTime(); // Next try month then day - month = fromShortMonthName(parts.at(1)); + month = fromShortMonthName(parts.at(1), year); if (month) day = parts.at(2).toInt(&ok); // If failed, try day then month if (!ok || !month || !day) { - month = fromShortMonthName(parts.at(2)); + month = fromShortMonthName(parts.at(2), year); if (month) { QStringRef dayStr = parts.at(1); if (dayStr.endsWith(QLatin1Char('.'))) { @@ -5213,6 +5304,10 @@ QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format) Returns the QDateTime represented by the \a string, using the \a format given, or an invalid datetime if the string cannot be parsed. + Uses the calendar \a cal if supplied, else Gregorian. The illustrative + values and ranges below are given for the latter; other calendars may have + different ranges or values. + These expressions may be used for the date part of the format string: \table @@ -5315,23 +5410,33 @@ QDateTime QDateTime::fromString(const QString &string, Qt::DateFormat format) QLocale::toDateTime() */ -QDateTime QDateTime::fromString(const QString &string, const QString &format) +QDateTime QDateTime::fromString(const QString &string, const QString &format, QCalendar cal) { #if QT_CONFIG(datetimeparser) QTime time; QDate date; - QDateTimeParser dt(QVariant::DateTime, QDateTimeParser::FromString); + QDateTimeParser dt(QVariant::DateTime, QDateTimeParser::FromString, cal); // dt.setDefaultLocale(QLocale::c()); ### Qt 6 if (dt.parseFormat(format) && dt.fromString(string, &date, &time)) return QDateTime(date, time); #else Q_UNUSED(string); Q_UNUSED(format); + Q_UNUSED(cal); #endif return QDateTime(); } +/* + \overload +*/ + +QDateTime QDateTime::fromString(const QString &string, const QString &format) +{ + return fromString(string, format, QCalendar()); +} + #endif // datestring /*! \fn QDateTime QDateTime::toLocalTime() const diff --git a/src/corelib/time/qdatetime.h b/src/corelib/time/qdatetime.h index 89ea4ee24a..e1909b85e3 100644 --- a/src/corelib/time/qdatetime.h +++ b/src/corelib/time/qdatetime.h @@ -54,6 +54,7 @@ Q_FORWARD_DECLARE_OBJC_CLASS(NSDate); QT_BEGIN_NAMESPACE +class QCalendar; class QTimeZone; class QDateTime; @@ -69,6 +70,7 @@ private: public: Q_DECL_CONSTEXPR QDate() : jd(nullJd()) {} QDate(int y, int m, int d); + QDate(int y, int m, int d, QCalendar cal); Q_DECL_CONSTEXPR bool isNull() const { return !isValid(); } Q_DECL_CONSTEXPR bool isValid() const { return jd >= minJd() && jd <= maxJd(); } @@ -82,6 +84,14 @@ public: int daysInYear() const; int weekNumber(int *yearNum = nullptr) const; + int year(QCalendar cal) const; + int month(QCalendar cal) const; + int day(QCalendar cal) const; + int dayOfWeek(QCalendar cal) const; + int dayOfYear(QCalendar cal) const; + int daysInMonth(QCalendar cal) const; + int daysInYear(QCalendar cal) const; + QDateTime startOfDay(Qt::TimeSpec spec = Qt::LocalTime, int offsetSeconds = 0) const; QDateTime endOfDay(Qt::TimeSpec spec = Qt::LocalTime, int offsetSeconds = 0) const; #if QT_CONFIG(timezone) @@ -103,8 +113,12 @@ public: QString toString(Qt::DateFormat f = Qt::TextDate) const; #if QT_STRINGVIEW_LEVEL < 2 QString toString(const QString &format) const; + QString toString(const QString &format, QCalendar cal) const; #endif + QString toString(QStringView format) const; + QString toString(Qt::DateFormat f, QCalendar cal) const; + QString toString(QStringView format, QCalendar cal) const; #endif #if QT_DEPRECATED_SINCE(5,0) QT_DEPRECATED_X("Use setDate() instead") inline bool setYMD(int y, int m, int d) @@ -112,6 +126,7 @@ public: #endif bool setDate(int year, int month, int day); + bool setDate(int year, int month, int day, QCalendar cal); #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) void getDate(int *year, int *month, int *day); // ### Qt 6: remove @@ -121,6 +136,8 @@ public: Q_REQUIRED_RESULT QDate addDays(qint64 days) const; Q_REQUIRED_RESULT QDate addMonths(int months) const; Q_REQUIRED_RESULT QDate addYears(int years) const; + Q_REQUIRED_RESULT QDate addMonths(int months, QCalendar cal) const; + Q_REQUIRED_RESULT QDate addYears(int years, QCalendar cal) const; qint64 daysTo(const QDate &) const; Q_DECL_CONSTEXPR bool operator==(const QDate &other) const { return jd == other.jd; } @@ -134,6 +151,7 @@ public: #if QT_CONFIG(datestring) static QDate fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); static QDate fromString(const QString &s, const QString &format); + static QDate fromString(const QString &s, const QString &format, QCalendar cal); #endif static bool isValid(int y, int m, int d); static bool isLeapYear(int year); @@ -353,6 +371,7 @@ public: #if QT_CONFIG(datestring) static QDateTime fromString(const QString &s, Qt::DateFormat f = Qt::TextDate); static QDateTime fromString(const QString &s, const QString &format); + static QDateTime fromString(const QString &s, const QString &format, QCalendar cal); #endif #if QT_DEPRECATED_SINCE(5, 8) diff --git a/src/corelib/time/qdatetimeparser.cpp b/src/corelib/time/qdatetimeparser.cpp index fc369bae75..3c54a259a4 100644 --- a/src/corelib/time/qdatetimeparser.cpp +++ b/src/corelib/time/qdatetimeparser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -92,11 +92,11 @@ int QDateTimeParser::getDigit(const QDateTime &t, int index) const case SecondSection: return t.time().second(); case MSecSection: return t.time().msec(); case YearSection2Digits: - case YearSection: return t.date().year(); - case MonthSection: return t.date().month(); - case DaySection: return t.date().day(); + case YearSection: return t.date().year(calendar); + case MonthSection: return t.date().month(calendar); + case DaySection: return t.date().day(calendar); case DayOfWeekSectionShort: - case DayOfWeekSectionLong: return t.date().day(); + case DayOfWeekSectionLong: return t.date().day(calendar); case AmPmSection: return t.time().hour() > 11 ? 1 : 0; default: break; @@ -138,9 +138,9 @@ bool QDateTimeParser::setDigit(QDateTime &v, int index, int newVal) const const QDate date = v.date(); const QTime time = v.time(); - int year = date.year(); - int month = date.month(); - int day = date.day(); + int year = date.year(calendar); + int month = date.month(calendar); + int day = date.day(calendar); int hour = time.hour(); int minute = time.minute(); int second = time.second(); @@ -184,13 +184,13 @@ bool QDateTimeParser::setDigit(QDateTime &v, int index, int newVal) const if (!(node.type & DaySectionMask)) { if (day < cachedDay) day = cachedDay; - const int max = QDate(year, month, 1).daysInMonth(); + const int max = calendar.daysInMonth(month, year); if (day > max) { day = max; } } - const QDate newDate(year, month, day); + const QDate newDate(year, month, day, calendar); const QTime newTime(hour, minute, second, msec); if (!newDate.isValid() || !newTime.isValid()) return false; @@ -231,10 +231,10 @@ int QDateTimeParser::absoluteMax(int s, const QDateTime &cur) const // people from typing in a larger // number in count == 2 sections. // stepBy() will work on real years anyway - case MonthSection: return 12; + case MonthSection: return calendar.maxMonthsInYear(); case DaySection: case DayOfWeekSectionShort: - case DayOfWeekSectionLong: return cur.isValid() ? cur.date().daysInMonth() : 31; + case DayOfWeekSectionLong: return cur.isValid() ? cur.date().daysInMonth(calendar) : calendar.maxDaysInMonth() ; case AmPmSection: return 1; default: break; } @@ -612,7 +612,7 @@ int QDateTimeParser::sectionSize(int sectionIndex) const int QDateTimeParser::sectionMaxSize(Section s, int count) const { #if QT_CONFIG(textdate) - int mcount = 12; + int mcount = calendar.maxMonthsInYear(); #endif switch (s) { @@ -654,7 +654,7 @@ int QDateTimeParser::sectionMaxSize(Section s, int count) const const QLocale::FormatType format = count == 4 ? QLocale::LongFormat : QLocale::ShortFormat; for (int i=1; i<=mcount; ++i) { const QString str = (s == MonthSection - ? l.monthName(i, format) + ? calendar.monthName(l, i, QCalendar::Unspecified, format) : l.dayName(i, format)); ret = qMax(str.size(), ret); } @@ -787,9 +787,9 @@ QDateTimeParser::parseSection(const QDateTime ¤tValue, int sectionIndex, int num = 0, used = 0; if (sn.type == MonthSection) { const QDate minDate = getMinimum().date(); - const int min = (currentValue.date().year() == minDate.year()) - ? minDate.month() : 1; - num = findMonth(sectiontext.toLower(), min, sectionIndex, §iontext, &used); + const int year = currentValue.date().year(calendar); + const int min = (year == minDate.year(calendar)) ? minDate.month(calendar) : 1; + num = findMonth(sectiontext.toLower(), min, sectionIndex, year, §iontext, &used); } else { num = findDay(sectiontext.toLower(), 1, sectionIndex, §iontext, &used); } @@ -893,6 +893,26 @@ QDateTimeParser::parseSection(const QDateTime ¤tValue, int sectionIndex, return result; } +/*! + \internal + + Returns a day-number, in the same month as \a rough and as close to \a rough's + day number as is valid, that \a calendar puts on the day of the week indicated + by \a weekDay. +*/ + +static int weekDayWithinMonth(const QCalendar &calendar, const QDate &rough, int weekDay) +{ + // TODO: can we adapt this to cope gracefully with intercallary days (day of + // week > 7) without making it slower for more widely-used calendars ? + int day = rough.day(calendar) + weekDay - calendar.dayOfWeek(rough); + if (day <= 0) + return day + 7; + if (day > rough.daysInMonth(calendar)) + return day - 7; + return day; +} + /*! \internal @@ -901,11 +921,11 @@ QDateTimeParser::parseSection(const QDateTime ¤tValue, int sectionIndex, when on valid date is consistent with the data. */ -static QDate actualDate(QDateTimeParser::Sections known, int year, int year2digits, - int month, int day, int dayofweek) +static QDate actualDate(QDateTimeParser::Sections known, const QCalendar &calendar, + int year, int year2digits, int month, int day, int dayofweek) { - QDate actual(year, month, day); - if (actual.isValid() && year % 100 == year2digits && actual.dayOfWeek() == dayofweek) + QDate actual(year, month, day, calendar); + if (actual.isValid() && year % 100 == year2digits && calendar.dayOfWeek(actual) == dayofweek) return actual; // The obvious candidate is fine :-) if (dayofweek < 1 || dayofweek > 7) // Invalid: ignore @@ -931,18 +951,18 @@ static QDate actualDate(QDateTimeParser::Sections known, int year, int year2digi known &= ~QDateTimeParser::MonthSection; } - QDate first(year, month, 1); + QDate first(year, month, 1, calendar); int last = known & QDateTimeParser::YearSection && known & QDateTimeParser::MonthSection - ? first.daysInMonth() : 0; + ? first.daysInMonth(calendar) : 0; // If we also know day-of-week, tweak last to the last in the month that matches it: if (last && known & QDateTimeParser::DayOfWeekSectionMask) { - int diff = (dayofweek - first.dayOfWeek() - last) % 7; + int diff = (dayofweek - calendar.dayOfWeek(first) - last) % 7; Q_ASSERT(diff <= 0); // C++11 specifies (-ve) % (+ve) to be <= 0. last += diff; } if (day < 1) { if (known & QDateTimeParser::DayOfWeekSectionMask && last) { - day = 1 + dayofweek - first.dayOfWeek(); + day = 1 + dayofweek - calendar.dayOfWeek(first); if (day < 1) day += 7; } else { @@ -956,12 +976,12 @@ static QDate actualDate(QDateTimeParser::Sections known, int year, int year2digi day = last; } - actual = QDate(year, month, day); + actual = QDate(year, month, day, calendar); if (!actual.isValid() // We can't do better than we have, in this case || (known & QDateTimeParser::DaySection && known & QDateTimeParser::MonthSection && known & QDateTimeParser::YearSection) // ditto - || actual.dayOfWeek() == dayofweek // Good enough, use it. + || calendar.dayOfWeek(actual) == dayofweek // Good enough, use it. || (known & QDateTimeParser::DayOfWeekSectionMask) == 0) { // No contradiction, use it. return actual; } @@ -976,12 +996,8 @@ static QDate actualDate(QDateTimeParser::Sections known, int year, int year2digi if ((known & QDateTimeParser::DaySection) == 0) { // Relatively easy to fix. - day += dayofweek - actual.dayOfWeek(); - if (day < 1) - day += 7; - else if (day > actual.daysInMonth()) - day -= 7; - actual = QDate(year, month, day); + day = weekDayWithinMonth(calendar, actual, dayofweek); + actual = QDate(year, month, day, calendar); return actual; } @@ -993,18 +1009,18 @@ static QDate actualDate(QDateTimeParser::Sections known, int year, int year2digi */ for (int m = 1; m < 12; m++) { if (m < month) { - actual = QDate(year, month - m, day); - if (actual.dayOfWeek() == dayofweek) + actual = QDate(year, month - m, day, calendar); + if (calendar.dayOfWeek(actual) == dayofweek) return actual; } if (m + month <= 12) { - actual = QDate(year, month + m, day); - if (actual.dayOfWeek() == dayofweek) + actual = QDate(year, month + m, day, calendar); + if (calendar.dayOfWeek(actual) == dayofweek) return actual; } } // Should only get here in corner cases; e.g. day == 31 - actual = QDate(year, month, day); // Restore from trial values. + actual = QDate(year, month, day, calendar); // Restore from trial values. } if ((known & QDateTimeParser::YearSection) == 0) { @@ -1017,24 +1033,24 @@ static QDate actualDate(QDateTimeParser::Sections known, int year, int year2digi is '97, it makes sense to consider 1997. If either adjacent century does work, the other won't. */ - actual = QDate(year + 100, month, day); - if (actual.dayOfWeek() == dayofweek) + actual = QDate(year + 100, month, day, calendar); + if (calendar.dayOfWeek(actual) == dayofweek) return actual; - actual = QDate(year - 100, month, day); - if (actual.dayOfWeek() == dayofweek) + actual = QDate(year - 100, month, day, calendar); + if (calendar.dayOfWeek(actual) == dayofweek) return actual; } else { // Offset by 7 is usually enough, but rare cases may need more: for (int y = 1; y < 12; y++) { - actual = QDate(year - y, month, day); - if (actual.dayOfWeek() == dayofweek) + actual = QDate(year - y, month, day, calendar); + if (calendar.dayOfWeek(actual) == dayofweek) return actual; - actual = QDate(year + y, month, day); - if (actual.dayOfWeek() == dayofweek) + actual = QDate(year + y, month, day, calendar); + if (calendar.dayOfWeek(actual) == dayofweek) return actual; } } - actual = QDate(year, month, day); // Restore from trial values. + actual = QDate(year, month, day, calendar); // Restore from trial values. } return actual; // It'll just have to do :-( @@ -1097,7 +1113,7 @@ QDateTimeParser::scanString(const QDateTime &defaultValue, int minute = defaultTime.minute(); int second = defaultTime.second(); int msec = defaultTime.msec(); - int dayofweek = defaultDate.dayOfWeek(); + int dayofweek = calendar.dayOfWeek(defaultDate); Qt::TimeSpec tspec = defaultValue.timeSpec(); int zoneOffset = 0; // In seconds; local - UTC #if QT_CONFIG(timezone) @@ -1138,7 +1154,8 @@ QDateTimeParser::scanString(const QDateTime &defaultValue, ParsedSection sect; { - const QDate date = actualDate(isSet, year, year2digits, month, day, dayofweek); + const QDate date = actualDate(isSet, calendar, year, year2digits, + month, day, dayofweek); const QTime time = actualTime(isSet, hour, hour12, ampm, minute, second, msec); sect = parseSection( #if QT_CONFIG(timezone) @@ -1248,22 +1265,17 @@ QDateTimeParser::scanString(const QDateTime &defaultValue, } } - const QDate date(year, month, day); - const int diff = dayofweek - date.dayOfWeek(); - if (diff != 0 && state == Acceptable && isSet & DayOfWeekSectionMask) { + const QDate date(year, month, day, calendar); + if (dayofweek != calendar.dayOfWeek(date) + && state == Acceptable && isSet & DayOfWeekSectionMask) { if (isSet & DaySection) conflicts = true; const SectionNode &sn = sectionNode(currentSectionIndex); if (sn.type & DayOfWeekSectionMask || currentSectionIndex == -1) { // dayofweek should be preferred - day += diff; - if (day <= 0) { - day += 7; - } else if (day > date.daysInMonth()) { - day -= 7; - } + day = weekDayWithinMonth(calendar, date, dayofweek); QDTPDEBUG << year << month << day << dayofweek - << diff << QDate(year, month, day).dayOfWeek(); + << calendar.dayOfWeek(QDate(year, month, day, calendar)); } } @@ -1275,20 +1287,18 @@ QDateTimeParser::scanString(const QDateTime &defaultValue, needfixday = true; } - if (!QDate::isValid(year, month, day)) { - if (day < 32) { + if (!calendar.isDateValid(year, month, day)) { + if (day <= calendar.maxDaysInMonth()) cachedDay = day; - } - if (day > 28 && QDate::isValid(year, month, 1)) { + if (day > calendar.minDaysInMonth() && calendar.isDateValid(year, month, 1)) needfixday = true; - } } if (needfixday) { if (context == FromString) { return StateNode(); } if (state == Acceptable && fixday) { - day = qMin(day, QDate(year, month, 1).daysInMonth()); + day = qMin(day, calendar.daysInMonth(month, year)); const QLocale loc = locale(); for (int i=0; ireplace(sectionPos(sn), sectionSize(i), loc.toString(day)); } else if (sn.type & DayOfWeekSectionMask) { - const int dayOfWeek = QDate(year, month, day).dayOfWeek(); + const int dayOfWeek = calendar.dayOfWeek(QDate(year, month, day, calendar)); const QLocale::FormatType dayFormat = (sn.type == DayOfWeekSectionShort ? QLocale::ShortFormat : QLocale::LongFormat); @@ -1333,13 +1343,12 @@ QDateTimeParser::scanString(const QDateTime &defaultValue, conflicts = true; } } - } QDTPDEBUG << year << month << day << hour << minute << second << msec; Q_ASSERT(state != Invalid); - const QDate date(year, month, day); + const QDate date(year, month, day, calendar); const QTime time(hour, minute, second, msec); const QDateTime when = #if QT_CONFIG(timezone) @@ -1427,10 +1436,11 @@ QDateTimeParser::parse(QString input, int position, const QDateTime &defaultValu Q_FALLTHROUGH(); case MonthSection: if (sn.count >= 3) { - const int finalMonth = scan.value.date().month(); + const QDate when = scan.value.date(); + const int finalMonth = when.month(calendar); int tmp = finalMonth; // I know the first possible month makes the date too early - while ((tmp = findMonth(t, tmp + 1, i)) != -1) { + while ((tmp = findMonth(t, tmp + 1, i, when.year(calendar))) != -1) { const QDateTime copy(scan.value.addMonths(tmp - finalMonth)); if (copy >= minimum && copy <= maximum) break; // break out of while @@ -1566,7 +1576,7 @@ static int findTextEntry(const QString &text, const QVector &entries, Q */ int QDateTimeParser::findMonth(const QString &str1, int startMonth, int sectionIndex, - QString *usedMonth, int *used) const + int year, QString *usedMonth, int *used) const { const SectionNode &sn = sectionNode(sectionIndex); if (sn.type != MonthSection) { @@ -1579,7 +1589,7 @@ int QDateTimeParser::findMonth(const QString &str1, int startMonth, int sectionI QVector monthNames; monthNames.reserve(13 - startMonth); for (int month = startMonth; month <= 12; ++month) - monthNames.append(l.monthName(month, type)); + monthNames.append(calendar.monthName(l, month, year, type)); const int index = findTextEntry(str1, monthNames, usedMonth, used); return index < 0 ? index : index + startMonth; @@ -1877,7 +1887,7 @@ bool QDateTimeParser::potentialValue(const QStringRef &str, int min, int max, in int val = (int)locale().toUInt(str); const SectionNode &sn = sectionNode(index); if (sn.type == YearSection2Digits) { - const int year = currentValue.date().year(); + const int year = currentValue.date().year(calendar); val += year - (year % 100); } if (val >= min && val <= max && str.size() == size) { @@ -2047,4 +2057,13 @@ bool operator==(const QDateTimeParser::SectionNode &s1, const QDateTimeParser::S return (s1.type == s2.type) && (s1.pos == s2.pos) && (s1.count == s2.count); } +/*! + Sets \a cal as the calendar to use. The default is Gregorian. +*/ + +void QDateTimeParser::setCalendar(const QCalendar &cal) +{ + calendar = cal; +} + QT_END_NAMESPACE diff --git a/src/corelib/time/qdatetimeparser_p.h b/src/corelib/time/qdatetimeparser_p.h index d9e39f0795..e9f1455380 100644 --- a/src/corelib/time/qdatetimeparser_p.h +++ b/src/corelib/time/qdatetimeparser_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -57,6 +57,7 @@ #include "QtCore/qdatetime.h" #include "QtCore/qstringlist.h" #include "QtCore/qlocale.h" +#include "QtCore/qcalendar.h" #ifndef QT_BOOTSTRAPPED # include "QtCore/qvariant.h" #endif @@ -82,9 +83,9 @@ public: FromString, DateTimeEdit }; - QDateTimeParser(QVariant::Type t, Context ctx) + QDateTimeParser(QVariant::Type t, Context ctx, const QCalendar &cal = QCalendar()) : currentSectionIndex(-1), display(nullptr), cachedDay(-1), parserType(t), - fixday(false), spec(Qt::LocalTime), context(ctx) + fixday(false), spec(Qt::LocalTime), context(ctx), calendar(cal) { defaultLocale = QLocale::system(); first.type = FirstSection; @@ -195,6 +196,7 @@ public: void setDefaultLocale(const QLocale &loc) { defaultLocale = loc; } virtual QString displayText() const { return text; } + void setCalendar(const QCalendar &calendar); private: int sectionMaxSize(Section s, int count) const; @@ -215,7 +217,7 @@ private: ParsedSection parseSection(const QDateTime ¤tValue, int sectionIndex, int offset, QString *text) const; int findMonth(const QString &str1, int monthstart, int sectionIndex, - QString *monthName = nullptr, int *used = nullptr) const; + int year, QString *monthName = nullptr, int *used = nullptr) const; int findDay(const QString &str1, int intDaystart, int sectionIndex, QString *dayName = nullptr, int *used = nullptr) const; ParsedSection findTimeZone(QStringRef str, const QDateTime &when, @@ -297,6 +299,7 @@ protected: // for the benefit of QDateTimeEditPrivate bool fixday; Qt::TimeSpec spec; // spec if used by QDateTimeEdit Context context; + QCalendar calendar; }; Q_DECLARE_TYPEINFO(QDateTimeParser::SectionNode, Q_PRIMITIVE_TYPE); diff --git a/src/corelib/time/qgregoriancalendar.cpp b/src/corelib/time/qgregoriancalendar.cpp new file mode 100644 index 0000000000..64501600b4 --- /dev/null +++ b/src/corelib/time/qgregoriancalendar.cpp @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qgregoriancalendar_p.h" +#include "qcalendarmath_p.h" +#include + +QT_BEGIN_NAMESPACE + +using namespace QRoundingDown; + +/*! + \since 5.14 + + \class QGregorianCalendar + \inmodule QtCore + \brief The QGregorianCalendar class implements the Gregorian calendar. + + \section1 The Gregorian Calendar + + The Gregorian calendar is a refinement of the earlier Julian calendar, + itself a late form of the Roman calendar. It is widely used. + + \sa QRomanCalendar, QCalendarBackend, QCalendar +*/ + +QGregorianCalendar::QGregorianCalendar() + : QRomanCalendar(QStringLiteral("Gregorian"), QCalendar::System::Gregorian) +{ + registerAlias(QStringLiteral("gregory")); +} + +QString QGregorianCalendar::name() const +{ + return QStringLiteral("Gregorian"); +} + +QCalendar::System QGregorianCalendar::calendarSystem() const +{ + return QCalendar::System::Gregorian; +} + +bool QGregorianCalendar::isLeapYear(int year) const +{ + if (year == QCalendar::Unspecified) + return false; + + // No year 0 in Gregorian calendar, so -1, -5, -9 etc are leap years + if (year < 1) + ++year; + + return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); +} + +bool QGregorianCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd) const +{ + Q_ASSERT(jd); + if (!isDateValid(year, month, day)) + return false; + + if (year < 0) + ++year; + + /* + * Math from The Calendar FAQ at http://www.tondering.dk/claus/cal/julperiod.php + * This formula is correct for all julian days, when using mathematical integer + * division (round to negative infinity), not c++11 integer division (round to zero) + */ + int a = month < 3 ? 1 : 0; + qint64 y = qint64(year) + 4800 - a; + int m = month + 12 * a - 3; + *jd = day + qDiv(153 * m + 2, 5) - 32045 + + 365 * y + qDiv(y, 4) - qDiv(y, 100) + qDiv(y, 400); + return true; +} + +QCalendar::YearMonthDay QGregorianCalendar::julianDayToDate(qint64 jd) const +{ + /* + * Math from The Calendar FAQ at http://www.tondering.dk/claus/cal/julperiod.php + * This formula is correct for all julian days, when using mathematical integer + * division (round to negative infinity), not c++11 integer division (round to zero) + */ + qint64 a = jd + 32044; + qint64 b = qDiv(4 * a + 3, 146097); + int c = a - qDiv(146097 * b, 4); + + int d = qDiv(4 * c + 3, 1461); + int e = c - qDiv(1461 * d, 4); + int m = qDiv(5 * e + 2, 153); + + int y = 100 * b + d - 4800 + qDiv(m, 10); + + // Adjust for no year 0 + int year = y > 0 ? y : y - 1; + int month = m + 3 - 12 * qDiv(m, 10); + int day = e - qDiv(153 * m + 2, 5) + 1; + + return QCalendar::YearMonthDay(year, month, day); +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qgregoriancalendar_p.h b/src/corelib/time/qgregoriancalendar_p.h new file mode 100644 index 0000000000..4e6c42ef76 --- /dev/null +++ b/src/corelib/time/qgregoriancalendar_p.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QGREGORIAN_CALENDAR_P_H +#define QGREGORIAN_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qromancalendar_p.h" + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QGregorianCalendar : public QRomanCalendar +{ + // TODO: provide static methods, called by the overrides, that can be called + // directly by QDate to optimize various parts. +public: + QGregorianCalendar(); + // CAlendar properties: + QString name() const override; + QCalendar::System calendarSystem() const override; + // Date queries: + bool isLeapYear(int year) const override; + // Julian Day conversions: + bool dateToJulianDay(int year, int month, int day, qint64 *jd) const override; + QCalendar::YearMonthDay julianDayToDate(qint64 jd) const override; + + // Names of months (implemented in qlocale.cpp): + QString monthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const override; + QString standaloneMonthName(const QLocale &locale, int month, int year, + QLocale::FormatType format) const override; +}; + +QT_END_NAMESPACE + +#endif // QGREGORIAN_CALENDAR_P_H diff --git a/src/corelib/time/qromancalendar.cpp b/src/corelib/time/qromancalendar.cpp new file mode 100644 index 0000000000..7b07fe8498 --- /dev/null +++ b/src/corelib/time/qromancalendar.cpp @@ -0,0 +1,105 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobal.h" +#include "qromancalendar_p.h" +#include "qromancalendar_data_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \since 5.14 + + \class QRomanCalendar + \inmodule QtCore + \brief The QRomanCalendar class is a shared base for calendars based on the + ancient Roman calendar. + + \section1 + + Calendars based on the ancient Roman calendar share the names of months, whose + lengths depend in a common way on whether the year is a leap year. They differ + in how they determine which years are leap years. + + \sa QGregorianCalendar +*/ + +int QRomanCalendar::daysInMonth(int month, int year) const +{ + if (!year || month < 1 || month > 12) + return 0; + + if (month == 2) + return isLeapYear(year) ? 29 : 28; + + // Long if odd up to July = 7, or if even from 8 = August onwards: + return 30 | ((month & 1) ^ (month >> 3)); +} + +int QRomanCalendar::minDaysInMonth() const +{ + return 28; +} + +bool QRomanCalendar::isLunar() const +{ + return false; +} + +bool QRomanCalendar::isLuniSolar() const +{ + return false; +} + +bool QRomanCalendar::isSolar() const +{ + return true; +} + +const QCalendarLocale *QRomanCalendar::localeMonthIndexData() const +{ + return locale_data; +} + +const ushort *QRomanCalendar::localeMonthData() const +{ + return months_data; +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qromancalendar_data_p.h b/src/corelib/time/qromancalendar_data_p.h new file mode 100644 index 0000000000..b3a2a24a44 --- /dev/null +++ b/src/corelib/time/qromancalendar_data_p.h @@ -0,0 +1,2646 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QROMANCALENDAR_DATA_P_H +#define QROMANCALENDAR_DATA_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +// GENERATED PART STARTS HERE + +/* + This part of the file was generated on 2019-05-27 from the + Common Locale Data Repository v35.1 + + http://www.unicode.org/cldr/ + + Do not edit this section: instead regenerate it using + cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or + edited) CLDR data; see qtbase/util/locale_database/. +*/ + +static const QCalendarLocale locale_data[] = { + // lang script terr sShort sLong sNarrow short long narrow + { 1, 0, 0,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 158,29 }}, // C/AnyScript/AnyCountry + { 3, 7, 69,{ 187,48 },{ 235,111 },{ 134,24 },{ 187,48 },{ 235,111 },{ 134,24 }}, // Oromo/Latin/Ethiopia + { 3, 7, 111,{ 187,48 },{ 235,111 },{ 346,24 },{ 187,48 },{ 235,111 },{ 134,24 }}, // Oromo/Latin/Kenya + { 4, 7, 69,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Afar/Latin/Ethiopia + { 5, 7, 195,{ 445,59 },{ 504,92 },{ 134,24 },{ 445,59 },{ 504,92 },{ 134,24 }}, // Afrikaans/Latin/South Africa + { 5, 7, 148,{ 445,59 },{ 504,92 },{ 134,24 },{ 445,59 },{ 504,92 },{ 134,24 }}, // Afrikaans/Latin/Namibia + { 6, 7, 2,{ 596,50 },{ 646,78 },{ 724,27 },{ 596,50 },{ 646,78 },{ 724,27 }}, // Albanian/Latin/Albania + { 6, 7, 127,{ 596,50 },{ 646,78 },{ 724,27 },{ 596,50 },{ 646,78 },{ 724,27 }}, // Albanian/Latin/Macedonia + { 6, 7, 257,{ 596,50 },{ 646,78 },{ 724,27 },{ 596,50 },{ 646,78 },{ 724,27 }}, // Albanian/Latin/Kosovo + { 7, 14, 69,{ 751,46 },{ 797,61 },{ 858,24 },{ 751,46 },{ 797,61 },{ 858,24 }}, // Amharic/Ethiopic/Ethiopia + { 8, 1, 64,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Egypt + { 8, 1, 3,{ 981,71 },{ 981,71 },{ 1052,24 },{ 981,71 },{ 981,71 },{ 1052,24 }}, // Arabic/Arabic/Algeria + { 8, 1, 17,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Bahrain + { 8, 1, 42,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Chad + { 8, 1, 48,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Comoros + { 8, 1, 59,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Djibouti + { 8, 1, 67,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Eritrea + { 8, 1, 103,{ 1076,92 },{ 1076,92 },{ 1168,24 },{ 1192,92 },{ 1076,92 },{ 1168,24 }}, // Arabic/Arabic/Iraq + { 8, 1, 105,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Israel + { 8, 1, 109,{ 1076,92 },{ 1076,92 },{ 1168,24 },{ 1076,92 },{ 1076,92 },{ 1168,24 }}, // Arabic/Arabic/Jordan + { 8, 1, 115,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Kuwait + { 8, 1, 119,{ 1076,92 },{ 1076,92 },{ 1168,24 },{ 1076,92 },{ 1076,92 },{ 1168,24 }}, // Arabic/Arabic/Lebanon + { 8, 1, 122,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Libya + { 8, 1, 136,{ 1284,72 },{ 1284,72 },{ 1356,24 },{ 1284,72 },{ 1284,72 },{ 1356,24 }}, // Arabic/Arabic/Mauritania + { 8, 1, 145,{ 1380,70 },{ 1380,70 },{ 1450,24 },{ 1380,70 },{ 1380,70 },{ 1450,24 }}, // Arabic/Arabic/Morocco + { 8, 1, 162,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Oman + { 8, 1, 165,{ 1076,92 },{ 1076,92 },{ 1168,24 },{ 1076,92 },{ 1076,92 },{ 1168,24 }}, // Arabic/Arabic/Palestinian Territories + { 8, 1, 175,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Qatar + { 8, 1, 186,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Saudi Arabia + { 8, 1, 194,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Somalia + { 8, 1, 201,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Sudan + { 8, 1, 207,{ 1076,92 },{ 1076,92 },{ 1168,24 },{ 1076,92 },{ 1076,92 },{ 1168,24 }}, // Arabic/Arabic/Syria + { 8, 1, 216,{ 981,71 },{ 981,71 },{ 1052,24 },{ 981,71 },{ 981,71 },{ 1052,24 }}, // Arabic/Arabic/Tunisia + { 8, 1, 223,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/United Arab Emirates + { 8, 1, 236,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Western Sahara + { 8, 1, 237,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/Yemen + { 8, 1, 254,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/South Sudan + { 8, 1, 260,{ 882,75 },{ 882,75 },{ 957,24 },{ 882,75 },{ 882,75 },{ 957,24 }}, // Arabic/Arabic/World + { 9, 10, 11,{ 1474,48 },{ 1522,94 },{ 1616,24 },{ 1474,48 },{ 1640,106 },{ 1616,24 }}, // Armenian/Armenian/Armenia + { 10, 11, 100,{ 1746,64 },{ 1810,89 },{ 1899,24 },{ 1746,64 },{ 1810,89 },{ 1899,24 }}, // Assamese/Bengali/India + { 12, 7, 15,{ 1923,48 },{ 1971,77 },{ 418,27 },{ 1923,48 },{ 2048,77 },{ 418,27 }}, // Azerbaijani/Latin/Azerbaijan + { 12, 1, 102,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Azerbaijani/Arabic/Iran + { 12, 2, 15,{ 2125,48 },{ 2173,77 },{ 418,27 },{ 2125,48 },{ 2250,77 },{ 418,27 }}, // Azerbaijani/Cyrillic/Azerbaijan + { 13, 2, 178,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Bashkir/Cyrillic/Russia + { 14, 7, 197,{ 2327,60 },{ 2387,93 },{ 2480,24 },{ 2327,60 },{ 2387,93 },{ 2480,24 }}, // Basque/Latin/Spain + { 15, 11, 18,{ 2504,90 },{ 2504,90 },{ 2594,33 },{ 2627,77 },{ 2504,90 },{ 2594,33 }}, // Bengali/Bengali/Bangladesh + { 15, 11, 100,{ 2504,90 },{ 2504,90 },{ 2594,33 },{ 2627,77 },{ 2504,90 },{ 2594,33 }}, // Bengali/Bengali/India + { 16, 31, 25,{ 2704,63 },{ 2767,191 },{ 2958,27 },{ 2985,27 },{ 3012,132 },{ 3144,27 }}, // Dzongkha/Tibetan/Bhutan + { 19, 7, 74,{ 3171,63 },{ 3234,78 },{ 3312,36 },{ 3171,63 },{ 3234,78 },{ 3312,36 }}, // Breton/Latin/France + { 20, 2, 33,{ 3348,49 },{ 3397,82 },{ 3479,24 },{ 3348,49 },{ 3397,82 },{ 3479,24 }}, // Bulgarian/Cyrillic/Bulgaria + { 21, 25, 147,{ 3503,43 },{ 3546,88 },{ 3634,24 },{ 3503,43 },{ 3546,88 },{ 3634,24 }}, // Burmese/Myanmar/Myanmar + { 22, 2, 20,{ 3658,48 },{ 3706,95 },{ 3801,24 },{ 3825,48 },{ 3873,98 },{ 3801,24 }}, // Belarusian/Cyrillic/Belarus + { 23, 20, 36,{ 3971,71 },{ 3971,71 },{ 4042,24 },{ 3971,71 },{ 3971,71 },{ 4042,24 }}, // Khmer/Khmer/Cambodia + { 24, 7, 197,{ 4066,60 },{ 4126,82 },{ 4208,36 },{ 4244,93 },{ 4337,115 },{ 4208,36 }}, // Catalan/Latin/Spain + { 24, 7, 5,{ 4066,60 },{ 4126,82 },{ 4208,36 },{ 4244,93 },{ 4337,115 },{ 4208,36 }}, // Catalan/Latin/Andorra + { 24, 7, 74,{ 4066,60 },{ 4126,82 },{ 4208,36 },{ 4244,93 },{ 4337,115 },{ 4208,36 }}, // Catalan/Latin/France + { 24, 7, 106,{ 4066,60 },{ 4126,82 },{ 4208,36 },{ 4244,93 },{ 4337,115 },{ 4208,36 }}, // Catalan/Latin/Italy + { 25, 5, 44,{ 4452,39 },{ 4491,38 },{ 418,27 },{ 4452,39 },{ 4491,38 },{ 418,27 }}, // Chinese/Simplified Han/China + { 25, 5, 97,{ 4452,39 },{ 4491,38 },{ 418,27 },{ 4452,39 },{ 4491,38 },{ 418,27 }}, // Chinese/Simplified Han/Hong Kong + { 25, 5, 126,{ 4452,39 },{ 4491,38 },{ 418,27 },{ 4452,39 },{ 4491,38 },{ 418,27 }}, // Chinese/Simplified Han/Macau + { 25, 5, 190,{ 4452,39 },{ 4491,38 },{ 418,27 },{ 4452,39 },{ 4491,38 },{ 418,27 }}, // Chinese/Simplified Han/Singapore + { 25, 6, 97,{ 4452,39 },{ 4452,39 },{ 418,27 },{ 4452,39 },{ 4452,39 },{ 418,27 }}, // Chinese/Traditional Han/Hong Kong + { 25, 6, 126,{ 4452,39 },{ 4452,39 },{ 418,27 },{ 4452,39 },{ 4452,39 },{ 418,27 }}, // Chinese/Traditional Han/Macau + { 25, 6, 208,{ 4452,39 },{ 4452,39 },{ 418,27 },{ 4452,39 },{ 4452,39 },{ 418,27 }}, // Chinese/Traditional Han/Taiwan + { 26, 7, 74,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Corsican/Latin/France + { 27, 7, 54,{ 4529,49 },{ 4578,94 },{ 4672,39 },{ 4529,49 },{ 4711,98 },{ 4672,39 }}, // Croatian/Latin/Croatia + { 27, 7, 27,{ 4529,49 },{ 4578,94 },{ 4672,39 },{ 4529,49 },{ 4711,98 },{ 4672,39 }}, // Croatian/Latin/Bosnia And Herzegowina + { 28, 7, 57,{ 4809,48 },{ 4857,82 },{ 418,27 },{ 4809,48 },{ 4939,84 },{ 418,27 }}, // Czech/Latin/Czech Republic + { 29, 7, 58,{ 5023,59 },{ 5082,84 },{ 134,24 },{ 5023,59 },{ 5082,84 },{ 134,24 }}, // Danish/Latin/Denmark + { 29, 7, 86,{ 5023,59 },{ 5082,84 },{ 134,24 },{ 5023,59 },{ 5082,84 },{ 134,24 }}, // Danish/Latin/Greenland + { 30, 7, 151,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Netherlands + { 30, 7, 12,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Aruba + { 30, 7, 21,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Belgium + { 30, 7, 152,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Cura Sao + { 30, 7, 202,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Suriname + { 30, 7, 255,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Bonaire + { 30, 7, 256,{ 5166,59 },{ 5225,88 },{ 134,24 },{ 5166,59 },{ 5225,88 },{ 134,24 }}, // Dutch/Latin/Sint Maarten + { 31, 7, 225,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/United States + { 31, 3, 225,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // English/Deseret/United States + { 31, 7, 4,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/American Samoa + { 31, 7, 7,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Anguilla + { 31, 7, 9,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Antigua And Barbuda + { 31, 7, 13,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Australia + { 31, 7, 14,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Austria + { 31, 7, 16,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Bahamas + { 31, 7, 19,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Barbados + { 31, 7, 21,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Belgium + { 31, 7, 22,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Belize + { 31, 7, 24,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Bermuda + { 31, 7, 28,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Botswana + { 31, 7, 31,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/British Indian Ocean Territory + { 31, 7, 35,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Burundi + { 31, 7, 37,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Cameroon + { 31, 7, 38,{ 5313,59 },{ 48,86 },{ 134,24 },{ 5313,59 },{ 48,86 },{ 134,24 }}, // English/Latin/Canada + { 31, 7, 40,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Cayman Islands + { 31, 7, 45,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Christmas Island + { 31, 7, 46,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Cocos Islands + { 31, 7, 51,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Cook Islands + { 31, 7, 56,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Cyprus + { 31, 7, 58,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Denmark + { 31, 7, 60,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Dominica + { 31, 7, 67,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Eritrea + { 31, 7, 70,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Falkland Islands + { 31, 7, 72,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Fiji + { 31, 7, 73,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Finland + { 31, 7, 75,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Guernsey + { 31, 7, 80,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Gambia + { 31, 7, 82,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Germany + { 31, 7, 83,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Ghana + { 31, 7, 84,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Gibraltar + { 31, 7, 87,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Grenada + { 31, 7, 89,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Guam + { 31, 7, 93,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Guyana + { 31, 7, 97,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Hong Kong + { 31, 7, 100,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/India + { 31, 7, 104,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Ireland + { 31, 7, 105,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Israel + { 31, 7, 107,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Jamaica + { 31, 7, 111,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Kenya + { 31, 7, 112,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Kiribati + { 31, 7, 120,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Lesotho + { 31, 7, 121,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Liberia + { 31, 7, 126,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Macau + { 31, 7, 128,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Madagascar + { 31, 7, 129,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Malawi + { 31, 7, 130,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Malaysia + { 31, 7, 133,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Malta + { 31, 7, 134,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Marshall Islands + { 31, 7, 137,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Mauritius + { 31, 7, 140,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Micronesia + { 31, 7, 144,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Montserrat + { 31, 7, 148,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Namibia + { 31, 7, 149,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Nauru + { 31, 7, 151,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Netherlands + { 31, 7, 154,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/New Zealand + { 31, 7, 157,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Nigeria + { 31, 7, 158,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Niue + { 31, 7, 159,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Norfolk Island + { 31, 7, 160,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Northern Mariana Islands + { 31, 7, 163,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Pakistan + { 31, 7, 164,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Palau + { 31, 7, 167,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Papua New Guinea + { 31, 7, 170,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Philippines + { 31, 7, 171,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Pitcairn + { 31, 7, 174,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Puerto Rico + { 31, 7, 179,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Rwanda + { 31, 7, 180,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Saint Kitts And Nevis + { 31, 7, 181,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Saint Lucia + { 31, 7, 182,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Saint Vincent And The Grenadines + { 31, 7, 183,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Samoa + { 31, 7, 188,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Seychelles + { 31, 7, 189,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Sierra Leone + { 31, 7, 190,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Singapore + { 31, 7, 192,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Slovenia + { 31, 7, 193,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Solomon Islands + { 31, 7, 195,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/South Africa + { 31, 7, 199,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Saint Helena + { 31, 7, 201,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Sudan + { 31, 7, 204,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Swaziland + { 31, 7, 205,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Sweden + { 31, 7, 206,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Switzerland + { 31, 7, 210,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Tanzania + { 31, 7, 213,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Tokelau + { 31, 7, 214,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Tonga + { 31, 7, 215,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Trinidad And Tobago + { 31, 7, 219,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Turks And Caicos Islands + { 31, 7, 220,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Tuvalu + { 31, 7, 221,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Uganda + { 31, 7, 223,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/United Arab Emirates + { 31, 7, 224,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/United Kingdom + { 31, 7, 226,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/United States Minor Outlying Islands + { 31, 7, 229,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Vanuatu + { 31, 7, 233,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/British Virgin Islands + { 31, 7, 234,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/United States Virgin Islands + { 31, 7, 239,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Zambia + { 31, 7, 240,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Zimbabwe + { 31, 7, 249,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Diego Garcia + { 31, 7, 251,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Isle Of Man + { 31, 7, 252,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Jersey + { 31, 7, 254,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/South Sudan + { 31, 7, 256,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Sint Maarten + { 31, 7, 260,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/World + { 31, 7, 261,{ 0,48 },{ 48,86 },{ 134,24 },{ 0,48 },{ 48,86 },{ 134,24 }}, // English/Latin/Europe + { 32, 7, 260,{ 5372,48 },{ 5420,91 },{ 134,24 },{ 5372,48 },{ 5420,91 },{ 134,24 }}, // Esperanto/Latin/World + { 33, 7, 68,{ 5511,59 },{ 5570,91 },{ 5661,24 },{ 5511,59 },{ 5570,91 },{ 5661,24 }}, // Estonian/Latin/Estonia + { 34, 7, 71,{ 5685,48 },{ 5733,83 },{ 134,24 },{ 5816,59 },{ 5733,83 },{ 134,24 }}, // Faroese/Latin/Faroe Islands + { 34, 7, 58,{ 5685,48 },{ 5733,83 },{ 134,24 },{ 5816,59 },{ 5733,83 },{ 134,24 }}, // Faroese/Latin/Denmark + { 36, 7, 73,{ 5875,69 },{ 5944,105 },{ 6049,24 },{ 6073,93 },{ 6166,129 },{ 6049,24 }}, // Finnish/Latin/Finland + { 37, 7, 74,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/France + { 37, 7, 3,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Algeria + { 37, 7, 21,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Belgium + { 37, 7, 23,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Benin + { 37, 7, 34,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Burkina Faso + { 37, 7, 35,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Burundi + { 37, 7, 37,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Cameroon + { 37, 7, 38,{ 6443,64 },{ 6358,85 },{ 134,24 },{ 6443,64 },{ 6358,85 },{ 134,24 }}, // French/Latin/Canada + { 37, 7, 41,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Central African Republic + { 37, 7, 42,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Chad + { 37, 7, 48,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Comoros + { 37, 7, 49,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Congo Kinshasa + { 37, 7, 50,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Congo Brazzaville + { 37, 7, 53,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Ivory Coast + { 37, 7, 59,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Djibouti + { 37, 7, 66,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Equatorial Guinea + { 37, 7, 76,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/French Guiana + { 37, 7, 77,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/French Polynesia + { 37, 7, 79,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Gabon + { 37, 7, 88,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Guadeloupe + { 37, 7, 91,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Guinea + { 37, 7, 94,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Haiti + { 37, 7, 125,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Luxembourg + { 37, 7, 128,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Madagascar + { 37, 7, 132,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Mali + { 37, 7, 135,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Martinique + { 37, 7, 136,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Mauritania + { 37, 7, 137,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Mauritius + { 37, 7, 138,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Mayotte + { 37, 7, 142,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Monaco + { 37, 7, 145,{ 6507,61 },{ 6358,85 },{ 134,24 },{ 6507,61 },{ 6358,85 },{ 134,24 }}, // French/Latin/Morocco + { 37, 7, 153,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/New Caledonia + { 37, 7, 156,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Niger + { 37, 7, 176,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Reunion + { 37, 7, 179,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Rwanda + { 37, 7, 187,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Senegal + { 37, 7, 188,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Seychelles + { 37, 7, 200,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Saint Pierre And Miquelon + { 37, 7, 206,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Switzerland + { 37, 7, 207,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Syria + { 37, 7, 212,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Togo + { 37, 7, 216,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Tunisia + { 37, 7, 229,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Vanuatu + { 37, 7, 235,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Wallis And Futuna Islands + { 37, 7, 244,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Saint Barthelemy + { 37, 7, 245,{ 6295,63 },{ 6358,85 },{ 134,24 },{ 6295,63 },{ 6358,85 },{ 134,24 }}, // French/Latin/Saint Martin + { 38, 7, 151,{ 6568,48 },{ 6616,95 },{ 134,24 },{ 6568,48 },{ 6616,95 },{ 134,24 }}, // Western Frisian/Latin/Netherlands + { 39, 7, 224,{ 6711,61 },{ 6772,142 },{ 6914,24 },{ 6711,61 },{ 6938,167 },{ 6914,24 }}, // Gaelic/Latin/United Kingdom + { 40, 7, 197,{ 7105,60 },{ 7165,87 },{ 7252,24 },{ 7276,60 },{ 7336,87 },{ 7423,36 }}, // Galician/Latin/Spain + { 41, 15, 81,{ 7459,48 },{ 7507,99 },{ 7606,24 },{ 7459,48 },{ 7507,99 },{ 7606,24 }}, // Georgian/Georgian/Georgia + { 42, 7, 82,{ 7630,48 },{ 7678,83 },{ 134,24 },{ 7761,60 },{ 7678,83 },{ 134,24 }}, // German/Latin/Germany + { 42, 7, 14,{ 7821,48 },{ 7869,83 },{ 134,24 },{ 7952,59 },{ 7869,83 },{ 134,24 }}, // German/Latin/Austria + { 42, 7, 21,{ 7630,48 },{ 7678,83 },{ 134,24 },{ 7761,60 },{ 7678,83 },{ 134,24 }}, // German/Latin/Belgium + { 42, 7, 106,{ 7821,48 },{ 7869,83 },{ 134,24 },{ 7952,59 },{ 7869,83 },{ 134,24 }}, // German/Latin/Italy + { 42, 7, 123,{ 7630,48 },{ 7678,83 },{ 134,24 },{ 7761,60 },{ 7678,83 },{ 134,24 }}, // German/Latin/Liechtenstein + { 42, 7, 125,{ 7630,48 },{ 7678,83 },{ 134,24 },{ 7761,60 },{ 7678,83 },{ 134,24 }}, // German/Latin/Luxembourg + { 42, 7, 206,{ 7630,48 },{ 7678,83 },{ 134,24 },{ 7761,60 },{ 7678,83 },{ 134,24 }}, // German/Latin/Switzerland + { 43, 16, 85,{ 8011,50 },{ 8061,115 },{ 8176,24 },{ 8200,50 },{ 8250,115 },{ 8176,24 }}, // Greek/Greek/Greece + { 43, 16, 56,{ 8011,50 },{ 8061,115 },{ 8176,24 },{ 8200,50 },{ 8250,115 },{ 8176,24 }}, // Greek/Greek/Cyprus + { 44, 7, 86,{ 8365,48 },{ 8413,96 },{ 134,24 },{ 8365,48 },{ 8413,96 },{ 134,24 }}, // Greenlandic/Latin/Greenland + { 45, 7, 168,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Guarani/Latin/Paraguay + { 46, 17, 100,{ 8509,67 },{ 8576,87 },{ 8663,31 },{ 8509,67 },{ 8576,87 },{ 8663,31 }}, // Gujarati/Gujarati/India + { 47, 7, 157,{ 8694,48 },{ 8742,85 },{ 8827,24 },{ 8694,48 },{ 8742,85 },{ 8827,24 }}, // Hausa/Latin/Nigeria + { 47, 1, 157,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Hausa/Arabic/Nigeria + { 47, 7, 83,{ 8694,48 },{ 8742,85 },{ 8827,24 },{ 8694,48 },{ 8742,85 },{ 8827,24 }}, // Hausa/Latin/Ghana + { 47, 7, 156,{ 8694,48 },{ 8742,85 },{ 8827,24 },{ 8694,48 },{ 8742,85 },{ 8827,24 }}, // Hausa/Latin/Niger + { 48, 18, 105,{ 8851,58 },{ 8909,72 },{ 418,27 },{ 8851,58 },{ 8909,72 },{ 418,27 }}, // Hebrew/Hebrew/Israel + { 49, 13, 100,{ 8981,59 },{ 9040,73 },{ 9113,30 },{ 8981,59 },{ 9040,73 },{ 9113,30 }}, // Hindi/Devanagari/India + { 50, 7, 98,{ 9143,64 },{ 9207,98 },{ 9305,25 },{ 9143,64 },{ 9207,98 },{ 9305,25 }}, // Hungarian/Latin/Hungary + { 51, 7, 99,{ 9330,59 },{ 9389,82 },{ 9471,24 },{ 9330,59 },{ 9389,82 },{ 9471,24 }}, // Icelandic/Latin/Iceland + { 52, 7, 101,{ 9495,48 },{ 9543,87 },{ 134,24 },{ 9495,48 },{ 9543,87 },{ 134,24 }}, // Indonesian/Latin/Indonesia + { 53, 7, 260,{ 9630,48 },{ 9678,93 },{ 418,27 },{ 9630,48 },{ 9678,93 },{ 9771,24 }}, // Interlingua/Latin/World + { 55, 44, 38,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Inuktitut/Canadian Aboriginal/Canada + { 55, 7, 38,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Inuktitut/Latin/Canada + { 57, 7, 104,{ 9795,62 },{ 9857,107 },{ 9964,24 },{ 9795,62 },{ 9857,107 },{ 9964,24 }}, // Irish/Latin/Ireland + { 58, 7, 106,{ 9988,48 },{ 10036,94 },{ 10130,24 },{ 9988,48 },{ 10036,94 },{ 10130,24 }}, // Italian/Latin/Italy + { 58, 7, 184,{ 9988,48 },{ 10036,94 },{ 10130,24 },{ 9988,48 },{ 10036,94 },{ 10130,24 }}, // Italian/Latin/San Marino + { 58, 7, 206,{ 9988,48 },{ 10036,94 },{ 10130,24 },{ 9988,48 },{ 10036,94 },{ 10130,24 }}, // Italian/Latin/Switzerland + { 58, 7, 230,{ 9988,48 },{ 10036,94 },{ 10130,24 },{ 9988,48 },{ 10036,94 },{ 10130,24 }}, // Italian/Latin/Vatican City State + { 59, 19, 108,{ 4452,39 },{ 4452,39 },{ 418,27 },{ 4452,39 },{ 4452,39 },{ 418,27 }}, // Japanese/Japanese/Japan + { 60, 7, 101,{ 10154,48 },{ 9543,87 },{ 134,24 },{ 10154,48 },{ 9543,87 },{ 134,24 }}, // Javanese/Latin/Indonesia + { 61, 21, 100,{ 10202,63 },{ 10265,87 },{ 10352,31 },{ 10383,69 },{ 10265,87 },{ 10352,31 }}, // Kannada/Kannada/India + { 62, 1, 100,{ 10452,72 },{ 10452,72 },{ 10524,24 },{ 10452,72 },{ 10452,72 },{ 10524,24 }}, // Kashmiri/Arabic/India + { 63, 2, 110,{ 10548,60 },{ 10608,83 },{ 10691,24 },{ 10548,60 },{ 10715,83 },{ 10691,24 }}, // Kazakh/Cyrillic/Kazakhstan + { 64, 7, 179,{ 10798,60 },{ 10858,101 },{ 418,27 },{ 10798,60 },{ 10858,101 },{ 418,27 }}, // Kinyarwanda/Latin/Rwanda + { 65, 2, 116,{ 10959,48 },{ 11007,80 },{ 11087,24 },{ 11111,59 },{ 11170,80 },{ 11087,24 }}, // Kirghiz/Cyrillic/Kyrgyzstan + { 66, 22, 114,{ 11250,39 },{ 11250,39 },{ 11250,39 },{ 11250,39 },{ 11250,39 },{ 11250,39 }}, // Korean/Korean/South Korea + { 66, 22, 113,{ 11250,39 },{ 11250,39 },{ 11250,39 },{ 11250,39 },{ 11250,39 },{ 11250,39 }}, // Korean/Korean/North Korea + { 67, 7, 217,{ 11289,48 },{ 11337,88 },{ 11425,24 },{ 11289,48 },{ 11449,101 },{ 11425,24 }}, // Kurdish/Latin/Turkey + { 68, 7, 35,{ 11550,60 },{ 11610,106 },{ 418,27 },{ 11550,60 },{ 11610,106 },{ 418,27 }}, // Rundi/Latin/Burundi + { 69, 23, 117,{ 11716,61 },{ 11777,75 },{ 418,27 },{ 11716,61 },{ 11777,75 },{ 418,27 }}, // Lao/Lao/Laos + { 71, 7, 118,{ 11852,65 },{ 11917,101 },{ 134,24 },{ 11852,65 },{ 11917,101 },{ 134,24 }}, // Latvian/Latin/Latvia + { 72, 7, 49,{ 12018,48 },{ 12066,203 },{ 12269,24 },{ 12018,48 },{ 12066,203 },{ 12269,24 }}, // Lingala/Latin/Congo Kinshasa + { 72, 7, 6,{ 12018,48 },{ 12066,203 },{ 12269,24 },{ 12018,48 },{ 12066,203 },{ 12269,24 }}, // Lingala/Latin/Angola + { 72, 7, 41,{ 12018,48 },{ 12066,203 },{ 12269,24 },{ 12018,48 },{ 12066,203 },{ 12269,24 }}, // Lingala/Latin/Central African Republic + { 72, 7, 50,{ 12018,48 },{ 12066,203 },{ 12269,24 },{ 12018,48 },{ 12066,203 },{ 12269,24 }}, // Lingala/Latin/Congo Brazzaville + { 73, 7, 124,{ 12293,70 },{ 12363,96 },{ 12459,24 },{ 12293,70 },{ 12483,98 },{ 12459,24 }}, // Lithuanian/Latin/Lithuania + { 74, 2, 127,{ 12581,61 },{ 12642,85 },{ 12727,24 },{ 12581,61 },{ 12642,85 },{ 12727,24 }}, // Macedonian/Cyrillic/Macedonia + { 75, 7, 128,{ 12751,48 },{ 12799,92 },{ 134,24 },{ 12751,48 },{ 12799,92 },{ 134,24 }}, // Malagasy/Latin/Madagascar + { 76, 7, 130,{ 12891,48 },{ 12939,82 },{ 13021,24 },{ 12891,48 },{ 12939,82 },{ 13021,24 }}, // Malay/Latin/Malaysia + { 76, 1, 130,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Malay/Arabic/Malaysia + { 76, 7, 32,{ 12891,48 },{ 12939,82 },{ 13021,24 },{ 12891,48 },{ 12939,82 },{ 13021,24 }}, // Malay/Latin/Brunei + { 76, 7, 190,{ 12891,48 },{ 12939,82 },{ 13021,24 },{ 12891,48 },{ 12939,82 },{ 13021,24 }}, // Malay/Latin/Singapore + { 77, 24, 100,{ 13045,62 },{ 13107,88 },{ 13195,32 },{ 13045,62 },{ 13107,88 },{ 13195,32 }}, // Malayalam/Malayalam/India + { 78, 7, 133,{ 13227,48 },{ 13275,86 },{ 13361,36 },{ 13227,48 },{ 13275,86 },{ 13397,24 }}, // Maltese/Latin/Malta + { 79, 7, 154,{ 13421,59 },{ 13480,133 },{ 13613,24 },{ 13421,59 },{ 13480,133 },{ 13613,24 }}, // Maori/Latin/New Zealand + { 80, 13, 100,{ 13637,66 },{ 13703,86 },{ 13789,32 },{ 13637,66 },{ 13703,86 },{ 13789,32 }}, // Marathi/Devanagari/India + { 82, 2, 143,{ 13821,99 },{ 13920,192 },{ 14112,38 },{ 13821,99 },{ 14150,192 },{ 14112,38 }}, // Mongolian/Cyrillic/Mongolia + { 82, 8, 44,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Mongolian/Mongolian/China + { 84, 13, 150,{ 14342,85 },{ 14342,85 },{ 14427,53 },{ 14342,85 },{ 14342,85 },{ 14480,52 }}, // Nepali/Devanagari/Nepal + { 84, 13, 100,{ 14342,85 },{ 14342,85 },{ 14427,53 },{ 14342,85 },{ 14342,85 },{ 14480,52 }}, // Nepali/Devanagari/India + { 85, 7, 161,{ 5685,48 },{ 14532,83 },{ 134,24 },{ 5816,59 },{ 14532,83 },{ 134,24 }}, // Norwegian Bokmal/Latin/Norway + { 85, 7, 203,{ 5685,48 },{ 14532,83 },{ 134,24 },{ 5816,59 },{ 14532,83 },{ 134,24 }}, // Norwegian Bokmal/Latin/Svalbard And Jan Mayen Islands + { 86, 7, 74,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Occitan/Latin/France + { 87, 26, 100,{ 14615,86 },{ 14615,86 },{ 14701,32 },{ 14615,86 },{ 14615,86 },{ 14701,32 }}, // Oriya/Oriya/India + { 88, 1, 1,{ 14733,68 },{ 14801,69 },{ 418,27 },{ 14870,69 },{ 14870,69 },{ 14939,24 }}, // Pashto/Arabic/Afghanistan + { 88, 1, 163,{ 14733,68 },{ 14801,69 },{ 418,27 },{ 14870,69 },{ 14870,69 },{ 14939,24 }}, // Pashto/Arabic/Pakistan + { 89, 1, 102,{ 14963,70 },{ 14963,70 },{ 15033,24 },{ 15057,74 },{ 15057,74 },{ 15033,24 }}, // Persian/Arabic/Iran + { 89, 1, 1,{ 15131,68 },{ 15131,68 },{ 14939,24 },{ 15199,62 },{ 15131,68 },{ 14939,24 }}, // Persian/Arabic/Afghanistan + { 90, 7, 172,{ 15261,48 },{ 15309,97 },{ 15406,24 },{ 15261,48 },{ 15430,99 },{ 15529,24 }}, // Polish/Latin/Poland + { 91, 7, 30,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Brazil + { 91, 7, 6,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Angola + { 91, 7, 39,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Cape Verde + { 91, 7, 62,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/East Timor + { 91, 7, 66,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Equatorial Guinea + { 91, 7, 92,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Guinea Bissau + { 91, 7, 125,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Luxembourg + { 91, 7, 126,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Macau + { 91, 7, 146,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Mozambique + { 91, 7, 173,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Portugal + { 91, 7, 185,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Sao Tome And Principe + { 91, 7, 206,{ 15553,48 },{ 15601,89 },{ 134,24 },{ 15553,48 },{ 15601,89 },{ 134,24 }}, // Portuguese/Latin/Switzerland + { 92, 4, 100,{ 15690,50 },{ 15740,68 },{ 15808,28 },{ 15690,50 },{ 15740,68 },{ 15808,28 }}, // Punjabi/Gurmukhi/India + { 92, 1, 163,{ 15836,67 },{ 15836,67 },{ 418,27 },{ 15836,67 },{ 15836,67 },{ 418,27 }}, // Punjabi/Arabic/Pakistan + { 93, 7, 169,{ 15903,48 },{ 15951,88 },{ 418,27 },{ 15903,48 },{ 15951,88 },{ 418,27 }}, // Quechua/Latin/Peru + { 93, 7, 26,{ 15903,48 },{ 15951,88 },{ 418,27 },{ 15903,48 },{ 15951,88 },{ 418,27 }}, // Quechua/Latin/Bolivia + { 93, 7, 63,{ 15903,48 },{ 15951,88 },{ 418,27 },{ 15903,48 },{ 15951,88 },{ 418,27 }}, // Quechua/Latin/Ecuador + { 94, 7, 206,{ 16039,67 },{ 16106,92 },{ 16198,24 },{ 16039,67 },{ 16106,92 },{ 16198,24 }}, // Romansh/Latin/Switzerland + { 95, 7, 177,{ 16222,60 },{ 16282,98 },{ 16380,24 },{ 16222,60 },{ 16282,98 },{ 16380,24 }}, // Romanian/Latin/Romania + { 95, 7, 141,{ 16222,60 },{ 16282,98 },{ 16380,24 },{ 16222,60 },{ 16282,98 },{ 16380,24 }}, // Romanian/Latin/Moldova + { 96, 2, 178,{ 16404,62 },{ 11170,80 },{ 11087,24 },{ 16466,62 },{ 16528,82 },{ 11087,24 }}, // Russian/Cyrillic/Russia + { 96, 2, 20,{ 16404,62 },{ 11170,80 },{ 11087,24 },{ 16466,62 },{ 16528,82 },{ 11087,24 }}, // Russian/Cyrillic/Belarus + { 96, 2, 110,{ 16404,62 },{ 11170,80 },{ 11087,24 },{ 16466,62 },{ 16528,82 },{ 11087,24 }}, // Russian/Cyrillic/Kazakhstan + { 96, 2, 116,{ 16404,62 },{ 11170,80 },{ 11087,24 },{ 16466,62 },{ 16528,82 },{ 11087,24 }}, // Russian/Cyrillic/Kyrgyzstan + { 96, 2, 141,{ 16404,62 },{ 11170,80 },{ 11087,24 },{ 16466,62 },{ 16528,82 },{ 11087,24 }}, // Russian/Cyrillic/Moldova + { 96, 2, 222,{ 16404,62 },{ 11170,80 },{ 11087,24 },{ 16466,62 },{ 16528,82 },{ 11087,24 }}, // Russian/Cyrillic/Ukraine + { 98, 7, 41,{ 16610,48 },{ 16658,91 },{ 16749,24 },{ 16610,48 },{ 16658,91 },{ 16749,24 }}, // Sango/Latin/Central African Republic + { 99, 13, 100,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Sanskrit/Devanagari/India + { 100, 2, 243,{ 16773,48 },{ 16821,81 },{ 12727,24 },{ 16773,48 },{ 16821,81 },{ 12727,24 }}, // Serbian/Cyrillic/Serbia + { 100, 7, 27,{ 16902,50 },{ 16952,81 },{ 9771,24 },{ 17033,48 },{ 16952,81 },{ 9771,24 }}, // Serbian/Latin/Bosnia And Herzegowina + { 100, 7, 242,{ 17081,58 },{ 16952,81 },{ 9771,24 },{ 17081,58 },{ 16952,81 },{ 9771,24 }}, // Serbian/Latin/Montenegro + { 100, 7, 243,{ 17033,48 },{ 16952,81 },{ 9771,24 },{ 17033,48 },{ 16952,81 },{ 9771,24 }}, // Serbian/Latin/Serbia + { 100, 2, 27,{ 17139,50 },{ 16821,81 },{ 12727,24 },{ 16773,48 },{ 16821,81 },{ 12727,24 }}, // Serbian/Cyrillic/Bosnia And Herzegowina + { 100, 2, 242,{ 17139,50 },{ 16821,81 },{ 12727,24 },{ 17139,50 },{ 16821,81 },{ 12727,24 }}, // Serbian/Cyrillic/Montenegro + { 100, 2, 257,{ 17139,50 },{ 16821,81 },{ 12727,24 },{ 17139,50 },{ 16821,81 },{ 12727,24 }}, // Serbian/Cyrillic/Kosovo + { 100, 7, 257,{ 17081,58 },{ 16952,81 },{ 9771,24 },{ 17081,58 },{ 16952,81 },{ 9771,24 }}, // Serbian/Latin/Kosovo + { 101, 2, 81,{ 17189,63 },{ 17252,82 },{ 11087,24 },{ 17334,60 },{ 17394,86 },{ 11087,24 }}, // Ossetic/Cyrillic/Georgia + { 101, 2, 178,{ 17189,63 },{ 17252,82 },{ 11087,24 },{ 17334,60 },{ 17394,86 },{ 11087,24 }}, // Ossetic/Cyrillic/Russia + { 102, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Southern Sotho/Latin/South Africa + { 103, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Tswana/Latin/South Africa + { 104, 7, 240,{ 17480,48 },{ 17528,100 },{ 17628,24 },{ 17480,48 },{ 17528,100 },{ 17628,24 }}, // Shona/Latin/Zimbabwe + { 105, 1, 163,{ 17652,72 },{ 17652,72 },{ 134,24 },{ 17652,72 },{ 17652,72 },{ 134,24 }}, // Sindhi/Arabic/Pakistan + { 106, 32, 198,{ 17724,59 },{ 17783,96 },{ 17879,32 },{ 17911,61 },{ 17783,96 },{ 17879,32 }}, // Sinhala/Sinhala/Sri Lanka + { 107, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Swati/Latin/South Africa + { 108, 7, 191,{ 17972,48 },{ 18020,82 },{ 9771,24 },{ 17972,48 },{ 18102,89 },{ 9771,24 }}, // Slovak/Latin/Slovakia + { 109, 7, 192,{ 18191,59 },{ 18250,86 },{ 9771,24 },{ 18191,59 },{ 18250,86 },{ 9771,24 }}, // Slovenian/Latin/Slovenia + { 110, 7, 194,{ 18336,48 },{ 18384,92 },{ 18476,24 },{ 18336,48 },{ 18500,189 },{ 18476,24 }}, // Somali/Latin/Somalia + { 110, 7, 59,{ 18336,48 },{ 18384,92 },{ 18476,24 },{ 18336,48 },{ 18500,189 },{ 18476,24 }}, // Somali/Latin/Djibouti + { 110, 7, 69,{ 18336,48 },{ 18384,92 },{ 18476,24 },{ 18336,48 },{ 18500,189 },{ 18476,24 }}, // Somali/Latin/Ethiopia + { 110, 7, 111,{ 18336,48 },{ 18384,92 },{ 18476,24 },{ 18336,48 },{ 18500,189 },{ 18476,24 }}, // Somali/Latin/Kenya + { 111, 7, 197,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Spain + { 111, 7, 10,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Argentina + { 111, 7, 22,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Belize + { 111, 7, 26,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Bolivia + { 111, 7, 30,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Brazil + { 111, 7, 43,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Chile + { 111, 7, 47,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Colombia + { 111, 7, 52,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Costa Rica + { 111, 7, 55,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Cuba + { 111, 7, 61,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Dominican Republic + { 111, 7, 63,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Ecuador + { 111, 7, 65,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/El Salvador + { 111, 7, 66,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Equatorial Guinea + { 111, 7, 90,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Guatemala + { 111, 7, 96,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Honduras + { 111, 7, 139,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Mexico + { 111, 7, 155,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Nicaragua + { 111, 7, 166,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Panama + { 111, 7, 168,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Paraguay + { 111, 7, 169,{ 18923,60 },{ 15951,88 },{ 18839,24 },{ 18983,60 },{ 19043,88 },{ 18839,24 }}, // Spanish/Latin/Peru + { 111, 7, 170,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Philippines + { 111, 7, 174,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Puerto Rico + { 111, 7, 225,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/United States + { 111, 7, 227,{ 18923,60 },{ 15951,88 },{ 18839,24 },{ 18983,60 },{ 19043,88 },{ 18839,24 }}, // Spanish/Latin/Uruguay + { 111, 7, 231,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Venezuela + { 111, 7, 238,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Canary Islands + { 111, 7, 246,{ 18863,60 },{ 18750,89 },{ 18839,24 },{ 18863,60 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Latin America + { 111, 7, 250,{ 18689,61 },{ 18750,89 },{ 18839,24 },{ 18689,61 },{ 18750,89 },{ 18839,24 }}, // Spanish/Latin/Ceuta And Melilla + { 113, 7, 210,{ 19131,48 },{ 19179,84 },{ 134,24 },{ 19131,48 },{ 19179,84 },{ 134,24 }}, // Swahili/Latin/Tanzania + { 113, 7, 49,{ 19131,48 },{ 19179,84 },{ 134,24 },{ 19131,48 },{ 19179,84 },{ 134,24 }}, // Swahili/Latin/Congo Kinshasa + { 113, 7, 111,{ 19131,48 },{ 19179,84 },{ 134,24 },{ 19131,48 },{ 19179,84 },{ 134,24 }}, // Swahili/Latin/Kenya + { 113, 7, 221,{ 19131,48 },{ 19179,84 },{ 134,24 },{ 19131,48 },{ 19179,84 },{ 134,24 }}, // Swahili/Latin/Uganda + { 114, 7, 205,{ 19263,59 },{ 19322,86 },{ 134,24 },{ 19263,59 },{ 19322,86 },{ 134,24 }}, // Swedish/Latin/Sweden + { 114, 7, 73,{ 19263,59 },{ 19322,86 },{ 134,24 },{ 19263,59 },{ 19322,86 },{ 134,24 }}, // Swedish/Latin/Finland + { 114, 7, 248,{ 19263,59 },{ 19322,86 },{ 134,24 },{ 19263,59 },{ 19322,86 },{ 134,24 }}, // Swedish/Latin/Aland Islands + { 115, 7, 106,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Sardinian/Latin/Italy + { 116, 2, 209,{ 10959,48 },{ 19408,71 },{ 11087,24 },{ 10959,48 },{ 19408,71 },{ 11087,24 }}, // Tajik/Cyrillic/Tajikistan + { 117, 27, 100,{ 19479,58 },{ 19537,86 },{ 19623,31 },{ 19479,58 },{ 19537,86 },{ 19623,31 }}, // Tamil/Tamil/India + { 117, 27, 130,{ 19479,58 },{ 19537,86 },{ 19623,31 },{ 19479,58 },{ 19537,86 },{ 19623,31 }}, // Tamil/Tamil/Malaysia + { 117, 27, 190,{ 19479,58 },{ 19537,86 },{ 19623,31 },{ 19479,58 },{ 19537,86 },{ 19623,31 }}, // Tamil/Tamil/Singapore + { 117, 27, 198,{ 19479,58 },{ 19537,86 },{ 19623,31 },{ 19479,58 },{ 19537,86 },{ 19623,31 }}, // Tamil/Tamil/Sri Lanka + { 118, 2, 178,{ 19654,62 },{ 19716,81 },{ 418,27 },{ 19654,62 },{ 19716,81 },{ 418,27 }}, // Tatar/Cyrillic/Russia + { 119, 28, 100,{ 19797,62 },{ 19859,86 },{ 19945,31 },{ 19797,62 },{ 19859,86 },{ 19945,31 }}, // Telugu/Telugu/India + { 120, 30, 211,{ 19976,63 },{ 20039,98 },{ 19976,63 },{ 19976,63 },{ 20039,98 },{ 19976,63 }}, // Thai/Thai/Thailand + { 121, 31, 44,{ 2704,63 },{ 20137,159 },{ 418,27 },{ 2704,63 },{ 20296,147 },{ 418,27 }}, // Tibetan/Tibetan/China + { 121, 31, 100,{ 2704,63 },{ 20137,159 },{ 418,27 },{ 2704,63 },{ 20296,147 },{ 418,27 }}, // Tibetan/Tibetan/India + { 122, 14, 69,{ 20443,36 },{ 20479,54 },{ 20533,24 },{ 20443,36 },{ 20479,54 },{ 20533,24 }}, // Tigrinya/Ethiopic/Ethiopia + { 122, 14, 67,{ 20443,36 },{ 20479,54 },{ 20533,24 },{ 20443,36 },{ 20479,54 },{ 20533,24 }}, // Tigrinya/Ethiopic/Eritrea + { 123, 7, 214,{ 20557,51 },{ 20608,87 },{ 20695,24 },{ 20557,51 },{ 20608,87 },{ 20695,24 }}, // Tongan/Latin/Tonga + { 124, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Tsonga/Latin/South Africa + { 125, 7, 217,{ 20719,48 },{ 20767,75 },{ 20842,24 },{ 20719,48 },{ 20767,75 },{ 20842,24 }}, // Turkish/Latin/Turkey + { 125, 7, 56,{ 20719,48 },{ 20767,75 },{ 20842,24 },{ 20719,48 },{ 20767,75 },{ 20842,24 }}, // Turkish/Latin/Cyprus + { 126, 7, 218,{ 20866,50 },{ 20916,77 },{ 20993,24 },{ 21017,51 },{ 21068,77 },{ 20993,24 }}, // Turkmen/Latin/Turkmenistan + { 128, 1, 44,{ 21145,84 },{ 21145,84 },{ 418,27 },{ 21145,84 },{ 21145,84 },{ 418,27 }}, // Uighur/Arabic/China + { 129, 2, 222,{ 21229,48 },{ 21277,95 },{ 21372,24 },{ 21396,67 },{ 21463,87 },{ 21550,24 }}, // Ukrainian/Cyrillic/Ukraine + { 130, 1, 163,{ 21574,68 },{ 21574,68 },{ 134,24 },{ 21574,68 },{ 21574,68 },{ 134,24 }}, // Urdu/Arabic/Pakistan + { 130, 1, 100,{ 21574,68 },{ 21574,68 },{ 134,24 },{ 21574,68 },{ 21574,68 },{ 134,24 }}, // Urdu/Arabic/India + { 131, 7, 228,{ 21642,48 },{ 21690,75 },{ 21765,24 },{ 21789,48 },{ 21837,75 },{ 21765,24 }}, // Uzbek/Latin/Uzbekistan + { 131, 1, 1,{ 21912,47 },{ 15131,68 },{ 418,27 },{ 21912,47 },{ 15131,68 },{ 418,27 }}, // Uzbek/Arabic/Afghanistan + { 131, 2, 228,{ 21959,48 },{ 22007,71 },{ 11087,24 },{ 21959,48 },{ 22007,71 },{ 11087,24 }}, // Uzbek/Cyrillic/Uzbekistan + { 132, 7, 232,{ 22078,75 },{ 22153,99 },{ 418,27 },{ 22252,75 },{ 22327,99 },{ 418,27 }}, // Vietnamese/Latin/Vietnam + { 133, 7, 260,{ 22426,48 },{ 22474,74 },{ 22548,24 },{ 22572,48 },{ 22474,74 },{ 22548,24 }}, // Volapuk/Latin/World + { 134, 7, 224,{ 22620,52 },{ 22672,87 },{ 22759,26 },{ 22785,59 },{ 22672,87 },{ 22759,26 }}, // Welsh/Latin/United Kingdom + { 135, 7, 187,{ 22844,47 },{ 22891,84 },{ 418,27 },{ 22844,47 },{ 22891,84 },{ 418,27 }}, // Wolof/Latin/Senegal + { 136, 7, 195,{ 22975,48 },{ 23023,91 },{ 418,27 },{ 22975,48 },{ 23023,91 },{ 418,27 }}, // Xhosa/Latin/South Africa + { 137, 18, 260,{ 23114,58 },{ 23172,92 },{ 418,27 },{ 23172,92 },{ 23172,92 },{ 418,27 }}, // Yiddish/Hebrew/World + { 138, 7, 157,{ 23264,40 },{ 23304,73 },{ 23377,27 },{ 23404,55 },{ 23459,121 },{ 23377,27 }}, // Yoruba/Latin/Nigeria + { 138, 7, 23,{ 23580,41 },{ 23621,74 },{ 23695,27 },{ 23722,56 },{ 23778,134 },{ 23695,27 }}, // Yoruba/Latin/Benin + { 140, 7, 195,{ 23912,48 },{ 23960,91 },{ 134,24 },{ 23912,48 },{ 23960,91 },{ 24051,24 }}, // Zulu/Latin/South Africa + { 141, 7, 161,{ 5685,48 },{ 14532,83 },{ 134,24 },{ 24075,59 },{ 14532,83 },{ 134,24 }}, // Norwegian Nynorsk/Latin/Norway + { 142, 7, 27,{ 8365,48 },{ 24134,83 },{ 9771,24 },{ 8365,48 },{ 24134,83 },{ 9771,24 }}, // Bosnian/Latin/Bosnia And Herzegowina + { 142, 2, 27,{ 24217,48 },{ 24265,83 },{ 12727,24 },{ 24217,48 },{ 24265,83 },{ 12727,24 }}, // Bosnian/Cyrillic/Bosnia And Herzegowina + { 143, 29, 131,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Divehi/Thaana/Maldives + { 144, 7, 251,{ 24348,102 },{ 24450,140 },{ 418,27 },{ 24348,102 },{ 24450,140 },{ 418,27 }}, // Manx/Latin/Isle Of Man + { 145, 7, 224,{ 24590,46 },{ 24636,130 },{ 418,27 },{ 24590,46 },{ 24636,130 },{ 418,27 }}, // Cornish/Latin/United Kingdom + { 146, 7, 83,{ 24766,48 },{ 24814,192 },{ 418,27 },{ 24766,48 },{ 24814,192 },{ 418,27 }}, // Akan/Latin/Ghana + { 147, 13, 100,{ 25006,88 },{ 25006,88 },{ 418,27 },{ 25006,88 },{ 25006,88 },{ 418,27 }}, // Konkani/Devanagari/India + { 148, 7, 83,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Ga/Latin/Ghana + { 149, 7, 157,{ 25094,48 },{ 25142,87 },{ 25229,24 },{ 25094,48 },{ 25142,87 },{ 25229,24 }}, // Igbo/Latin/Nigeria + { 150, 7, 111,{ 25253,48 },{ 25301,189 },{ 25490,24 },{ 25253,48 },{ 25301,189 },{ 25490,24 }}, // Kamba/Latin/Kenya + { 151, 33, 103,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Syriac/Syriac/Iraq + { 152, 14, 67,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Blin/Ethiopic/Eritrea + { 153, 14, 69,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Geez/Ethiopic/Ethiopia + { 155, 7, 69,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Sidamo/Latin/Ethiopia + { 156, 7, 157,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Atsam/Latin/Nigeria + { 157, 14, 67,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Tigre/Ethiopic/Eritrea + { 158, 7, 157,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Jju/Latin/Nigeria + { 159, 7, 106,{ 25514,48 },{ 25562,77 },{ 25639,24 },{ 25514,48 },{ 25562,77 },{ 25639,24 }}, // Friulian/Latin/Italy + { 160, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Venda/Latin/South Africa + { 161, 7, 83,{ 25663,48 },{ 25711,87 },{ 25798,24 },{ 25663,48 },{ 25711,87 },{ 25798,24 }}, // Ewe/Latin/Ghana + { 161, 7, 212,{ 25663,48 },{ 25711,87 },{ 25798,24 },{ 25663,48 },{ 25711,87 },{ 25798,24 }}, // Ewe/Latin/Togo + { 162, 14, 69,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Walamo/Ethiopic/Ethiopia + { 163, 7, 225,{ 25822,59 },{ 25881,95 },{ 418,27 },{ 25822,59 },{ 25881,95 },{ 418,27 }}, // Hawaiian/Latin/United States + { 164, 7, 157,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Tyap/Latin/Nigeria + { 165, 7, 129,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Nyanja/Latin/Malawi + { 166, 7, 170,{ 25976,48 },{ 26024,88 },{ 26112,38 },{ 25976,48 },{ 26024,88 },{ 25976,48 }}, // Filipino/Latin/Philippines + { 167, 7, 206,{ 7630,48 },{ 26150,86 },{ 134,24 },{ 7630,48 },{ 26150,86 },{ 134,24 }}, // Swiss German/Latin/Switzerland + { 167, 7, 74,{ 7630,48 },{ 26150,86 },{ 134,24 },{ 7630,48 },{ 26150,86 },{ 134,24 }}, // Swiss German/Latin/France + { 167, 7, 123,{ 7630,48 },{ 26150,86 },{ 134,24 },{ 7630,48 },{ 26150,86 },{ 134,24 }}, // Swiss German/Latin/Liechtenstein + { 168, 34, 44,{ 26236,38 },{ 26236,38 },{ 418,27 },{ 26236,38 },{ 26236,38 },{ 418,27 }}, // Sichuan Yi/Yi/China + { 169, 7, 121,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Kpelle/Latin/Liberia + { 170, 7, 82,{ 26274,59 },{ 26333,85 },{ 134,24 },{ 26274,59 },{ 26333,85 },{ 134,24 }}, // Low German/Latin/Germany + { 170, 7, 151,{ 26274,59 },{ 26333,85 },{ 134,24 },{ 26274,59 },{ 26333,85 },{ 134,24 }}, // Low German/Latin/Netherlands + { 171, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // South Ndebele/Latin/South Africa + { 172, 7, 195,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Northern Sotho/Latin/South Africa + { 173, 7, 161,{ 26418,59 },{ 26477,145 },{ 26622,24 },{ 26418,59 },{ 26477,145 },{ 26622,24 }}, // Northern Sami/Latin/Norway + { 173, 7, 73,{ 26646,60 },{ 26477,145 },{ 26622,24 },{ 26646,60 },{ 26477,145 },{ 26622,24 }}, // Northern Sami/Latin/Finland + { 173, 7, 205,{ 26418,59 },{ 26477,145 },{ 26622,24 },{ 26418,59 },{ 26477,145 },{ 26622,24 }}, // Northern Sami/Latin/Sweden + { 174, 7, 208,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Taroko/Latin/Taiwan + { 175, 7, 111,{ 26706,48 },{ 26754,88 },{ 26842,24 },{ 26706,48 },{ 26754,88 },{ 26842,24 }}, // Gusii/Latin/Kenya + { 176, 7, 111,{ 26866,48 },{ 26914,221 },{ 27135,24 },{ 26866,48 },{ 26914,221 },{ 27135,24 }}, // Taita/Latin/Kenya + { 177, 7, 187,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Senegal + { 177, 7, 34,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Burkina Faso + { 177, 7, 37,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Cameroon + { 177, 7, 80,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Gambia + { 177, 7, 83,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Ghana + { 177, 7, 91,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Guinea + { 177, 7, 92,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Guinea Bissau + { 177, 7, 121,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Liberia + { 177, 7, 136,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Mauritania + { 177, 7, 156,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Niger + { 177, 7, 157,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Nigeria + { 177, 7, 189,{ 27159,48 },{ 27207,77 },{ 27284,24 },{ 27159,48 },{ 27207,77 },{ 27284,24 }}, // Fulah/Latin/Sierra Leone + { 177, 134, 91,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Fulah/Adlam/Guinea + { 178, 7, 111,{ 27308,48 },{ 27356,185 },{ 27541,24 },{ 27308,48 },{ 27356,185 },{ 27541,24 }}, // Kikuyu/Latin/Kenya + { 179, 7, 111,{ 27565,48 },{ 27613,173 },{ 27786,24 },{ 27565,48 },{ 27613,173 },{ 27786,24 }}, // Samburu/Latin/Kenya + { 180, 7, 146,{ 27810,48 },{ 27858,88 },{ 134,24 },{ 27810,48 },{ 27858,88 },{ 134,24 }}, // Sena/Latin/Mozambique + { 181, 7, 240,{ 27946,52 },{ 27998,112 },{ 28110,24 },{ 27946,52 },{ 27998,112 },{ 28110,24 }}, // North Ndebele/Latin/Zimbabwe + { 182, 7, 210,{ 28134,39 },{ 28173,194 },{ 28367,24 },{ 28134,39 },{ 28173,194 },{ 28367,24 }}, // Rombo/Latin/Tanzania + { 183, 9, 145,{ 28391,48 },{ 28439,81 },{ 28520,24 },{ 28391,48 },{ 28439,81 },{ 28520,24 }}, // Tachelhit/Tifinagh/Morocco + { 183, 7, 145,{ 28544,48 },{ 28592,81 },{ 28673,24 },{ 28544,48 },{ 28592,81 },{ 28673,24 }}, // Tachelhit/Latin/Morocco + { 184, 7, 3,{ 28697,48 },{ 28745,82 },{ 28827,24 },{ 28851,48 },{ 28899,84 },{ 28983,24 }}, // Kabyle/Latin/Algeria + { 185, 7, 221,{ 29007,48 },{ 29055,152 },{ 134,24 },{ 29007,48 },{ 29055,152 },{ 134,24 }}, // Nyankole/Latin/Uganda + { 186, 7, 210,{ 29207,48 },{ 29255,254 },{ 29509,24 },{ 29207,48 },{ 29255,254 },{ 29509,24 }}, // Bena/Latin/Tanzania + { 187, 7, 210,{ 19131,48 },{ 29533,87 },{ 134,24 },{ 19131,48 },{ 29533,87 },{ 134,24 }}, // Vunjo/Latin/Tanzania + { 188, 7, 132,{ 29620,47 },{ 29667,92 },{ 29759,24 },{ 29620,47 },{ 29667,92 },{ 29759,24 }}, // Bambara/Latin/Mali + { 188, 75, 132,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Bambara/Nko/Mali + { 189, 7, 111,{ 29783,48 },{ 29831,207 },{ 30038,24 },{ 29783,48 },{ 29831,207 },{ 30038,24 }}, // Embu/Latin/Kenya + { 190, 12, 225,{ 30062,36 },{ 30098,58 },{ 30156,24 },{ 30062,36 },{ 30098,58 },{ 30156,24 }}, // Cherokee/Cherokee/United States + { 191, 7, 137,{ 30180,47 },{ 30227,68 },{ 30295,24 },{ 30180,47 },{ 30227,68 },{ 30295,24 }}, // Morisyen/Latin/Mauritius + { 192, 7, 210,{ 19131,48 },{ 30319,264 },{ 134,24 },{ 19131,48 },{ 30319,264 },{ 134,24 }}, // Makonde/Latin/Tanzania + { 193, 7, 210,{ 30583,83 },{ 30666,111 },{ 30777,24 },{ 30583,83 },{ 30666,111 },{ 30777,24 }}, // Langi/Latin/Tanzania + { 194, 7, 221,{ 30801,48 },{ 30849,97 },{ 134,24 },{ 30801,48 },{ 30849,97 },{ 134,24 }}, // Ganda/Latin/Uganda + { 195, 7, 239,{ 30946,48 },{ 30994,83 },{ 31077,24 },{ 30946,48 },{ 30994,83 },{ 31077,24 }}, // Bemba/Latin/Zambia + { 196, 7, 39,{ 31101,48 },{ 31149,85 },{ 134,24 },{ 31101,48 },{ 31149,85 },{ 134,24 }}, // Kabuverdianu/Latin/Cape Verde + { 197, 7, 111,{ 31234,48 },{ 31282,86 },{ 31368,24 },{ 31234,48 },{ 31282,86 },{ 31368,24 }}, // Meru/Latin/Kenya + { 198, 7, 111,{ 31392,49 },{ 31441,121 },{ 31562,24 },{ 31392,49 },{ 31441,121 },{ 31562,24 }}, // Kalenjin/Latin/Kenya + { 199, 7, 148,{ 0,48 },{ 31586,136 },{ 134,24 },{ 0,48 },{ 31586,136 },{ 134,24 }}, // Nama/Latin/Namibia + { 200, 7, 210,{ 19131,48 },{ 29533,87 },{ 134,24 },{ 19131,48 },{ 29533,87 },{ 134,24 }}, // Machame/Latin/Tanzania + { 201, 7, 82,{ 31722,59 },{ 31781,87 },{ 13021,24 },{ 31868,48 },{ 31781,87 },{ 13021,24 }}, // Colognian/Latin/Germany + { 202, 7, 111,{ 31916,51 },{ 31967,132 },{ 418,27 },{ 31916,51 },{ 31967,132 },{ 418,27 }}, // Masai/Latin/Kenya + { 202, 7, 210,{ 31916,51 },{ 31967,132 },{ 418,27 },{ 31916,51 },{ 31967,132 },{ 418,27 }}, // Masai/Latin/Tanzania + { 203, 7, 221,{ 30801,48 },{ 30849,97 },{ 134,24 },{ 30801,48 },{ 30849,97 },{ 134,24 }}, // Soga/Latin/Uganda + { 204, 7, 111,{ 32099,48 },{ 19179,84 },{ 134,24 },{ 32099,48 },{ 19179,84 },{ 134,24 }}, // Luyia/Latin/Kenya + { 205, 7, 210,{ 32147,48 },{ 19179,84 },{ 134,24 },{ 32147,48 },{ 19179,84 },{ 134,24 }}, // Asu/Latin/Tanzania + { 206, 7, 221,{ 32195,48 },{ 32243,94 },{ 32337,24 },{ 32195,48 },{ 32243,94 },{ 32337,24 }}, // Teso/Latin/Uganda + { 206, 7, 111,{ 32195,48 },{ 32243,94 },{ 32337,24 },{ 32195,48 },{ 32243,94 },{ 32337,24 }}, // Teso/Latin/Kenya + { 207, 7, 67,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Saho/Latin/Eritrea + { 208, 7, 132,{ 32361,46 },{ 32407,88 },{ 32495,24 },{ 32361,46 },{ 32407,88 },{ 32495,24 }}, // Koyra Chiini/Latin/Mali + { 209, 7, 210,{ 19131,48 },{ 29533,87 },{ 134,24 },{ 19131,48 },{ 29533,87 },{ 134,24 }}, // Rwa/Latin/Tanzania + { 210, 7, 111,{ 32519,48 },{ 32567,186 },{ 32753,24 },{ 32519,48 },{ 32567,186 },{ 32753,24 }}, // Luo/Latin/Kenya + { 211, 7, 221,{ 29007,48 },{ 29055,152 },{ 134,24 },{ 29007,48 },{ 29055,152 },{ 134,24 }}, // Chiga/Latin/Uganda + { 212, 7, 145,{ 32777,48 },{ 32825,86 },{ 32911,24 },{ 32777,48 },{ 32825,86 },{ 32911,24 }}, // Central Morocco Tamazight/Latin/Morocco + { 213, 7, 132,{ 32361,46 },{ 32407,88 },{ 32495,24 },{ 32361,46 },{ 32407,88 },{ 32495,24 }}, // Koyraboro Senni/Latin/Mali + { 214, 7, 210,{ 19131,48 },{ 32935,84 },{ 134,24 },{ 19131,48 },{ 32935,84 },{ 134,24 }}, // Shambala/Latin/Tanzania + { 215, 13, 100,{ 33019,88 },{ 33019,88 },{ 33107,31 },{ 33019,88 },{ 33019,88 },{ 33107,31 }}, // Bodo/Devanagari/India + { 218, 2, 178,{ 21959,48 },{ 11170,80 },{ 11087,24 },{ 21959,48 },{ 11170,80 },{ 11087,24 }}, // Chechen/Cyrillic/Russia + { 219, 2, 178,{ 33138,65 },{ 33203,117 },{ 33320,30 },{ 33138,65 },{ 33350,117 },{ 33320,30 }}, // Church/Cyrillic/Russia + { 220, 2, 178,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Chuvash/Cyrillic/Russia + { 230, 7, 49,{ 33467,49 },{ 33516,99 },{ 33615,24 },{ 33467,49 },{ 33516,99 },{ 33615,24 }}, // Luba Katanga/Latin/Congo Kinshasa + { 231, 7, 125,{ 33639,48 },{ 33687,85 },{ 134,24 },{ 33772,59 },{ 33687,85 },{ 134,24 }}, // Luxembourgish/Latin/Luxembourg + { 236, 7, 21,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Walloon/Latin/Belgium + { 237, 7, 37,{ 33831,48 },{ 33879,195 },{ 34074,24 },{ 33831,48 },{ 33879,195 },{ 34074,24 }}, // Aghem/Latin/Cameroon + { 238, 7, 37,{ 34098,48 },{ 34146,90 },{ 34236,24 },{ 34098,48 },{ 34146,90 },{ 34236,24 }}, // Basaa/Latin/Cameroon + { 239, 7, 156,{ 32361,46 },{ 32407,88 },{ 32495,24 },{ 32361,46 },{ 32407,88 },{ 32495,24 }}, // Zarma/Latin/Niger + { 240, 7, 37,{ 34260,49 },{ 34309,99 },{ 34408,24 },{ 34260,49 },{ 34309,99 },{ 34408,24 }}, // Duala/Latin/Cameroon + { 241, 7, 187,{ 34432,36 },{ 34468,82 },{ 34550,24 },{ 34432,36 },{ 34468,82 },{ 34550,24 }}, // Jola Fonyi/Latin/Senegal + { 242, 7, 37,{ 34574,50 },{ 34624,141 },{ 34765,24 },{ 34574,50 },{ 34624,141 },{ 34765,24 }}, // Ewondo/Latin/Cameroon + { 243, 7, 37,{ 34789,39 },{ 34828,191 },{ 418,27 },{ 34789,39 },{ 34828,191 },{ 418,27 }}, // Bafia/Latin/Cameroon + { 244, 7, 146,{ 35019,48 },{ 35067,213 },{ 35280,24 },{ 35019,48 },{ 35067,213 },{ 35280,24 }}, // Makhuwa Meetto/Latin/Mozambique + { 245, 7, 37,{ 35304,48 },{ 35352,139 },{ 35491,24 },{ 35304,48 },{ 35352,139 },{ 35491,24 }}, // Mundang/Latin/Cameroon + { 246, 7, 37,{ 35515,51 },{ 35566,143 },{ 418,27 },{ 35515,51 },{ 35566,143 },{ 418,27 }}, // Kwasio/Latin/Cameroon + { 247, 7, 254,{ 35709,54 },{ 35763,96 },{ 35859,24 },{ 35709,54 },{ 35763,96 },{ 35859,24 }}, // Nuer/Latin/South Sudan + { 248, 2, 178,{ 35883,50 },{ 35933,116 },{ 36049,24 },{ 35883,50 },{ 36073,121 },{ 36049,24 }}, // Sakha/Cyrillic/Russia + { 249, 7, 210,{ 36194,48 },{ 36242,117 },{ 418,27 },{ 36194,48 },{ 36242,117 },{ 418,27 }}, // Sangu/Latin/Tanzania + { 251, 7, 156,{ 32361,46 },{ 32407,88 },{ 32495,24 },{ 32361,46 },{ 32407,88 },{ 32495,24 }}, // Tasawaq/Latin/Niger + { 252, 35, 121,{ 36359,38 },{ 36397,61 },{ 418,27 },{ 36359,38 },{ 36397,61 },{ 418,27 }}, // Vai/Vai/Liberia + { 252, 7, 121,{ 36458,81 },{ 36458,81 },{ 418,27 },{ 36458,81 },{ 36458,81 },{ 418,27 }}, // Vai/Latin/Liberia + { 253, 7, 206,{ 36539,48 },{ 36587,99 },{ 36686,24 },{ 36539,48 },{ 36587,99 },{ 36686,24 }}, // Walser/Latin/Switzerland + { 254, 7, 37,{ 36710,51 },{ 36761,191 },{ 418,27 },{ 36710,51 },{ 36761,191 },{ 418,27 }}, // Yangben/Latin/Cameroon + { 256, 7, 197,{ 36952,48 },{ 37000,85 },{ 37085,24 },{ 37109,48 },{ 37157,117 },{ 37085,24 }}, // Asturian/Latin/Spain + { 257, 7, 37,{ 37274,174 },{ 37274,174 },{ 418,27 },{ 37274,174 },{ 37274,174 },{ 418,27 }}, // Ngomba/Latin/Cameroon + { 258, 7, 37,{ 37448,102 },{ 37448,102 },{ 418,27 },{ 37448,102 },{ 37448,102 },{ 418,27 }}, // Kako/Latin/Cameroon + { 259, 7, 37,{ 37550,137 },{ 37687,142 },{ 37829,36 },{ 37550,137 },{ 37687,142 },{ 37829,36 }}, // Meta/Latin/Cameroon + { 260, 7, 37,{ 37865,165 },{ 37865,165 },{ 418,27 },{ 37865,165 },{ 37865,165 },{ 418,27 }}, // Ngiemboon/Latin/Cameroon + { 290, 11, 100,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Manipuri/Bengali/India + { 309, 100, 232,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Tai Dam/Tai Viet/Vietnam + { 312, 7, 37,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Akoose/Latin/Cameroon + { 313, 7, 225,{ 38030,180 },{ 38030,180 },{ 418,27 },{ 38030,180 },{ 38030,180 },{ 418,27 }}, // Lakota/Latin/United States + { 314, 9, 145,{ 28391,48 },{ 28439,81 },{ 28520,24 },{ 28391,48 },{ 28439,81 },{ 28520,24 }}, // Standard Moroccan Tamazight/Tifinagh/Morocco + { 315, 7, 43,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Mapuche/Latin/Chile + { 316, 1, 103,{ 38210,105 },{ 38210,105 },{ 38315,24 },{ 38210,105 },{ 38210,105 },{ 38315,24 }}, // Central Kurdish/Arabic/Iraq + { 316, 1, 102,{ 38210,105 },{ 38210,105 },{ 38315,24 },{ 38210,105 },{ 38210,105 },{ 38315,24 }}, // Central Kurdish/Arabic/Iran + { 317, 7, 82,{ 38339,48 },{ 38387,85 },{ 9771,24 },{ 38472,60 },{ 38532,93 },{ 9771,24 }}, // Lower Sorbian/Latin/Germany + { 318, 7, 82,{ 38625,48 },{ 38673,86 },{ 9771,24 },{ 38759,60 },{ 38819,93 },{ 9771,24 }}, // Upper Sorbian/Latin/Germany + { 319, 7, 37,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Kenyang/Latin/Cameroon + { 320, 7, 38,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Mohawk/Latin/Canada + { 321, 75, 91,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Nko/Nko/Guinea + { 322, 7, 260,{ 38912,48 },{ 38960,91 },{ 39051,24 },{ 38912,48 },{ 38960,91 },{ 39051,24 }}, // Prussian/Latin/World + { 323, 7, 90,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Kiche/Latin/Guatemala + { 324, 7, 205,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Southern Sami/Latin/Sweden + { 325, 7, 205,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Lule Sami/Latin/Sweden + { 326, 7, 73,{ 39075,77 },{ 39152,140 },{ 39292,25 },{ 39075,77 },{ 39152,140 },{ 39292,25 }}, // Inari Sami/Latin/Finland + { 327, 7, 73,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Skolt Sami/Latin/Finland + { 328, 7, 13,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Warlpiri/Latin/Australia + { 346, 1, 102,{ 14963,70 },{ 14963,70 },{ 418,27 },{ 14963,70 },{ 14963,70 },{ 418,27 }}, // Mazanderani/Arabic/Iran + { 349, 1, 102,{ 39317,77 },{ 39317,77 },{ 418,27 },{ 39317,77 },{ 39317,77 },{ 418,27 }}, // Northern Luri/Arabic/Iran + { 349, 1, 103,{ 39317,77 },{ 39317,77 },{ 418,27 },{ 39317,77 },{ 39317,77 },{ 418,27 }}, // Northern Luri/Arabic/Iraq + { 357, 6, 97,{ 4452,39 },{ 4452,39 },{ 418,27 },{ 4452,39 },{ 4452,39 },{ 418,27 }}, // Cantonese/Traditional Han/Hong Kong + { 357, 5, 44,{ 4452,39 },{ 4491,38 },{ 418,27 },{ 4452,39 },{ 4491,38 },{ 418,27 }}, // Cantonese/Simplified Han/China + { 360, 7, 260,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Ido/Latin/World + { 361, 7, 260,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Lojban/Latin/World + { 362, 7, 106,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Sicilian/Latin/Italy + { 363, 1, 102,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Southern Kurdish/Arabic/Iran + { 364, 1, 163,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Western Balochi/Arabic/Pakistan + { 365, 7, 170,{ 39394,46 },{ 39440,88 },{ 39528,24 },{ 39394,46 },{ 39440,88 },{ 39528,24 }}, // Cebuano/Latin/Philippines + { 366, 2, 178,{ 370,48 },{ 370,48 },{ 418,27 },{ 370,48 },{ 370,48 },{ 418,27 }}, // Erzya/Cyrillic/Russia + { 0, 0, 0,{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0}}, // trailing zeros +}; + +static const ushort months_data[] = { +0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, +0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x63, 0x74, 0x3b, +0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x79, 0x3b, 0x46, 0x65, 0x62, 0x72, +0x75, 0x61, 0x72, 0x79, 0x3b, 0x4d, 0x61, 0x72, 0x63, 0x68, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, +0x3b, 0x4a, 0x75, 0x6e, 0x65, 0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, +0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, +0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, +0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x31, 0x3b, +0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, 0x3b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, +0x31, 0x3b, 0x31, 0x32, 0x3b, 0x31, 0x33, 0x41, 0x6d, 0x61, 0x3b, 0x47, 0x75, 0x72, 0x3b, 0x42, 0x69, 0x74, 0x3b, 0x45, +0x6c, 0x62, 0x3b, 0x43, 0x61, 0x6d, 0x3b, 0x57, 0x61, 0x78, 0x3b, 0x41, 0x64, 0x6f, 0x3b, 0x48, 0x61, 0x67, 0x3b, 0x46, +0x75, 0x6c, 0x3b, 0x4f, 0x6e, 0x6b, 0x3b, 0x53, 0x61, 0x64, 0x3b, 0x4d, 0x75, 0x64, 0x3b, 0x41, 0x6d, 0x61, 0x6a, 0x6a, +0x69, 0x69, 0x3b, 0x47, 0x75, 0x72, 0x61, 0x61, 0x6e, 0x64, 0x68, 0x61, 0x6c, 0x61, 0x3b, 0x42, 0x69, 0x74, 0x6f, 0x6f, +0x74, 0x65, 0x65, 0x73, 0x73, 0x61, 0x3b, 0x45, 0x6c, 0x62, 0x61, 0x3b, 0x43, 0x61, 0x61, 0x6d, 0x73, 0x61, 0x3b, 0x57, +0x61, 0x78, 0x61, 0x62, 0x61, 0x6a, 0x6a, 0x69, 0x69, 0x3b, 0x41, 0x64, 0x6f, 0x6f, 0x6c, 0x65, 0x65, 0x73, 0x73, 0x61, +0x3b, 0x48, 0x61, 0x67, 0x61, 0x79, 0x79, 0x61, 0x3b, 0x46, 0x75, 0x75, 0x6c, 0x62, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6e, +0x6b, 0x6f, 0x6c, 0x6f, 0x6c, 0x65, 0x65, 0x73, 0x73, 0x61, 0x3b, 0x53, 0x61, 0x64, 0x61, 0x61, 0x73, 0x61, 0x3b, 0x4d, +0x75, 0x64, 0x64, 0x65, 0x65, 0x3b, 0x41, 0x3b, 0x47, 0x3b, 0x42, 0x3b, 0x45, 0x3b, 0x43, 0x3b, 0x57, 0x3b, 0x41, 0x3b, +0x48, 0x3b, 0x46, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x4d, 0x30, 0x31, 0x3b, 0x4d, 0x30, 0x32, 0x3b, 0x4d, 0x30, +0x33, 0x3b, 0x4d, 0x30, 0x34, 0x3b, 0x4d, 0x30, 0x35, 0x3b, 0x4d, 0x30, 0x36, 0x3b, 0x4d, 0x30, 0x37, 0x3b, 0x4d, 0x30, +0x38, 0x3b, 0x4d, 0x30, 0x39, 0x3b, 0x4d, 0x31, 0x30, 0x3b, 0x4d, 0x31, 0x31, 0x3b, 0x4d, 0x31, 0x32, 0x3b, 0x31, 0x3b, +0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, 0x3b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, +0x31, 0x3b, 0x31, 0x32, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x72, 0x74, 0x2e, 0x3b, +0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, +0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, +0x65, 0x73, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, +0x69, 0x65, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, +0x75, 0x6e, 0x69, 0x65, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, +0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, +0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, +0x73, 0x68, 0x6b, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x70, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x71, 0x65, 0x72, 0x3b, +0x6b, 0x6f, 0x72, 0x72, 0x3b, 0x67, 0x75, 0x73, 0x68, 0x3b, 0x73, 0x68, 0x74, 0x3b, 0x74, 0x65, 0x74, 0x3b, 0x6e, 0xeb, +0x6e, 0x3b, 0x64, 0x68, 0x6a, 0x3b, 0x6a, 0x61, 0x6e, 0x61, 0x72, 0x3b, 0x73, 0x68, 0x6b, 0x75, 0x72, 0x74, 0x3b, 0x6d, +0x61, 0x72, 0x73, 0x3b, 0x70, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x71, 0x65, 0x72, 0x73, 0x68, 0x6f, +0x72, 0x3b, 0x6b, 0x6f, 0x72, 0x72, 0x69, 0x6b, 0x3b, 0x67, 0x75, 0x73, 0x68, 0x74, 0x3b, 0x73, 0x68, 0x74, 0x61, 0x74, +0x6f, 0x72, 0x3b, 0x74, 0x65, 0x74, 0x6f, 0x72, 0x3b, 0x6e, 0xeb, 0x6e, 0x74, 0x6f, 0x72, 0x3b, 0x64, 0x68, 0x6a, 0x65, +0x74, 0x6f, 0x72, 0x3b, 0x6a, 0x3b, 0x73, 0x68, 0x3b, 0x6d, 0x3b, 0x70, 0x3b, 0x6d, 0x3b, 0x71, 0x3b, 0x6b, 0x3b, 0x67, +0x3b, 0x73, 0x68, 0x3b, 0x74, 0x3b, 0x6e, 0x3b, 0x64, 0x68, 0x3b, 0x1303, 0x1295, 0x12e9, 0x3b, 0x134c, 0x1265, 0x1229, 0x3b, 0x121b, +0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x3b, 0x121c, 0x12ed, 0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, +0x3b, 0x1234, 0x1355, 0x1274, 0x3b, 0x12a6, 0x12ad, 0x1276, 0x3b, 0x1296, 0x126c, 0x121d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x3b, 0x1303, 0x1295, 0x12e9, +0x12c8, 0x122a, 0x3b, 0x134c, 0x1265, 0x1229, 0x12c8, 0x122a, 0x3b, 0x121b, 0x122d, 0x127d, 0x3b, 0x12a4, 0x1355, 0x122a, 0x120d, 0x3b, 0x121c, 0x12ed, +0x3b, 0x1301, 0x1295, 0x3b, 0x1301, 0x120b, 0x12ed, 0x3b, 0x12a6, 0x1308, 0x1235, 0x1275, 0x3b, 0x1234, 0x1355, 0x1274, 0x121d, 0x1260, 0x122d, 0x3b, +0x12a6, 0x12ad, 0x1276, 0x1260, 0x122d, 0x3b, 0x1296, 0x126c, 0x121d, 0x1260, 0x122d, 0x3b, 0x12f2, 0x1234, 0x121d, 0x1260, 0x122d, 0x3b, 0x1303, 0x3b, +0x134c, 0x3b, 0x121b, 0x3b, 0x12a4, 0x3b, 0x121c, 0x3b, 0x1301, 0x3b, 0x1301, 0x3b, 0x12a6, 0x3b, 0x1234, 0x3b, 0x12a6, 0x3b, 0x1296, 0x3b, +0x12f2, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, +0x623, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, +0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x633, 0x637, 0x633, 0x3b, 0x633, 0x628, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, +0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x64a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, +0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x648, 0x3b, 0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x633, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, +0x3b, 0x62c, 0x627, 0x646, 0x641, 0x64a, 0x3b, 0x641, 0x64a, 0x641, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x641, +0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x62c, 0x648, 0x627, 0x646, 0x3b, 0x62c, 0x648, 0x64a, 0x644, 0x64a, 0x629, 0x3b, +0x623, 0x648, 0x62a, 0x3b, 0x633, 0x628, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, +0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x64a, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, +0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x623, 0x3b, 0x633, 0x3b, 0x623, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x643, 0x627, 0x646, 0x648, +0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x634, 0x628, 0x627, 0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, +0x64a, 0x633, 0x627, 0x646, 0x3b, 0x623, 0x64a, 0x627, 0x631, 0x3b, 0x62d, 0x632, 0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, +0x632, 0x3b, 0x622, 0x628, 0x3b, 0x623, 0x64a, 0x644, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x623, +0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, +0x646, 0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x643, 0x3b, 0x634, 0x3b, 0x622, 0x3b, 0x646, 0x3b, 0x623, 0x3b, 0x62d, 0x3b, +0x62a, 0x3b, 0x622, 0x3b, 0x623, 0x3b, 0x62a, 0x3b, 0x62a, 0x3b, 0x643, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, +0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x634, 0x628, 0x627, 0x637, 0x3b, 0x622, 0x630, 0x627, 0x631, 0x3b, 0x646, 0x64a, 0x633, 0x627, 0x646, +0x3b, 0x623, 0x64a, 0x627, 0x631, 0x3b, 0x62d, 0x632, 0x64a, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x645, 0x648, 0x632, 0x3b, 0x622, 0x628, +0x3b, 0x623, 0x64a, 0x644, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x64a, 0x646, 0xa0, 0x627, 0x644, 0x623, 0x648, 0x644, 0x3b, 0x62a, +0x634, 0x631, 0x64a, 0x646, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x64a, 0x3b, 0x643, 0x627, 0x646, 0x648, 0x646, 0x20, 0x627, 0x644, +0x623, 0x648, 0x644, 0x3b, 0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, +0x633, 0x3b, 0x625, 0x628, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, +0x648, 0x644, 0x64a, 0x648, 0x3b, 0x623, 0x63a, 0x634, 0x62a, 0x3b, 0x634, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, +0x628, 0x631, 0x3b, 0x646, 0x648, 0x641, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x62c, 0x645, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, +0x645, 0x3b, 0x625, 0x3b, 0x648, 0x3b, 0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, +0x64a, 0x646, 0x627, 0x64a, 0x631, 0x3b, 0x641, 0x628, 0x631, 0x627, 0x64a, 0x631, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x623, 0x628, +0x631, 0x64a, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x64a, 0x648, 0x646, 0x64a, 0x648, 0x3b, 0x64a, 0x648, 0x644, 0x64a, 0x648, 0x632, +0x3b, 0x63a, 0x634, 0x62a, 0x3b, 0x634, 0x62a, 0x646, 0x628, 0x631, 0x3b, 0x623, 0x643, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, +0x646, 0x628, 0x631, 0x3b, 0x62f, 0x62c, 0x646, 0x628, 0x631, 0x3b, 0x64a, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x623, 0x3b, 0x645, 0x3b, +0x646, 0x3b, 0x644, 0x3b, 0x63a, 0x3b, 0x634, 0x3b, 0x643, 0x3b, 0x628, 0x3b, 0x62f, 0x3b, 0x570, 0x576, 0x57e, 0x3b, 0x583, 0x57f, +0x57e, 0x3b, 0x574, 0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, 0x3b, 0x574, 0x575, 0x57d, 0x3b, 0x570, 0x576, 0x57d, 0x3b, 0x570, 0x56c, +0x57d, 0x3b, 0x585, 0x563, 0x57d, 0x3b, 0x57d, 0x565, 0x57a, 0x3b, 0x570, 0x578, 0x56f, 0x3b, 0x576, 0x578, 0x575, 0x3b, 0x564, 0x565, +0x56f, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, 0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x3b, 0x574, 0x561, +0x580, 0x57f, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c, 0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x3b, 0x570, 0x578, 0x582, 0x576, 0x56b, +0x57d, 0x3b, 0x570, 0x578, 0x582, 0x56c, 0x56b, 0x57d, 0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, 0x57d, 0x3b, 0x57d, 0x565, 0x57a, +0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x570, 0x578, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x576, 0x578, 0x575, +0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x564, 0x565, 0x56f, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x3b, 0x540, 0x3b, 0x553, 0x3b, +0x544, 0x3b, 0x531, 0x3b, 0x544, 0x3b, 0x540, 0x3b, 0x540, 0x3b, 0x555, 0x3b, 0x54d, 0x3b, 0x540, 0x3b, 0x546, 0x3b, 0x534, 0x3b, +0x570, 0x578, 0x582, 0x576, 0x57e, 0x561, 0x580, 0x56b, 0x3b, 0x583, 0x565, 0x57f, 0x580, 0x57e, 0x561, 0x580, 0x56b, 0x3b, 0x574, 0x561, +0x580, 0x57f, 0x56b, 0x3b, 0x561, 0x57a, 0x580, 0x56b, 0x56c, 0x56b, 0x3b, 0x574, 0x561, 0x575, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578, +0x582, 0x576, 0x56b, 0x57d, 0x56b, 0x3b, 0x570, 0x578, 0x582, 0x56c, 0x56b, 0x57d, 0x56b, 0x3b, 0x585, 0x563, 0x578, 0x57d, 0x57f, 0x578, +0x57d, 0x56b, 0x3b, 0x57d, 0x565, 0x57a, 0x57f, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x570, 0x578, 0x56f, 0x57f, 0x565, 0x574, +0x562, 0x565, 0x580, 0x56b, 0x3b, 0x576, 0x578, 0x575, 0x565, 0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x564, 0x565, 0x56f, 0x57f, 0x565, +0x574, 0x562, 0x565, 0x580, 0x56b, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x3b, 0x9ae, 0x9be, +0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x2019, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, +0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x3b, 0x99b, 0x9c7, 0x9aa, 0x9cd, 0x9a4, 0x9c7, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, +0x3b, 0x9a8, 0x9f1, 0x9c7, 0x3b, 0x9a1, 0x9bf, 0x99a, 0x9c7, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b, 0x9ab, +0x9c7, 0x9ac, 0x9cd, 0x9f0, 0x9c1, 0x9f1, 0x9be, 0x9f0, 0x9c0, 0x3b, 0x9ae, 0x9be, 0x9f0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9f0, +0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x2019, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b7, +0x9cd, 0x99f, 0x3b, 0x99b, 0x9c7, 0x9aa, 0x9cd, 0x9a4, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, +0x9f0, 0x3b, 0x9a8, 0x9f1, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x9a1, 0x9bf, 0x99a, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9f0, 0x3b, 0x99c, +0x3b, 0x9ab, 0x3b, 0x9ae, 0x3b, 0x98f, 0x3b, 0x9ae, 0x3b, 0x99c, 0x3b, 0x99c, 0x3b, 0x986, 0x3b, 0x99b, 0x3b, 0x985, 0x3b, 0x9a8, +0x3b, 0x9a1, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, +0x61, 0x79, 0x3b, 0x69, 0x79, 0x6e, 0x3b, 0x69, 0x79, 0x6c, 0x3b, 0x61, 0x76, 0x71, 0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, +0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x79, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, +0x76, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, +0x130, 0x79, 0x75, 0x6e, 0x3b, 0x130, 0x79, 0x75, 0x6c, 0x3b, 0x41, 0x76, 0x71, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, +0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, +0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x79, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x61, +0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x75, +0x6e, 0x3b, 0x69, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x71, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x79, 0x61, +0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x6e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, +0x6b, 0x61, 0x62, 0x72, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x432, 0x3b, 0x43c, 0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, +0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x458, 0x43d, 0x3b, 0x438, 0x458, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43d, +0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x458, 0x3b, 0x434, 0x435, 0x43a, 0x3b, 0x408, 0x430, 0x43d, 0x432, 0x430, 0x440, 0x3b, +0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x41c, 0x430, +0x439, 0x3b, 0x418, 0x458, 0x443, 0x43d, 0x3b, 0x418, 0x458, 0x443, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, +0x435, 0x43d, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x41e, 0x43a, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x41d, 0x43e, 0x458, 0x430, +0x431, 0x440, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x458, 0x430, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, +0x440, 0x430, 0x43b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, +0x458, 0x443, 0x43d, 0x3b, 0x438, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, +0x458, 0x430, 0x431, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x458, 0x430, 0x431, 0x440, 0x3b, 0x43d, 0x43e, 0x458, 0x430, 0x431, 0x440, 0x3b, +0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x75, 0x72, 0x74, 0x2e, 0x3b, 0x6f, 0x74, 0x73, 0x2e, 0x3b, 0x6d, 0x61, 0x72, +0x2e, 0x3b, 0x61, 0x70, 0x69, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x2e, 0x3b, 0x65, 0x6b, 0x61, 0x2e, 0x3b, 0x75, 0x7a, 0x74, +0x2e, 0x3b, 0x61, 0x62, 0x75, 0x2e, 0x3b, 0x69, 0x72, 0x61, 0x2e, 0x3b, 0x75, 0x72, 0x72, 0x2e, 0x3b, 0x61, 0x7a, 0x61, +0x2e, 0x3b, 0x61, 0x62, 0x65, 0x2e, 0x3b, 0x75, 0x72, 0x74, 0x61, 0x72, 0x72, 0x69, 0x6c, 0x61, 0x3b, 0x6f, 0x74, 0x73, +0x61, 0x69, 0x6c, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x78, 0x6f, 0x61, 0x3b, 0x61, 0x70, 0x69, 0x72, 0x69, 0x6c, 0x61, +0x3b, 0x6d, 0x61, 0x69, 0x61, 0x74, 0x7a, 0x61, 0x3b, 0x65, 0x6b, 0x61, 0x69, 0x6e, 0x61, 0x3b, 0x75, 0x7a, 0x74, 0x61, +0x69, 0x6c, 0x61, 0x3b, 0x61, 0x62, 0x75, 0x7a, 0x74, 0x75, 0x61, 0x3b, 0x69, 0x72, 0x61, 0x69, 0x6c, 0x61, 0x3b, 0x75, +0x72, 0x72, 0x69, 0x61, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x6f, 0x61, 0x3b, 0x61, 0x62, 0x65, 0x6e, 0x64, 0x75, 0x61, 0x3b, +0x55, 0x3b, 0x4f, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x55, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x55, 0x3b, +0x41, 0x3b, 0x41, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x9cd, 0x9b0, 0x9c1, +0x9af, 0x9bc, 0x9be, 0x9b0, 0x9c0, 0x3b, 0x9ae, 0x9be, 0x9b0, 0x9cd, 0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9b0, 0x9bf, 0x9b2, 0x3b, 0x9ae, +0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, 0x987, 0x3b, 0x986, 0x997, 0x9b8, 0x9cd, 0x99f, 0x3b, 0x9b8, 0x9c7, +0x9aa, 0x9cd, 0x99f, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x985, 0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9b0, 0x3b, 0x9a8, 0x9ad, 0x9c7, +0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x99c, 0x9be, 0x3b, 0x9ab, 0x9c7, 0x3b, +0x9ae, 0x9be, 0x3b, 0x98f, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x3b, 0x986, 0x3b, 0x9b8, 0x9c7, 0x3b, +0x985, 0x3b, 0x9a8, 0x3b, 0x9a1, 0x9bf, 0x3b, 0x99c, 0x9be, 0x9a8, 0x9c1, 0x3b, 0x9ab, 0x9c7, 0x9ac, 0x3b, 0x9ae, 0x9be, 0x9b0, 0x9cd, +0x99a, 0x3b, 0x98f, 0x9aa, 0x9cd, 0x9b0, 0x9bf, 0x9b2, 0x3b, 0x9ae, 0x9c7, 0x3b, 0x99c, 0x9c1, 0x9a8, 0x3b, 0x99c, 0x9c1, 0x9b2, 0x9be, +0x987, 0x3b, 0x986, 0x997, 0x9b8, 0x9cd, 0x99f, 0x3b, 0x9b8, 0x9c7, 0x9aa, 0x9cd, 0x99f, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x985, +0x995, 0x9cd, 0x99f, 0x9cb, 0x9ac, 0x9b0, 0x3b, 0x9a8, 0x9ad, 0x9c7, 0x9ae, 0x9cd, 0x9ac, 0x9b0, 0x3b, 0x9a1, 0x9bf, 0x9b8, 0x9c7, 0x9ae, +0x9cd, 0x9ac, 0x9b0, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf22, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf23, 0x3b, 0xf5f, +0xfb3, 0xf0b, 0xf24, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf25, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf26, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf27, 0x3b, 0xf5f, +0xfb3, 0xf0b, 0xf28, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf29, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf20, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf21, +0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf21, 0xf22, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, +0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, +0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, +0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, +0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, +0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, +0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, +0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, 0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, +0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf66, 0xfa4, +0xfb1, 0xf72, 0xf0b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, +0xf22, 0x3b, 0xf23, 0x3b, 0xf24, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, +0xf21, 0x3b, 0xf21, 0xf22, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0xf24, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, +0x3b, 0xf29, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0x31, 0x32, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf44, 0xf54, 0xf0b, 0x3b, +0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, +0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, +0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, +0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf51, 0xf42, 0xf74, +0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, +0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, +0xf0b, 0xf54, 0xf0b, 0x3b, 0xf21, 0x3b, 0xf22, 0x3b, 0xf23, 0x3b, 0x34, 0x3b, 0xf25, 0x3b, 0xf26, 0x3b, 0xf27, 0x3b, 0xf28, 0x3b, +0x39, 0x3b, 0xf21, 0xf20, 0x3b, 0xf21, 0xf21, 0x3b, 0xf21, 0xf22, 0x3b, 0x47, 0x65, 0x6e, 0x2e, 0x3b, 0x43, 0x2bc, 0x68, 0x77, +0x65, 0x2e, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x2e, 0x3b, 0x45, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, 0x65, +0x7a, 0x68, 0x2e, 0x3b, 0x47, 0x6f, 0x75, 0x65, 0x2e, 0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x2e, +0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x7a, 0x75, 0x2e, 0x3b, 0x47, 0x65, 0x6e, 0x76, 0x65, 0x72, +0x3b, 0x43, 0x2bc, 0x68, 0x77, 0x65, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x4d, 0x65, 0x75, 0x72, 0x7a, 0x68, 0x3b, 0x45, 0x62, +0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x65, 0x3b, 0x4d, 0x65, 0x7a, 0x68, 0x65, 0x76, 0x65, 0x6e, 0x3b, 0x47, 0x6f, 0x75, +0x65, 0x72, 0x65, 0x3b, 0x45, 0x6f, 0x73, 0x74, 0x3b, 0x47, 0x77, 0x65, 0x6e, 0x67, 0x6f, 0x6c, 0x6f, 0x3b, 0x48, 0x65, +0x72, 0x65, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x72, 0x7a, 0x75, 0x3b, 0x30, 0x31, 0x3b, 0x30, 0x32, 0x3b, 0x30, 0x33, +0x3b, 0x30, 0x34, 0x3b, 0x30, 0x35, 0x3b, 0x30, 0x36, 0x3b, 0x30, 0x37, 0x3b, 0x30, 0x38, 0x3b, 0x30, 0x39, 0x3b, 0x31, +0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x44f, 0x43d, 0x443, 0x3b, 0x444, 0x435, 0x432, 0x3b, 0x43c, 0x430, 0x440, 0x442, +0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x44e, 0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, +0x3b, 0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x435, 0x3b, 0x434, 0x435, 0x43a, 0x3b, 0x44f, 0x43d, 0x443, +0x430, 0x440, 0x438, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, +0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x44e, 0x43d, 0x438, 0x3b, 0x44e, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, +0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432, 0x440, +0x438, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x44f, +0x3b, 0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x44e, 0x3b, 0x44e, 0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b, 0x43d, +0x3b, 0x434, 0x3b, 0x1007, 0x1014, 0x103a, 0x3b, 0x1016, 0x1031, 0x3b, 0x1019, 0x1010, 0x103a, 0x3b, 0x1027, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, +0x103d, 0x1014, 0x103a, 0x3b, 0x1007, 0x1030, 0x3b, 0x1029, 0x3b, 0x1005, 0x1000, 0x103a, 0x3b, 0x1021, 0x1031, 0x102c, 0x1000, 0x103a, 0x3b, 0x1014, +0x102d, 0x102f, 0x3b, 0x1012, 0x102e, 0x3b, 0x1007, 0x1014, 0x103a, 0x1014, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1016, 0x1031, 0x1016, 0x1031, 0x102c, +0x103a, 0x101d, 0x102b, 0x101b, 0x102e, 0x3b, 0x1019, 0x1010, 0x103a, 0x3b, 0x1027, 0x1015, 0x103c, 0x102e, 0x3b, 0x1019, 0x1031, 0x3b, 0x1007, 0x103d, +0x1014, 0x103a, 0x3b, 0x1007, 0x1030, 0x101c, 0x102d, 0x102f, 0x1004, 0x103a, 0x3b, 0x1029, 0x1002, 0x102f, 0x1010, 0x103a, 0x3b, 0x1005, 0x1000, 0x103a, +0x1010, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1021, 0x1031, 0x102c, 0x1000, 0x103a, 0x1010, 0x102d, 0x102f, 0x1018, 0x102c, 0x3b, 0x1014, 0x102d, 0x102f, +0x101d, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1012, 0x102e, 0x1007, 0x1004, 0x103a, 0x1018, 0x102c, 0x3b, 0x1007, 0x3b, 0x1016, 0x3b, 0x1019, 0x3b, +0x1027, 0x3b, 0x1019, 0x3b, 0x1007, 0x3b, 0x1007, 0x3b, 0x1029, 0x3b, 0x1005, 0x3b, 0x1021, 0x3b, 0x1014, 0x3b, 0x1012, 0x3b, 0x441, 0x442, +0x443, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x447, 0x44d, +0x440, 0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, 0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, +0x441, 0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x44e, 0x442, 0x44b, 0x3b, +0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43a, 0x440, 0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x3b, 0x43c, 0x430, 0x439, +0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x436, 0x43d, 0x456, 0x432, +0x435, 0x43d, 0x44c, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, 0x435, 0x43d, 0x44c, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, +0x43d, 0x456, 0x43a, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, 0x43f, 0x430, 0x434, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x430, 0x43d, 0x44c, +0x3b, 0x441, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x43a, 0x3b, 0x43c, 0x3b, 0x447, 0x3b, 0x43b, 0x3b, 0x436, 0x3b, 0x432, 0x3b, 0x43a, +0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x441, 0x442, 0x443, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x441, 0x430, 0x43a, 0x3b, 0x43a, 0x440, 0x430, +0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x3b, 0x43b, 0x456, 0x43f, 0x3b, 0x436, 0x43d, 0x456, 0x3b, 0x432, 0x435, 0x440, +0x3b, 0x43a, 0x430, 0x441, 0x3b, 0x43b, 0x456, 0x441, 0x3b, 0x441, 0x43d, 0x435, 0x3b, 0x441, 0x442, 0x443, 0x434, 0x437, 0x435, 0x43d, +0x44f, 0x3b, 0x43b, 0x44e, 0x442, 0x430, 0x433, 0x430, 0x3b, 0x441, 0x430, 0x43a, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43a, 0x440, +0x430, 0x441, 0x430, 0x432, 0x456, 0x43a, 0x430, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x447, 0x44d, 0x440, 0x432, 0x435, 0x43d, 0x44f, 0x3b, +0x43b, 0x456, 0x43f, 0x435, 0x43d, 0x44f, 0x3b, 0x436, 0x43d, 0x456, 0x45e, 0x43d, 0x44f, 0x3b, 0x432, 0x435, 0x440, 0x430, 0x441, 0x43d, +0x44f, 0x3b, 0x43a, 0x430, 0x441, 0x442, 0x440, 0x44b, 0x447, 0x43d, 0x456, 0x43a, 0x430, 0x3b, 0x43b, 0x456, 0x441, 0x442, 0x430, 0x43f, +0x430, 0x434, 0x430, 0x3b, 0x441, 0x43d, 0x435, 0x436, 0x43d, 0x44f, 0x3b, 0x1798, 0x1780, 0x179a, 0x17b6, 0x3b, 0x1780, 0x17bb, 0x1798, 0x17d2, +0x1797, 0x17c8, 0x3b, 0x1798, 0x17b8, 0x1793, 0x17b6, 0x3b, 0x1798, 0x17c1, 0x179f, 0x17b6, 0x3b, 0x17a7, 0x179f, 0x1797, 0x17b6, 0x3b, 0x1798, 0x17b7, +0x1790, 0x17bb, 0x1793, 0x17b6, 0x3b, 0x1780, 0x1780, 0x17d2, 0x1780, 0x178a, 0x17b6, 0x3b, 0x179f, 0x17b8, 0x17a0, 0x17b6, 0x3b, 0x1780, 0x1789, 0x17d2, +0x1789, 0x17b6, 0x3b, 0x178f, 0x17bb, 0x179b, 0x17b6, 0x3b, 0x179c, 0x17b7, 0x1785, 0x17d2, 0x1786, 0x17b7, 0x1780, 0x17b6, 0x3b, 0x1792, 0x17d2, 0x1793, +0x17bc, 0x3b, 0x1798, 0x3b, 0x1780, 0x3b, 0x1798, 0x3b, 0x1798, 0x3b, 0x17a7, 0x3b, 0x1798, 0x3b, 0x1780, 0x3b, 0x179f, 0x3b, 0x1780, 0x3b, +0x178f, 0x3b, 0x179c, 0x3b, 0x1792, 0x3b, 0x67, 0x65, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, +0xe7, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x6a, 0x75, 0x6c, +0x2e, 0x3b, 0x61, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, +0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x6d, +0x61, 0x72, 0xe7, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x67, 0x3b, 0x6a, 0x75, 0x6e, 0x79, 0x3b, +0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, +0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, +0x65, 0x73, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x47, 0x4e, 0x3b, 0x46, 0x42, 0x3b, 0x4d, 0xc7, 0x3b, 0x41, 0x42, 0x3b, +0x4d, 0x47, 0x3b, 0x4a, 0x4e, 0x3b, 0x4a, 0x4c, 0x3b, 0x41, 0x47, 0x3b, 0x53, 0x54, 0x3b, 0x4f, 0x43, 0x3b, 0x4e, 0x56, +0x3b, 0x44, 0x53, 0x3b, 0x64, 0x65, 0x20, 0x67, 0x65, 0x6e, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x2e, +0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x72, 0xe7, 0x3b, 0x64, 0x2019, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x6d, +0x61, 0x69, 0x67, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, +0x64, 0x2019, 0x61, 0x67, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x74, 0x2e, +0x3b, 0x64, 0x65, 0x20, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x20, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x64, 0x65, 0x20, +0x67, 0x65, 0x6e, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x20, 0x6d, +0x61, 0x72, 0xe7, 0x3b, 0x64, 0x2019, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, 0x69, 0x67, 0x3b, +0x64, 0x65, 0x20, 0x6a, 0x75, 0x6e, 0x79, 0x3b, 0x64, 0x65, 0x20, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x6c, 0x3b, 0x64, 0x2019, +0x61, 0x67, 0x6f, 0x73, 0x74, 0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x2019, +0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, +0x64, 0x65, 0x20, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x31, 0x6708, 0x3b, 0x32, 0x6708, 0x3b, 0x33, 0x6708, +0x3b, 0x34, 0x6708, 0x3b, 0x35, 0x6708, 0x3b, 0x36, 0x6708, 0x3b, 0x37, 0x6708, 0x3b, 0x38, 0x6708, 0x3b, 0x39, 0x6708, 0x3b, 0x31, +0x30, 0x6708, 0x3b, 0x31, 0x31, 0x6708, 0x3b, 0x31, 0x32, 0x6708, 0x3b, 0x4e00, 0x6708, 0x3b, 0x4e8c, 0x6708, 0x3b, 0x4e09, 0x6708, 0x3b, +0x56db, 0x6708, 0x3b, 0x4e94, 0x6708, 0x3b, 0x516d, 0x6708, 0x3b, 0x4e03, 0x6708, 0x3b, 0x516b, 0x6708, 0x3b, 0x4e5d, 0x6708, 0x3b, 0x5341, 0x6708, +0x3b, 0x5341, 0x4e00, 0x6708, 0x3b, 0x5341, 0x4e8c, 0x6708, 0x3b, 0x73, 0x69, 0x6a, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x3b, 0x6f, 0x17e, +0x75, 0x3b, 0x74, 0x72, 0x61, 0x3b, 0x73, 0x76, 0x69, 0x3b, 0x6c, 0x69, 0x70, 0x3b, 0x73, 0x72, 0x70, 0x3b, 0x6b, 0x6f, +0x6c, 0x3b, 0x72, 0x75, 0x6a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x73, 0x74, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x3b, 0x73, 0x69, +0x6a, 0x65, 0x10d, 0x61, 0x6e, 0x6a, 0x3b, 0x76, 0x65, 0x6c, 0x6a, 0x61, 0x10d, 0x61, 0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x61, +0x6b, 0x3b, 0x74, 0x72, 0x61, 0x76, 0x61, 0x6e, 0x6a, 0x3b, 0x73, 0x76, 0x69, 0x62, 0x61, 0x6e, 0x6a, 0x3b, 0x6c, 0x69, +0x70, 0x61, 0x6e, 0x6a, 0x3b, 0x73, 0x72, 0x70, 0x61, 0x6e, 0x6a, 0x3b, 0x6b, 0x6f, 0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x3b, +0x72, 0x75, 0x6a, 0x61, 0x6e, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, +0x6e, 0x69, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x61, 0x63, 0x3b, 0x31, 0x2e, 0x3b, 0x32, 0x2e, 0x3b, 0x33, 0x2e, +0x3b, 0x34, 0x2e, 0x3b, 0x35, 0x2e, 0x3b, 0x36, 0x2e, 0x3b, 0x37, 0x2e, 0x3b, 0x38, 0x2e, 0x3b, 0x39, 0x2e, 0x3b, 0x31, +0x30, 0x2e, 0x3b, 0x31, 0x31, 0x2e, 0x3b, 0x31, 0x32, 0x2e, 0x3b, 0x73, 0x69, 0x6a, 0x65, 0x10d, 0x6e, 0x6a, 0x61, 0x3b, +0x76, 0x65, 0x6c, 0x6a, 0x61, 0x10d, 0x65, 0x3b, 0x6f, 0x17e, 0x75, 0x6a, 0x6b, 0x61, 0x3b, 0x74, 0x72, 0x61, 0x76, 0x6e, +0x6a, 0x61, 0x3b, 0x73, 0x76, 0x69, 0x62, 0x6e, 0x6a, 0x61, 0x3b, 0x6c, 0x69, 0x70, 0x6e, 0x6a, 0x61, 0x3b, 0x73, 0x72, +0x70, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x6f, 0x6c, 0x6f, 0x76, 0x6f, 0x7a, 0x61, 0x3b, 0x72, 0x75, 0x6a, 0x6e, 0x61, 0x3b, +0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61, 0x3b, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x6f, 0x67, 0x61, 0x3b, +0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x63, 0x61, 0x3b, 0x6c, 0x65, 0x64, 0x3b, 0xfa, 0x6e, 0x6f, 0x3b, 0x62, 0x159, 0x65, +0x3b, 0x64, 0x75, 0x62, 0x3b, 0x6b, 0x76, 0x11b, 0x3b, 0x10d, 0x76, 0x6e, 0x3b, 0x10d, 0x76, 0x63, 0x3b, 0x73, 0x72, 0x70, +0x3b, 0x7a, 0xe1, 0x159, 0x3b, 0x159, 0xed, 0x6a, 0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x70, 0x72, 0x6f, 0x3b, 0x6c, 0x65, 0x64, +0x65, 0x6e, 0x3b, 0xfa, 0x6e, 0x6f, 0x72, 0x3b, 0x62, 0x159, 0x65, 0x7a, 0x65, 0x6e, 0x3b, 0x64, 0x75, 0x62, 0x65, 0x6e, +0x3b, 0x6b, 0x76, 0x11b, 0x74, 0x65, 0x6e, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, 0x6e, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x65, +0x6e, 0x65, 0x63, 0x3b, 0x73, 0x72, 0x70, 0x65, 0x6e, 0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, 0x6a, 0x65, 0x6e, +0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, 0x65, 0x63, 0x3b, 0x6c, +0x65, 0x64, 0x6e, 0x61, 0x3b, 0xfa, 0x6e, 0x6f, 0x72, 0x61, 0x3b, 0x62, 0x159, 0x65, 0x7a, 0x6e, 0x61, 0x3b, 0x64, 0x75, +0x62, 0x6e, 0x61, 0x3b, 0x6b, 0x76, 0x11b, 0x74, 0x6e, 0x61, 0x3b, 0x10d, 0x65, 0x72, 0x76, 0x6e, 0x61, 0x3b, 0x10d, 0x65, +0x72, 0x76, 0x65, 0x6e, 0x63, 0x65, 0x3b, 0x73, 0x72, 0x70, 0x6e, 0x61, 0x3b, 0x7a, 0xe1, 0x159, 0xed, 0x3b, 0x159, 0xed, +0x6a, 0x6e, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x75, 0x3b, 0x70, 0x72, 0x6f, 0x73, 0x69, 0x6e, +0x63, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, +0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, +0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, +0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, +0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, +0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, +0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, +0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x72, 0x74, 0x2e, +0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, +0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, +0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, +0x69, 0x3b, 0x6d, 0x61, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x69, 0x3b, 0x6a, 0x75, +0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x65, 0x70, +0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, +0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, +0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6e, +0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x63, 0x74, +0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, +0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, +0x61, 0x16d, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, +0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, +0x74, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x6f, 0x3b, 0x6d, 0x61, 0x6a, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, +0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x16d, 0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, +0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, +0x6f, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x3b, 0x76, 0x65, 0x65, 0x62, +0x72, 0x3b, 0x6d, 0xe4, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, +0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x3b, 0x6f, 0x6b, 0x74, +0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x74, 0x73, 0x3b, 0x6a, 0x61, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x76, 0x65, +0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0xe4, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x6c, 0x3b, +0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, +0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, +0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x74, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, +0x3b, 0x4a, 0x3b, 0x56, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, +0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, +0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, +0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, +0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, +0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, +0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, +0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, +0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, +0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, +0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, +0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x3b, +0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x3b, 0x65, 0x6c, 0x6f, +0x3b, 0x73, 0x79, 0x79, 0x73, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x3b, 0x6a, 0x6f, +0x75, 0x6c, 0x75, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x75, +0x75, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, +0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x75, 0x75, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x68, 0x65, +0x69, 0x6e, 0xe4, 0x6b, 0x75, 0x75, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, +0x75, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, 0x75, 0x3b, +0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x75, 0x75, 0x3b, 0x54, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x4b, +0x3b, 0x48, 0x3b, 0x45, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x2e, +0x3b, 0x68, 0x65, 0x6c, 0x6d, 0x69, 0x6b, 0x2e, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x2e, 0x3b, 0x68, 0x75, +0x68, 0x74, 0x69, 0x6b, 0x2e, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x2e, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x2e, +0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x2e, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x2e, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, +0x2e, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x2e, 0x3b, 0x6a, 0x6f, +0x75, 0x6c, 0x75, 0x6b, 0x2e, 0x3b, 0x74, 0x61, 0x6d, 0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x65, 0x6c, +0x6d, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x61, 0x61, 0x6c, 0x69, 0x73, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, +0x68, 0x75, 0x68, 0x74, 0x69, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x74, 0x6f, 0x75, 0x6b, 0x6f, 0x6b, 0x75, 0x75, 0x74, +0x61, 0x3b, 0x6b, 0x65, 0x73, 0xe4, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x68, 0x65, 0x69, 0x6e, 0xe4, 0x6b, 0x75, 0x75, +0x74, 0x61, 0x3b, 0x65, 0x6c, 0x6f, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x73, 0x79, 0x79, 0x73, 0x6b, 0x75, 0x75, 0x74, +0x61, 0x3b, 0x6c, 0x6f, 0x6b, 0x61, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x61, 0x72, 0x72, 0x61, 0x73, 0x6b, 0x75, +0x75, 0x74, 0x61, 0x3b, 0x6a, 0x6f, 0x75, 0x6c, 0x75, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, +0x3b, 0x66, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, +0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x2e, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, +0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x6a, 0x61, +0x6e, 0x76, 0x69, 0x65, 0x72, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x69, 0x65, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, +0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x6c, 0x65, +0x74, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, +0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0xe9, 0x63, 0x65, 0x6d, 0x62, +0x72, 0x65, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0xe9, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, +0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x6e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, 0x6c, 0x2e, +0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, +0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0xe9, 0x76, 0x2e, 0x3b, 0x6d, 0x61, 0x72, +0x2e, 0x3b, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x69, 0x2e, 0x3b, 0x6a, 0x75, 0x69, 0x6c, +0x2e, 0x3b, 0x61, 0x6f, 0xfb, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, +0x76, 0x2e, 0x3b, 0x64, 0xe9, 0x63, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x72, 0x74, 0x3b, +0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, +0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, +0x65, 0x77, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x77, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x4d, 0x61, +0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x61, 0x69, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x79, +0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x69, +0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x69, 0x6d, 0x62, 0x65, +0x72, 0x3b, 0x44, 0x65, 0x73, 0x69, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x46, 0x61, 0x6f, 0x69, 0x3b, 0x47, 0x65, 0x61, 0x72, +0x72, 0x3b, 0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x47, 0x69, 0x62, 0x6c, 0x3b, 0x43, 0xe8, 0x69, 0x74, 0x3b, 0xd2, 0x67, 0x6d, +0x68, 0x3b, 0x49, 0x75, 0x63, 0x68, 0x3b, 0x4c, 0xf9, 0x6e, 0x61, 0x3b, 0x53, 0x75, 0x6c, 0x74, 0x3b, 0x44, 0xe0, 0x6d, +0x68, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x3b, 0x44, 0xf9, 0x62, 0x68, 0x3b, 0x41, 0x6d, 0x20, 0x46, 0x61, 0x6f, 0x69, 0x6c, +0x6c, 0x65, 0x61, 0x63, 0x68, 0x3b, 0x41, 0x6e, 0x20, 0x47, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b, 0x41, 0x6d, 0x20, +0x4d, 0xe0, 0x72, 0x74, 0x3b, 0x41, 0x6e, 0x20, 0x47, 0x69, 0x62, 0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x43, +0xe8, 0x69, 0x74, 0x65, 0x61, 0x6e, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0xd2, 0x67, 0x6d, 0x68, 0x69, 0x6f, 0x73, 0x3b, +0x41, 0x6e, 0x20, 0x74, 0x2d, 0x49, 0x75, 0x63, 0x68, 0x61, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x4c, 0xf9, 0x6e, 0x61, 0x73, +0x74, 0x61, 0x6c, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x75, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x3b, 0x41, 0x6e, 0x20, +0x44, 0xe0, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x41, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, +0x3b, 0x41, 0x6e, 0x20, 0x44, 0xf9, 0x62, 0x68, 0x6c, 0x61, 0x63, 0x68, 0x64, 0x3b, 0x46, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, +0x47, 0x3b, 0x43, 0x3b, 0xd2, 0x3b, 0x49, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x44, 0x3b, 0x64, 0x68, +0x65, 0x6e, 0x20, 0x46, 0x68, 0x61, 0x6f, 0x69, 0x6c, 0x6c, 0x65, 0x61, 0x63, 0x68, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, +0x47, 0x68, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x4d, 0x68, 0xe0, 0x72, 0x74, 0x3b, +0x64, 0x68, 0x65, 0x6e, 0x20, 0x47, 0x68, 0x69, 0x62, 0x6c, 0x65, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x43, +0x68, 0xe8, 0x69, 0x74, 0x65, 0x61, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0xd2, 0x67, 0x6d, 0x68, 0x69, 0x6f, 0x73, +0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x49, 0x75, 0x63, 0x68, 0x61, 0x72, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x4c, 0xf9, +0x6e, 0x61, 0x73, 0x74, 0x61, 0x6c, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x74, 0x2d, 0x53, 0x75, 0x6c, 0x74, 0x61, 0x69, +0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x44, 0xe0, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, +0x74, 0x2d, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x64, 0x68, 0x65, 0x6e, 0x20, 0x44, 0xf9, 0x62, 0x68, 0x6c, +0x61, 0x63, 0x68, 0x64, 0x3b, 0x58, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, +0x41, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x58, 0x75, 0xf1, 0x6f, 0x3b, 0x58, 0x75, 0x6c, 0x2e, 0x3b, +0x41, 0x67, 0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x74, 0x2e, 0x3b, 0x4f, 0x75, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, +0x44, 0x65, 0x63, 0x2e, 0x3b, 0x58, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x65, 0x69, 0x72, +0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x58, +0x75, 0xf1, 0x6f, 0x3b, 0x58, 0x75, 0x6c, 0x6c, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, +0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x4f, 0x75, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, +0x72, 0x6f, 0x3b, 0x44, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x58, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, +0x4d, 0x3b, 0x58, 0x3b, 0x58, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x78, 0x61, 0x6e, 0x2e, +0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x6f, +0x3b, 0x78, 0x75, 0xf1, 0x6f, 0x3b, 0x78, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, +0x3b, 0x6f, 0x75, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x78, 0x61, 0x6e, 0x65, +0x69, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, +0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x78, 0x75, 0xf1, 0x6f, 0x3b, 0x78, 0x75, 0x6c, 0x6c, 0x6f, +0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x75, 0x74, +0x75, 0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, +0x72, 0x6f, 0x3b, 0x78, 0x2e, 0x3b, 0x66, 0x2e, 0x3b, 0x6d, 0x2e, 0x3b, 0x61, 0x2e, 0x3b, 0x6d, 0x2e, 0x3b, 0x78, 0x2e, +0x3b, 0x78, 0x2e, 0x3b, 0x61, 0x2e, 0x3b, 0x73, 0x2e, 0x3b, 0x6f, 0x2e, 0x3b, 0x6e, 0x2e, 0x3b, 0x64, 0x2e, 0x3b, 0x10d8, +0x10d0, 0x10dc, 0x3b, 0x10d7, 0x10d4, 0x10d1, 0x3b, 0x10db, 0x10d0, 0x10e0, 0x3b, 0x10d0, 0x10de, 0x10e0, 0x3b, 0x10db, 0x10d0, 0x10d8, 0x3b, 0x10d8, +0x10d5, 0x10dc, 0x3b, 0x10d8, 0x10d5, 0x10da, 0x3b, 0x10d0, 0x10d2, 0x10d5, 0x3b, 0x10e1, 0x10d4, 0x10e5, 0x3b, 0x10dd, 0x10e5, 0x10e2, 0x3b, 0x10dc, +0x10dd, 0x10d4, 0x3b, 0x10d3, 0x10d4, 0x10d9, 0x3b, 0x10d8, 0x10d0, 0x10dc, 0x10d5, 0x10d0, 0x10e0, 0x10d8, 0x3b, 0x10d7, 0x10d4, 0x10d1, 0x10d4, 0x10e0, +0x10d5, 0x10d0, 0x10da, 0x10d8, 0x3b, 0x10db, 0x10d0, 0x10e0, 0x10e2, 0x10d8, 0x3b, 0x10d0, 0x10de, 0x10e0, 0x10d8, 0x10da, 0x10d8, 0x3b, 0x10db, 0x10d0, +0x10d8, 0x10e1, 0x10d8, 0x3b, 0x10d8, 0x10d5, 0x10dc, 0x10d8, 0x10e1, 0x10d8, 0x3b, 0x10d8, 0x10d5, 0x10da, 0x10d8, 0x10e1, 0x10d8, 0x3b, 0x10d0, 0x10d2, +0x10d5, 0x10d8, 0x10e1, 0x10e2, 0x10dd, 0x3b, 0x10e1, 0x10d4, 0x10e5, 0x10e2, 0x10d4, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10dd, 0x10e5, 0x10e2, +0x10dd, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10dc, 0x10dd, 0x10d4, 0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10d3, 0x10d4, 0x10d9, 0x10d4, +0x10db, 0x10d1, 0x10d4, 0x10e0, 0x10d8, 0x3b, 0x10d8, 0x3b, 0x10d7, 0x3b, 0x10db, 0x3b, 0x10d0, 0x3b, 0x10db, 0x3b, 0x10d8, 0x3b, 0x10d8, 0x3b, +0x10d0, 0x3b, 0x10e1, 0x3b, 0x10dd, 0x3b, 0x10dc, 0x3b, 0x10d3, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0xe4, +0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, +0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x4a, 0x61, +0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, +0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, +0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, +0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x65, 0x72, +0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x2e, +0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, +0x53, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, +0x3b, 0x4a, 0xe4, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0xe4, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, +0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, +0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x4a, 0xe4, 0x6e, 0x6e, 0x65, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, +0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, +0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, +0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, +0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0xe4, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, +0x2e, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, +0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, +0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, 0x3b, 0x399, 0x3b1, 0x3bd, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3b, 0x39c, +0x3ac, 0x3c1, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3b, 0x39c, 0x3ac, 0x3b9, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bd, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bb, +0x3b, 0x391, 0x3cd, 0x3b3, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3b, 0x39f, 0x3ba, 0x3c4, 0x3b, 0x39d, 0x3bf, 0x3ad, 0x3b, 0x394, 0x3b5, 0x3ba, +0x3b, 0x399, 0x3b1, 0x3bd, 0x3bf, 0x3c5, 0x3ac, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3c1, 0x3bf, 0x3c5, 0x3ac, 0x3c1, +0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39c, 0x3ac, 0x3c1, 0x3c4, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3af, 0x3bb, 0x3b9, 0x3bf, 0x3c2, +0x3b, 0x39c, 0x3ac, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bd, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x399, 0x3bf, 0x3cd, 0x3bb, 0x3b9, +0x3bf, 0x3c2, 0x3b, 0x391, 0x3cd, 0x3b3, 0x3bf, 0x3c5, 0x3c3, 0x3c4, 0x3bf, 0x3c2, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3c4, 0x3ad, 0x3bc, 0x3b2, +0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39f, 0x3ba, 0x3c4, 0x3ce, 0x3b2, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x39d, 0x3bf, 0x3ad, 0x3bc, 0x3b2, +0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x394, 0x3b5, 0x3ba, 0x3ad, 0x3bc, 0x3b2, 0x3c1, 0x3b9, 0x3bf, 0x3c2, 0x3b, 0x399, 0x3b, 0x3a6, 0x3b, +0x39c, 0x3b, 0x391, 0x3b, 0x39c, 0x3b, 0x399, 0x3b, 0x399, 0x3b, 0x391, 0x3b, 0x3a3, 0x3b, 0x39f, 0x3b, 0x39d, 0x3b, 0x394, 0x3b, +0x399, 0x3b1, 0x3bd, 0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3b, 0x39c, 0x3b1, 0x3c1, 0x3b, 0x391, 0x3c0, 0x3c1, 0x3b, 0x39c, 0x3b1, 0x390, 0x3b, +0x399, 0x3bf, 0x3c5, 0x3bd, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bb, 0x3b, 0x391, 0x3c5, 0x3b3, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3b, 0x39f, 0x3ba, +0x3c4, 0x3b, 0x39d, 0x3bf, 0x3b5, 0x3b, 0x394, 0x3b5, 0x3ba, 0x3b, 0x399, 0x3b1, 0x3bd, 0x3bf, 0x3c5, 0x3b1, 0x3c1, 0x3af, 0x3bf, 0x3c5, +0x3b, 0x3a6, 0x3b5, 0x3b2, 0x3c1, 0x3bf, 0x3c5, 0x3b1, 0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x39c, 0x3b1, 0x3c1, 0x3c4, 0x3af, 0x3bf, 0x3c5, +0x3b, 0x391, 0x3c0, 0x3c1, 0x3b9, 0x3bb, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x39c, 0x3b1, 0x390, 0x3bf, 0x3c5, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bd, +0x3af, 0x3bf, 0x3c5, 0x3b, 0x399, 0x3bf, 0x3c5, 0x3bb, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x391, 0x3c5, 0x3b3, 0x3bf, 0x3cd, 0x3c3, 0x3c4, 0x3bf, +0x3c5, 0x3b, 0x3a3, 0x3b5, 0x3c0, 0x3c4, 0x3b5, 0x3bc, 0x3b2, 0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x39f, 0x3ba, 0x3c4, 0x3c9, 0x3b2, 0x3c1, +0x3af, 0x3bf, 0x3c5, 0x3b, 0x39d, 0x3bf, 0x3b5, 0x3bc, 0x3b2, 0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x394, 0x3b5, 0x3ba, 0x3b5, 0x3bc, 0x3b2, +0x3c1, 0x3af, 0x3bf, 0x3c5, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, +0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, +0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, +0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x69, 0x3b, 0x61, 0x70, 0x72, +0x69, 0x6c, 0x69, 0x3b, 0x6d, 0x61, 0x6a, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, +0x75, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x69, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, +0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x69, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, 0x64, +0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x69, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, 0xaaf, 0xac1, 0x3b, 0xaab, 0xac7, 0xaac, 0xacd, +0xab0, 0xac1, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, 0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, +0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, 0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, +0x3b, 0xa91, 0xa95, 0xacd, 0xa9f, 0xacb, 0x3b, 0xaa8, 0xab5, 0xac7, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0x3b, 0xa9c, 0xabe, 0xaa8, 0xacd, +0xaaf, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaab, 0xac7, 0xaac, 0xacd, 0xab0, 0xac1, 0xa86, 0xab0, 0xac0, 0x3b, 0xaae, 0xabe, 0xab0, 0xacd, +0xa9a, 0x3b, 0xa8f, 0xaaa, 0xacd, 0xab0, 0xabf, 0xab2, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0xaa8, 0x3b, 0xa9c, 0xac1, 0xab2, 0xabe, +0xa88, 0x3b, 0xa91, 0xa97, 0xab8, 0xacd, 0xa9f, 0x3b, 0xab8, 0xaaa, 0xacd, 0xa9f, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xa91, 0xa95, +0xacd, 0xa9f, 0xacb, 0xaac, 0xab0, 0x3b, 0xaa8, 0xab5, 0xac7, 0xaae, 0xacd, 0xaac, 0xab0, 0x3b, 0xaa1, 0xabf, 0xab8, 0xac7, 0xaae, 0xacd, +0xaac, 0xab0, 0x3b, 0xa9c, 0xabe, 0x3b, 0xaab, 0xac7, 0x3b, 0xaae, 0xabe, 0x3b, 0xa8f, 0x3b, 0xaae, 0xac7, 0x3b, 0xa9c, 0xac2, 0x3b, +0xa9c, 0xac1, 0x3b, 0xa91, 0x3b, 0xab8, 0x3b, 0xa91, 0x3b, 0xaa8, 0x3b, 0xaa1, 0xabf, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x61, +0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x66, 0x69, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, +0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x61, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x75, 0x77, 0x3b, 0x44, 0x69, +0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x61, 0x69, 0x72, 0x75, 0x3b, 0x46, 0x61, 0x62, 0x75, 0x72, 0x61, 0x69, 0x72, 0x75, 0x3b, +0x4d, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x41, 0x66, 0x69, 0x72, 0x69, 0x6c, 0x75, 0x3b, 0x4d, 0x61, 0x79, 0x75, 0x3b, 0x59, +0x75, 0x6e, 0x69, 0x3b, 0x59, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x53, 0x61, 0x74, 0x75, +0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x75, 0x77, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x44, +0x69, 0x73, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, +0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x5d9, 0x5e0, 0x5d5, 0x5f3, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x5f3, +0x3b, 0x5de, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x5f3, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, +0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x5f3, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x5f3, 0x3b, 0x5d0, 0x5d5, 0x5e7, 0x5f3, 0x3b, 0x5e0, +0x5d5, 0x5d1, 0x5f3, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5f3, 0x3b, 0x5d9, 0x5e0, 0x5d5, 0x5d0, 0x5e8, 0x3b, 0x5e4, 0x5d1, 0x5e8, 0x5d5, 0x5d0, +0x5e8, 0x3b, 0x5de, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5e4, 0x5e8, 0x5d9, 0x5dc, 0x3b, 0x5de, 0x5d0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, +0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d2, 0x5d5, 0x5e1, 0x5d8, 0x3b, 0x5e1, 0x5e4, 0x5d8, 0x5de, 0x5d1, 0x5e8, 0x3b, +0x5d0, 0x5d5, 0x5e7, 0x5d8, 0x5d5, 0x5d1, 0x5e8, 0x3b, 0x5e0, 0x5d5, 0x5d1, 0x5de, 0x5d1, 0x5e8, 0x3b, 0x5d3, 0x5e6, 0x5de, 0x5d1, 0x5e8, +0x3b, 0x91c, 0x928, 0x970, 0x3b, 0x92b, 0x93c, 0x930, 0x970, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, +0x948, 0x932, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x970, 0x3b, 0x905, 0x917, 0x970, 0x3b, 0x938, +0x93f, 0x924, 0x970, 0x3b, 0x905, 0x915, 0x94d, 0x924, 0x942, 0x970, 0x3b, 0x928, 0x935, 0x970, 0x3b, 0x926, 0x93f, 0x938, 0x970, 0x3b, +0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x93c, 0x930, 0x935, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, +0x92a, 0x94d, 0x930, 0x948, 0x932, 0x3b, 0x92e, 0x908, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x908, 0x3b, 0x905, +0x917, 0x938, 0x94d, 0x924, 0x3b, 0x938, 0x93f, 0x924, 0x902, 0x92c, 0x930, 0x3b, 0x905, 0x915, 0x94d, 0x924, 0x942, 0x92c, 0x930, 0x3b, +0x928, 0x935, 0x902, 0x92c, 0x930, 0x3b, 0x926, 0x93f, 0x938, 0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x3b, 0x92b, 0x93c, 0x3b, 0x92e, 0x93e, +0x3b, 0x905, 0x3b, 0x92e, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, 0x941, 0x3b, 0x905, 0x3b, 0x938, 0x93f, 0x3b, 0x905, 0x3b, 0x928, 0x3b, +0x926, 0x93f, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x2e, 0x3b, +0xe1, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0xe1, 0x6a, 0x2e, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, 0xfa, 0x6c, 0x2e, 0x3b, +0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x7a, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, +0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, +0x72, 0x3b, 0x6d, 0xe1, 0x72, 0x63, 0x69, 0x75, 0x73, 0x3b, 0xe1, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x73, 0x3b, 0x6d, 0xe1, +0x6a, 0x75, 0x73, 0x3b, 0x6a, 0xfa, 0x6e, 0x69, 0x75, 0x73, 0x3b, 0x6a, 0xfa, 0x6c, 0x69, 0x75, 0x73, 0x3b, 0x61, 0x75, +0x67, 0x75, 0x73, 0x7a, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x7a, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, +0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, +0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0xc1, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, +0x3b, 0x53, 0x7a, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, +0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, 0xfa, 0x6e, 0x2e, 0x3b, 0x6a, +0xfa, 0x6c, 0x2e, 0x3b, 0xe1, 0x67, 0xfa, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, +0xf3, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0xfa, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, +0xfa, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0x61, 0xed, 0x3b, 0x6a, +0xfa, 0x6e, 0xed, 0x3b, 0x6a, 0xfa, 0x6c, 0xed, 0x3b, 0xe1, 0x67, 0xfa, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, +0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0xf3, 0x76, 0x65, 0x6d, 0x62, 0x65, +0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, +0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0xc1, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, +0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, +0x75, 0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, +0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, +0x4d, 0x61, 0x72, 0x65, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, +0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x75, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, +0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, +0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, +0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x75, +0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x63, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, +0x6e, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x72, +0x74, 0x69, 0x6f, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, +0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, +0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, +0x65, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6a, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, +0x3b, 0x6a, 0x3b, 0x6a, 0x3b, 0x61, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x45, 0x61, 0x6e, 0x3b, 0x46, +0x65, 0x61, 0x62, 0x68, 0x3b, 0x4d, 0xe1, 0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, 0x62, 0x3b, 0x42, 0x65, 0x61, 0x6c, 0x3b, +0x4d, 0x65, 0x69, 0x74, 0x68, 0x3b, 0x49, 0xfa, 0x69, 0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x3b, 0x4d, 0x46, 0xf3, 0x6d, 0x68, +0x3b, 0x44, 0x46, 0xf3, 0x6d, 0x68, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, 0x3b, 0x45, 0x61, 0x6e, +0xe1, 0x69, 0x72, 0x3b, 0x46, 0x65, 0x61, 0x62, 0x68, 0x72, 0x61, 0x3b, 0x4d, 0xe1, 0x72, 0x74, 0x61, 0x3b, 0x41, 0x69, +0x62, 0x72, 0x65, 0xe1, 0x6e, 0x3b, 0x42, 0x65, 0x61, 0x6c, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x74, +0x68, 0x65, 0x61, 0x6d, 0x68, 0x3b, 0x49, 0xfa, 0x69, 0x6c, 0x3b, 0x4c, 0xfa, 0x6e, 0x61, 0x73, 0x61, 0x3b, 0x4d, 0x65, +0xe1, 0x6e, 0x20, 0x46, 0xf3, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x44, 0x65, 0x69, 0x72, 0x65, 0x61, 0x64, 0x68, 0x20, +0x46, 0xf3, 0x6d, 0x68, 0x61, 0x69, 0x72, 0x3b, 0x53, 0x61, 0x6d, 0x68, 0x61, 0x69, 0x6e, 0x3b, 0x4e, 0x6f, 0x6c, 0x6c, +0x61, 0x69, 0x67, 0x3b, 0x45, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x42, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4c, 0x3b, +0x4d, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x67, 0x65, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, +0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x67, 0x3b, 0x67, 0x69, 0x75, 0x3b, 0x6c, 0x75, 0x67, 0x3b, 0x61, 0x67, 0x6f, 0x3b, +0x73, 0x65, 0x74, 0x3b, 0x6f, 0x74, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x69, 0x63, 0x3b, 0x67, 0x65, 0x6e, 0x6e, +0x61, 0x69, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x62, 0x72, 0x61, 0x69, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, +0x70, 0x72, 0x69, 0x6c, 0x65, 0x3b, 0x6d, 0x61, 0x67, 0x67, 0x69, 0x6f, 0x3b, 0x67, 0x69, 0x75, 0x67, 0x6e, 0x6f, 0x3b, +0x6c, 0x75, 0x67, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x65, 0x6d, +0x62, 0x72, 0x65, 0x3b, 0x6f, 0x74, 0x74, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x65, +0x3b, 0x64, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x47, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, +0x47, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, +0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, +0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, +0x73, 0x3b, 0xc9c, 0xca8, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0x3b, 0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, +0xccd, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0x3b, +0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0x3b, 0xca1, +0xcbf, 0xcb8, 0xcc6, 0xc82, 0x3b, 0xc9c, 0xca8, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0xcb5, 0xcb0, 0xcbf, 0x3b, +0xcae, 0xcbe, 0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd, 0xcb0, 0xcbf, 0xcb2, 0xccd, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, +0xca8, 0xccd, 0x3b, 0xc9c, 0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0xcb8, 0xccd, 0xc9f, 0xccd, 0x3b, 0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, +0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, 0xcac, 0xcb0, 0xccd, 0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0xcac, +0xcb0, 0xccd, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0xcac, 0xcb0, 0xccd, 0x3b, 0xc9c, 0x3b, 0xcab, 0xcc6, 0x3b, 0xcae, 0xcbe, 0x3b, +0xc8f, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0x3b, 0xc9c, 0xcc1, 0x3b, 0xc86, 0x3b, 0xcb8, 0xcc6, 0x3b, 0xc85, 0x3b, 0xca8, 0x3b, +0xca1, 0xcbf, 0x3b, 0xc9c, 0xca8, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcab, 0xcc6, 0xcac, 0xccd, 0xcb0, 0xcb5, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcbe, +0xcb0, 0xccd, 0xc9a, 0xccd, 0x3b, 0xc8f, 0xcaa, 0xccd, 0xcb0, 0xcbf, 0x3b, 0xcae, 0xcc7, 0x3b, 0xc9c, 0xcc2, 0xca8, 0xccd, 0x3b, 0xc9c, +0xcc1, 0xcb2, 0xcc8, 0x3b, 0xc86, 0xc97, 0x3b, 0xcb8, 0xcc6, 0xcaa, 0xccd, 0xc9f, 0xcc6, 0xc82, 0x3b, 0xc85, 0xc95, 0xccd, 0xc9f, 0xccb, +0x3b, 0xca8, 0xcb5, 0xcc6, 0xc82, 0x3b, 0xca1, 0xcbf, 0xcb8, 0xcc6, 0xc82, 0x3b, 0x62c, 0x646, 0x624, 0x631, 0x6cc, 0x3b, 0x641, 0x631, +0x624, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x655, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x654, 0x3b, +0x62c, 0x648, 0x657, 0x646, 0x3b, 0x62c, 0x648, 0x657, 0x644, 0x627, 0x6cc, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, +0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x657, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, +0x645, 0x628, 0x631, 0x3b, 0x62c, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, +0x633, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x49b, 0x430, 0x4a3, 0x2e, 0x3b, 0x430, 0x49b, 0x43f, 0x2e, 0x3b, 0x43d, 0x430, +0x443, 0x2e, 0x3b, 0x441, 0x4d9, 0x443, 0x2e, 0x3b, 0x43c, 0x430, 0x43c, 0x2e, 0x3b, 0x43c, 0x430, 0x443, 0x2e, 0x3b, 0x448, 0x456, +0x43b, 0x2e, 0x3b, 0x442, 0x430, 0x43c, 0x2e, 0x3b, 0x49b, 0x44b, 0x440, 0x2e, 0x3b, 0x49b, 0x430, 0x437, 0x2e, 0x3b, 0x49b, 0x430, +0x440, 0x2e, 0x3b, 0x436, 0x435, 0x43b, 0x2e, 0x3b, 0x49a, 0x430, 0x4a3, 0x442, 0x430, 0x440, 0x3b, 0x410, 0x49b, 0x43f, 0x430, 0x43d, +0x3b, 0x41d, 0x430, 0x443, 0x440, 0x44b, 0x437, 0x3b, 0x421, 0x4d9, 0x443, 0x456, 0x440, 0x3b, 0x41c, 0x430, 0x43c, 0x44b, 0x440, 0x3b, +0x41c, 0x430, 0x443, 0x441, 0x44b, 0x43c, 0x3b, 0x428, 0x456, 0x43b, 0x434, 0x435, 0x3b, 0x422, 0x430, 0x43c, 0x44b, 0x437, 0x3b, 0x49a, +0x44b, 0x440, 0x43a, 0x4af, 0x439, 0x435, 0x43a, 0x3b, 0x49a, 0x430, 0x437, 0x430, 0x43d, 0x3b, 0x49a, 0x430, 0x440, 0x430, 0x448, 0x430, +0x3b, 0x416, 0x435, 0x43b, 0x442, 0x43e, 0x49b, 0x441, 0x430, 0x43d, 0x3b, 0x49a, 0x3b, 0x410, 0x3b, 0x41d, 0x3b, 0x421, 0x3b, 0x41c, +0x3b, 0x41c, 0x3b, 0x428, 0x3b, 0x422, 0x3b, 0x49a, 0x3b, 0x49a, 0x3b, 0x49a, 0x3b, 0x416, 0x3b, 0x49b, 0x430, 0x4a3, 0x442, 0x430, +0x440, 0x3b, 0x430, 0x49b, 0x43f, 0x430, 0x43d, 0x3b, 0x43d, 0x430, 0x443, 0x440, 0x44b, 0x437, 0x3b, 0x441, 0x4d9, 0x443, 0x456, 0x440, +0x3b, 0x43c, 0x430, 0x43c, 0x44b, 0x440, 0x3b, 0x43c, 0x430, 0x443, 0x441, 0x44b, 0x43c, 0x3b, 0x448, 0x456, 0x43b, 0x434, 0x435, 0x3b, +0x442, 0x430, 0x43c, 0x44b, 0x437, 0x3b, 0x49b, 0x44b, 0x440, 0x43a, 0x4af, 0x439, 0x435, 0x43a, 0x3b, 0x49b, 0x430, 0x437, 0x430, 0x43d, +0x3b, 0x49b, 0x430, 0x440, 0x430, 0x448, 0x430, 0x3b, 0x436, 0x435, 0x43b, 0x442, 0x43e, 0x49b, 0x441, 0x430, 0x43d, 0x3b, 0x6d, 0x75, +0x74, 0x2e, 0x3b, 0x67, 0x61, 0x73, 0x2e, 0x3b, 0x77, 0x65, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x74, 0x2e, 0x3b, 0x67, 0x69, +0x63, 0x2e, 0x3b, 0x6b, 0x61, 0x6d, 0x2e, 0x3b, 0x6e, 0x79, 0x61, 0x2e, 0x3b, 0x6b, 0x61, 0x6e, 0x2e, 0x3b, 0x6e, 0x7a, +0x65, 0x2e, 0x3b, 0x75, 0x6b, 0x77, 0x2e, 0x3b, 0x75, 0x67, 0x75, 0x2e, 0x3b, 0x75, 0x6b, 0x75, 0x2e, 0x3b, 0x4d, 0x75, +0x74, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0x47, 0x61, 0x73, 0x68, 0x79, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, 0x3b, 0x57, +0x65, 0x72, 0x75, 0x72, 0x77, 0x65, 0x3b, 0x4d, 0x61, 0x74, 0x61, 0x3b, 0x47, 0x69, 0x63, 0x75, 0x72, 0x61, 0x6e, 0x73, +0x69, 0x3b, 0x4b, 0x61, 0x6d, 0x65, 0x6e, 0x61, 0x3b, 0x4e, 0x79, 0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x4b, 0x61, +0x6e, 0x61, 0x6d, 0x61, 0x3b, 0x4e, 0x7a, 0x65, 0x6c, 0x69, 0x3b, 0x55, 0x6b, 0x77, 0x61, 0x6b, 0x69, 0x72, 0x61, 0x3b, +0x55, 0x67, 0x75, 0x73, 0x68, 0x79, 0x69, 0x6e, 0x67, 0x6f, 0x3b, 0x55, 0x6b, 0x75, 0x62, 0x6f, 0x7a, 0x61, 0x3b, 0x42f, +0x43d, 0x432, 0x3b, 0x424, 0x435, 0x432, 0x3b, 0x41c, 0x430, 0x440, 0x3b, 0x410, 0x43f, 0x440, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, +0x44e, 0x43d, 0x3b, 0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x3b, 0x421, 0x435, 0x43d, 0x3b, 0x41e, 0x43a, 0x442, 0x3b, 0x41d, +0x43e, 0x44f, 0x3b, 0x414, 0x435, 0x43a, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, +0x44c, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, +0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, +0x431, 0x440, 0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, +0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x42f, 0x3b, 0x424, 0x3b, 0x41c, 0x3b, 0x410, 0x3b, 0x41c, 0x3b, 0x418, 0x3b, 0x418, +0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x41e, 0x3b, 0x41d, 0x3b, 0x414, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, +0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x2e, 0x3b, +0x438, 0x44e, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, +0x43d, 0x43e, 0x44f, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x444, 0x435, 0x432, +0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x439, +0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, +0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, +0x44c, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x31, 0xc6d4, 0x3b, 0x32, 0xc6d4, 0x3b, 0x33, 0xc6d4, 0x3b, 0x34, +0xc6d4, 0x3b, 0x35, 0xc6d4, 0x3b, 0x36, 0xc6d4, 0x3b, 0x37, 0xc6d4, 0x3b, 0x38, 0xc6d4, 0x3b, 0x39, 0xc6d4, 0x3b, 0x31, 0x30, 0xc6d4, +0x3b, 0x31, 0x31, 0xc6d4, 0x3b, 0x31, 0x32, 0xc6d4, 0x3b, 0x72, 0xea, 0x62, 0x3b, 0x72, 0x65, 0x15f, 0x3b, 0x61, 0x64, 0x61, +0x3b, 0x61, 0x76, 0x72, 0x3b, 0x67, 0x75, 0x6c, 0x3b, 0x70, 0xfb, 0x15f, 0x3b, 0x74, 0xee, 0x72, 0x3b, 0x67, 0x65, 0x6c, +0x3b, 0x72, 0x65, 0x7a, 0x3b, 0x6b, 0x65, 0x77, 0x3b, 0x73, 0x65, 0x72, 0x3b, 0x62, 0x65, 0x72, 0x3b, 0x72, 0xea, 0x62, +0x65, 0x6e, 0x64, 0x61, 0x6e, 0x3b, 0x72, 0x65, 0x15f, 0x65, 0x6d, 0xee, 0x3b, 0x61, 0x64, 0x61, 0x72, 0x3b, 0x61, 0x76, +0x72, 0xea, 0x6c, 0x3b, 0x67, 0x75, 0x6c, 0x61, 0x6e, 0x3b, 0x70, 0xfb, 0x15f, 0x70, 0x65, 0x72, 0x3b, 0x74, 0xee, 0x72, +0x6d, 0x65, 0x68, 0x3b, 0x67, 0x65, 0x6c, 0x61, 0x77, 0xea, 0x6a, 0x3b, 0x72, 0x65, 0x7a, 0x62, 0x65, 0x72, 0x3b, 0x6b, +0x65, 0x77, 0xe7, 0xea, 0x72, 0x3b, 0x73, 0x65, 0x72, 0x6d, 0x61, 0x77, 0x65, 0x7a, 0x3b, 0x62, 0x65, 0x72, 0x66, 0x61, +0x6e, 0x62, 0x61, 0x72, 0x3b, 0x52, 0x3b, 0x52, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x47, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x47, +0x3b, 0x52, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x72, 0xea, 0x62, 0x65, 0x6e, 0x64, 0x61, 0x6e, 0xea, 0x3b, 0x72, +0x65, 0x15f, 0x65, 0x6d, 0x69, 0x79, 0xea, 0x3b, 0x61, 0x64, 0x61, 0x72, 0xea, 0x3b, 0x61, 0x76, 0x72, 0xea, 0x6c, 0xea, +0x3b, 0x67, 0x75, 0x6c, 0x61, 0x6e, 0xea, 0x3b, 0x70, 0xfb, 0x15f, 0x70, 0x65, 0x72, 0xea, 0x3b, 0x74, 0xee, 0x72, 0x6d, +0x65, 0x68, 0xea, 0x3b, 0x67, 0x65, 0x6c, 0x61, 0x77, 0xea, 0x6a, 0xea, 0x3b, 0x72, 0x65, 0x7a, 0x62, 0x65, 0x72, 0xea, +0x3b, 0x6b, 0x65, 0x77, 0xe7, 0xea, 0x72, 0xea, 0x3b, 0x73, 0x65, 0x72, 0x6d, 0x61, 0x77, 0x65, 0x7a, 0xea, 0x3b, 0x62, +0x65, 0x72, 0x66, 0x61, 0x6e, 0x62, 0x61, 0x72, 0xea, 0x3b, 0x4d, 0x75, 0x74, 0x2e, 0x3b, 0x47, 0x61, 0x73, 0x2e, 0x3b, +0x57, 0x65, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x74, 0x2e, 0x3b, 0x47, 0x69, 0x63, 0x2e, 0x3b, 0x4b, 0x61, 0x6d, 0x2e, 0x3b, +0x4e, 0x79, 0x61, 0x2e, 0x3b, 0x4b, 0x61, 0x6e, 0x2e, 0x3b, 0x4e, 0x7a, 0x65, 0x2e, 0x3b, 0x55, 0x6b, 0x77, 0x2e, 0x3b, +0x55, 0x67, 0x75, 0x2e, 0x3b, 0x55, 0x6b, 0x75, 0x2e, 0x3b, 0x4e, 0x7a, 0x65, 0x72, 0x6f, 0x3b, 0x52, 0x75, 0x68, 0x75, +0x68, 0x75, 0x6d, 0x61, 0x3b, 0x4e, 0x74, 0x77, 0x61, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x3b, 0x4e, 0x64, 0x61, 0x6d, 0x75, +0x6b, 0x69, 0x7a, 0x61, 0x3b, 0x52, 0x75, 0x73, 0x61, 0x6d, 0x61, 0x3b, 0x52, 0x75, 0x68, 0x65, 0x73, 0x68, 0x69, 0x3b, +0x4d, 0x75, 0x6b, 0x61, 0x6b, 0x61, 0x72, 0x6f, 0x3b, 0x4e, 0x79, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x61, 0x72, 0x6f, 0x3b, +0x4e, 0x79, 0x61, 0x6b, 0x61, 0x6e, 0x67, 0x61, 0x3b, 0x47, 0x69, 0x74, 0x75, 0x67, 0x75, 0x74, 0x75, 0x3b, 0x4d, 0x75, +0x6e, 0x79, 0x6f, 0x6e, 0x79, 0x6f, 0x3b, 0x4b, 0x69, 0x67, 0x61, 0x72, 0x61, 0x6d, 0x61, 0x3b, 0xea1, 0x2e, 0xe81, 0x2e, +0x3b, 0xe81, 0x2e, 0xe9e, 0x2e, 0x3b, 0xea1, 0x2e, 0xe99, 0x2e, 0x3b, 0xea1, 0x2e, 0xeaa, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe9e, 0x2e, +0x3b, 0xea1, 0xeb4, 0x2e, 0xe96, 0x2e, 0x3b, 0xe81, 0x2e, 0xea5, 0x2e, 0x3b, 0xeaa, 0x2e, 0xeab, 0x2e, 0x3b, 0xe81, 0x2e, 0xe8d, +0x2e, 0x3b, 0xe95, 0x2e, 0xea5, 0x2e, 0x3b, 0xe9e, 0x2e, 0xe88, 0x2e, 0x3b, 0xe97, 0x2e, 0xea7, 0x2e, 0x3b, 0xea1, 0xeb1, 0xe87, +0xe81, 0xead, 0xe99, 0x3b, 0xe81, 0xeb8, 0xea1, 0xe9e, 0xeb2, 0x3b, 0xea1, 0xeb5, 0xe99, 0xeb2, 0x3b, 0xec0, 0xea1, 0xeaa, 0xeb2, 0x3b, +0xe9e, 0xeb6, 0xe94, 0xeaa, 0xeb0, 0xe9e, 0xeb2, 0x3b, 0xea1, 0xeb4, 0xe96, 0xeb8, 0xe99, 0xeb2, 0x3b, 0xe81, 0xecd, 0xea5, 0xeb0, 0xe81, +0xebb, 0xe94, 0x3b, 0xeaa, 0xeb4, 0xe87, 0xeab, 0xeb2, 0x3b, 0xe81, 0xeb1, 0xe99, 0xe8d, 0xeb2, 0x3b, 0xe95, 0xeb8, 0xea5, 0xeb2, 0x3b, +0xe9e, 0xeb0, 0xe88, 0xeb4, 0xe81, 0x3b, 0xe97, 0xeb1, 0xe99, 0xea7, 0xeb2, 0x3b, 0x6a, 0x61, 0x6e, 0x76, 0x2e, 0x3b, 0x66, 0x65, +0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, +0x3b, 0x6a, 0x16b, 0x6e, 0x2e, 0x3b, 0x6a, 0x16b, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, +0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, +0x76, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x101, 0x72, 0x69, 0x73, 0x3b, 0x6d, 0x61, 0x72, 0x74, +0x73, 0x3b, 0x61, 0x70, 0x72, 0x12b, 0x6c, 0x69, 0x73, 0x3b, 0x6d, 0x61, 0x69, 0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6e, 0x69, +0x6a, 0x73, 0x3b, 0x6a, 0x16b, 0x6c, 0x69, 0x6a, 0x73, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x73, 0x3b, 0x73, 0x65, +0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x6e, 0x6f, +0x76, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x73, 0x3b, 0x79, 0x61, +0x6e, 0x3b, 0x66, 0x62, 0x6c, 0x3b, 0x6d, 0x73, 0x69, 0x3b, 0x61, 0x70, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x79, 0x75, +0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x67, 0x74, 0x3b, 0x73, 0x74, 0x62, 0x3b, 0x254, 0x74, 0x62, 0x3b, 0x6e, 0x76, +0x62, 0x3b, 0x64, 0x73, 0x62, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x79, 0x61, 0x6d, 0x62, 0x6f, +0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, 0x73, 0xe1, 0x6e, +0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x73, 0xe1, 0x74, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, +0x61, 0x20, 0x6d, 0xed, 0x6e, 0x65, 0x69, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0xed, 0x74, +0xe1, 0x6e, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x6f, 0x74, 0xf3, 0x62, 0xe1, 0x3b, +0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x6e, 0x73, 0x61, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, +0xe1, 0x20, 0x79, 0x61, 0x20, 0x6d, 0x77, 0x61, 0x6d, 0x62, 0x65, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, +0x20, 0x6c, 0x69, 0x62, 0x77, 0x61, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, +0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x254, +0x30c, 0x6b, 0x254, 0x301, 0x3b, 0x73, 0xe1, 0x6e, 0x7a, 0xe1, 0x20, 0x79, 0x61, 0x20, 0x7a, 0xf3, 0x6d, 0x69, 0x20, 0x6e, +0x61, 0x20, 0x6d, 0xed, 0x62, 0x61, 0x6c, 0xe9, 0x3b, 0x79, 0x3b, 0x66, 0x3b, 0x6d, 0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x79, +0x3b, 0x79, 0x3b, 0x61, 0x3b, 0x73, 0x3b, 0x254, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x2e, 0x3b, 0x76, +0x61, 0x73, 0x2e, 0x3b, 0x6b, 0x6f, 0x76, 0x2e, 0x3b, 0x62, 0x61, 0x6c, 0x2e, 0x3b, 0x67, 0x65, 0x67, 0x2e, 0x3b, 0x62, +0x69, 0x72, 0x17e, 0x2e, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x2e, 0x3b, 0x72, 0x75, 0x67, +0x73, 0x2e, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x2e, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x2e, 0x3b, 0x67, 0x72, 0x75, 0x6f, +0x64, 0x2e, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x69, 0x73, 0x3b, 0x76, 0x61, 0x73, 0x61, 0x72, 0x69, 0x73, 0x3b, 0x6b, 0x6f, +0x76, 0x61, 0x73, 0x3b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x69, 0x73, 0x3b, 0x67, 0x65, 0x67, 0x75, 0x17e, 0x117, 0x3b, +0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c, 0x69, 0x73, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x61, 0x3b, 0x72, 0x75, 0x67, 0x70, 0x6a, +0x16b, 0x74, 0x69, 0x73, 0x3b, 0x72, 0x75, 0x67, 0x73, 0x117, 0x6a, 0x69, 0x73, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x69, 0x73, +0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x69, 0x74, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x69, 0x73, 0x3b, 0x53, +0x3b, 0x56, 0x3b, 0x4b, 0x3b, 0x42, 0x3b, 0x47, 0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x52, 0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4c, +0x3b, 0x47, 0x3b, 0x73, 0x61, 0x75, 0x73, 0x69, 0x6f, 0x3b, 0x76, 0x61, 0x73, 0x61, 0x72, 0x69, 0x6f, 0x3b, 0x6b, 0x6f, +0x76, 0x6f, 0x3b, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x64, 0x17e, 0x69, 0x6f, 0x3b, 0x67, 0x65, 0x67, 0x75, 0x17e, 0x117, 0x73, +0x3b, 0x62, 0x69, 0x72, 0x17e, 0x65, 0x6c, 0x69, 0x6f, 0x3b, 0x6c, 0x69, 0x65, 0x70, 0x6f, 0x73, 0x3b, 0x72, 0x75, 0x67, +0x70, 0x6a, 0x16b, 0x10d, 0x69, 0x6f, 0x3b, 0x72, 0x75, 0x67, 0x73, 0x117, 0x6a, 0x6f, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x69, +0x6f, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x69, 0x10d, 0x69, 0x6f, 0x3b, 0x67, 0x72, 0x75, 0x6f, 0x64, 0x17e, 0x69, 0x6f, +0x3b, 0x458, 0x430, 0x43d, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, +0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x2e, 0x3b, 0x458, 0x443, 0x43b, 0x2e, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, +0x441, 0x435, 0x43f, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x2e, 0x3b, 0x434, 0x435, 0x43a, +0x2e, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x443, 0x430, 0x440, 0x438, 0x3b, 0x43c, +0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, 0x458, +0x443, 0x43b, 0x438, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x432, 0x440, 0x438, +0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x43d, 0x43e, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x434, 0x435, +0x43a, 0x435, 0x43c, 0x432, 0x440, 0x438, 0x3b, 0x458, 0x3b, 0x444, 0x3b, 0x43c, 0x3b, 0x430, 0x3b, 0x43c, 0x3b, 0x458, 0x3b, 0x458, +0x3b, 0x430, 0x3b, 0x441, 0x3b, 0x43e, 0x3b, 0x43d, 0x3b, 0x434, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, +0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x3b, 0x4a, 0x6f, 0x6c, 0x3b, 0x41, +0x6f, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, +0x61, 0x6e, 0x6f, 0x61, 0x72, 0x79, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x72, 0x79, 0x3b, 0x4d, 0x61, 0x72, 0x74, +0x73, 0x61, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x79, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x6f, 0x6e, 0x61, 0x3b, 0x4a, +0x6f, 0x6c, 0x61, 0x79, 0x3b, 0x41, 0x6f, 0x67, 0x6f, 0x73, 0x69, 0x74, 0x72, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x61, +0x6d, 0x62, 0x72, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x61, 0x6d, 0x62, 0x72, +0x61, 0x3b, 0x44, 0x65, 0x73, 0x61, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, +0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, +0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, +0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x3b, +0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, +0x4f, 0x67, 0x6f, 0x73, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, +0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, +0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, +0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0xd1c, 0xd28, 0xd41, 0x3b, 0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0x3b, +0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0xd32, 0xd48, 0x3b, +0xd13, 0xd17, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd02, 0x3b, 0xd12, 0xd15, 0xd4d, 0xd1f, 0xd4b, 0x3b, 0xd28, 0xd35, +0xd02, 0x3b, 0xd21, 0xd3f, 0xd38, 0xd02, 0x3b, 0xd1c, 0xd28, 0xd41, 0xd35, 0xd30, 0xd3f, 0x3b, 0xd2b, 0xd46, 0xd2c, 0xd4d, 0xd30, 0xd41, +0xd35, 0xd30, 0xd3f, 0x3b, 0xd2e, 0xd3e, 0xd7c, 0xd1a, 0xd4d, 0xd1a, 0xd4d, 0x3b, 0xd0f, 0xd2a, 0xd4d, 0xd30, 0xd3f, 0xd7d, 0x3b, 0xd2e, +0xd47, 0xd2f, 0xd4d, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0xd32, 0xd48, 0x3b, 0xd13, 0xd17, 0xd38, 0xd4d, 0xd31, 0xd4d, 0xd31, +0xd4d, 0x3b, 0xd38, 0xd46, 0xd2a, 0xd4d, 0xd31, 0xd4d, 0xd31, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd12, 0xd15, 0xd4d, 0x200c, 0xd1f, 0xd4b, 0xd2c, +0xd7c, 0x3b, 0xd28, 0xd35, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd21, 0xd3f, 0xd38, 0xd02, 0xd2c, 0xd7c, 0x3b, 0xd1c, 0x3b, 0xd2b, 0xd46, 0x3b, +0xd2e, 0xd3e, 0x3b, 0xd0f, 0x3b, 0xd2e, 0xd46, 0x3b, 0xd1c, 0xd42, 0xd7a, 0x3b, 0xd1c, 0xd42, 0x3b, 0xd13, 0x3b, 0xd38, 0xd46, 0x3b, +0xd12, 0x3b, 0xd28, 0x3b, 0xd21, 0xd3f, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x72, 0x61, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, +0x70, 0x72, 0x3b, 0x4d, 0x65, 0x6a, 0x3b, 0x120, 0x75, 0x6e, 0x3b, 0x4c, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x77, 0x3b, 0x53, +0x65, 0x74, 0x3b, 0x4f, 0x74, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x10b, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x61, +0x72, 0x3b, 0x46, 0x72, 0x61, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, +0x65, 0x6a, 0x6a, 0x75, 0x3b, 0x120, 0x75, 0x6e, 0x6a, 0x75, 0x3b, 0x4c, 0x75, 0x6c, 0x6a, 0x75, 0x3b, 0x41, 0x77, 0x77, +0x69, 0x73, 0x73, 0x75, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x4f, 0x74, 0x74, 0x75, 0x62, +0x72, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x75, 0x3b, 0x44, 0x69, 0x10b, 0x65, 0x6d, 0x62, 0x72, 0x75, +0x3b, 0x4a, 0x6e, 0x3b, 0x46, 0x72, 0x3b, 0x4d, 0x7a, 0x3b, 0x41, 0x70, 0x3b, 0x4d, 0x6a, 0x3b, 0x120, 0x6e, 0x3b, 0x4c, +0x6a, 0x3b, 0x41, 0x77, 0x3b, 0x53, 0x74, 0x3b, 0x4f, 0x62, 0x3b, 0x4e, 0x76, 0x3b, 0x44, 0x10b, 0x3b, 0x4a, 0x3b, 0x46, +0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x120, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, +0x3b, 0x4b, 0x6f, 0x68, 0x69, 0x3b, 0x48, 0x75, 0x69, 0x3b, 0x50, 0x6f, 0x75, 0x3b, 0x50, 0x61, 0x65, 0x3b, 0x48, 0x61, +0x72, 0x61, 0x3b, 0x50, 0x69, 0x70, 0x69, 0x3b, 0x48, 0x14d, 0x6e, 0x67, 0x6f, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x3b, 0x4d, +0x61, 0x68, 0x75, 0x3b, 0x4e, 0x75, 0x6b, 0x75, 0x3b, 0x52, 0x61, 0x6e, 0x67, 0x69, 0x3b, 0x48, 0x61, 0x6b, 0x69, 0x3b, +0x4b, 0x6f, 0x68, 0x69, 0x74, 0x101, 0x74, 0x65, 0x61, 0x3b, 0x48, 0x75, 0x69, 0x74, 0x61, 0x6e, 0x67, 0x75, 0x72, 0x75, +0x3b, 0x50, 0x6f, 0x75, 0x74, 0x16b, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x67, 0x69, 0x3b, 0x50, 0x61, 0x65, 0x6e, 0x67, 0x61, +0x77, 0x68, 0x101, 0x77, 0x68, 0x101, 0x3b, 0x48, 0x61, 0x72, 0x61, 0x74, 0x75, 0x61, 0x3b, 0x50, 0x69, 0x70, 0x69, 0x72, +0x69, 0x3b, 0x48, 0x14d, 0x6e, 0x67, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x3b, 0x48, 0x65, 0x72, 0x65, 0x74, 0x75, 0x72, 0x69, +0x6b, 0x14d, 0x6b, 0x101, 0x3b, 0x4d, 0x61, 0x68, 0x75, 0x72, 0x75, 0x3b, 0x57, 0x68, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x61, +0x2d, 0x101, 0x2d, 0x6e, 0x75, 0x6b, 0x75, 0x3b, 0x57, 0x68, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x61, 0x2d, 0x101, 0x2d, 0x72, +0x61, 0x6e, 0x67, 0x69, 0x3b, 0x48, 0x61, 0x6b, 0x69, 0x68, 0x65, 0x61, 0x3b, 0x4b, 0x3b, 0x48, 0x3b, 0x50, 0x3b, 0x50, +0x3b, 0x48, 0x3b, 0x50, 0x3b, 0x48, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x48, 0x3b, 0x91c, 0x93e, 0x928, +0x947, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, +0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x911, 0x917, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, +0x947, 0x902, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x3b, 0x921, 0x93f, 0x938, +0x947, 0x902, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, +0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, +0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x948, 0x3b, 0x911, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x92a, 0x94d, 0x91f, 0x947, 0x902, +0x92c, 0x930, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, 0x939, 0x947, 0x902, 0x92c, 0x930, +0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x91c, 0x93e, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, +0x92e, 0x947, 0x3b, 0x91c, 0x942, 0x3b, 0x91c, 0x941, 0x3b, 0x911, 0x3b, 0x938, 0x3b, 0x911, 0x3b, 0x928, 0x94b, 0x3b, 0x921, 0x93f, +0x3b, 0x31, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x33, 0x2d, 0x440, +0x20, 0x441, 0x430, 0x440, 0x3b, 0x34, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x35, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, +0x3b, 0x36, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x37, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x38, 0x2d, 0x440, +0x20, 0x441, 0x430, 0x440, 0x3b, 0x39, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x30, 0x2d, 0x440, 0x20, 0x441, 0x430, +0x440, 0x3b, 0x31, 0x31, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x31, 0x32, 0x2d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, +0x41d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x425, 0x43e, 0x451, 0x440, 0x434, 0x443, +0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x413, 0x443, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, +0x20, 0x441, 0x430, 0x440, 0x3b, 0x414, 0x4e9, 0x440, 0x4e9, 0x432, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, +0x3b, 0x422, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x417, 0x443, 0x440, 0x433, 0x430, +0x430, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x414, 0x43e, 0x43b, 0x43e, 0x43e, 0x434, 0x443, 0x433, +0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x41d, 0x430, 0x439, 0x43c, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, +0x430, 0x440, 0x3b, 0x415, 0x441, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x430, 0x432, +0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x43d, 0x44d, 0x433, +0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x410, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x445, 0x43e, 0x451, +0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x49, 0x3b, 0x49, 0x49, 0x3b, 0x49, 0x49, 0x49, +0x3b, 0x49, 0x56, 0x3b, 0x56, 0x3b, 0x56, 0x49, 0x3b, 0x56, 0x49, 0x49, 0x3b, 0x56, 0x49, 0x49, 0x49, 0x3b, 0x49, 0x58, +0x3b, 0x58, 0x3b, 0x58, 0x49, 0x3b, 0x58, 0x49, 0x49, 0x3b, 0x43d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, +0x441, 0x430, 0x440, 0x3b, 0x445, 0x43e, 0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x433, +0x443, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x434, 0x4e9, 0x440, 0x4e9, 0x432, +0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x442, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, +0x20, 0x441, 0x430, 0x440, 0x3b, 0x437, 0x443, 0x440, 0x433, 0x430, 0x430, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, +0x440, 0x3b, 0x434, 0x43e, 0x43b, 0x43e, 0x43e, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x43d, 0x430, +0x439, 0x43c, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x435, 0x441, 0x434, 0x4af, 0x433, 0x44d, 0x44d, +0x440, 0x20, 0x441, 0x430, 0x440, 0x3b, 0x430, 0x440, 0x430, 0x432, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, 0x440, +0x3b, 0x430, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x43d, 0x44d, 0x433, 0x434, 0x4af, 0x433, 0x44d, 0x44d, 0x440, 0x20, 0x441, 0x430, 0x440, +0x3b, 0x430, 0x440, 0x432, 0x430, 0x43d, 0x20, 0x445, 0x43e, 0x451, 0x440, 0x434, 0x443, 0x433, 0x430, 0x430, 0x440, 0x20, 0x441, 0x430, +0x440, 0x3b, 0x91c, 0x928, 0x935, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x905, 0x930, 0x940, 0x3b, 0x92e, 0x93e, +0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, +0x932, 0x93e, 0x908, 0x3b, 0x905, 0x917, 0x938, 0x94d, 0x91f, 0x3b, 0x938, 0x947, 0x92a, 0x94d, 0x91f, 0x947, 0x92e, 0x94d, 0x92c, 0x930, +0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x921, 0x93f, +0x938, 0x947, 0x92e, 0x94d, 0x92c, 0x930, 0x3b, 0x91c, 0x928, 0x3b, 0x92b, 0x947, 0x947, 0x92c, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, +0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x3b, 0x905, 0x917, 0x3b, +0x938, 0x947, 0x92a, 0x3b, 0x905, 0x915, 0x94d, 0x91f, 0x94b, 0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x3b, +0x91c, 0x928, 0x3b, 0x92b, 0x947, 0x92c, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x905, 0x92a, 0x94d, 0x930, 0x3b, 0x92e, 0x947, +0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x3b, 0x905, 0x917, 0x3b, 0x938, 0x947, 0x92a, 0x3b, 0x905, 0x915, 0x94d, 0x91f, +0x94b, 0x3b, 0x928, 0x94b, 0x92d, 0x947, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, +0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, +0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, +0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, +0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0xb1c, 0xb3e, 0xb28, 0xb41, 0xb06, +0xb30, 0xb40, 0x3b, 0xb2b, 0xb47, 0xb2c, 0xb43, 0xb06, 0xb30, 0xb40, 0x3b, 0xb2e, 0xb3e, 0xb30, 0xb4d, 0xb1a, 0xb4d, 0xb1a, 0x3b, 0xb05, +0xb2a, 0xb4d, 0xb30, 0xb47, 0xb32, 0x3b, 0xb2e, 0xb07, 0x3b, 0xb1c, 0xb41, 0xb28, 0x3b, 0xb1c, 0xb41, 0xb32, 0xb3e, 0xb07, 0x3b, 0xb05, +0xb17, 0xb37, 0xb4d, 0xb1f, 0x3b, 0xb38, 0xb47, 0xb2a, 0xb4d, 0xb1f, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb05, 0xb15, 0xb4d, 0xb1f, +0xb4b, 0xb2c, 0xb30, 0x3b, 0xb28, 0xb2d, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, 0x3b, 0xb21, 0xb3f, 0xb38, 0xb47, 0xb2e, 0xb4d, 0xb2c, 0xb30, +0x3b, 0xb1c, 0xb3e, 0x3b, 0xb2b, 0xb47, 0x3b, 0xb2e, 0xb3e, 0x3b, 0xb05, 0x3b, 0xb2e, 0xb07, 0x3b, 0xb1c, 0xb41, 0x3b, 0xb1c, 0xb41, +0x3b, 0xb05, 0x3b, 0xb38, 0xb47, 0x3b, 0xb05, 0x3b, 0xb28, 0x3b, 0xb21, 0xb3f, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, +0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cd, 0x3b, +0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, +0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, +0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x6d0, 0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, +0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cd, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, +0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, +0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x628, 0x631, 0x648, +0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cd, 0x3b, 0x62c, 0x648, 0x646, +0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x6d0, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, +0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, +0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x627, 0x3b, 0x645, 0x3b, 0x62c, 0x3b, 0x62c, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, +0x3b, 0x62f, 0x3b, 0x698, 0x627, 0x646, 0x648, 0x6cc, 0x647, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x3b, 0x645, 0x627, 0x631, 0x633, +0x3b, 0x622, 0x648, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x647, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc, 0x647, +0x3b, 0x627, 0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, +0x648, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x698, 0x3b, 0x641, 0x3b, 0x645, 0x3b, 0x622, +0x3b, 0x645, 0x3b, 0x698, 0x3b, 0x698, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x646, 0x3b, 0x62f, 0x3b, 0x698, 0x627, 0x646, +0x648, 0x6cc, 0x647, 0x654, 0x3b, 0x641, 0x648, 0x631, 0x6cc, 0x647, 0x654, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x648, 0x631, +0x6cc, 0x644, 0x3b, 0x645, 0x647, 0x654, 0x3b, 0x698, 0x648, 0x626, 0x646, 0x3b, 0x698, 0x648, 0x626, 0x6cc, 0x647, 0x654, 0x3b, 0x627, +0x648, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x627, +0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x627, 0x645, 0x628, 0x631, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, 0x641, 0x628, 0x631, +0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, +0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, 0x645, 0x628, 0x631, 0x3b, +0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, 0x631, 0x3b, 0x62c, +0x646, 0x648, 0x3b, 0x641, 0x628, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, +0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x67e, 0x62a, +0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, +0x3b, 0x73, 0x74, 0x79, 0x3b, 0x6c, 0x75, 0x74, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x6b, 0x77, 0x69, 0x3b, 0x6d, 0x61, 0x6a, +0x3b, 0x63, 0x7a, 0x65, 0x3b, 0x6c, 0x69, 0x70, 0x3b, 0x73, 0x69, 0x65, 0x3b, 0x77, 0x72, 0x7a, 0x3b, 0x70, 0x61, 0x17a, +0x3b, 0x6c, 0x69, 0x73, 0x3b, 0x67, 0x72, 0x75, 0x3b, 0x73, 0x74, 0x79, 0x63, 0x7a, 0x65, 0x144, 0x3b, 0x6c, 0x75, 0x74, +0x79, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x65, 0x63, 0x3b, 0x6b, 0x77, 0x69, 0x65, 0x63, 0x69, 0x65, 0x144, 0x3b, 0x6d, 0x61, +0x6a, 0x3b, 0x63, 0x7a, 0x65, 0x72, 0x77, 0x69, 0x65, 0x63, 0x3b, 0x6c, 0x69, 0x70, 0x69, 0x65, 0x63, 0x3b, 0x73, 0x69, +0x65, 0x72, 0x70, 0x69, 0x65, 0x144, 0x3b, 0x77, 0x72, 0x7a, 0x65, 0x73, 0x69, 0x65, 0x144, 0x3b, 0x70, 0x61, 0x17a, 0x64, +0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x3b, 0x67, 0x72, 0x75, +0x64, 0x7a, 0x69, 0x65, 0x144, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x43, 0x3b, 0x4c, 0x3b, +0x53, 0x3b, 0x57, 0x3b, 0x50, 0x3b, 0x4c, 0x3b, 0x47, 0x3b, 0x73, 0x74, 0x79, 0x63, 0x7a, 0x6e, 0x69, 0x61, 0x3b, 0x6c, +0x75, 0x74, 0x65, 0x67, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x63, 0x61, 0x3b, 0x6b, 0x77, 0x69, 0x65, 0x74, 0x6e, 0x69, 0x61, +0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x63, 0x7a, 0x65, 0x72, 0x77, 0x63, 0x61, 0x3b, 0x6c, 0x69, 0x70, 0x63, 0x61, 0x3b, +0x73, 0x69, 0x65, 0x72, 0x70, 0x6e, 0x69, 0x61, 0x3b, 0x77, 0x72, 0x7a, 0x65, 0x15b, 0x6e, 0x69, 0x61, 0x3b, 0x70, 0x61, +0x17a, 0x64, 0x7a, 0x69, 0x65, 0x72, 0x6e, 0x69, 0x6b, 0x61, 0x3b, 0x6c, 0x69, 0x73, 0x74, 0x6f, 0x70, 0x61, 0x64, 0x61, +0x3b, 0x67, 0x72, 0x75, 0x64, 0x6e, 0x69, 0x61, 0x3b, 0x73, 0x3b, 0x6c, 0x3b, 0x6d, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x63, +0x3b, 0x6c, 0x3b, 0x73, 0x3b, 0x77, 0x3b, 0x70, 0x3b, 0x6c, 0x3b, 0x67, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, +0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, +0x3b, 0x61, 0x67, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x7a, +0x3b, 0x6a, 0x61, 0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x76, 0x65, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x6d, +0x61, 0x72, 0xe7, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x68, +0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x68, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x65, 0x6d, +0x62, 0x72, 0x6f, 0x3b, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, +0x3b, 0x64, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0xa1c, 0xa28, 0x3b, 0xa2b, 0xa3c, 0xa30, 0x3b, 0xa2e, 0xa3e, 0xa30, +0xa1a, 0x3b, 0xa05, 0xa2a, 0xa4d, 0xa30, 0xa48, 0x3b, 0xa2e, 0xa08, 0x3b, 0xa1c, 0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0x3b, +0xa05, 0xa17, 0x3b, 0xa38, 0xa24, 0xa70, 0x3b, 0xa05, 0xa15, 0xa24, 0xa42, 0x3b, 0xa28, 0xa35, 0xa70, 0x3b, 0xa26, 0xa38, 0xa70, 0x3b, +0xa1c, 0xa28, 0xa35, 0xa30, 0xa40, 0x3b, 0xa2b, 0xa3c, 0xa30, 0xa35, 0xa30, 0xa40, 0x3b, 0xa2e, 0xa3e, 0xa30, 0xa1a, 0x3b, 0xa05, 0xa2a, +0xa4d, 0xa30, 0xa48, 0xa32, 0x3b, 0xa2e, 0xa08, 0x3b, 0xa1c, 0xa42, 0xa28, 0x3b, 0xa1c, 0xa41, 0xa32, 0xa3e, 0xa08, 0x3b, 0xa05, 0xa17, +0xa38, 0xa24, 0x3b, 0xa38, 0xa24, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa05, 0xa15, 0xa24, 0xa42, 0xa2c, 0xa30, 0x3b, 0xa28, 0xa35, 0xa70, 0xa2c, +0xa30, 0x3b, 0xa26, 0xa38, 0xa70, 0xa2c, 0xa30, 0x3b, 0xa1c, 0x3b, 0xa2b, 0xa3c, 0x3b, 0xa2e, 0xa3e, 0x3b, 0xa05, 0x3b, 0xa2e, 0x3b, +0xa1c, 0xa42, 0x3b, 0xa1c, 0xa41, 0x3b, 0xa05, 0x3b, 0xa38, 0x3b, 0xa05, 0x3b, 0xa28, 0x3b, 0xa26, 0x3b, 0x62c, 0x646, 0x648, 0x631, +0x6cc, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, +0x626, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, +0x645, 0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, +0x628, 0x631, 0x3b, 0x45, 0x6e, 0x65, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, +0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, +0x63, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x63, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x62, +0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, +0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, +0x3b, 0x53, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, +0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x73, +0x63, 0x68, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, +0x2e, 0x3b, 0x6d, 0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, 0x72, 0x63, 0x6c, 0x2e, 0x3b, 0x66, 0x61, 0x6e, 0x2e, 0x3b, 0x61, +0x76, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, +0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x73, 0x63, 0x68, 0x61, 0x6e, 0x65, 0x72, 0x3b, 0x66, 0x61, 0x76, 0x72, 0x65, 0x72, +0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x67, 0x6c, 0x3b, 0x6d, 0x61, 0x74, 0x67, 0x3b, 0x7a, 0x65, +0x72, 0x63, 0x6c, 0x61, 0x64, 0x75, 0x72, 0x3b, 0x66, 0x61, 0x6e, 0x61, 0x64, 0x75, 0x72, 0x3b, 0x61, 0x76, 0x75, 0x73, +0x74, 0x3b, 0x73, 0x65, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, +0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x53, 0x3b, +0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x46, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, +0x44, 0x3b, 0x69, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, +0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x69, 0x75, 0x6e, 0x2e, 0x3b, 0x69, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x75, 0x67, 0x2e, +0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, +0x2e, 0x3b, 0x69, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x65, +0x3b, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x65, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x65, 0x3b, 0x6d, 0x61, 0x69, 0x3b, +0x69, 0x75, 0x6e, 0x69, 0x65, 0x3b, 0x69, 0x75, 0x6c, 0x69, 0x65, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, +0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x6f, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, +0x6e, 0x6f, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x69, 0x65, 0x3b, +0x49, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, +0x4e, 0x3b, 0x44, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, +0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, +0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e, +0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x440, +0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, 0x438, 0x44e, 0x43d, 0x2e, 0x3b, 0x438, 0x44e, 0x43b, 0x2e, +0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, +0x431, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44f, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, +0x43b, 0x44f, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x430, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x44f, 0x3b, 0x43c, 0x430, 0x44f, 0x3b, +0x438, 0x44e, 0x43d, 0x44f, 0x3b, 0x438, 0x44e, 0x43b, 0x44f, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x430, 0x3b, 0x441, 0x435, +0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44f, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, +0x44f, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44f, 0x3b, 0x4e, 0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x3b, 0x4d, 0x62, +0xe4, 0x3b, 0x4e, 0x67, 0x75, 0x3b, 0x42, 0xea, 0x6c, 0x3b, 0x46, 0xf6, 0x6e, 0x3b, 0x4c, 0x65, 0x6e, 0x3b, 0x4b, 0xfc, +0x6b, 0x3b, 0x4d, 0x76, 0x75, 0x3b, 0x4e, 0x67, 0x62, 0x3b, 0x4e, 0x61, 0x62, 0x3b, 0x4b, 0x61, 0x6b, 0x3b, 0x4e, 0x79, +0x65, 0x6e, 0x79, 0x65, 0x3b, 0x46, 0x75, 0x6c, 0x75, 0x6e, 0x64, 0xef, 0x67, 0x69, 0x3b, 0x4d, 0x62, 0xe4, 0x6e, 0x67, +0xfc, 0x3b, 0x4e, 0x67, 0x75, 0x62, 0xf9, 0x65, 0x3b, 0x42, 0xea, 0x6c, 0xe4, 0x77, 0xfc, 0x3b, 0x46, 0xf6, 0x6e, 0x64, +0x6f, 0x3b, 0x4c, 0x65, 0x6e, 0x67, 0x75, 0x61, 0x3b, 0x4b, 0xfc, 0x6b, 0xfc, 0x72, 0xfc, 0x3b, 0x4d, 0x76, 0x75, 0x6b, +0x61, 0x3b, 0x4e, 0x67, 0x62, 0x65, 0x72, 0x65, 0x72, 0x65, 0x3b, 0x4e, 0x61, 0x62, 0xe4, 0x6e, 0x64, 0xfc, 0x72, 0x75, +0x3b, 0x4b, 0x61, 0x6b, 0x61, 0x75, 0x6b, 0x61, 0x3b, 0x4e, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x42, 0x3b, 0x46, +0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x458, 0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, +0x3b, 0x43c, 0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, +0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, +0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, 0x43c, 0x430, 0x440, 0x442, +0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, +0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, +0x431, 0x430, 0x440, 0x3b, 0x43d, 0x43e, 0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, +0x440, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, +0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x3b, +0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, +0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, +0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, +0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, +0x62, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, +0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, +0x3b, 0x61, 0x76, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, +0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x2e, +0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x2e, 0x3b, 0x73, 0x65, +0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x458, +0x430, 0x43d, 0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, +0x458, 0x443, 0x43d, 0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x3b, 0x43e, 0x43a, 0x442, +0x3b, 0x43d, 0x43e, 0x432, 0x3b, 0x434, 0x435, 0x446, 0x3b, 0x42f, 0x43d, 0x432, 0x2e, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x2e, 0x3b, +0x41c, 0x430, 0x440, 0x442, 0x2e, 0x3b, 0x410, 0x43f, 0x440, 0x2e, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, +0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x2e, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x2e, 0x3b, 0x41e, 0x43a, 0x442, 0x2e, +0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x414, 0x435, 0x43a, 0x2e, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x44c, 0x3b, 0x424, +0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x41c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x44c, +0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x44c, 0x3b, 0x418, 0x44e, 0x43b, 0x44c, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, +0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41e, 0x43a, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x41d, +0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0x44f, 0x43d, 0x432, 0x2e, 0x3b, 0x444, +0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x44b, 0x3b, 0x438, +0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x2e, 0x3b, 0x43e, +0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x44b, +0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x44a, 0x438, 0x439, 0x44b, 0x3b, 0x430, 0x43f, +0x440, 0x435, 0x43b, 0x44b, 0x3b, 0x43c, 0x430, 0x439, 0x44b, 0x3b, 0x438, 0x44e, 0x43d, 0x44b, 0x3b, 0x438, 0x44e, 0x43b, 0x44b, 0x3b, +0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x44b, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x43e, 0x43a, 0x442, +0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44b, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44b, 0x3b, +0x4e, 0x64, 0x69, 0x3b, 0x4b, 0x75, 0x6b, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x4b, 0x75, 0x62, 0x3b, 0x43, 0x68, 0x76, 0x3b, +0x43, 0x68, 0x6b, 0x3b, 0x43, 0x68, 0x67, 0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x47, 0x75, 0x6e, 0x3b, 0x47, 0x75, 0x6d, 0x3b, +0x4d, 0x62, 0x75, 0x3b, 0x5a, 0x76, 0x69, 0x3b, 0x4e, 0x64, 0x69, 0x72, 0x61, 0x3b, 0x4b, 0x75, 0x6b, 0x61, 0x64, 0x7a, +0x69, 0x3b, 0x4b, 0x75, 0x72, 0x75, 0x6d, 0x65, 0x3b, 0x4b, 0x75, 0x62, 0x76, 0x75, 0x6d, 0x62, 0x69, 0x3b, 0x43, 0x68, +0x69, 0x76, 0x61, 0x62, 0x76, 0x75, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x43, 0x68, 0x69, 0x6b, 0x75, +0x6e, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4e, 0x79, 0x61, 0x6d, 0x61, 0x76, 0x68, 0x75, 0x76, 0x68, 0x75, 0x3b, 0x47, 0x75, +0x6e, 0x79, 0x61, 0x6e, 0x61, 0x3b, 0x47, 0x75, 0x6d, 0x69, 0x67, 0x75, 0x72, 0x75, 0x3b, 0x4d, 0x62, 0x75, 0x64, 0x7a, +0x69, 0x3b, 0x5a, 0x76, 0x69, 0x74, 0x61, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x43, 0x3b, +0x43, 0x3b, 0x4e, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x64a, 0x3b, 0x641, 0x64a, +0x628, 0x631, 0x648, 0x631, 0x64a, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x64a, 0x644, 0x3b, 0x645, 0x626, 0x64a, +0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x621, 0x650, 0x3b, 0x622, 0x6af, 0x633, 0x67d, 0x3b, 0x633, 0x64a, 0x67e, +0x67d, 0x645, 0x628, 0x631, 0x3b, 0x622, 0x6aa, 0x67d, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x68a, 0x633, +0x645, 0x628, 0x631, 0x3b, 0xda2, 0xdb1, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8, 0xdcf, 0xdbb, 0xdca, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, +0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, +0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, +0xdc3, 0xdd0, 0x3b, 0xda2, 0xdb1, 0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0xdbb, 0xdc0, 0xdcf, 0xdbb, 0xdd2, 0x3b, 0xdb8, +0xdcf, 0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, +0xda2, 0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0xdc3, 0xdca, 0xdad, 0xdd4, 0x3b, 0xdc3, 0xdd0, +0xdb4, 0xdca, 0xdad, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xd94, 0xd9a, 0xdca, 0xdad, 0xddd, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdb1, +0xddc, 0xdc0, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0xdb8, 0xdca, 0xdb6, 0xdbb, 0xdca, 0x3b, 0xda2, +0x3b, 0xdb4, 0xdd9, 0x3b, 0xdb8, 0xdcf, 0x3b, 0xd85, 0x3b, 0xdb8, 0xdd0, 0x3b, 0xda2, 0xdd6, 0x3b, 0xda2, 0xdd6, 0x3b, 0xd85, 0x3b, +0xdc3, 0xdd0, 0x3b, 0xd94, 0x3b, 0xdb1, 0xdd9, 0x3b, 0xdaf, 0xdd9, 0x3b, 0xda2, 0xdb1, 0x3b, 0xdb4, 0xdd9, 0xdb6, 0x3b, 0xdb8, 0xdcf, +0xdbb, 0xdca, 0xdad, 0xdd4, 0x3b, 0xd85, 0xdb4, 0xdca, 0x200d, 0xdbb, 0xdda, 0xdbd, 0xdca, 0x3b, 0xdb8, 0xdd0, 0xdba, 0xdd2, 0x3b, 0xda2, +0xdd6, 0xdb1, 0xdd2, 0x3b, 0xda2, 0xdd6, 0xdbd, 0xdd2, 0x3b, 0xd85, 0xd9c, 0xddd, 0x3b, 0xdc3, 0xdd0, 0xdb4, 0xdca, 0x3b, 0xd94, 0xd9a, +0xdca, 0x3b, 0xdb1, 0xddc, 0xdc0, 0xdd0, 0x3b, 0xdaf, 0xdd9, 0xdc3, 0xdd0, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, +0x6d, 0x61, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0xe1, 0x6a, 0x3b, 0x6a, 0xfa, 0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, +0x61, 0x75, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x63, 0x3b, +0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65, 0x63, +0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x3b, 0x6d, 0xe1, 0x6a, 0x3b, 0x6a, 0xfa, 0x6e, 0x3b, 0x6a, 0xfa, 0x6c, 0x3b, 0x61, +0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, +0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, +0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0xe1, 0x72, 0x61, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0xe1, 0x72, 0x61, 0x3b, 0x6d, +0x61, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0xed, 0x6c, 0x61, 0x3b, 0x6d, 0xe1, 0x6a, 0x61, 0x3b, 0x6a, 0xfa, 0x6e, +0x61, 0x3b, 0x6a, 0xfa, 0x6c, 0x61, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, +0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0xf3, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, +0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, +0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, +0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x76, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, +0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, +0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x65, 0x63, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, +0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, +0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, +0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, +0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, +0x4c, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x73, 0x3b, 0x53, 0x65, 0x62, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x66, 0x3b, +0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x61, 0x61, 0x79, 0x6f, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x61, 0x61, 0x79, +0x6f, 0x3b, 0x4d, 0x61, 0x61, 0x72, 0x73, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, +0x4a, 0x75, 0x75, 0x6e, 0x3b, 0x4c, 0x75, 0x75, 0x6c, 0x69, 0x79, 0x6f, 0x3b, 0x4f, 0x67, 0x6f, 0x73, 0x74, 0x3b, 0x53, +0x65, 0x62, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, +0x66, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, +0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4c, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, +0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4b, 0x6f, 0x6f, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, +0x4c, 0x61, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x53, 0x61, 0x64, 0x64, 0x65, 0x78, 0x61, +0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x41, 0x66, 0x72, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, +0x61, 0x20, 0x53, 0x68, 0x61, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x69, 0x78, 0x61, +0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x54, 0x6f, 0x64, 0x6f, 0x62, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, +0x73, 0x68, 0x61, 0x20, 0x53, 0x69, 0x64, 0x65, 0x65, 0x64, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, +0x53, 0x61, 0x67, 0x61, 0x61, 0x6c, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x54, 0x6f, 0x62, 0x6e, +0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4b, 0x6f, 0x77, 0x20, 0x69, 0x79, 0x6f, 0x20, 0x54, 0x6f, +0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x42, 0x69, 0x73, 0x68, 0x61, 0x20, 0x4c, 0x61, 0x62, 0x61, 0x20, 0x69, 0x79, 0x6f, +0x20, 0x54, 0x6f, 0x62, 0x6e, 0x61, 0x61, 0x64, 0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, +0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, +0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, 0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, +0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, 0x63, 0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, +0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x6f, +0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, +0x73, 0x65, 0x70, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, +0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, +0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, +0x3b, 0x44, 0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, +0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, +0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, +0x63, 0x2e, 0x3b, 0x45, 0x6e, 0x65, 0x2e, 0x3b, 0x46, 0x65, 0x62, 0x2e, 0x3b, 0x4d, 0x61, 0x72, 0x2e, 0x3b, 0x41, 0x62, +0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x79, 0x2e, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x41, 0x67, +0x6f, 0x2e, 0x3b, 0x53, 0x65, 0x74, 0x2e, 0x3b, 0x4f, 0x63, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x69, +0x63, 0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x2e, 0x3b, 0x61, 0x62, +0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x79, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x67, +0x6f, 0x2e, 0x3b, 0x73, 0x65, 0x74, 0x2e, 0x3b, 0x6f, 0x63, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x69, +0x63, 0x2e, 0x3b, 0x65, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x6d, 0x61, 0x72, +0x7a, 0x6f, 0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x6f, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6f, 0x3b, +0x6a, 0x75, 0x6c, 0x69, 0x6f, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, +0x72, 0x65, 0x3b, 0x6f, 0x63, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x6e, 0x6f, 0x76, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, +0x3b, 0x64, 0x69, 0x63, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, +0x61, 0x63, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, +0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, +0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, +0x69, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, +0x6c, 0x61, 0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, +0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, +0x62, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, +0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, +0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x63, +0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x6d, +0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, +0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, +0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, +0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x42f, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x424, 0x435, 0x432, 0x440, 0x430, 0x43b, +0x3b, 0x41c, 0x430, 0x440, 0x442, 0x3b, 0x410, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x41c, 0x430, 0x439, 0x3b, 0x418, 0x44e, 0x43d, 0x3b, +0x418, 0x44e, 0x43b, 0x3b, 0x410, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x421, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41e, +0x43a, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x41d, 0x43e, 0x44f, 0x431, 0x440, 0x3b, 0x414, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0xb9c, +0xba9, 0x2e, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0x2e, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xb8f, 0xbaa, 0xbcd, 0x2e, 0x3b, +0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, 0xb95, 0x2e, 0x3b, 0xb9a, 0xbc6, 0xbaa, +0xbcd, 0x2e, 0x3b, 0xb85, 0xb95, 0xbcd, 0x2e, 0x3b, 0xba8, 0xbb5, 0x2e, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0x2e, 0x3b, 0xb9c, 0xba9, 0xbb5, +0xbb0, 0xbbf, 0x3b, 0xbaa, 0xbbf, 0xbaa, 0xbcd, 0xbb0, 0xbb5, 0xbb0, 0xbbf, 0x3b, 0xbae, 0xbbe, 0xbb0, 0xbcd, 0xb9a, 0xbcd, 0x3b, 0xb8f, +0xbaa, 0xbcd, 0xbb0, 0xbb2, 0xbcd, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0xba9, 0xbcd, 0x3b, 0xb9c, 0xbc2, 0xbb2, 0xbc8, 0x3b, 0xb86, +0xb95, 0xbb8, 0xbcd, 0xb9f, 0xbcd, 0x3b, 0xb9a, 0xbc6, 0xbaa, 0xbcd, 0xb9f, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xb95, 0xbcd, +0xb9f, 0xbcb, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xba8, 0xbb5, 0xbae, 0xbcd, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xb9f, 0xbbf, 0xb9a, 0xbae, 0xbcd, 0xbaa, +0xbb0, 0xbcd, 0x3b, 0xb9c, 0x3b, 0xbaa, 0xbbf, 0x3b, 0xbae, 0xbbe, 0x3b, 0xb8f, 0x3b, 0xbae, 0xbc7, 0x3b, 0xb9c, 0xbc2, 0x3b, 0xb9c, +0xbc2, 0x3b, 0xb86, 0x3b, 0xb9a, 0xbc6, 0x3b, 0xb85, 0x3b, 0xba8, 0x3b, 0xb9f, 0xbbf, 0x3b, 0x433, 0x44b, 0x439, 0x43d, 0x2e, 0x3b, +0x444, 0x435, 0x432, 0x2e, 0x3b, 0x43c, 0x430, 0x440, 0x2e, 0x3b, 0x430, 0x43f, 0x440, 0x2e, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, +0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, 0x433, 0x2e, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x2e, 0x3b, +0x43e, 0x43a, 0x442, 0x2e, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x2e, 0x3b, 0x434, 0x435, 0x43a, 0x2e, 0x3b, 0x433, 0x44b, 0x439, 0x43d, +0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, +0x435, 0x43b, 0x44c, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x44c, 0x3b, 0x438, 0x44e, 0x43b, 0x44c, 0x3b, 0x430, 0x432, +0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x43e, 0x43a, 0x442, 0x44f, 0x431, 0x440, +0x44c, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x44c, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x44c, 0x3b, 0xc1c, 0xc28, 0x3b, +0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, 0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0x3b, 0xc2e, +0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32, 0xc48, 0x3b, 0xc06, 0xc17, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, +0xc46, 0xc02, 0x3b, 0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0x3b, 0xc28, 0xc35, 0xc02, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, 0xc02, 0x3b, 0xc1c, +0xc28, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2b, 0xc3f, 0xc2c, 0xc4d, 0xc30, 0xc35, 0xc30, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0xc30, 0xc4d, 0xc1a, 0xc3f, +0x3b, 0xc0f, 0xc2a, 0xc4d, 0xc30, 0xc3f, 0xc32, 0xc4d, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, 0xc28, 0xc4d, 0x3b, 0xc1c, 0xc41, 0xc32, +0xc48, 0x3b, 0xc06, 0xc17, 0xc38, 0xc4d, 0xc1f, 0xc41, 0x3b, 0xc38, 0xc46, 0xc2a, 0xc4d, 0xc1f, 0xc46, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, +0xc05, 0xc15, 0xc4d, 0xc1f, 0xc4b, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc28, 0xc35, 0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc21, 0xc3f, 0xc38, 0xc46, +0xc02, 0xc2c, 0xc30, 0xc4d, 0x3b, 0xc1c, 0x3b, 0xc2b, 0xc3f, 0x3b, 0xc2e, 0xc3e, 0x3b, 0xc0f, 0x3b, 0xc2e, 0xc47, 0x3b, 0xc1c, 0xc42, +0x3b, 0xc1c, 0xc41, 0x3b, 0xc06, 0x3b, 0xc38, 0xc46, 0x3b, 0xc05, 0x3b, 0xc28, 0x3b, 0xc21, 0xc3f, 0x3b, 0xe21, 0x2e, 0xe04, 0x2e, +0x3b, 0xe01, 0x2e, 0xe1e, 0x2e, 0x3b, 0xe21, 0xe35, 0x2e, 0xe04, 0x2e, 0x3b, 0xe40, 0xe21, 0x2e, 0xe22, 0x2e, 0x3b, 0xe1e, 0x2e, +0xe04, 0x2e, 0x3b, 0xe21, 0xe34, 0x2e, 0xe22, 0x2e, 0x3b, 0xe01, 0x2e, 0xe04, 0x2e, 0x3b, 0xe2a, 0x2e, 0xe04, 0x2e, 0x3b, 0xe01, +0x2e, 0xe22, 0x2e, 0x3b, 0xe15, 0x2e, 0xe04, 0x2e, 0x3b, 0xe1e, 0x2e, 0xe22, 0x2e, 0x3b, 0xe18, 0x2e, 0xe04, 0x2e, 0x3b, 0xe21, +0xe01, 0xe23, 0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe38, 0xe21, 0xe20, 0xe32, 0xe1e, 0xe31, 0xe19, 0xe18, 0xe4c, 0x3b, 0xe21, 0xe35, 0xe19, +0xe32, 0xe04, 0xe21, 0x3b, 0xe40, 0xe21, 0xe29, 0xe32, 0xe22, 0xe19, 0x3b, 0xe1e, 0xe24, 0xe29, 0xe20, 0xe32, 0xe04, 0xe21, 0x3b, 0xe21, +0xe34, 0xe16, 0xe38, 0xe19, 0xe32, 0xe22, 0xe19, 0x3b, 0xe01, 0xe23, 0xe01, 0xe0e, 0xe32, 0xe04, 0xe21, 0x3b, 0xe2a, 0xe34, 0xe07, 0xe2b, +0xe32, 0xe04, 0xe21, 0x3b, 0xe01, 0xe31, 0xe19, 0xe22, 0xe32, 0xe22, 0xe19, 0x3b, 0xe15, 0xe38, 0xe25, 0xe32, 0xe04, 0xe21, 0x3b, 0xe1e, +0xe24, 0xe28, 0xe08, 0xe34, 0xe01, 0xe32, 0xe22, 0xe19, 0x3b, 0xe18, 0xe31, 0xe19, 0xe27, 0xe32, 0xe04, 0xe21, 0x3b, 0xf5f, 0xfb3, 0xf0b, +0xf56, 0xf0b, 0xf51, 0xf44, 0xf0b, 0xf54, 0xf7c, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, +0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, +0xf56, 0xf5e, 0xf72, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, +0xf0b, 0xf56, 0xf0b, 0xf51, 0xfb2, 0xf74, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, +0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, +0xf0b, 0xf56, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, +0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, +0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0xf0b, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, +0xf0b, 0xf51, 0xf44, 0xf0b, 0xf54, 0xf7c, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, 0xf0b, 0xf54, 0x3b, 0xf5f, +0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf42, 0xf66, 0xf74, 0xf58, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf5e, 0xf72, 0xf0b, +0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf63, 0xf94, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xfb2, 0xf74, +0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf51, 0xf74, 0xf53, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, +0xf0b, 0xf56, 0xf62, 0xf92, 0xfb1, 0xf51, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf51, 0xf42, 0xf74, 0xf0b, 0xf54, 0x3b, +0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, +0xf42, 0xf45, 0xf72, 0xf42, 0xf0b, 0xf54, 0x3b, 0xf5f, 0xfb3, 0xf0b, 0xf56, 0xf0b, 0xf56, 0xf45, 0xf74, 0xf0b, 0xf42, 0xf49, 0xf72, 0xf66, +0xf0b, 0xf54, 0x3b, 0x1325, 0x122a, 0x3b, 0x1208, 0x12ab, 0x3b, 0x1218, 0x130b, 0x3b, 0x121a, 0x12eb, 0x3b, 0x130d, 0x1295, 0x3b, 0x1230, 0x1290, +0x3b, 0x1213, 0x121d, 0x3b, 0x1290, 0x1213, 0x3b, 0x1218, 0x1235, 0x3b, 0x1325, 0x1245, 0x3b, 0x1215, 0x12f3, 0x3b, 0x1273, 0x1215, 0x3b, 0x1325, +0x122a, 0x3b, 0x1208, 0x12ab, 0x1272, 0x1275, 0x3b, 0x1218, 0x130b, 0x1262, 0x1275, 0x3b, 0x121a, 0x12eb, 0x12dd, 0x12eb, 0x3b, 0x130d, 0x1295, 0x1266, +0x1275, 0x3b, 0x1230, 0x1290, 0x3b, 0x1213, 0x121d, 0x1208, 0x3b, 0x1290, 0x1213, 0x1230, 0x3b, 0x1218, 0x1235, 0x12a8, 0x1228, 0x121d, 0x3b, 0x1325, +0x1245, 0x121d, 0x1272, 0x3b, 0x1215, 0x12f3, 0x122d, 0x3b, 0x1273, 0x1215, 0x1233, 0x1235, 0x3b, 0x1325, 0x3b, 0x1208, 0x3b, 0x1218, 0x3b, 0x121a, +0x3b, 0x130d, 0x3b, 0x1230, 0x3b, 0x1213, 0x3b, 0x1290, 0x3b, 0x1218, 0x3b, 0x1325, 0x3b, 0x1215, 0x3b, 0x1273, 0x3b, 0x53, 0x101, 0x6e, +0x3b, 0x46, 0x113, 0x70, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x3b, 0x2bb, 0x45, 0x70, 0x65, 0x3b, 0x4d, 0x113, 0x3b, 0x53, 0x75, +0x6e, 0x3b, 0x53, 0x69, 0x75, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x3b, +0x4e, 0x14d, 0x76, 0x3b, 0x54, 0x12b, 0x73, 0x3b, 0x53, 0x101, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x46, 0x113, 0x70, 0x75, +0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x2bb, 0x61, 0x73, 0x69, 0x3b, 0x2bb, 0x45, 0x70, 0x65, 0x6c, 0x65, 0x6c, 0x69, 0x3b, +0x4d, 0x113, 0x3b, 0x53, 0x75, 0x6e, 0x65, 0x3b, 0x53, 0x69, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x2bb, 0x41, 0x6f, 0x6b, 0x6f, +0x73, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x69, 0x74, 0x65, 0x6d, 0x61, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x74, 0x6f, 0x70, 0x61, +0x3b, 0x4e, 0x14d, 0x76, 0x65, 0x6d, 0x61, 0x3b, 0x54, 0x12b, 0x73, 0x65, 0x6d, 0x61, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, +0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4f, +0x63, 0x61, 0x3b, 0x15e, 0x75, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4e, 0x69, 0x73, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, +0x61, 0x7a, 0x3b, 0x54, 0x65, 0x6d, 0x3b, 0x41, 0x11f, 0x75, 0x3b, 0x45, 0x79, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x3b, 0x4b, +0x61, 0x73, 0x3b, 0x41, 0x72, 0x61, 0x3b, 0x4f, 0x63, 0x61, 0x6b, 0x3b, 0x15e, 0x75, 0x62, 0x61, 0x74, 0x3b, 0x4d, 0x61, +0x72, 0x74, 0x3b, 0x4e, 0x69, 0x73, 0x61, 0x6e, 0x3b, 0x4d, 0x61, 0x79, 0x131, 0x73, 0x3b, 0x48, 0x61, 0x7a, 0x69, 0x72, +0x61, 0x6e, 0x3b, 0x54, 0x65, 0x6d, 0x6d, 0x75, 0x7a, 0x3b, 0x41, 0x11f, 0x75, 0x73, 0x74, 0x6f, 0x73, 0x3b, 0x45, 0x79, +0x6c, 0xfc, 0x6c, 0x3b, 0x45, 0x6b, 0x69, 0x6d, 0x3b, 0x4b, 0x61, 0x73, 0x131, 0x6d, 0x3b, 0x41, 0x72, 0x61, 0x6c, 0x131, +0x6b, 0x3b, 0x4f, 0x3b, 0x15e, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, 0x54, 0x3b, 0x41, 0x3b, 0x45, 0x3b, +0x45, 0x3b, 0x4b, 0x3b, 0x41, 0x3b, 0xdd, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x77, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, +0x72, 0x3b, 0x4d, 0x61, 0xfd, 0x3b, 0x49, 0xfd, 0x75, 0x6e, 0x3b, 0x49, 0xfd, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x67, 0x3b, +0x53, 0x65, 0x6e, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0xfd, 0x3b, 0x44, 0x65, 0x6b, 0x3b, 0xdd, 0x61, 0x6e, 0x77, +0x61, 0x72, 0x3b, 0x46, 0x65, 0x77, 0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, +0x3b, 0x4d, 0x61, 0xfd, 0x3b, 0x49, 0xfd, 0x75, 0x6e, 0x3b, 0x49, 0xfd, 0x75, 0x6c, 0x3b, 0x41, 0x77, 0x67, 0x75, 0x73, +0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x4e, +0x6f, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0xdd, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, +0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0xfd, 0x61, 0x6e, +0x3b, 0x66, 0x65, 0x77, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0xfd, 0x3b, 0x69, 0xfd, +0x75, 0x6e, 0x3b, 0x69, 0xfd, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, +0x6e, 0x6f, 0xfd, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0xfd, 0x61, 0x6e, 0x77, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x77, 0x72, 0x61, +0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x6d, 0x61, 0xfd, 0x3b, 0x69, 0xfd, 0x75, +0x6e, 0x3b, 0x69, 0xfd, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0xfd, 0x61, +0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x6e, 0x6f, 0xfd, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, +0x6b, 0x61, 0x62, 0x72, 0x3b, 0x64a, 0x627, 0x646, 0x6cb, 0x627, 0x631, 0x3b, 0x641, 0x6d0, 0x6cb, 0x631, 0x627, 0x644, 0x3b, 0x645, +0x627, 0x631, 0x62a, 0x3b, 0x626, 0x627, 0x67e, 0x631, 0x6d0, 0x644, 0x3b, 0x645, 0x627, 0x64a, 0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x646, +0x3b, 0x626, 0x649, 0x64a, 0x6c7, 0x644, 0x3b, 0x626, 0x627, 0x6cb, 0x63a, 0x6c7, 0x633, 0x62a, 0x3b, 0x633, 0x6d0, 0x646, 0x62a, 0x6d5, +0x628, 0x649, 0x631, 0x3b, 0x626, 0x6c6, 0x643, 0x62a, 0x6d5, 0x628, 0x649, 0x631, 0x3b, 0x646, 0x648, 0x64a, 0x627, 0x628, 0x649, 0x631, +0x3b, 0x62f, 0x6d0, 0x643, 0x627, 0x628, 0x649, 0x631, 0x3b, 0x441, 0x456, 0x447, 0x3b, 0x43b, 0x44e, 0x442, 0x3b, 0x431, 0x435, 0x440, +0x3b, 0x43a, 0x432, 0x456, 0x3b, 0x442, 0x440, 0x430, 0x3b, 0x447, 0x435, 0x440, 0x3b, 0x43b, 0x438, 0x43f, 0x3b, 0x441, 0x435, 0x440, +0x3b, 0x432, 0x435, 0x440, 0x3b, 0x436, 0x43e, 0x432, 0x3b, 0x43b, 0x438, 0x441, 0x3b, 0x433, 0x440, 0x443, 0x3b, 0x441, 0x456, 0x447, +0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x44e, 0x442, 0x438, 0x439, 0x3b, 0x431, 0x435, 0x440, 0x435, 0x437, 0x435, 0x43d, 0x44c, 0x3b, 0x43a, +0x432, 0x456, 0x442, 0x435, 0x43d, 0x44c, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x435, 0x43d, 0x44c, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x435, +0x43d, 0x44c, 0x3b, 0x43b, 0x438, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x435, 0x43d, 0x44c, 0x3b, 0x432, 0x435, +0x440, 0x435, 0x441, 0x435, 0x43d, 0x44c, 0x3b, 0x436, 0x43e, 0x432, 0x442, 0x435, 0x43d, 0x44c, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x43e, +0x43f, 0x430, 0x434, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x435, 0x43d, 0x44c, 0x3b, 0x421, 0x3b, 0x41b, 0x3b, 0x411, 0x3b, 0x41a, 0x3b, +0x422, 0x3b, 0x427, 0x3b, 0x41b, 0x3b, 0x421, 0x3b, 0x412, 0x3b, 0x416, 0x3b, 0x41b, 0x3b, 0x413, 0x3b, 0x441, 0x456, 0x447, 0x2e, +0x3b, 0x43b, 0x44e, 0x442, 0x2e, 0x3b, 0x431, 0x435, 0x440, 0x2e, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x2e, 0x3b, 0x442, 0x440, 0x430, +0x432, 0x2e, 0x3b, 0x447, 0x435, 0x440, 0x432, 0x2e, 0x3b, 0x43b, 0x438, 0x43f, 0x2e, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x2e, 0x3b, +0x432, 0x435, 0x440, 0x2e, 0x3b, 0x436, 0x43e, 0x432, 0x442, 0x2e, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x2e, 0x3b, 0x433, 0x440, 0x443, +0x434, 0x2e, 0x3b, 0x441, 0x456, 0x447, 0x43d, 0x44f, 0x3b, 0x43b, 0x44e, 0x442, 0x43e, 0x433, 0x43e, 0x3b, 0x431, 0x435, 0x440, 0x435, +0x437, 0x43d, 0x44f, 0x3b, 0x43a, 0x432, 0x456, 0x442, 0x43d, 0x44f, 0x3b, 0x442, 0x440, 0x430, 0x432, 0x43d, 0x44f, 0x3b, 0x447, 0x435, +0x440, 0x432, 0x43d, 0x44f, 0x3b, 0x43b, 0x438, 0x43f, 0x43d, 0x44f, 0x3b, 0x441, 0x435, 0x440, 0x43f, 0x43d, 0x44f, 0x3b, 0x432, 0x435, +0x440, 0x435, 0x441, 0x43d, 0x44f, 0x3b, 0x436, 0x43e, 0x432, 0x442, 0x43d, 0x44f, 0x3b, 0x43b, 0x438, 0x441, 0x442, 0x43e, 0x43f, 0x430, +0x434, 0x430, 0x3b, 0x433, 0x440, 0x443, 0x434, 0x43d, 0x44f, 0x3b, 0x441, 0x3b, 0x43b, 0x3b, 0x431, 0x3b, 0x43a, 0x3b, 0x442, 0x3b, +0x447, 0x3b, 0x43b, 0x3b, 0x441, 0x3b, 0x432, 0x3b, 0x436, 0x3b, 0x43b, 0x3b, 0x433, 0x3b, 0x62c, 0x646, 0x648, 0x631, 0x6cc, 0x3b, +0x641, 0x631, 0x648, 0x631, 0x6cc, 0x3b, 0x645, 0x627, 0x631, 0x686, 0x3b, 0x627, 0x67e, 0x631, 0x6cc, 0x644, 0x3b, 0x645, 0x626, 0x6cc, +0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x627, 0x626, 0x6cc, 0x3b, 0x627, 0x6af, 0x633, 0x62a, 0x3b, 0x633, 0x62a, 0x645, +0x628, 0x631, 0x3b, 0x627, 0x6a9, 0x62a, 0x648, 0x628, 0x631, 0x3b, 0x646, 0x648, 0x645, 0x628, 0x631, 0x3b, 0x62f, 0x633, 0x645, 0x628, +0x631, 0x3b, 0x59, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, +0x79, 0x3b, 0x49, 0x79, 0x6e, 0x3b, 0x49, 0x79, 0x6c, 0x3b, 0x41, 0x76, 0x67, 0x3b, 0x53, 0x65, 0x6e, 0x3b, 0x4f, 0x6b, +0x74, 0x3b, 0x4e, 0x6f, 0x79, 0x3b, 0x44, 0x65, 0x6b, 0x3b, 0x59, 0x61, 0x6e, 0x76, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x76, +0x72, 0x61, 0x6c, 0x3b, 0x4d, 0x61, 0x72, 0x74, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x49, +0x79, 0x75, 0x6e, 0x3b, 0x49, 0x79, 0x75, 0x6c, 0x3b, 0x41, 0x76, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x6e, 0x74, +0x61, 0x62, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x61, 0x62, 0x72, 0x3b, 0x4e, 0x6f, 0x79, 0x61, 0x62, 0x72, 0x3b, 0x44, 0x65, +0x6b, 0x61, 0x62, 0x72, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x41, +0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, +0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x6e, 0x3b, 0x69, 0x79, 0x6c, 0x3b, 0x61, 0x76, 0x67, +0x3b, 0x73, 0x65, 0x6e, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x79, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x79, 0x61, 0x6e, +0x76, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x61, 0x6c, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x65, +0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x69, 0x79, 0x75, 0x6e, 0x3b, 0x69, 0x79, 0x75, 0x6c, 0x3b, 0x61, 0x76, 0x67, 0x75, +0x73, 0x74, 0x3b, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x62, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x61, 0x62, 0x72, 0x3b, 0x6e, 0x6f, +0x79, 0x61, 0x62, 0x72, 0x3b, 0x64, 0x65, 0x6b, 0x61, 0x62, 0x72, 0x3b, 0x62c, 0x646, 0x648, 0x3b, 0x641, 0x628, 0x631, 0x3b, +0x645, 0x627, 0x631, 0x3b, 0x627, 0x67e, 0x631, 0x3b, 0x645, 0x6cc, 0x3b, 0x62c, 0x648, 0x646, 0x3b, 0x62c, 0x648, 0x644, 0x3b, 0x627, +0x6af, 0x633, 0x3b, 0x633, 0x67e, 0x62a, 0x3b, 0x627, 0x6a9, 0x62a, 0x3b, 0x646, 0x648, 0x645, 0x3b, 0x62f, 0x633, 0x645, 0x3b, 0x44f, +0x43d, 0x432, 0x3b, 0x444, 0x435, 0x432, 0x3b, 0x43c, 0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, +0x44e, 0x43d, 0x3b, 0x438, 0x44e, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x3b, 0x441, 0x435, 0x43d, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, +0x43e, 0x44f, 0x3b, 0x434, 0x435, 0x43a, 0x3b, 0x44f, 0x43d, 0x432, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x432, 0x440, 0x430, 0x43b, 0x3b, +0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x435, 0x43b, 0x3b, 0x43c, 0x430, 0x439, 0x3b, 0x438, 0x44e, 0x43d, 0x3b, 0x438, +0x44e, 0x43b, 0x3b, 0x430, 0x432, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43d, 0x442, 0x44f, 0x431, 0x440, 0x3b, 0x43e, 0x43a, +0x442, 0x44f, 0x431, 0x440, 0x3b, 0x43d, 0x43e, 0x44f, 0x431, 0x440, 0x3b, 0x434, 0x435, 0x43a, 0x430, 0x431, 0x440, 0x3b, 0x54, 0x68, +0x67, 0x20, 0x31, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x32, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x33, 0x3b, 0x54, 0x68, 0x67, 0x20, +0x34, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x36, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x37, 0x3b, +0x54, 0x68, 0x67, 0x20, 0x38, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x39, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, +0x68, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x54, 0x68, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, +0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x32, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33, 0x3b, 0x54, 0x68, 0xe1, +0x6e, 0x67, 0x20, 0x34, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x35, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x36, +0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x37, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38, 0x3b, 0x54, 0x68, 0xe1, +0x6e, 0x67, 0x20, 0x39, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, +0x31, 0x31, 0x3b, 0x54, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x3b, 0x74, 0x68, +0x67, 0x20, 0x32, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x33, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x34, 0x3b, 0x74, 0x68, 0x67, 0x20, +0x35, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x36, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x37, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x38, 0x3b, +0x74, 0x68, 0x67, 0x20, 0x39, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0x67, 0x20, 0x31, 0x31, 0x3b, +0x74, 0x68, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, +0x20, 0x32, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x33, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x34, 0x3b, 0x74, +0x68, 0xe1, 0x6e, 0x67, 0x20, 0x35, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x36, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, +0x20, 0x37, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x38, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x39, 0x3b, 0x74, +0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x30, 0x3b, 0x74, 0x68, 0xe1, 0x6e, 0x67, 0x20, 0x31, 0x31, 0x3b, 0x74, 0x68, 0xe1, +0x6e, 0x67, 0x20, 0x31, 0x32, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0xe4, 0x7a, 0x3b, 0x70, 0x72, +0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x67, 0x73, 0x74, 0x3b, 0x73, 0x65, +0x74, 0x3b, 0x74, 0x6f, 0x62, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x6b, 0x3b, 0x79, 0x61, 0x6e, 0x75, 0x6c, 0x3b, +0x66, 0x65, 0x62, 0x75, 0x6c, 0x3b, 0x6d, 0xe4, 0x7a, 0x75, 0x6c, 0x3b, 0x70, 0x72, 0x69, 0x6c, 0x75, 0x6c, 0x3b, 0x6d, +0x61, 0x79, 0x75, 0x6c, 0x3b, 0x79, 0x75, 0x6e, 0x75, 0x6c, 0x3b, 0x79, 0x75, 0x6c, 0x75, 0x6c, 0x3b, 0x67, 0x75, 0x73, +0x74, 0x75, 0x6c, 0x3b, 0x73, 0x65, 0x74, 0x75, 0x6c, 0x3b, 0x74, 0x6f, 0x62, 0x75, 0x6c, 0x3b, 0x6e, 0x6f, 0x76, 0x75, +0x6c, 0x3b, 0x64, 0x65, 0x6b, 0x75, 0x6c, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, +0x59, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x79, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, +0x6d, 0xe4, 0x7a, 0x3b, 0x70, 0x72, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, +0x67, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x74, 0x3b, 0x74, 0x6f, 0x6e, 0x3b, 0x6e, 0x6f, 0x76, 0x3b, 0x64, 0x65, 0x6b, 0x3b, +0x49, 0x6f, 0x6e, 0x3b, 0x43, 0x68, 0x77, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, +0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, +0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x3b, 0x49, 0x6f, 0x6e, 0x61, 0x77, 0x72, 0x3b, 0x43, +0x68, 0x77, 0x65, 0x66, 0x72, 0x6f, 0x72, 0x3b, 0x4d, 0x61, 0x77, 0x72, 0x74, 0x68, 0x3b, 0x45, 0x62, 0x72, 0x69, 0x6c, +0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x65, 0x66, 0x69, 0x6e, 0x3b, 0x47, 0x6f, 0x72, 0x66, 0x66, 0x65, +0x6e, 0x6e, 0x61, 0x66, 0x3b, 0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x72, 0x65, +0x66, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x77, 0x65, 0x64, 0x64, 0x3b, 0x52, 0x68, 0x61, 0x67, 0x66, 0x79, 0x72, 0x3b, 0x49, +0x3b, 0x43, 0x68, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, +0x54, 0x3b, 0x52, 0x68, 0x3b, 0x49, 0x6f, 0x6e, 0x3b, 0x43, 0x68, 0x77, 0x65, 0x66, 0x3b, 0x4d, 0x61, 0x77, 0x3b, 0x45, +0x62, 0x72, 0x69, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x47, 0x6f, 0x72, 0x66, 0x66, 0x3b, +0x41, 0x77, 0x73, 0x74, 0x3b, 0x4d, 0x65, 0x64, 0x69, 0x3b, 0x48, 0x79, 0x64, 0x3b, 0x54, 0x61, 0x63, 0x68, 0x3b, 0x52, +0x68, 0x61, 0x67, 0x3b, 0x53, 0x61, 0x6d, 0x3b, 0x46, 0x65, 0x77, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x77, 0x72, 0x3b, +0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x77, 0x3b, 0x53, 0x75, 0x6c, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0xe0, 0x74, 0x3b, 0x4f, +0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x77, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x53, 0x61, 0x6d, 0x77, 0x69, 0x79, 0x65, 0x65, 0x3b, +0x46, 0x65, 0x77, 0x72, 0x69, 0x79, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x77, 0x72, 0x69, 0x6c, 0x3b, +0x4d, 0x65, 0x65, 0x3b, 0x53, 0x75, 0x77, 0x65, 0x3b, 0x53, 0x75, 0x6c, 0x65, 0x74, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0xe0, +0x74, 0x74, 0x75, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x77, +0xe0, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x73, 0xe0, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, +0x65, 0x62, 0x3b, 0x4d, 0x61, 0x74, 0x3b, 0x45, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, +0x75, 0x6c, 0x3b, 0x41, 0x67, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, +0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x79, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, +0x72, 0x69, 0x3b, 0x4d, 0x61, 0x74, 0x73, 0x68, 0x69, 0x3b, 0x45, 0x70, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, +0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, +0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x68, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, +0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x5d9, 0x5d0, 0x5b7, 0x5e0, 0x3b, 0x5e4, +0x5bf, 0x5e2, 0x5d1, 0x3b, 0x5de, 0x5e2, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5b7, 0x5e4, 0x5bc, 0x5e8, 0x3b, 0x5de, 0x5d9, 0x5d9, 0x3b, 0x5d9, +0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, 0x5d9, 0x5d2, 0x3b, 0x5e1, 0x5e2, 0x5e4, 0x5bc, 0x3b, 0x5d0, +0x5e7, 0x5d8, 0x3b, 0x5e0, 0x5d0, 0x5d5, 0x5d5, 0x3b, 0x5d3, 0x5e2, 0x5e6, 0x3b, 0x5d9, 0x5d0, 0x5b7, 0x5e0, 0x5d5, 0x5d0, 0x5b7, 0x5e8, +0x3b, 0x5e4, 0x5bf, 0x5e2, 0x5d1, 0x5e8, 0x5d5, 0x5d0, 0x5b7, 0x5e8, 0x3b, 0x5de, 0x5e2, 0x5e8, 0x5e5, 0x3b, 0x5d0, 0x5b7, 0x5e4, 0x5bc, +0x5e8, 0x5d9, 0x5dc, 0x3b, 0x5de, 0x5d9, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5e0, 0x5d9, 0x3b, 0x5d9, 0x5d5, 0x5dc, 0x5d9, 0x3b, 0x5d0, 0x5d5, +0x5d9, 0x5d2, 0x5d5, 0x5e1, 0x5d8, 0x3b, 0x5e1, 0x5e2, 0x5e4, 0x5bc, 0x5d8, 0x5e2, 0x5de, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x5d0, 0x5e7, 0x5d8, +0x5d0, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x5e0, 0x5d0, 0x5d5, 0x5d5, 0x5e2, 0x5de, 0x5d1, 0x5e2, 0x5e8, 0x3b, 0x5d3, 0x5e2, 0x5e6, 0x5e2, 0x5de, +0x5d1, 0x5e2, 0x5e8, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x3b, 0xc8, 0x72, 0x3b, 0x1eb8, 0x72, 0x3b, 0xcc, 0x67, 0x3b, 0x1eb8, 0x300, 0x62, +0x3b, 0xd2, 0x6b, 0x3b, 0x41, 0x67, 0x3b, 0xd2, 0x67, 0x3b, 0x4f, 0x77, 0x3b, 0x1ecc, 0x300, 0x77, 0x3b, 0x42, 0xe9, 0x3b, +0x1ecc, 0x300, 0x70, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, 0x301, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x1eb8, 0x72, 0x1eb9, +0x300, 0x6e, 0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x1eb8, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, +0x75, 0x3b, 0x41, 0x67, 0x1eb9, 0x6d, 0x1ecd, 0x3b, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x1ecc, +0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300, 0x3b, 0x53, 0x3b, 0xc8, +0x3b, 0x1eb8, 0x3b, 0xcc, 0x3b, 0x1eb8, 0x300, 0x3b, 0xd2, 0x3b, 0x41, 0x3b, 0xd2, 0x3b, 0x4f, 0x3b, 0x1ecc, 0x300, 0x3b, 0x42, +0x3b, 0x1ecc, 0x300, 0x3b, 0x1e62, 0x1eb9, 0x301, 0x72, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0x3b, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0x3b, +0xcc, 0x67, 0x62, 0x3b, 0x1eb8, 0x300, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x3b, 0x41, 0x67, 0x1eb9, 0x3b, 0xd2, 0x67, 0xfa, +0x3b, 0x4f, 0x77, 0x65, 0x3b, 0x1ecc, 0x300, 0x77, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0x3b, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x3b, 0x4f, +0x1e63, 0xf9, 0x20, 0x1e62, 0x1eb9, 0x301, 0x72, 0x1eb9, 0x301, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, +0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x72, 0x1eb9, 0x300, 0x6e, 0xe0, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xcc, 0x67, 0x62, 0xe9, 0x3b, +0x4f, 0x1e63, 0xf9, 0x20, 0x1eb8, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x6b, 0xfa, 0x64, 0x75, +0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x41, 0x67, 0x1eb9, 0x6d, 0x1ecd, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, +0x4f, 0x1e63, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x77, 0xe0, 0x72, 0xe0, +0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x4f, 0x1e63, 0xf9, 0x20, 0x1ecc, 0x300, 0x70, 0x1eb9, 0x300, 0x3b, +0x53, 0x68, 0x25b, 0x301, 0x3b, 0xc8, 0x72, 0x3b, 0x190, 0x72, 0x3b, 0xcc, 0x67, 0x3b, 0x190, 0x300, 0x62, 0x3b, 0xd2, 0x6b, +0x3b, 0x41, 0x67, 0x3b, 0xd2, 0x67, 0x3b, 0x4f, 0x77, 0x3b, 0x186, 0x300, 0x77, 0x3b, 0x42, 0xe9, 0x3b, 0x186, 0x300, 0x70, +0x3b, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0xe8, 0x3b, 0x190, 0x72, 0x25b, 0x300, 0x6e, +0xe0, 0x3b, 0xcc, 0x67, 0x62, 0xe9, 0x3b, 0x190, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, +0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x186, 0x300, 0x77, +0xe0, 0x72, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0xfa, 0x3b, 0x186, 0x300, 0x70, 0x25b, 0x300, 0x3b, 0x53, 0x3b, 0xc8, 0x3b, 0x190, +0x3b, 0xcc, 0x3b, 0x190, 0x300, 0x3b, 0xd2, 0x3b, 0x41, 0x3b, 0xd2, 0x3b, 0x4f, 0x3b, 0x186, 0x300, 0x3b, 0x42, 0x3b, 0x186, +0x300, 0x3b, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x3b, 0xc8, 0x72, 0xe8, 0x6c, 0x3b, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0x3b, 0xcc, +0x67, 0x62, 0x3b, 0x190, 0x300, 0x62, 0x69, 0x3b, 0xd2, 0x6b, 0xfa, 0x3b, 0x41, 0x67, 0x25b, 0x3b, 0xd2, 0x67, 0xfa, 0x3b, +0x4f, 0x77, 0x65, 0x3b, 0x186, 0x300, 0x77, 0xe0, 0x3b, 0x42, 0xe9, 0x6c, 0x3b, 0x186, 0x300, 0x70, 0x25b, 0x3b, 0x4f, 0x73, +0x68, 0xf9, 0x20, 0x53, 0x68, 0x25b, 0x301, 0x72, 0x25b, 0x301, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xc8, 0x72, 0xe8, 0x6c, +0xe8, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x72, 0x25b, 0x300, 0x6e, 0xe0, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0xcc, +0x67, 0x62, 0xe9, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x190, 0x300, 0x62, 0x69, 0x62, 0x69, 0x3b, 0x4f, 0x73, 0x68, 0xf9, +0x20, 0xd2, 0x6b, 0xfa, 0x64, 0x75, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x41, 0x67, 0x25b, 0x6d, 0x254, 0x3b, 0x4f, 0x73, +0x68, 0xf9, 0x20, 0xd2, 0x67, 0xfa, 0x6e, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x4f, 0x77, 0x65, 0x77, 0x65, 0x3b, 0x4f, +0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x77, 0xe0, 0x72, 0xe0, 0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x42, 0xe9, 0x6c, 0xfa, +0x3b, 0x4f, 0x73, 0x68, 0xf9, 0x20, 0x186, 0x300, 0x70, 0x25b, 0x300, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, +0x4d, 0x61, 0x73, 0x3b, 0x45, 0x70, 0x68, 0x3b, 0x4d, 0x65, 0x79, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, +0x41, 0x67, 0x61, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, +0x4a, 0x61, 0x6e, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x77, 0x61, 0x72, 0x69, 0x3b, 0x4d, +0x61, 0x73, 0x68, 0x69, 0x3b, 0x45, 0x70, 0x68, 0x72, 0x65, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x79, 0x69, 0x3b, 0x4a, 0x75, +0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x79, 0x69, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, +0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x68, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, +0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, +0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, +0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x69, 0x3b, 0x6a, +0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, +0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x76, 0x2e, 0x3b, 0x64, 0x65, 0x73, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, +0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x70, 0x72, 0x69, 0x6c, 0x3b, +0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x3b, 0x61, 0x75, 0x67, 0x75, 0x73, 0x74, +0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x6e, +0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x458, 0x430, 0x43d, +0x3b, 0x444, 0x435, 0x431, 0x3b, 0x43c, 0x430, 0x440, 0x3b, 0x430, 0x43f, 0x440, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, +0x3b, 0x458, 0x443, 0x43b, 0x3b, 0x430, 0x443, 0x433, 0x3b, 0x441, 0x435, 0x43f, 0x3b, 0x43e, 0x43a, 0x442, 0x3b, 0x43d, 0x43e, 0x432, +0x3b, 0x434, 0x435, 0x446, 0x3b, 0x458, 0x430, 0x43d, 0x443, 0x430, 0x440, 0x3b, 0x444, 0x435, 0x431, 0x440, 0x443, 0x430, 0x440, 0x3b, +0x43c, 0x430, 0x440, 0x442, 0x3b, 0x430, 0x43f, 0x440, 0x438, 0x43b, 0x3b, 0x43c, 0x430, 0x458, 0x3b, 0x458, 0x443, 0x43d, 0x438, 0x3b, +0x458, 0x443, 0x43b, 0x438, 0x3b, 0x430, 0x443, 0x433, 0x443, 0x441, 0x442, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x43c, 0x431, 0x430, +0x440, 0x3b, 0x43e, 0x43a, 0x442, 0x43e, 0x431, 0x430, 0x440, 0x3b, 0x43d, 0x43e, 0x432, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x434, +0x435, 0x446, 0x435, 0x43c, 0x431, 0x430, 0x440, 0x3b, 0x4a, 0x2d, 0x67, 0x75, 0x65, 0x72, 0x3b, 0x54, 0x2d, 0x61, 0x72, 0x72, +0x65, 0x65, 0x3b, 0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74, 0x3b, 0x41, 0x76, 0x72, 0x72, 0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, +0x6c, 0x64, 0x79, 0x6e, 0x3b, 0x4d, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4a, 0x2d, 0x73, 0x6f, 0x75, 0x72, +0x65, 0x65, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, +0x72, 0x3b, 0x4a, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4d, 0x2d, 0x48, 0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, +0x4d, 0x2d, 0x4e, 0x6f, 0x6c, 0x6c, 0x69, 0x63, 0x6b, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x67, 0x65, 0x75, +0x72, 0x65, 0x65, 0x3b, 0x54, 0x6f, 0x73, 0x68, 0x69, 0x61, 0x67, 0x68, 0x74, 0x2d, 0x61, 0x72, 0x72, 0x65, 0x65, 0x3b, +0x4d, 0x61, 0x79, 0x72, 0x6e, 0x74, 0x3b, 0x41, 0x76, 0x65, 0x72, 0x69, 0x6c, 0x3b, 0x42, 0x6f, 0x61, 0x6c, 0x64, 0x79, +0x6e, 0x3b, 0x4d, 0x65, 0x61, 0x6e, 0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, +0x2d, 0x73, 0x6f, 0x75, 0x72, 0x65, 0x65, 0x3b, 0x4c, 0x75, 0x61, 0x6e, 0x69, 0x73, 0x74, 0x79, 0x6e, 0x3b, 0x4d, 0x65, +0x61, 0x6e, 0x2d, 0x66, 0x6f, 0x75, 0x79, 0x69, 0x72, 0x3b, 0x4a, 0x65, 0x72, 0x72, 0x65, 0x79, 0x2d, 0x66, 0x6f, 0x75, +0x79, 0x69, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x20, 0x48, 0x6f, 0x75, 0x6e, 0x65, 0x79, 0x3b, 0x4d, 0x65, 0x65, 0x20, 0x6e, +0x79, 0x20, 0x4e, 0x6f, 0x6c, 0x6c, 0x69, 0x63, 0x6b, 0x3b, 0x47, 0x65, 0x6e, 0x3b, 0x48, 0x77, 0x65, 0x3b, 0x4d, 0x65, +0x75, 0x3b, 0x45, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x3b, 0x4d, 0x65, 0x74, 0x3b, 0x47, 0x6f, 0x72, 0x3b, 0x45, 0x73, 0x74, +0x3b, 0x47, 0x77, 0x6e, 0x3b, 0x48, 0x65, 0x64, 0x3b, 0x44, 0x75, 0x3b, 0x4b, 0x65, 0x76, 0x3b, 0x6d, 0x69, 0x73, 0x20, +0x47, 0x65, 0x6e, 0x76, 0x65, 0x72, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x48, 0x77, 0x65, 0x76, 0x72, 0x65, 0x72, 0x3b, 0x6d, +0x69, 0x73, 0x20, 0x4d, 0x65, 0x75, 0x72, 0x74, 0x68, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x45, 0x62, 0x72, 0x65, 0x6c, 0x3b, +0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4d, 0x65, 0x74, 0x68, 0x65, 0x76, 0x65, 0x6e, 0x3b, +0x6d, 0x69, 0x73, 0x20, 0x47, 0x6f, 0x72, 0x74, 0x68, 0x65, 0x72, 0x65, 0x6e, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x45, 0x73, +0x74, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x47, 0x77, 0x79, 0x6e, 0x6e, 0x67, 0x61, 0x6c, 0x61, 0x3b, 0x6d, 0x69, 0x73, 0x20, +0x48, 0x65, 0x64, 0x72, 0x61, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x44, 0x75, 0x3b, 0x6d, 0x69, 0x73, 0x20, 0x4b, 0x65, 0x76, +0x61, 0x72, 0x64, 0x68, 0x75, 0x3b, 0x53, 0x2d, 0x186, 0x3b, 0x4b, 0x2d, 0x186, 0x3b, 0x45, 0x2d, 0x186, 0x3b, 0x45, 0x2d, +0x4f, 0x3b, 0x45, 0x2d, 0x4b, 0x3b, 0x4f, 0x2d, 0x41, 0x3b, 0x41, 0x2d, 0x4b, 0x3b, 0x44, 0x2d, 0x186, 0x3b, 0x46, 0x2d, +0x190, 0x3b, 0x186, 0x2d, 0x41, 0x3b, 0x186, 0x2d, 0x4f, 0x3b, 0x4d, 0x2d, 0x186, 0x3b, 0x53, 0x61, 0x6e, 0x64, 0x61, 0x2d, +0x186, 0x70, 0x25b, 0x70, 0x254, 0x6e, 0x3b, 0x4b, 0x77, 0x61, 0x6b, 0x77, 0x61, 0x72, 0x2d, 0x186, 0x67, 0x79, 0x65, 0x66, +0x75, 0x6f, 0x3b, 0x45, 0x62, 0x254, 0x77, 0x2d, 0x186, 0x62, 0x65, 0x6e, 0x65, 0x6d, 0x3b, 0x45, 0x62, 0x254, 0x62, 0x69, +0x72, 0x61, 0x2d, 0x4f, 0x66, 0x6f, 0x72, 0x69, 0x73, 0x75, 0x6f, 0x3b, 0x45, 0x73, 0x75, 0x73, 0x6f, 0x77, 0x20, 0x41, +0x6b, 0x65, 0x74, 0x73, 0x65, 0x61, 0x62, 0x61, 0x2d, 0x4b, 0x254, 0x74, 0x254, 0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x4f, +0x62, 0x69, 0x72, 0x61, 0x64, 0x65, 0x2d, 0x41, 0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x6d, 0x75, 0x6d, 0x75, 0x3b, 0x41, +0x79, 0x25b, 0x77, 0x6f, 0x68, 0x6f, 0x2d, 0x4b, 0x69, 0x74, 0x61, 0x77, 0x6f, 0x6e, 0x73, 0x61, 0x3b, 0x44, 0x69, 0x66, +0x75, 0x75, 0x2d, 0x186, 0x73, 0x61, 0x6e, 0x64, 0x61, 0x61, 0x3b, 0x46, 0x61, 0x6e, 0x6b, 0x77, 0x61, 0x2d, 0x190, 0x62, +0x254, 0x3b, 0x186, 0x62, 0x25b, 0x73, 0x25b, 0x2d, 0x41, 0x68, 0x69, 0x6e, 0x69, 0x6d, 0x65, 0x3b, 0x186, 0x62, 0x65, 0x72, +0x25b, 0x66, 0x25b, 0x77, 0x2d, 0x4f, 0x62, 0x75, 0x62, 0x75, 0x6f, 0x3b, 0x4d, 0x75, 0x6d, 0x75, 0x2d, 0x186, 0x70, 0x25b, +0x6e, 0x69, 0x6d, 0x62, 0x61, 0x3b, 0x91c, 0x93e, 0x928, 0x947, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, +0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, 0x93e, 0x930, 0x94d, 0x91a, 0x3b, 0x90f, 0x92a, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, +0x947, 0x3b, 0x91c, 0x942, 0x928, 0x3b, 0x91c, 0x941, 0x932, 0x93e, 0x92f, 0x3b, 0x906, 0x917, 0x94b, 0x938, 0x94d, 0x924, 0x3b, 0x938, +0x92a, 0x94d, 0x91f, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x911, 0x915, 0x94d, 0x91f, 0x94b, 0x92c, 0x930, 0x3b, 0x928, 0x94b, 0x935, 0x94d, +0x939, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x921, 0x93f, 0x938, 0x947, 0x902, 0x92c, 0x930, 0x3b, 0x4a, 0x65, 0x6e, 0x3b, 0x46, 0x65, +0x62, 0x3b, 0x4d, 0x61, 0x61, 0x3b, 0x45, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, +0x6c, 0x3b, 0x1ecc, 0x67, 0x1ecd, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x1ecc, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, +0x73, 0x3b, 0x4a, 0x65, 0x6e, 0x1ee5, 0x77, 0x61, 0x72, 0x1ecb, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x1ee5, 0x77, 0x61, 0x72, 0x1ecb, +0x3b, 0x4d, 0x61, 0x61, 0x63, 0x68, 0x1ecb, 0x3b, 0x45, 0x70, 0x72, 0x65, 0x65, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, +0x75, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x1ecb, 0x3b, 0x1ecc, 0x67, 0x1ecd, 0x1ecd, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, +0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x1ecc, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, +0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, +0x3b, 0x4a, 0x3b, 0x1ecc, 0x3b, 0x53, 0x3b, 0x1ecc, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x65, 0x6c, +0x3b, 0x4b, 0x74, 0x169, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x4b, 0x74, 0x6e, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, 0x6f, 0x6f, +0x3b, 0x4e, 0x79, 0x61, 0x3b, 0x4b, 0x6e, 0x64, 0x3b, 0x128, 0x6b, 0x75, 0x3b, 0x128, 0x6b, 0x6d, 0x3b, 0x128, 0x6b, 0x6c, +0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x62, 0x65, 0x65, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, +0x61, 0x20, 0x6b, 0x65, 0x6c, 0x129, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, +0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, +0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x74, 0x68, +0x61, 0x6e, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x75, 0x6f, 0x6e, +0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6e, 0x79, 0x61, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, +0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, +0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, 0x6d, 0x69, +0x20, 0x6e, 0x61, 0x20, 0x129, 0x6d, 0x77, 0x65, 0x3b, 0x4d, 0x77, 0x61, 0x69, 0x20, 0x77, 0x61, 0x20, 0x129, 0x6b, 0x75, +0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x6c, 0x129, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, +0x54, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4b, 0x3b, 0x128, 0x3b, 0x128, 0x3b, 0x128, 0x3b, 0x5a, 0x65, 0x6e, 0x3b, 0x46, 0x65, +0x76, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x76, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x67, 0x3b, 0x4c, 0x75, +0x69, 0x3b, 0x41, 0x76, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, +0x63, 0x3b, 0x5a, 0x65, 0x6e, 0xe2, 0x72, 0x3b, 0x46, 0x65, 0x76, 0x72, 0xe2, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0xe7, 0x3b, +0x41, 0x76, 0x72, 0xee, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x67, 0x6e, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x41, +0x76, 0x6f, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x61, 0x72, +0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x5a, +0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4c, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, +0x3b, 0x44, 0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, 0x74, 0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, +0x61, 0x6d, 0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, +0x65, 0x6c, 0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, 0x64, 0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, +0x64, 0x7a, 0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, 0x61, 0x66, 0x254, 0x66, 0x129, 0x65, 0x3b, 0x64, 0x61, +0x6d, 0x61, 0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, 0x6d, 0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, +0x69, 0x61, 0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, 0x6e, 0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, +0x61, 0x64, 0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x64, 0x3b, +0x64, 0x3b, 0x74, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x61, 0x3b, 0x6b, 0x3b, 0x61, 0x3b, +0x64, 0x3b, 0x49, 0x61, 0x6e, 0x2e, 0x3b, 0x50, 0x65, 0x70, 0x2e, 0x3b, 0x4d, 0x61, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x70, +0x2e, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, 0x75, 0x6e, 0x2e, 0x3b, 0x49, 0x75, 0x6c, 0x2e, 0x3b, 0x2bb, 0x41, 0x75, 0x2e, +0x3b, 0x4b, 0x65, 0x70, 0x2e, 0x3b, 0x2bb, 0x4f, 0x6b, 0x2e, 0x3b, 0x4e, 0x6f, 0x77, 0x2e, 0x3b, 0x4b, 0x65, 0x6b, 0x2e, +0x3b, 0x49, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x50, 0x65, 0x70, 0x65, 0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x4d, +0x61, 0x6c, 0x61, 0x6b, 0x69, 0x3b, 0x2bb, 0x41, 0x70, 0x65, 0x6c, 0x69, 0x6c, 0x61, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x49, +0x75, 0x6e, 0x65, 0x3b, 0x49, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x2bb, 0x41, 0x75, 0x6b, 0x61, 0x6b, 0x65, 0x3b, 0x4b, 0x65, +0x70, 0x61, 0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x2bb, 0x4f, 0x6b, 0x61, 0x6b, 0x6f, 0x70, 0x61, 0x3b, 0x4e, 0x6f, +0x77, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x4b, 0x65, 0x6b, 0x65, 0x6d, 0x61, 0x70, 0x61, 0x3b, 0x45, 0x6e, 0x65, 0x3b, +0x50, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x75, 0x6e, 0x3b, +0x48, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, +0x44, 0x69, 0x73, 0x3b, 0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x50, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, +0x72, 0x73, 0x6f, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6e, 0x79, 0x6f, +0x3b, 0x48, 0x75, 0x6c, 0x79, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x79, 0x65, 0x6d, +0x62, 0x72, 0x65, 0x3b, 0x4f, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x62, 0x79, 0x65, 0x6d, 0x62, 0x72, +0x65, 0x3b, 0x44, 0x69, 0x73, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, +0x4d, 0x3b, 0x48, 0x75, 0x6e, 0x3b, 0x48, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x6b, +0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, +0x72, 0x75, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, +0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x63, 0x68, 0x74, 0x3b, 0x53, +0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, +0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0xa2cd, 0xa1aa, 0x3b, 0xa44d, +0xa1aa, 0x3b, 0xa315, 0xa1aa, 0x3b, 0xa1d6, 0xa1aa, 0x3b, 0xa26c, 0xa1aa, 0x3b, 0xa0d8, 0xa1aa, 0x3b, 0xa3c3, 0xa1aa, 0x3b, 0xa246, 0xa1aa, 0x3b, +0xa22c, 0xa1aa, 0x3b, 0xa2b0, 0xa1aa, 0x3b, 0xa2b0, 0xa2aa, 0xa1aa, 0x3b, 0xa2b0, 0xa44b, 0xa1aa, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, +0x65, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, +0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, +0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x61, 0x72, +0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x61, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x3b, 0x41, 0x70, 0x72, 0x69, 0x6c, +0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, +0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x76, 0x65, 0x72, 0x3b, +0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x111, +0x111, 0x6a, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x3b, 0x63, 0x75, 0x6f, 0x3b, 0x6d, 0x69, 0x65, +0x73, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x3b, 0x73, 0x75, 0x6f, 0x69, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x3b, 0x10d, 0x61, 0x6b, +0x10d, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x3b, 0x73, 0x6b, 0xe1, 0x62, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x3b, 0x6f, 0x111, 0x111, +0x61, 0x6a, 0x61, 0x67, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x76, 0x61, 0x6d, 0xe1, 0x6e, +0x6e, 0x75, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, 0x10d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x6f, +0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x65, +0x61, 0x73, 0x73, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x73, 0x75, 0x6f, 0x69, 0x64, 0x6e, 0x65, 0x6d, 0xe1, 0x6e, +0x6e, 0x75, 0x3b, 0x62, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x61, 0x6d, +0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x67, 0x6f, 0x74, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x73, 0x6b, +0xe1, 0x62, 0x6d, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, 0x75, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0x61, 0x6d, 0xe1, 0x6e, 0x6e, +0x75, 0x3b, 0x4f, 0x3b, 0x47, 0x3b, 0x4e, 0x3b, 0x43, 0x3b, 0x4d, 0x3b, 0x47, 0x3b, 0x53, 0x3b, 0x42, 0x3b, 0x10c, 0x3b, +0x47, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x6f, 0x111, 0x111, 0x6a, 0x3b, 0x67, 0x75, 0x6f, 0x76, 0x3b, 0x6e, 0x6a, 0x75, 0x6b, +0x3b, 0x63, 0x75, 0x6f, 0x14b, 0x3b, 0x6d, 0x69, 0x65, 0x73, 0x3b, 0x67, 0x65, 0x61, 0x73, 0x3b, 0x73, 0x75, 0x6f, 0x69, +0x3b, 0x62, 0x6f, 0x72, 0x67, 0x3b, 0x10d, 0x61, 0x6b, 0x10d, 0x3b, 0x67, 0x6f, 0x6c, 0x67, 0x3b, 0x73, 0x6b, 0xe1, 0x62, +0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x3b, 0x43, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, 0x70, +0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x43, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x74, 0x3b, 0x53, 0x65, +0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x43, 0x68, 0x61, 0x6e, 0x75, 0x61, +0x72, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x75, 0x72, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, +0x69, 0x72, 0x69, 0x72, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x43, 0x68, 0x75, 0x6c, 0x61, +0x69, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, +0x69, 0x74, 0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x62, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, +0x61, 0x3b, 0x43, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x43, 0x3b, 0x41, 0x3b, 0x53, 0x3b, +0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x49, 0x6d, 0x62, 0x3b, 0x4b, 0x61, 0x77, 0x3b, 0x4b, 0x61, 0x64, 0x3b, 0x4b, 0x61, +0x6e, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x4b, 0x61, 0x72, 0x3b, 0x4d, 0x66, 0x75, 0x3b, 0x57, 0x75, 0x6e, 0x3b, 0x49, 0x6b, +0x65, 0x3b, 0x49, 0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, +0x68, 0x77, 0x61, 0x20, 0x69, 0x6d, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, +0x20, 0x6b, 0x61, 0x77, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x64, 0x61, +0x64, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x6f, +0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x73, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, +0x67, 0x68, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x72, 0x61, 0x6e, 0x64, 0x61, 0x64, 0x75, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, +0x67, 0x68, 0x77, 0x61, 0x20, 0x6d, 0x66, 0x75, 0x6e, 0x67, 0x61, 0x64, 0x65, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, +0x68, 0x77, 0x61, 0x20, 0x77, 0x75, 0x6e, 0x79, 0x61, 0x6e, 0x79, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, +0x77, 0x61, 0x20, 0x69, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, +0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, +0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x6d, 0x77, 0x65, 0x72, 0x69, 0x3b, 0x4d, 0x6f, 0x72, 0x69, 0x20, 0x67, 0x68, 0x77, +0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x69, 0x77, 0x69, 0x3b, 0x49, 0x3b, 0x4b, 0x3b, 0x4b, +0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4d, 0x3b, 0x57, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x73, +0x69, 0x69, 0x3b, 0x63, 0x6f, 0x6c, 0x3b, 0x6d, 0x62, 0x6f, 0x3b, 0x73, 0x65, 0x65, 0x3b, 0x64, 0x75, 0x75, 0x3b, 0x6b, +0x6f, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x3b, 0x6a, 0x75, 0x6b, 0x3b, 0x73, 0x6c, 0x74, 0x3b, 0x79, 0x61, 0x72, 0x3b, 0x6a, +0x6f, 0x6c, 0x3b, 0x62, 0x6f, 0x77, 0x3b, 0x73, 0x69, 0x69, 0x6c, 0x6f, 0x3b, 0x63, 0x6f, 0x6c, 0x74, 0x65, 0x3b, 0x6d, +0x62, 0x6f, 0x6f, 0x79, 0x3b, 0x73, 0x65, 0x65, 0x257, 0x74, 0x6f, 0x3b, 0x64, 0x75, 0x75, 0x6a, 0x61, 0x6c, 0x3b, 0x6b, +0x6f, 0x72, 0x73, 0x65, 0x3b, 0x6d, 0x6f, 0x72, 0x73, 0x6f, 0x3b, 0x6a, 0x75, 0x6b, 0x6f, 0x3b, 0x73, 0x69, 0x69, 0x6c, +0x74, 0x6f, 0x3b, 0x79, 0x61, 0x72, 0x6b, 0x6f, 0x6d, 0x61, 0x61, 0x3b, 0x6a, 0x6f, 0x6c, 0x61, 0x6c, 0x3b, 0x62, 0x6f, +0x77, 0x74, 0x65, 0x3b, 0x73, 0x3b, 0x63, 0x3b, 0x6d, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, 0x6a, 0x3b, +0x73, 0x3b, 0x79, 0x3b, 0x6a, 0x3b, 0x62, 0x3b, 0x4a, 0x45, 0x4e, 0x3b, 0x57, 0x4b, 0x52, 0x3b, 0x57, 0x47, 0x54, 0x3b, +0x57, 0x4b, 0x4e, 0x3b, 0x57, 0x54, 0x4e, 0x3b, 0x57, 0x54, 0x44, 0x3b, 0x57, 0x4d, 0x4a, 0x3b, 0x57, 0x4e, 0x4e, 0x3b, +0x57, 0x4b, 0x44, 0x3b, 0x57, 0x49, 0x4b, 0x3b, 0x57, 0x4d, 0x57, 0x3b, 0x44, 0x49, 0x54, 0x3b, 0x4e, 0x6a, 0x65, 0x6e, +0x75, 0x61, 0x72, 0x129, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x72, 0x129, 0x3b, 0x4d, +0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, +0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, +0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x64, +0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67, 0x77, 0x61, 0x6e, 0x6a, +0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, +0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, +0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x65, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, +0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4e, 0x64, 0x69, 0x74, 0x68, 0x65, 0x6d, 0x62, 0x61, +0x3b, 0x4a, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, +0x3b, 0x49, 0x3b, 0x44, 0x3b, 0x4f, 0x62, 0x6f, 0x3b, 0x57, 0x61, 0x61, 0x3b, 0x4f, 0x6b, 0x75, 0x3b, 0x4f, 0x6e, 0x67, +0x3b, 0x49, 0x6d, 0x65, 0x3b, 0x49, 0x6c, 0x65, 0x3b, 0x53, 0x61, 0x70, 0x3b, 0x49, 0x73, 0x69, 0x3b, 0x53, 0x61, 0x61, +0x3b, 0x54, 0x6f, 0x6d, 0x3b, 0x54, 0x6f, 0x62, 0x3b, 0x54, 0x6f, 0x77, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, +0x20, 0x6f, 0x62, 0x6f, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x77, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4c, +0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x6f, 0x6b, 0x75, 0x6e, 0x69, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, +0x20, 0x6f, 0x6e, 0x67, 0x2019, 0x77, 0x61, 0x6e, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6d, 0x65, +0x74, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x6c, 0x65, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, +0x65, 0x20, 0x73, 0x61, 0x70, 0x61, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x69, 0x73, 0x69, 0x65, 0x74, +0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x73, 0x61, 0x61, 0x6c, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, +0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, +0x6e, 0x20, 0x6f, 0x62, 0x6f, 0x3b, 0x4c, 0x61, 0x70, 0x61, 0x20, 0x6c, 0x65, 0x20, 0x74, 0x6f, 0x6d, 0x6f, 0x6e, 0x20, +0x77, 0x61, 0x61, 0x72, 0x65, 0x3b, 0x4f, 0x3b, 0x57, 0x3b, 0x4f, 0x3b, 0x4f, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x53, 0x3b, +0x49, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x76, 0x3b, 0x4d, 0x61, +0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, +0x67, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x4a, 0x61, +0x6e, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x46, 0x65, 0x76, 0x72, 0x65, 0x69, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x63, 0x6f, +0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x6f, 0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x6f, 0x3b, 0x4a, 0x75, +0x6c, 0x68, 0x6f, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x6f, +0x3b, 0x4f, 0x74, 0x75, 0x62, 0x72, 0x6f, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x44, 0x65, 0x63, +0x65, 0x6d, 0x62, 0x72, 0x6f, 0x3b, 0x5a, 0x69, 0x62, 0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x3b, 0x4d, 0x62, 0x69, 0x3b, 0x4d, +0x61, 0x62, 0x3b, 0x4e, 0x6b, 0x77, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, 0x3b, 0x4e, 0x63, 0x77, 0x3b, +0x4d, 0x70, 0x61, 0x6e, 0x3b, 0x4d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x3b, 0x4d, 0x70, 0x61, 0x6c, 0x3b, 0x5a, 0x69, +0x62, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x6c, 0x61, 0x3b, 0x4e, 0x68, 0x6c, 0x6f, 0x6c, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, +0x62, 0x69, 0x6d, 0x62, 0x69, 0x74, 0x68, 0x6f, 0x3b, 0x4d, 0x61, 0x62, 0x61, 0x73, 0x61, 0x3b, 0x4e, 0x6b, 0x77, 0x65, +0x6e, 0x6b, 0x77, 0x65, 0x7a, 0x69, 0x3b, 0x4e, 0x68, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x3b, 0x4e, 0x74, 0x75, +0x6c, 0x69, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4e, 0x63, 0x77, 0x61, 0x62, 0x61, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x4d, 0x70, +0x61, 0x6e, 0x64, 0x75, 0x6c, 0x61, 0x3b, 0x4d, 0x66, 0x75, 0x6d, 0x66, 0x75, 0x3b, 0x4c, 0x77, 0x65, 0x7a, 0x69, 0x3b, +0x4d, 0x70, 0x61, 0x6c, 0x61, 0x6b, 0x61, 0x7a, 0x69, 0x3b, 0x5a, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, +0x4e, 0x3b, 0x4e, 0x3b, 0x4e, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x4d, 0x31, 0x3b, 0x4d, 0x32, 0x3b, +0x4d, 0x33, 0x3b, 0x4d, 0x34, 0x3b, 0x4d, 0x35, 0x3b, 0x4d, 0x36, 0x3b, 0x4d, 0x37, 0x3b, 0x4d, 0x38, 0x3b, 0x4d, 0x39, +0x3b, 0x4d, 0x31, 0x30, 0x3b, 0x4d, 0x31, 0x31, 0x3b, 0x4d, 0x31, 0x32, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, +0x61, 0x20, 0x6b, 0x77, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, +0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x61, 0x74, 0x75, 0x3b, +0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, +0x20, 0x77, 0x61, 0x20, 0x74, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x69, +0x74, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, +0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, +0x74, 0x69, 0x73, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, +0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, +0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, +0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, 0x53, 0x3b, 0x53, +0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x2d49, 0x2d4f, 0x2d4f, 0x3b, 0x2d31, 0x2d55, 0x2d30, 0x3b, 0x2d4e, +0x2d30, 0x2d55, 0x3b, 0x2d49, 0x2d31, 0x2d54, 0x3b, 0x2d4e, 0x2d30, 0x2d62, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x3b, 0x2d56, +0x2d53, 0x2d5b, 0x3b, 0x2d5b, 0x2d53, 0x2d5c, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x3b, 0x2d4f, 0x2d53, 0x2d61, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x3b, 0x2d49, +0x2d4f, 0x2d4f, 0x2d30, 0x2d62, 0x2d54, 0x3b, 0x2d31, 0x2d55, 0x2d30, 0x2d62, 0x2d55, 0x3b, 0x2d4e, 0x2d30, 0x2d55, 0x2d5a, 0x3b, 0x2d49, 0x2d31, 0x2d54, +0x2d49, 0x2d54, 0x3b, 0x2d4e, 0x2d30, 0x2d62, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4f, 0x2d62, 0x2d53, 0x3b, 0x2d62, 0x2d53, 0x2d4d, 0x2d62, 0x2d53, +0x2d63, 0x3b, 0x2d56, 0x2d53, 0x2d5b, 0x2d5c, 0x3b, 0x2d5b, 0x2d53, 0x2d5c, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d3d, 0x2d5c, 0x2d53, 0x2d31, +0x2d54, 0x3b, 0x2d4f, 0x2d53, 0x2d61, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, 0x2d37, 0x2d53, 0x2d4a, 0x2d30, 0x2d4f, 0x2d31, 0x2d49, 0x2d54, 0x3b, +0x2d49, 0x3b, 0x2d31, 0x3b, 0x2d4e, 0x3b, 0x2d49, 0x3b, 0x2d4e, 0x3b, 0x2d62, 0x3b, 0x2d62, 0x3b, 0x2d56, 0x3b, 0x2d5b, 0x3b, 0x2d3d, 0x3b, +0x2d4f, 0x3b, 0x2d37, 0x3b, 0x69, 0x6e, 0x6e, 0x3b, 0x62, 0x1e5b, 0x61, 0x3b, 0x6d, 0x61, 0x1e5b, 0x3b, 0x69, 0x62, 0x72, 0x3b, +0x6d, 0x61, 0x79, 0x3b, 0x79, 0x75, 0x6e, 0x3b, 0x79, 0x75, 0x6c, 0x3b, 0x263, 0x75, 0x63, 0x3b, 0x63, 0x75, 0x74, 0x3b, +0x6b, 0x74, 0x75, 0x3b, 0x6e, 0x75, 0x77, 0x3b, 0x64, 0x75, 0x6a, 0x3b, 0x69, 0x6e, 0x6e, 0x61, 0x79, 0x72, 0x3b, 0x62, +0x1e5b, 0x61, 0x79, 0x1e5b, 0x3b, 0x6d, 0x61, 0x1e5b, 0x1e63, 0x3b, 0x69, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x79, +0x75, 0x3b, 0x79, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x79, 0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x263, 0x75, 0x63, 0x74, 0x3b, +0x63, 0x75, 0x74, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x3b, 0x6e, 0x75, 0x77, 0x61, 0x6e, +0x62, 0x69, 0x72, 0x3b, 0x64, 0x75, 0x6a, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x69, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x69, +0x3b, 0x6d, 0x3b, 0x79, 0x3b, 0x79, 0x3b, 0x263, 0x3b, 0x63, 0x3b, 0x6b, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x59, 0x65, 0x6e, +0x3b, 0x46, 0x75, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, +0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, 0x43, 0x74, 0x65, 0x3b, 0x54, 0x75, 0x62, 0x3b, 0x57, 0x61, 0x6d, +0x3b, 0x44, 0x75, 0x6a, 0x3b, 0x59, 0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x46, 0x75, 0x1e5b, 0x61, 0x72, 0x3b, +0x4d, 0x65, 0x263, 0x72, 0x65, 0x73, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, +0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, 0x79, 0x75, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x74, 0x65, +0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x54, 0x75, 0x62, 0x65, 0x1e5b, 0x3b, 0x57, 0x61, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x44, 0x75, +0x1e7, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x59, 0x3b, 0x59, +0x3b, 0x194, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x59, 0x65, 0x6e, 0x3b, 0x46, 0x75, 0x72, 0x3b, 0x4d, +0x65, 0x263, 0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, 0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, +0x75, 0x63, 0x3b, 0x43, 0x74, 0x65, 0x3b, 0x54, 0x75, 0x62, 0x3b, 0x4e, 0x75, 0x6e, 0x3b, 0x44, 0x75, 0x1e7, 0x3b, 0x59, +0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x46, 0x75, 0x1e5b, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x263, 0x72, 0x65, 0x73, +0x3b, 0x59, 0x65, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, +0x59, 0x75, 0x6c, 0x79, 0x75, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x54, +0x75, 0x62, 0x65, 0x1e5b, 0x3b, 0x4e, 0x75, 0x6e, 0x65, 0x6d, 0x62, 0x65, 0x1e5b, 0x3b, 0x44, 0x75, 0x1e7, 0x65, 0x6d, 0x62, +0x65, 0x1e5b, 0x3b, 0x59, 0x3b, 0x46, 0x3b, 0x194, 0x3b, 0x42, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x4c, 0x3b, 0x43, 0x3b, 0x54, +0x3b, 0x52, 0x3b, 0x57, 0x3b, 0x44, 0x3b, 0x4b, 0x42, 0x5a, 0x3b, 0x4b, 0x42, 0x52, 0x3b, 0x4b, 0x53, 0x54, 0x3b, 0x4b, +0x4b, 0x4e, 0x3b, 0x4b, 0x54, 0x4e, 0x3b, 0x4b, 0x4d, 0x4b, 0x3b, 0x4b, 0x4d, 0x53, 0x3b, 0x4b, 0x4d, 0x4e, 0x3b, 0x4b, +0x4d, 0x57, 0x3b, 0x4b, 0x4b, 0x4d, 0x3b, 0x4b, 0x4e, 0x4b, 0x3b, 0x4b, 0x4e, 0x42, 0x3b, 0x4f, 0x6b, 0x77, 0x6f, 0x6b, +0x75, 0x62, 0x61, 0x6e, 0x7a, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x4f, 0x6b, +0x77, 0x61, 0x6b, 0x61, 0x73, 0x68, 0x61, 0x74, 0x75, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4f, +0x6b, 0x77, 0x61, 0x6b, 0x61, 0x74, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x6b, 0x61, 0x61, +0x67, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x75, 0x73, 0x68, 0x61, 0x6e, 0x6a, 0x75, 0x3b, 0x4f, 0x6b, 0x77, 0x61, +0x6d, 0x75, 0x6e, 0x61, 0x61, 0x6e, 0x61, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x77, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4f, +0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, +0x61, 0x20, 0x6b, 0x75, 0x6d, 0x77, 0x65, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x69, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, +0x20, 0x69, 0x62, 0x69, 0x72, 0x69, 0x3b, 0x48, 0x75, 0x74, 0x3b, 0x56, 0x69, 0x6c, 0x3b, 0x44, 0x61, 0x74, 0x3b, 0x54, +0x61, 0x69, 0x3b, 0x48, 0x61, 0x6e, 0x3b, 0x53, 0x69, 0x74, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, 0x6e, 0x3b, 0x54, +0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4b, 0x6d, 0x6a, 0x3b, 0x4b, 0x6d, 0x62, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, +0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x68, 0x75, 0x74, 0x61, 0x6c, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, +0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x76, 0x69, 0x6c, 0x69, 0x3b, 0x70, 0x61, 0x20, +0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x64, 0x61, 0x74, 0x75, 0x3b, 0x70, 0x61, +0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x74, 0x61, 0x69, 0x3b, 0x70, 0x61, +0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x77, 0x75, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x70, +0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x73, 0x69, 0x74, 0x61, 0x3b, 0x70, 0x61, +0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x70, 0x61, 0x20, +0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x70, 0x61, 0x20, 0x6d, +0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, +0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, +0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, +0x3b, 0x70, 0x61, 0x20, 0x6d, 0x77, 0x65, 0x64, 0x7a, 0x69, 0x20, 0x67, 0x77, 0x61, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, +0x6e, 0x61, 0x20, 0x6d, 0x62, 0x69, 0x6c, 0x69, 0x3b, 0x48, 0x3b, 0x56, 0x3b, 0x44, 0x3b, 0x54, 0x3b, 0x48, 0x3b, 0x53, +0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x69, +0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, 0x72, 0x69, +0x6c, 0x79, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x79, 0x61, 0x69, +0x3b, 0x41, 0x67, 0x75, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, +0x6f, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, +0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x77, 0x69, 0x3b, 0x6d, 0x25b, 0x3b, 0x7a, +0x75, 0x77, 0x3b, 0x7a, 0x75, 0x6c, 0x3b, 0x75, 0x74, 0x69, 0x3b, 0x73, 0x25b, 0x74, 0x3b, 0x254, 0x6b, 0x75, 0x3b, 0x6e, +0x6f, 0x77, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, 0x6e, 0x77, 0x75, 0x79, 0x65, 0x3b, 0x66, 0x65, 0x62, 0x75, 0x72, +0x75, 0x79, 0x65, 0x3b, 0x6d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b, 0x61, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x69, 0x3b, 0x6d, +0x25b, 0x3b, 0x7a, 0x75, 0x77, 0x25b, 0x6e, 0x3b, 0x7a, 0x75, 0x6c, 0x75, 0x79, 0x65, 0x3b, 0x75, 0x74, 0x69, 0x3b, 0x73, +0x25b, 0x74, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x254, 0x6b, 0x75, 0x74, 0x254, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x6e, +0x6f, 0x77, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x75, 0x3b, 0x5a, +0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x5a, 0x3b, 0x5a, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x186, 0x3b, 0x4e, +0x3b, 0x44, 0x3b, 0x4d, 0x62, 0x65, 0x3b, 0x4b, 0x61, 0x69, 0x3b, 0x4b, 0x61, 0x74, 0x3b, 0x4b, 0x61, 0x6e, 0x3b, 0x47, +0x61, 0x74, 0x3b, 0x47, 0x61, 0x6e, 0x3b, 0x4d, 0x75, 0x67, 0x3b, 0x4b, 0x6e, 0x6e, 0x3b, 0x4b, 0x65, 0x6e, 0x3b, 0x49, +0x6b, 0x75, 0x3b, 0x49, 0x6d, 0x77, 0x3b, 0x49, 0x67, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, +0x6d, 0x62, 0x65, 0x72, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x129, 0x72, 0x69, +0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x74, 0x68, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, +0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, +0x20, 0x67, 0x61, 0x74, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x67, 0x61, 0x74, +0x61, 0x6e, 0x74, 0x61, 0x74, 0x169, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6d, 0x169, 0x67, 0x77, +0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x61, 0x6e, 0x61, 0x6e, 0x61, +0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, 0x6b, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, +0x69, 0x20, 0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x61, 0x20, +0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x169, 0x6d, 0x77, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, +0x77, 0x61, 0x20, 0x69, 0x6b, 0x169, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x4b, 0x61, 0x129, 0x72, 0x129, 0x3b, 0x4d, 0x3b, +0x4b, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x47, 0x3b, 0x47, 0x3b, 0x4d, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, +0x49, 0x3b, 0x13a4, 0x13c3, 0x3b, 0x13a7, 0x13a6, 0x3b, 0x13a0, 0x13c5, 0x3b, 0x13a7, 0x13ec, 0x3b, 0x13a0, 0x13c2, 0x3b, 0x13d5, 0x13ad, 0x3b, +0x13ab, 0x13f0, 0x3b, 0x13a6, 0x13b6, 0x3b, 0x13da, 0x13b5, 0x3b, 0x13da, 0x13c2, 0x3b, 0x13c5, 0x13d3, 0x3b, 0x13a5, 0x13cd, 0x3b, 0x13a4, 0x13c3, +0x13b8, 0x13d4, 0x13c5, 0x3b, 0x13a7, 0x13a6, 0x13b5, 0x3b, 0x13a0, 0x13c5, 0x13f1, 0x3b, 0x13a7, 0x13ec, 0x13c2, 0x3b, 0x13a0, 0x13c2, 0x13cd, 0x13ac, +0x13d8, 0x3b, 0x13d5, 0x13ad, 0x13b7, 0x13f1, 0x3b, 0x13ab, 0x13f0, 0x13c9, 0x13c2, 0x3b, 0x13a6, 0x13b6, 0x13c2, 0x3b, 0x13da, 0x13b5, 0x13cd, 0x13d7, +0x3b, 0x13da, 0x13c2, 0x13c5, 0x13d7, 0x3b, 0x13c5, 0x13d3, 0x13d5, 0x13c6, 0x3b, 0x13a5, 0x13cd, 0x13a9, 0x13f1, 0x3b, 0x13a4, 0x3b, 0x13a7, 0x3b, +0x13a0, 0x3b, 0x13a7, 0x3b, 0x13a0, 0x3b, 0x13d5, 0x3b, 0x13ab, 0x3b, 0x13a6, 0x3b, 0x13da, 0x3b, 0x13da, 0x3b, 0x13c5, 0x3b, 0x13a5, 0x3b, +0x7a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x76, 0x3b, 0x6d, 0x61, 0x72, 0x3b, 0x61, 0x76, 0x72, 0x3b, 0x6d, 0x65, 0x3b, 0x7a, +0x69, 0x6e, 0x3b, 0x7a, 0x69, 0x6c, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, +0x6f, 0x76, 0x3b, 0x64, 0x65, 0x73, 0x3b, 0x7a, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x66, 0x65, 0x76, 0x72, 0x69, 0x79, +0x65, 0x3b, 0x6d, 0x61, 0x72, 0x73, 0x3b, 0x61, 0x76, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x65, 0x3b, 0x7a, 0x69, 0x6e, 0x3b, +0x7a, 0x69, 0x6c, 0x79, 0x65, 0x3b, 0x6f, 0x75, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x61, 0x6d, 0x3b, 0x6f, 0x6b, 0x74, +0x6f, 0x62, 0x3b, 0x6e, 0x6f, 0x76, 0x61, 0x6d, 0x3b, 0x64, 0x65, 0x73, 0x61, 0x6d, 0x3b, 0x7a, 0x3b, 0x66, 0x3b, 0x6d, +0x3b, 0x61, 0x3b, 0x6d, 0x3b, 0x7a, 0x3b, 0x7a, 0x3b, 0x6f, 0x3b, 0x73, 0x3b, 0x6f, 0x3b, 0x6e, 0x3b, 0x64, 0x3b, 0x4d, +0x77, 0x65, 0x64, 0x69, 0x20, 0x4e, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, +0x20, 0x50, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x54, 0x61, 0x74, 0x75, 0x3b, +0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d, 0x77, 0x65, +0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, +0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x55, 0x6d, 0x6f, 0x3b, 0x4d, 0x77, 0x65, 0x64, +0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4d, 0x69, 0x76, 0x69, 0x6c, +0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, +0x20, 0x4d, 0x69, 0x74, 0x61, 0x74, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, +0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x63, 0x68, 0x65, 0x63, 0x68, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, +0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, +0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, +0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x55, 0x3b, 0x4d, 0x77, 0x65, 0x64, 0x69, 0x20, 0x77, 0x61, +0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, 0x20, 0x4e, 0x6e, 0x79, 0x61, 0x6e, 0x6f, 0x20, 0x6e, 0x61, +0x20, 0x4d, 0x3b, 0x46, 0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b, 0x4e, 0x61, 0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x65, 0x65, +0x6e, 0x64, 0x61, 0x3b, 0x49, 0x6b, 0xfa, 0x6d, 0x69, 0x3b, 0x49, 0x6e, 0x79, 0x61, 0x6d, 0x62, 0x61, 0x6c, 0x61, 0x3b, +0x49, 0x64, 0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4d, 0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b, 0x56, 0x268, 0x268, 0x72, +0x268, 0x3b, 0x53, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x49, 0x6e, 0x79, 0x69, 0x3b, 0x53, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x53, +0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x289, 0x66, 0xfa, 0x6e, 0x67, 0x61, 0x74, 0x268, 0x3b, 0x4b, 0x289, 0x6e, 0x61, +0x61, 0x6e, 0x268, 0x3b, 0x4b, 0x289, 0x6b, 0x65, 0x65, 0x6e, 0x64, 0x61, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6b, 0x75, 0x6d, +0x69, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x61, 0x6d, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x64, +0x77, 0x61, 0x61, 0x74, 0x61, 0x3b, 0x4b, 0x289, 0x6d, 0x289, 0x289, 0x6e, 0x63, 0x68, 0x268, 0x3b, 0x4b, 0x289, 0x76, 0x268, +0x268, 0x72, 0x268, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x61, 0x74, 0x289, 0x3b, 0x4b, 0x77, 0x69, 0x69, 0x6e, 0x79, 0x69, 0x3b, +0x4b, 0x289, 0x73, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0x4b, 0x289, 0x73, 0x61, 0x73, 0x61, 0x74, 0x289, 0x3b, 0x46, 0x3b, 0x4e, +0x3b, 0x4b, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x56, 0x3b, 0x53, 0x3b, 0x49, 0x3b, 0x53, 0x3b, 0x53, +0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x75, 0x3b, 0x4d, 0x61, 0x61, +0x3b, 0x4a, 0x75, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x75, 0x3b, 0x53, 0x65, 0x62, 0x3b, 0x4f, 0x6b, 0x69, +0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b, 0x46, +0x65, 0x62, 0x77, 0x61, 0x6c, 0x69, 0x79, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x69, 0x73, 0x69, 0x3b, 0x41, 0x70, 0x75, 0x6c, +0x69, 0x3b, 0x4d, 0x61, 0x61, 0x79, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x61, 0x79, +0x69, 0x3b, 0x41, 0x67, 0x75, 0x73, 0x69, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x62, 0x75, 0x74, 0x74, 0x65, 0x6d, 0x62, 0x61, +0x3b, 0x4f, 0x6b, 0x69, 0x74, 0x6f, 0x62, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, +0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x45, 0x70, +0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x67, 0x61, 0x3b, 0x53, 0x65, +0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x69, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, +0x69, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x45, 0x70, 0x72, +0x65, 0x6f, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, 0x4f, 0x67, +0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, +0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x69, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, +0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x4a, 0x3b, 0x4f, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, +0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x69, +0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x74, 0x75, +0x3b, 0x4e, 0x75, 0x76, 0x3b, 0x44, 0x69, 0x7a, 0x3b, 0x4a, 0x61, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x46, 0x65, 0x62, 0x72, +0x65, 0x72, 0x75, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x75, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x75, +0x3b, 0x4a, 0x75, 0x6e, 0x68, 0x75, 0x3b, 0x4a, 0x75, 0x6c, 0x68, 0x75, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x75, 0x3b, +0x53, 0x65, 0x74, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4f, 0x74, 0x75, 0x62, 0x72, 0x75, 0x3b, 0x4e, 0x75, 0x76, 0x65, +0x6e, 0x62, 0x72, 0x75, 0x3b, 0x44, 0x69, 0x7a, 0x65, 0x6e, 0x62, 0x72, 0x75, 0x3b, 0x4a, 0x41, 0x4e, 0x3b, 0x46, 0x45, +0x42, 0x3b, 0x4d, 0x41, 0x43, 0x3b, 0x128, 0x50, 0x55, 0x3b, 0x4d, 0x128, 0x128, 0x3b, 0x4e, 0x4a, 0x55, 0x3b, 0x4e, 0x4a, +0x52, 0x3b, 0x41, 0x47, 0x41, 0x3b, 0x53, 0x50, 0x54, 0x3b, 0x4f, 0x4b, 0x54, 0x3b, 0x4e, 0x4f, 0x56, 0x3b, 0x44, 0x45, +0x43, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x129, 0x3b, 0x46, 0x65, 0x62, 0x75, 0x72, 0x75, 0x61, 0x72, 0x129, 0x3b, +0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x128, 0x70, 0x75, 0x72, 0x169, 0x3b, 0x4d, 0x129, 0x129, 0x3b, 0x4e, 0x6a, 0x75, 0x6e, +0x69, 0x3b, 0x4e, 0x6a, 0x75, 0x72, 0x61, 0x129, 0x3b, 0x41, 0x67, 0x61, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, +0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x169, 0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, +0x44, 0x69, 0x63, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4a, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x128, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, +0x4e, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4d, 0x75, 0x6c, 0x3b, 0x4e, 0x67, 0x61, 0x74, +0x3b, 0x54, 0x61, 0x61, 0x3b, 0x49, 0x77, 0x6f, 0x3b, 0x4d, 0x61, 0x6d, 0x3b, 0x50, 0x61, 0x61, 0x3b, 0x4e, 0x67, 0x65, +0x3b, 0x52, 0x6f, 0x6f, 0x3b, 0x42, 0x75, 0x72, 0x3b, 0x45, 0x70, 0x65, 0x3b, 0x4b, 0x70, 0x74, 0x3b, 0x4b, 0x70, 0x61, +0x3b, 0x4d, 0x75, 0x6c, 0x67, 0x75, 0x6c, 0x3b, 0x4e, 0x67, 0x2019, 0x61, 0x74, 0x79, 0x61, 0x61, 0x74, 0x6f, 0x3b, 0x4b, +0x69, 0x70, 0x74, 0x61, 0x61, 0x6d, 0x6f, 0x3b, 0x49, 0x77, 0x6f, 0x6f, 0x74, 0x6b, 0x75, 0x75, 0x74, 0x3b, 0x4d, 0x61, +0x6d, 0x75, 0x75, 0x74, 0x3b, 0x50, 0x61, 0x61, 0x67, 0x69, 0x3b, 0x4e, 0x67, 0x2019, 0x65, 0x69, 0x79, 0x65, 0x65, 0x74, +0x3b, 0x52, 0x6f, 0x6f, 0x70, 0x74, 0x75, 0x69, 0x3b, 0x42, 0x75, 0x72, 0x65, 0x65, 0x74, 0x3b, 0x45, 0x70, 0x65, 0x65, +0x73, 0x6f, 0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x75, 0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x20, 0x74, 0x61, 0x61, 0x69, +0x3b, 0x4b, 0x69, 0x70, 0x73, 0x75, 0x75, 0x6e, 0x64, 0x65, 0x20, 0x6e, 0x65, 0x62, 0x6f, 0x20, 0x61, 0x65, 0x6e, 0x67, +0x2019, 0x3b, 0x4d, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x49, 0x3b, 0x4d, 0x3b, 0x50, 0x3b, 0x4e, 0x3b, 0x52, 0x3b, 0x42, 0x3b, +0x45, 0x3b, 0x4b, 0x3b, 0x4b, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x6e, 0x6e, 0x69, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x6e, 0x1c0, +0x67, 0xf4, 0x61, 0x62, 0x3b, 0x1c0, 0x4b, 0x68, 0x75, 0x75, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c3, 0x48, 0xf4, 0x61, +0x1c2, 0x6b, 0x68, 0x61, 0x69, 0x62, 0x3b, 0x1c3, 0x4b, 0x68, 0x61, 0x69, 0x74, 0x73, 0xe2, 0x62, 0x3b, 0x47, 0x61, 0x6d, +0x61, 0x1c0, 0x61, 0x65, 0x62, 0x3b, 0x1c2, 0x4b, 0x68, 0x6f, 0x65, 0x73, 0x61, 0x6f, 0x62, 0x3b, 0x41, 0x6f, 0x1c1, 0x6b, +0x68, 0x75, 0x75, 0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x54, 0x61, 0x72, 0x61, 0x1c0, 0x6b, 0x68, 0x75, 0x75, +0x6d, 0xfb, 0x1c1, 0x6b, 0x68, 0xe2, 0x62, 0x3b, 0x1c2, 0x4e, 0xfb, 0x1c1, 0x6e, 0xe2, 0x69, 0x73, 0x65, 0x62, 0x3b, 0x1c0, +0x48, 0x6f, 0x6f, 0x1c2, 0x67, 0x61, 0x65, 0x62, 0x3b, 0x48, 0xf4, 0x61, 0x73, 0x6f, 0x72, 0x65, 0x1c1, 0x6b, 0x68, 0xe2, +0x62, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0xe4, 0x62, 0x2e, 0x3b, 0x4d, 0xe4, 0x7a, 0x2e, 0x3b, 0x41, 0x70, 0x72, +0x2e, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x2e, 0x3b, 0x4a, 0x75, 0x6c, 0x2e, 0x3b, 0x4f, 0x75, 0x6a, 0x2e, +0x3b, 0x53, 0xe4, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, 0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, +0x3b, 0x4a, 0x61, 0x6e, 0x6e, 0x65, 0x77, 0x61, 0x3b, 0x46, 0xe4, 0x62, 0x72, 0x6f, 0x77, 0x61, 0x3b, 0x4d, 0xe4, 0xe4, +0x7a, 0x3b, 0x41, 0x70, 0x72, 0x65, 0x6c, 0x6c, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x75, 0x6e, 0x69, 0x3b, 0x4a, +0x75, 0x75, 0x6c, 0x69, 0x3b, 0x4f, 0x75, 0x6a, 0x6f, 0xdf, 0x3b, 0x53, 0x65, 0x70, 0x74, 0xe4, 0x6d, 0x62, 0x65, 0x72, +0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x68, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x44, +0x65, 0x7a, 0xe4, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0xe4, 0x62, 0x3b, 0x4d, 0xe4, 0x7a, 0x3b, +0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x4f, 0x75, 0x6a, 0x3b, +0x53, 0xe4, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x44, 0x61, 0x6c, 0x3b, +0x41, 0x72, 0xe1, 0x3b, 0x186, 0x25b, 0x6e, 0x3b, 0x44, 0x6f, 0x79, 0x3b, 0x4c, 0xe9, 0x70, 0x3b, 0x52, 0x6f, 0x6b, 0x3b, +0x53, 0xe1, 0x73, 0x3b, 0x42, 0x254, 0x301, 0x72, 0x3b, 0x4b, 0xfa, 0x73, 0x3b, 0x47, 0xed, 0x73, 0x3b, 0x53, 0x68, 0x289, +0x301, 0x3b, 0x4e, 0x74, 0x289, 0x301, 0x3b, 0x4f, 0x6c, 0x61, 0x64, 0x61, 0x6c, 0x289, 0x301, 0x3b, 0x41, 0x72, 0xe1, 0x74, +0x3b, 0x186, 0x25b, 0x6e, 0x268, 0x301, 0x254, 0x268, 0x14b, 0x254, 0x6b, 0x3b, 0x4f, 0x6c, 0x6f, 0x64, 0x6f, 0x79, 0xed, 0xf3, +0x72, 0xed, 0xea, 0x20, 0x69, 0x6e, 0x6b, 0xf3, 0x6b, 0xfa, 0xe2, 0x3b, 0x4f, 0x6c, 0x6f, 0x69, 0x6c, 0xe9, 0x70, 0x16b, +0x6e, 0x79, 0x12b, 0x113, 0x20, 0x69, 0x6e, 0x6b, 0xf3, 0x6b, 0xfa, 0xe2, 0x3b, 0x4b, 0xfa, 0x6a, 0xfa, 0x254, 0x72, 0x254, +0x6b, 0x3b, 0x4d, 0xf3, 0x72, 0x75, 0x73, 0xe1, 0x73, 0x69, 0x6e, 0x3b, 0x186, 0x6c, 0x254, 0x301, 0x268, 0x301, 0x62, 0x254, +0x301, 0x72, 0xe1, 0x72, 0x25b, 0x3b, 0x4b, 0xfa, 0x73, 0x68, 0xee, 0x6e, 0x3b, 0x4f, 0x6c, 0x67, 0xed, 0x73, 0x61, 0x6e, +0x3b, 0x50, 0x289, 0x73, 0x68, 0x289, 0x301, 0x6b, 0x61, 0x3b, 0x4e, 0x74, 0x289, 0x301, 0x14b, 0x289, 0x301, 0x73, 0x3b, 0x4a, +0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, +0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, +0x6f, 0x76, 0x3b, 0x44, 0x65, 0x73, 0x3b, 0x4a, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x63, 0x3b, 0x41, +0x70, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x67, 0x6f, 0x3b, 0x53, +0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x76, 0x3b, 0x44, 0x65, 0x63, 0x3b, 0x52, 0x61, 0x72, 0x3b, 0x4d, +0x75, 0x6b, 0x3b, 0x4b, 0x77, 0x61, 0x3b, 0x44, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x4d, 0x6f, 0x64, 0x3b, 0x4a, +0x6f, 0x6c, 0x3b, 0x50, 0x65, 0x64, 0x3b, 0x53, 0x6f, 0x6b, 0x3b, 0x54, 0x69, 0x62, 0x3b, 0x4c, 0x61, 0x62, 0x3b, 0x50, +0x6f, 0x6f, 0x3b, 0x4f, 0x72, 0x61, 0x72, 0x61, 0x3b, 0x4f, 0x6d, 0x75, 0x6b, 0x3b, 0x4f, 0x6b, 0x77, 0x61, 0x6d, 0x67, +0x2019, 0x3b, 0x4f, 0x64, 0x75, 0x6e, 0x67, 0x2019, 0x65, 0x6c, 0x3b, 0x4f, 0x6d, 0x61, 0x72, 0x75, 0x6b, 0x3b, 0x4f, 0x6d, +0x6f, 0x64, 0x6f, 0x6b, 0x2019, 0x6b, 0x69, 0x6e, 0x67, 0x2019, 0x6f, 0x6c, 0x3b, 0x4f, 0x6a, 0x6f, 0x6c, 0x61, 0x3b, 0x4f, +0x70, 0x65, 0x64, 0x65, 0x6c, 0x3b, 0x4f, 0x73, 0x6f, 0x6b, 0x6f, 0x73, 0x6f, 0x6b, 0x6f, 0x6d, 0x61, 0x3b, 0x4f, 0x74, +0x69, 0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6c, 0x61, 0x62, 0x6f, 0x72, 0x3b, 0x4f, 0x70, 0x6f, 0x6f, 0x3b, 0x52, 0x3b, 0x4d, +0x3b, 0x4b, 0x3b, 0x44, 0x3b, 0x4d, 0x3b, 0x4d, 0x3b, 0x4a, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x50, +0x3b, 0x17d, 0x61, 0x6e, 0x3b, 0x46, 0x65, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x77, 0x69, 0x3b, 0x4d, 0x65, 0x3b, +0x17d, 0x75, 0x77, 0x3b, 0x17d, 0x75, 0x79, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, +0x6f, 0x6f, 0x3b, 0x44, 0x65, 0x65, 0x3b, 0x17d, 0x61, 0x6e, 0x77, 0x69, 0x79, 0x65, 0x3b, 0x46, 0x65, 0x65, 0x77, 0x69, +0x72, 0x69, 0x79, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x69, 0x3b, 0x41, 0x77, 0x69, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, +0x3b, 0x17d, 0x75, 0x77, 0x65, 0x14b, 0x3b, 0x17d, 0x75, 0x79, 0x79, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x6b, 0x74, +0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x6f, 0x62, 0x75, 0x72, 0x3b, 0x4e, 0x6f, 0x6f, 0x77, 0x61, +0x6e, 0x62, 0x75, 0x72, 0x3b, 0x44, 0x65, 0x65, 0x73, 0x61, 0x6e, 0x62, 0x75, 0x72, 0x3b, 0x17d, 0x3b, 0x46, 0x3b, 0x4d, +0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x17d, 0x3b, 0x17d, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x44, +0x41, 0x43, 0x3b, 0x44, 0x41, 0x52, 0x3b, 0x44, 0x41, 0x44, 0x3b, 0x44, 0x41, 0x4e, 0x3b, 0x44, 0x41, 0x48, 0x3b, 0x44, +0x41, 0x55, 0x3b, 0x44, 0x41, 0x4f, 0x3b, 0x44, 0x41, 0x42, 0x3b, 0x44, 0x4f, 0x43, 0x3b, 0x44, 0x41, 0x50, 0x3b, 0x44, +0x47, 0x49, 0x3b, 0x44, 0x41, 0x47, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x63, 0x68, 0x69, 0x65, +0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, +0x6d, 0x61, 0x72, 0x20, 0x41, 0x64, 0x65, 0x6b, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x6e, 0x67, +0x2019, 0x77, 0x65, 0x6e, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x63, 0x68, 0x3b, 0x44, +0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x75, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, +0x61, 0x72, 0x20, 0x41, 0x62, 0x69, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, +0x62, 0x6f, 0x72, 0x6f, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x4f, 0x63, 0x68, 0x69, 0x6b, 0x6f, 0x3b, +0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, 0x70, 0x61, 0x72, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, +0x20, 0x67, 0x69, 0x20, 0x61, 0x63, 0x68, 0x69, 0x65, 0x6c, 0x3b, 0x44, 0x77, 0x65, 0x20, 0x6d, 0x61, 0x72, 0x20, 0x41, +0x70, 0x61, 0x72, 0x20, 0x67, 0x69, 0x20, 0x61, 0x72, 0x69, 0x79, 0x6f, 0x3b, 0x43, 0x3b, 0x52, 0x3b, 0x44, 0x3b, 0x4e, +0x3b, 0x42, 0x3b, 0x55, 0x3b, 0x42, 0x3b, 0x42, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x43, 0x3b, 0x50, 0x3b, 0x59, 0x65, 0x6e, +0x3b, 0x59, 0x65, 0x62, 0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x49, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x59, 0x75, 0x6e, +0x3b, 0x59, 0x75, 0x6c, 0x3b, 0x194, 0x75, 0x63, 0x3b, 0x43, 0x75, 0x74, 0x3b, 0x4b, 0x1e6d, 0x75, 0x3b, 0x4e, 0x77, 0x61, +0x3b, 0x44, 0x75, 0x6a, 0x3b, 0x59, 0x65, 0x6e, 0x6e, 0x61, 0x79, 0x65, 0x72, 0x3b, 0x59, 0x65, 0x62, 0x72, 0x61, 0x79, +0x65, 0x72, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x49, 0x62, 0x72, 0x69, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x79, 0x75, 0x3b, +0x59, 0x75, 0x6e, 0x79, 0x75, 0x3b, 0x59, 0x75, 0x6c, 0x79, 0x75, 0x7a, 0x3b, 0x194, 0x75, 0x63, 0x74, 0x3b, 0x43, 0x75, +0x74, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x4b, 0x1e6d, 0x75, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x77, 0x61, 0x6e, 0x62, 0x69, +0x72, 0x3b, 0x44, 0x75, 0x6a, 0x61, 0x6e, 0x62, 0x69, 0x72, 0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x4d, 0x3b, 0x49, 0x3b, 0x4d, +0x3b, 0x59, 0x3b, 0x59, 0x3b, 0x194, 0x3b, 0x43, 0x3b, 0x4b, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, +0x6c, 0x69, 0x3b, 0x46, 0x65, 0x62, 0x6c, 0x75, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x3b, 0x41, 0x70, +0x6c, 0x69, 0x6c, 0x69, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x4a, 0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x61, 0x69, 0x3b, +0x41, 0x67, 0x6f, 0x73, 0x74, 0x69, 0x3b, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, +0x62, 0x61, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x44, 0x65, 0x73, 0x65, 0x6d, 0x62, 0x61, 0x3b, 0x91c, +0x93e, 0x928, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92b, 0x947, 0x92c, 0x94d, 0x930, 0x941, 0x935, 0x93e, 0x930, 0x940, 0x3b, 0x92e, +0x93e, 0x930, 0x94d, 0x938, 0x3b, 0x90f, 0x92b, 0x94d, 0x930, 0x93f, 0x932, 0x3b, 0x92e, 0x947, 0x3b, 0x91c, 0x941, 0x928, 0x3b, 0x91c, +0x941, 0x932, 0x93e, 0x907, 0x3b, 0x906, 0x917, 0x938, 0x94d, 0x925, 0x3b, 0x938, 0x947, 0x92c, 0x925, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, +0x930, 0x3b, 0x905, 0x916, 0x925, 0x92c, 0x930, 0x3b, 0x928, 0x92c, 0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x926, 0x93f, 0x938, +0x947, 0x91c, 0x94d, 0x92c, 0x93c, 0x930, 0x3b, 0x91c, 0x3b, 0x92b, 0x947, 0x3b, 0x92e, 0x93e, 0x3b, 0x90f, 0x3b, 0x92e, 0x947, 0x3b, +0x91c, 0x941, 0x3b, 0x91c, 0x941, 0x3b, 0x906, 0x3b, 0x938, 0x947, 0x3b, 0x905, 0x3b, 0x928, 0x3b, 0x926, 0x93f, 0x3b, 0x456, 0x486, +0x430, 0x2de9, 0x487, 0x3b, 0x444, 0x435, 0x2de1, 0x487, 0x3b, 0x43c, 0x430, 0x2dec, 0x487, 0x3b, 0x430, 0x486, 0x43f, 0x2dec, 0x487, 0x3b, +0x43c, 0x430, 0xa675, 0x3b, 0x456, 0x486, 0xa64b, 0x2de9, 0x487, 0x3b, 0x456, 0x486, 0xa64b, 0x2de7, 0x487, 0x3b, 0x430, 0x486, 0x301, 0x475, +0x2de2, 0x487, 0x3b, 0x441, 0x435, 0x2deb, 0x487, 0x3b, 0x47b, 0x486, 0x43a, 0x2dee, 0x3b, 0x43d, 0x43e, 0x435, 0x2de8, 0x3b, 0x434, 0x435, +0x2de6, 0x487, 0x3b, 0x456, 0x486, 0x430, 0x43d, 0x43d, 0xa64b, 0x430, 0x301, 0x440, 0x457, 0x439, 0x3b, 0x444, 0x435, 0x432, 0x440, 0xa64b, +0x430, 0x301, 0x440, 0x457, 0x439, 0x3b, 0x43c, 0x430, 0x301, 0x440, 0x442, 0x44a, 0x3b, 0x430, 0x486, 0x43f, 0x440, 0x456, 0x301, 0x43b, +0x43b, 0x457, 0x439, 0x3b, 0x43c, 0x430, 0x301, 0x457, 0x439, 0x3b, 0x456, 0x486, 0xa64b, 0x301, 0x43d, 0x457, 0x439, 0x3b, 0x456, 0x486, +0xa64b, 0x301, 0x43b, 0x457, 0x439, 0x3b, 0x430, 0x486, 0x301, 0x475, 0x433, 0xa64b, 0x441, 0x442, 0x44a, 0x3b, 0x441, 0x435, 0x43f, 0x442, +0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x439, 0x3b, 0x47b, 0x486, 0x43a, 0x442, 0x461, 0x301, 0x432, 0x440, 0x457, 0x439, 0x3b, 0x43d, +0x43e, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x439, 0x3b, 0x434, 0x435, 0x43a, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x439, 0x3b, +0x406, 0x486, 0x3b, 0x424, 0x3b, 0x41c, 0x3b, 0x410, 0x486, 0x3b, 0x41c, 0x3b, 0x406, 0x486, 0x3b, 0x406, 0x486, 0x3b, 0x410, 0x486, +0x3b, 0x421, 0x3b, 0x47a, 0x486, 0x3b, 0x41d, 0x3b, 0x414, 0x3b, 0x456, 0x486, 0x430, 0x43d, 0x43d, 0xa64b, 0x430, 0x301, 0x440, 0x457, +0x430, 0x3b, 0x444, 0x435, 0x432, 0x440, 0xa64b, 0x430, 0x301, 0x440, 0x457, 0x430, 0x3b, 0x43c, 0x430, 0x301, 0x440, 0x442, 0x430, 0x3b, +0x430, 0x486, 0x43f, 0x440, 0x456, 0x301, 0x43b, 0x43b, 0x457, 0x430, 0x3b, 0x43c, 0x430, 0x301, 0x457, 0x430, 0x3b, 0x456, 0x486, 0xa64b, +0x301, 0x43d, 0x457, 0x430, 0x3b, 0x456, 0x486, 0xa64b, 0x301, 0x43b, 0x457, 0x430, 0x3b, 0x430, 0x486, 0x301, 0x475, 0x433, 0xa64b, 0x441, +0x442, 0x430, 0x3b, 0x441, 0x435, 0x43f, 0x442, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x47b, 0x486, 0x43a, 0x442, 0x461, +0x301, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x43d, 0x43e, 0x435, 0x301, 0x43c, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x434, 0x435, 0x43a, 0x435, +0x301, 0x43c, 0x432, 0x440, 0x457, 0x430, 0x3b, 0x43, 0x69, 0x6f, 0x3b, 0x4c, 0x75, 0x69, 0x3b, 0x4c, 0x75, 0x73, 0x3b, 0x4d, +0x75, 0x75, 0x3b, 0x4c, 0x75, 0x6d, 0x3b, 0x4c, 0x75, 0x66, 0x3b, 0x4b, 0x61, 0x62, 0x3b, 0x4c, 0x75, 0x73, 0x68, 0x3b, +0x4c, 0x75, 0x74, 0x3b, 0x4c, 0x75, 0x6e, 0x3b, 0x4b, 0x61, 0x73, 0x3b, 0x43, 0x69, 0x73, 0x3b, 0x43, 0x69, 0x6f, 0x6e, +0x67, 0x6f, 0x3b, 0x4c, 0xf9, 0x69, 0x73, 0x68, 0x69, 0x3b, 0x4c, 0x75, 0x73, 0xf2, 0x6c, 0x6f, 0x3b, 0x4d, 0xf9, 0x75, +0x79, 0xe0, 0x3b, 0x4c, 0x75, 0x6d, 0xf9, 0x6e, 0x67, 0xf9, 0x6c, 0xf9, 0x3b, 0x4c, 0x75, 0x66, 0x75, 0x69, 0x6d, 0x69, +0x3b, 0x4b, 0x61, 0x62, 0xe0, 0x6c, 0xe0, 0x73, 0x68, 0xec, 0x70, 0xf9, 0x3b, 0x4c, 0xf9, 0x73, 0x68, 0xec, 0x6b, 0xe0, +0x3b, 0x4c, 0x75, 0x74, 0x6f, 0x6e, 0x67, 0x6f, 0x6c, 0x6f, 0x3b, 0x4c, 0x75, 0x6e, 0x67, 0xf9, 0x64, 0x69, 0x3b, 0x4b, +0x61, 0x73, 0x77, 0xe8, 0x6b, 0xe8, 0x73, 0xe8, 0x3b, 0x43, 0x69, 0x73, 0x77, 0xe0, 0x3b, 0x43, 0x3b, 0x4c, 0x3b, 0x4c, +0x3b, 0x4d, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4c, 0x3b, 0x4b, 0x3b, 0x43, 0x3b, 0x4a, +0x61, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, 0x4d, 0xe4, 0x65, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, +0x75, 0x6e, 0x3b, 0x4a, 0x75, 0x6c, 0x3b, 0x41, 0x75, 0x67, 0x3b, 0x53, 0x65, 0x70, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, +0x6f, 0x76, 0x3b, 0x44, 0x65, 0x7a, 0x3b, 0x4a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x46, 0x65, 0x62, 0x72, 0x75, 0x61, +0x72, 0x3b, 0x4d, 0xe4, 0x65, 0x72, 0x7a, 0x3b, 0x41, 0x62, 0x72, 0xeb, 0x6c, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, +0x75, 0x6e, 0x69, 0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x53, 0x65, 0x70, 0x74, +0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, +0x65, 0x72, 0x3b, 0x44, 0x65, 0x7a, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x4a, 0x61, 0x6e, 0x2e, 0x3b, 0x46, 0x65, 0x62, +0x2e, 0x3b, 0x4d, 0xe4, 0x65, 0x2e, 0x3b, 0x41, 0x62, 0x72, 0x2e, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x4a, 0x75, 0x6e, 0x69, +0x3b, 0x4a, 0x75, 0x6c, 0x69, 0x3b, 0x41, 0x75, 0x67, 0x2e, 0x3b, 0x53, 0x65, 0x70, 0x2e, 0x3b, 0x4f, 0x6b, 0x74, 0x2e, +0x3b, 0x4e, 0x6f, 0x76, 0x2e, 0x3b, 0x44, 0x65, 0x7a, 0x2e, 0x3b, 0x6e, 0xf9, 0x6d, 0x3b, 0x6b, 0x268, 0x7a, 0x3b, 0x74, +0x268, 0x64, 0x3b, 0x74, 0x61, 0x61, 0x3b, 0x73, 0x65, 0x65, 0x3b, 0x6e, 0x7a, 0x75, 0x3b, 0x64, 0x75, 0x6d, 0x3b, 0x66, +0x254, 0x65, 0x3b, 0x64, 0x7a, 0x75, 0x3b, 0x6c, 0x254, 0x6d, 0x3b, 0x6b, 0x61, 0x61, 0x3b, 0x66, 0x77, 0x6f, 0x3b, 0x6e, +0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6e, 0xf9, 0x6d, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6b, +0x197, 0x300, 0x7a, 0xf9, 0x294, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197, 0x300, 0x64, 0x289, 0x300, +0x67, 0x68, 0xe0, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x1ce, 0x61, 0x66, 0x289, 0x304, 0x67, 0x68, +0x101, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0xe8, 0x73, 0xe8, 0x65, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, +0x300, 0x6e, 0x7a, 0xf9, 0x67, 0x68, 0xf2, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x64, 0xf9, 0x6d, 0x6c, +0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x6b, 0x77, 0xee, 0x66, 0x254, 0x300, 0x65, 0x3b, 0x6e, 0x64, +0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x74, 0x197, 0x300, 0x66, 0x289, 0x300, 0x67, 0x68, 0xe0, 0x64, 0x7a, 0x75, 0x67, 0x68, +0xf9, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x67, 0x68, 0x1d4, 0x75, 0x77, 0x65, 0x6c, 0x254, 0x300, 0x6d, +0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0x254, 0x300, 0x63, 0x68, 0x77, 0x61, 0x294, 0xe0, 0x6b, 0x61, 0x61, 0x20, 0x77, +0x6f, 0x3b, 0x6e, 0x64, 0x7a, 0x254, 0x300, 0x14b, 0xe8, 0x66, 0x77, 0xf2, 0x6f, 0x3b, 0x6e, 0x3b, 0x6b, 0x3b, 0x74, 0x3b, +0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6b, 0x3b, 0x66, 0x3b, 0x64, 0x3b, 0x6c, 0x3b, 0x63, 0x3b, 0x66, 0x3b, 0x6b, 0x254, +0x6e, 0x3b, 0x6d, 0x61, 0x63, 0x3b, 0x6d, 0x61, 0x74, 0x3b, 0x6d, 0x74, 0x6f, 0x3b, 0x6d, 0x70, 0x75, 0x3b, 0x68, 0x69, +0x6c, 0x3b, 0x6e, 0x6a, 0x65, 0x3b, 0x68, 0x69, 0x6b, 0x3b, 0x64, 0x69, 0x70, 0x3b, 0x62, 0x69, 0x6f, 0x3b, 0x6d, 0x61, +0x79, 0x3b, 0x6c, 0x69, 0x253, 0x3b, 0x4b, 0x254, 0x6e, 0x64, 0x254, 0x14b, 0x3b, 0x4d, 0xe0, 0x63, 0x25b, 0x302, 0x6c, 0x3b, +0x4d, 0xe0, 0x74, 0xf9, 0x6d, 0x62, 0x3b, 0x4d, 0xe0, 0x74, 0x6f, 0x70, 0x3b, 0x4d, 0x300, 0x70, 0x75, 0x79, 0x25b, 0x3b, +0x48, 0xec, 0x6c, 0xf2, 0x6e, 0x64, 0x25b, 0x300, 0x3b, 0x4e, 0x6a, 0xe8, 0x62, 0xe0, 0x3b, 0x48, 0xec, 0x6b, 0x61, 0x14b, +0x3b, 0x44, 0xec, 0x70, 0x254, 0x300, 0x73, 0x3b, 0x42, 0xec, 0xf2, 0xf4, 0x6d, 0x3b, 0x4d, 0xe0, 0x79, 0x25b, 0x73, 0xe8, +0x70, 0x3b, 0x4c, 0xec, 0x62, 0x75, 0x79, 0x20, 0x6c, 0x69, 0x20, 0x144, 0x79, 0xe8, 0x65, 0x3b, 0x6b, 0x3b, 0x6d, 0x3b, +0x6d, 0x3b, 0x6d, 0x3b, 0x6d, 0x3b, 0x68, 0x3b, 0x6e, 0x3b, 0x68, 0x3b, 0x64, 0x3b, 0x62, 0x3b, 0x6d, 0x3b, 0x6c, 0x3b, +0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, 0x6e, 0x3b, 0x73, 0x254, 0x14b, 0x3b, 0x64, 0x69, 0x253, 0x3b, 0x65, 0x6d, 0x69, 0x3b, +0x65, 0x73, 0x254, 0x3b, 0x6d, 0x61, 0x64, 0x3b, 0x64, 0x69, 0x14b, 0x3b, 0x6e, 0x79, 0x25b, 0x74, 0x3b, 0x6d, 0x61, 0x79, +0x3b, 0x74, 0x69, 0x6e, 0x3b, 0x65, 0x6c, 0xe1, 0x3b, 0x64, 0x69, 0x6d, 0x254, 0x301, 0x64, 0x69, 0x3b, 0x14b, 0x67, 0x254, +0x6e, 0x64, 0x25b, 0x3b, 0x73, 0x254, 0x14b, 0x25b, 0x3b, 0x64, 0x69, 0x253, 0xe1, 0x253, 0xe1, 0x3b, 0x65, 0x6d, 0x69, 0x61, +0x73, 0x65, 0x6c, 0x65, 0x3b, 0x65, 0x73, 0x254, 0x70, 0x25b, 0x73, 0x254, 0x70, 0x25b, 0x3b, 0x6d, 0x61, 0x64, 0x69, 0x253, +0x25b, 0x301, 0x64, 0xed, 0x253, 0x25b, 0x301, 0x3b, 0x64, 0x69, 0x14b, 0x67, 0x69, 0x6e, 0x64, 0x69, 0x3b, 0x6e, 0x79, 0x25b, +0x74, 0x25b, 0x6b, 0x69, 0x3b, 0x6d, 0x61, 0x79, 0xe9, 0x73, 0x25b, 0x301, 0x3b, 0x74, 0x69, 0x6e, 0xed, 0x6e, 0xed, 0x3b, +0x65, 0x6c, 0xe1, 0x14b, 0x67, 0x25b, 0x301, 0x3b, 0x64, 0x3b, 0x14b, 0x3b, 0x73, 0x3b, 0x64, 0x3b, 0x65, 0x3b, 0x65, 0x3b, +0x6d, 0x3b, 0x64, 0x3b, 0x6e, 0x3b, 0x6d, 0x3b, 0x74, 0x3b, 0x65, 0x3b, 0x53, 0x61, 0x3b, 0x46, 0x65, 0x3b, 0x4d, 0x61, +0x3b, 0x41, 0x62, 0x3b, 0x4d, 0x65, 0x3b, 0x53, 0x75, 0x3b, 0x53, 0xfa, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x3b, 0x4f, +0x6b, 0x3b, 0x4e, 0x6f, 0x3b, 0x44, 0x65, 0x3b, 0x53, 0x61, 0x6e, 0x76, 0x69, 0x65, 0x3b, 0x46, 0xe9, 0x62, 0x69, 0x72, +0x69, 0x65, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x3b, 0x41, 0x62, 0x75, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x65, 0x65, 0x3b, 0x53, +0x75, 0x65, 0x14b, 0x3b, 0x53, 0xfa, 0x75, 0x79, 0x65, 0x65, 0x3b, 0x55, 0x74, 0x3b, 0x53, 0x65, 0x74, 0x74, 0x65, 0x6d, +0x62, 0x61, 0x72, 0x3b, 0x4f, 0x6b, 0x74, 0x6f, 0x62, 0x61, 0x72, 0x3b, 0x4e, 0x6f, 0x76, 0x65, 0x6d, 0x62, 0x61, 0x72, +0x3b, 0x44, 0x69, 0x73, 0x61, 0x6d, 0x62, 0x61, 0x72, 0x3b, 0x53, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, +0x53, 0x3b, 0x53, 0x3b, 0x55, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b, 0x6e, 0x67, 0x6f, 0x3b, 0x6e, 0x67, +0x62, 0x3b, 0x6e, 0x67, 0x6c, 0x3b, 0x6e, 0x67, 0x6e, 0x3b, 0x6e, 0x67, 0x74, 0x3b, 0x6e, 0x67, 0x73, 0x3b, 0x6e, 0x67, +0x7a, 0x3b, 0x6e, 0x67, 0x6d, 0x3b, 0x6e, 0x67, 0x65, 0x3b, 0x6e, 0x67, 0x61, 0x3b, 0x6e, 0x67, 0x61, 0x64, 0x3b, 0x6e, +0x67, 0x61, 0x62, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6f, 0x73, 0xfa, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x62, 0x25b, +0x30c, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6c, 0xe1, 0x6c, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x6e, 0x79, 0x69, +0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x74, 0xe1, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x73, 0x61, +0x6d, 0x259, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x7a, 0x61, 0x6d, 0x67, 0x62, 0xe1, 0x6c, 0x61, 0x3b, 0x6e, +0x67, 0x254, 0x6e, 0x20, 0x6d, 0x77, 0x6f, 0x6d, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x65, 0x62, 0x75, 0x6c, 0xfa, 0x3b, +0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, +0x61, 0x69, 0x20, 0x64, 0x7a, 0x69, 0xe1, 0x3b, 0x6e, 0x67, 0x254, 0x6e, 0x20, 0x61, 0x77, 0xf3, 0x6d, 0x20, 0x61, 0x69, +0x20, 0x62, 0x25b, 0x30c, 0x3b, 0x6f, 0x3b, 0x62, 0x3b, 0x6c, 0x3b, 0x6e, 0x3b, 0x74, 0x3b, 0x73, 0x3b, 0x7a, 0x3b, 0x6d, +0x3b, 0x65, 0x3b, 0x61, 0x3b, 0x64, 0x3b, 0x62, 0x3b, 0x14b, 0x31, 0x3b, 0x14b, 0x32, 0x3b, 0x14b, 0x33, 0x3b, 0x14b, 0x34, +0x3b, 0x14b, 0x35, 0x3b, 0x14b, 0x36, 0x3b, 0x14b, 0x37, 0x3b, 0x14b, 0x38, 0x3b, 0x14b, 0x39, 0x3b, 0x14b, 0x31, 0x30, 0x3b, +0x14b, 0x31, 0x31, 0x3b, 0x14b, 0x31, 0x32, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x20, 0x6e, 0x74, 0x254, 0x301, 0x6e, +0x74, 0x254, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x14b, 0x77, 0xed, +0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x72, 0xe1, 0xe1, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, +0x69, 0x6e, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x3b, 0x14b, 0x77, 0xed, +0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x66, 0x254, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, +0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x62, 0x25b, 0x25b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, +0x61, 0x72, 0x61, 0x61, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x74, 0xe1, 0x61, 0x6e, 0x69, 0x6e, +0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x3b, 0x14b, 0x77, 0xed, 0xed, 0x20, +0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x20, 0x64, 0x69, 0x20, 0x62, 0x254, 0x301, 0x6b, 0x3b, 0x14b, 0x77, 0xed, +0xed, 0x20, 0x61, 0x6b, 0x1dd, 0x20, 0x6e, 0x74, 0x25b, 0x6b, 0x20, 0x64, 0x69, 0x20, 0x62, 0x25b, 0x301, 0x25b, 0x3b, 0x4b, +0x77, 0x61, 0x3b, 0x55, 0x6e, 0x61, 0x3b, 0x52, 0x61, 0x72, 0x3b, 0x43, 0x68, 0x65, 0x3b, 0x54, 0x68, 0x61, 0x3b, 0x4d, +0x6f, 0x63, 0x3b, 0x53, 0x61, 0x62, 0x3b, 0x4e, 0x61, 0x6e, 0x3b, 0x54, 0x69, 0x73, 0x3b, 0x4b, 0x75, 0x6d, 0x3b, 0x4d, +0x6f, 0x6a, 0x3b, 0x59, 0x65, 0x6c, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x77, 0x61, 0x6e, +0x7a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x61, 0x79, 0x65, 0x6c, 0x69, 0x3b, +0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x65, 0x72, 0x61, 0x72, 0x75, 0x3b, 0x4d, 0x77, 0x65, +0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x65, 0x63, 0x68, 0x65, 0x73, 0x68, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, +0x69, 0x20, 0x77, 0x6f, 0x20, 0x75, 0x6e, 0x65, 0x74, 0x68, 0x61, 0x6e, 0x75, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, +0x77, 0x6f, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x75, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x63, 0x68, 0x61, 0x3b, 0x4d, 0x77, +0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x73, 0x61, 0x62, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, +0x20, 0x6e, 0x61, 0x6e, 0x65, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x74, 0x69, 0x73, 0x61, 0x3b, +0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x3b, 0x4d, 0x77, 0x65, 0x72, 0x69, 0x20, +0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x6d, 0x6f, 0x6a, 0x61, 0x3b, 0x4d, 0x77, 0x65, 0x72, +0x69, 0x20, 0x77, 0x6f, 0x20, 0x6b, 0x75, 0x6d, 0x69, 0x20, 0x6e, 0x61, 0x20, 0x79, 0x65, 0x6c, 0x2019, 0x6c, 0x69, 0x3b, +0x4b, 0x3b, 0x55, 0x3b, 0x52, 0x3b, 0x43, 0x3b, 0x54, 0x3b, 0x4d, 0x3b, 0x53, 0x3b, 0x4e, 0x3b, 0x54, 0x3b, 0x4b, 0x3b, +0x4d, 0x3b, 0x59, 0x3b, 0x46, 0x4c, 0x4f, 0x3b, 0x43, 0x4c, 0x41, 0x3b, 0x43, 0x4b, 0x49, 0x3b, 0x46, 0x4d, 0x46, 0x3b, +0x4d, 0x41, 0x44, 0x3b, 0x4d, 0x42, 0x49, 0x3b, 0x4d, 0x4c, 0x49, 0x3b, 0x4d, 0x41, 0x4d, 0x3b, 0x46, 0x44, 0x45, 0x3b, +0x46, 0x4d, 0x55, 0x3b, 0x46, 0x47, 0x57, 0x3b, 0x46, 0x59, 0x55, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4c, 0x6f, 0x6f, 0x3b, +0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, 0x6c, 0x61, 0x14b, 0x6e, 0x65, 0x3b, 0x43, 0x6f, 0x6b, 0x63, 0x77, 0x61, 0x6b, +0x6c, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x4d, 0x61, 0x72, 0x66, 0x6f, 0x6f, 0x3b, 0x4d, 0x61, 0x64, 0x1dd, 0x1dd, +0x75, 0x75, 0x74, 0x1dd, 0x62, 0x69, 0x6a, 0x61, 0x14b, 0x3b, 0x4d, 0x61, 0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x66, +0x61, 0x68, 0x62, 0x69, 0x69, 0x3b, 0x4d, 0x61, 0x6d, 0x1dd, 0x14b, 0x67, 0x77, 0xe3, 0x61, 0x6c, 0x69, 0x69, 0x3b, 0x4d, +0x61, 0x64, 0x1dd, 0x6d, 0x62, 0x69, 0x69, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x44, 0x1dd, 0x253, 0x6c, 0x69, 0x69, 0x3b, 0x46, +0x129, 0x69, 0x20, 0x4d, 0x75, 0x6e, 0x64, 0x61, 0x14b, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x47, 0x77, 0x61, 0x68, 0x6c, 0x6c, +0x65, 0x3b, 0x46, 0x129, 0x69, 0x20, 0x59, 0x75, 0x72, 0x75, 0x3b, 0x4f, 0x3b, 0x41, 0x3b, 0x49, 0x3b, 0x46, 0x3b, 0x44, +0x3b, 0x42, 0x3b, 0x4c, 0x3b, 0x4d, 0x3b, 0x45, 0x3b, 0x55, 0x3b, 0x57, 0x3b, 0x59, 0x3b, 0x6e, 0x67, 0x31, 0x3b, 0x6e, +0x67, 0x32, 0x3b, 0x6e, 0x67, 0x33, 0x3b, 0x6e, 0x67, 0x34, 0x3b, 0x6e, 0x67, 0x35, 0x3b, 0x6e, 0x67, 0x36, 0x3b, 0x6e, +0x67, 0x37, 0x3b, 0x6e, 0x67, 0x38, 0x3b, 0x6e, 0x67, 0x39, 0x3b, 0x6e, 0x67, 0x31, 0x30, 0x3b, 0x6e, 0x67, 0x31, 0x31, +0x3b, 0x6b, 0x72, 0x69, 0x73, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x6d, 0x61, 0x74, 0xe1, 0x68, 0x72, 0x61, 0x3b, +0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6d, 0x62, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6c, 0x61, +0x6c, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x6e, 0x61, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x74, +0x61, 0x6e, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x144, 0x74, 0x75, 0xf3, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, +0x68, 0x25b, 0x6d, 0x62, 0x75, 0x25b, 0x72, 0xed, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x6c, 0x254, 0x6d, 0x62, 0x69, +0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x72, 0x25b, 0x62, 0x76, 0x75, 0xe2, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, +0x77, 0x75, 0x6d, 0x3b, 0x6e, 0x67, 0x77, 0x25b, 0x6e, 0x20, 0x77, 0x75, 0x6d, 0x20, 0x6e, 0x61, 0x76, 0x1d4, 0x72, 0x3b, +0x6b, 0x72, 0xed, 0x73, 0x69, 0x6d, 0x69, 0x6e, 0x3b, 0x54, 0x69, 0x6f, 0x70, 0x3b, 0x50, 0x25b, 0x74, 0x3b, 0x44, 0x75, +0x254, 0x331, 0x254, 0x331, 0x3b, 0x47, 0x75, 0x61, 0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x3b, 0x4b, 0x6f, 0x72, 0x3b, 0x50, 0x61, +0x79, 0x3b, 0x54, 0x68, 0x6f, 0x6f, 0x3b, 0x54, 0x25b, 0x25b, 0x3b, 0x4c, 0x61, 0x61, 0x3b, 0x4b, 0x75, 0x72, 0x3b, 0x54, +0x69, 0x64, 0x3b, 0x54, 0x69, 0x6f, 0x70, 0x20, 0x74, 0x68, 0x61, 0x72, 0x20, 0x70, 0x25b, 0x74, 0x3b, 0x50, 0x25b, 0x74, +0x3b, 0x44, 0x75, 0x254, 0x331, 0x254, 0x331, 0x14b, 0x3b, 0x47, 0x75, 0x61, 0x6b, 0x3b, 0x44, 0x75, 0xe4, 0x74, 0x3b, 0x4b, +0x6f, 0x72, 0x6e, 0x79, 0x6f, 0x6f, 0x74, 0x3b, 0x50, 0x61, 0x79, 0x20, 0x79, 0x69, 0x65, 0x331, 0x74, 0x6e, 0x69, 0x3b, +0x54, 0x68, 0x6f, 0x331, 0x6f, 0x331, 0x72, 0x3b, 0x54, 0x25b, 0x25b, 0x72, 0x3b, 0x4c, 0x61, 0x61, 0x74, 0x68, 0x3b, 0x4b, +0x75, 0x72, 0x3b, 0x54, 0x69, 0x6f, 0x331, 0x70, 0x20, 0x69, 0x6e, 0x20, 0x64, 0x69, 0x331, 0x69, 0x331, 0x74, 0x3b, 0x54, +0x3b, 0x50, 0x3b, 0x44, 0x3b, 0x47, 0x3b, 0x44, 0x3b, 0x4b, 0x3b, 0x50, 0x3b, 0x54, 0x3b, 0x54, 0x3b, 0x4c, 0x3b, 0x4b, +0x3b, 0x54, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x3b, 0x41e, 0x43b, 0x443, 0x43d, 0x3b, 0x41a, 0x43b, 0x43d, 0x3b, 0x41c, 0x441, 0x443, +0x3b, 0x42b, 0x430, 0x43c, 0x3b, 0x411, 0x44d, 0x441, 0x3b, 0x41e, 0x442, 0x439, 0x3b, 0x410, 0x442, 0x440, 0x3b, 0x411, 0x43b, 0x495, +0x3b, 0x410, 0x43b, 0x442, 0x3b, 0x421, 0x44d, 0x442, 0x3b, 0x410, 0x445, 0x441, 0x3b, 0x442, 0x43e, 0x445, 0x441, 0x443, 0x43d, 0x43d, +0x44c, 0x443, 0x3b, 0x43e, 0x43b, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b, 0x43a, 0x443, 0x43b, 0x443, 0x43d, 0x20, 0x442, 0x443, 0x442, +0x430, 0x440, 0x3b, 0x43c, 0x443, 0x443, 0x441, 0x20, 0x443, 0x441, 0x442, 0x430, 0x440, 0x3b, 0x44b, 0x430, 0x43c, 0x20, 0x44b, 0x439, +0x430, 0x3b, 0x431, 0x44d, 0x441, 0x20, 0x44b, 0x439, 0x430, 0x3b, 0x43e, 0x442, 0x20, 0x44b, 0x439, 0x430, 0x3b, 0x430, 0x442, 0x44b, +0x440, 0x434, 0x44c, 0x44b, 0x445, 0x20, 0x44b, 0x439, 0x430, 0x3b, 0x431, 0x430, 0x43b, 0x430, 0x495, 0x430, 0x43d, 0x20, 0x44b, 0x439, +0x430, 0x3b, 0x430, 0x43b, 0x442, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x441, 0x44d, 0x442, 0x438, 0x43d, 0x43d, 0x44c, 0x438, 0x3b, +0x430, 0x445, 0x441, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x422, 0x3b, 0x41e, 0x3b, 0x41a, 0x3b, 0x41c, 0x3b, 0x42b, 0x3b, 0x411, +0x3b, 0x41e, 0x3b, 0x410, 0x3b, 0x411, 0x3b, 0x410, 0x3b, 0x421, 0x3b, 0x410, 0x3b, 0x422, 0x43e, 0x445, 0x441, 0x443, 0x43d, 0x43d, +0x44c, 0x443, 0x3b, 0x41e, 0x43b, 0x443, 0x43d, 0x43d, 0x44c, 0x443, 0x3b, 0x41a, 0x443, 0x43b, 0x443, 0x43d, 0x20, 0x442, 0x443, 0x442, +0x430, 0x440, 0x3b, 0x41c, 0x443, 0x443, 0x441, 0x20, 0x443, 0x441, 0x442, 0x430, 0x440, 0x3b, 0x42b, 0x430, 0x43c, 0x20, 0x44b, 0x439, +0x44b, 0x43d, 0x3b, 0x411, 0x44d, 0x441, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x41e, 0x442, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, +0x410, 0x442, 0x44b, 0x440, 0x434, 0x44c, 0x44b, 0x445, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x411, 0x430, 0x43b, 0x430, 0x495, 0x430, +0x43d, 0x20, 0x44b, 0x439, 0x44b, 0x43d, 0x3b, 0x410, 0x43b, 0x442, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x421, 0x44d, 0x442, 0x438, +0x43d, 0x43d, 0x44c, 0x438, 0x3b, 0x430, 0x445, 0x441, 0x44b, 0x43d, 0x43d, 0x44c, 0x44b, 0x3b, 0x4d, 0x75, 0x70, 0x3b, 0x4d, 0x77, +0x69, 0x3b, 0x4d, 0x73, 0x68, 0x3b, 0x4d, 0x75, 0x6e, 0x3b, 0x4d, 0x61, 0x67, 0x3b, 0x4d, 0x75, 0x6a, 0x3b, 0x4d, 0x73, +0x70, 0x3b, 0x4d, 0x70, 0x67, 0x3b, 0x4d, 0x79, 0x65, 0x3b, 0x4d, 0x6f, 0x6b, 0x3b, 0x4d, 0x75, 0x73, 0x3b, 0x4d, 0x75, +0x68, 0x3b, 0x4d, 0x75, 0x70, 0x61, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x77, 0x61, 0x3b, 0x4d, 0x77, 0x69, 0x74, 0x6f, +0x70, 0x65, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x69, 0x3b, 0x4d, 0x75, +0x73, 0x68, 0x65, 0x6e, 0x64, 0x65, 0x20, 0x4d, 0x61, 0x67, 0x61, 0x6c, 0x69, 0x3b, 0x4d, 0x75, 0x6a, 0x69, 0x6d, 0x62, +0x69, 0x3b, 0x4d, 0x75, 0x73, 0x68, 0x69, 0x70, 0x65, 0x70, 0x6f, 0x3b, 0x4d, 0x75, 0x70, 0x75, 0x67, 0x75, 0x74, 0x6f, +0x3b, 0x4d, 0x75, 0x6e, 0x79, 0x65, 0x6e, 0x73, 0x65, 0x3b, 0x4d, 0x6f, 0x6b, 0x68, 0x75, 0x3b, 0x4d, 0x75, 0x73, 0x6f, +0x6e, 0x67, 0x61, 0x6e, 0x64, 0x65, 0x6d, 0x62, 0x77, 0x65, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x61, 0x6e, 0x6f, 0x3b, 0xa5a8, +0xa595, 0xa51e, 0x3b, 0xa552, 0xa561, 0x3b, 0xa57e, 0xa5ba, 0x3b, 0xa5a2, 0xa595, 0x3b, 0xa591, 0xa571, 0x3b, 0xa5b1, 0xa60b, 0x3b, 0xa5b1, 0xa55e, +0x3b, 0xa5db, 0xa515, 0x3b, 0xa562, 0xa54c, 0x3b, 0xa56d, 0xa583, 0x3b, 0xa51e, 0xa60b, 0x3b, 0xa5a8, 0xa595, 0xa5cf, 0x3b, 0xa5a8, 0xa595, 0x20, +0xa56a, 0xa574, 0x20, 0xa51e, 0xa500, 0xa56e, 0xa54a, 0x3b, 0xa552, 0xa561, 0xa59d, 0xa595, 0x3b, 0xa57e, 0xa5ba, 0x3b, 0xa5a2, 0xa595, 0x3b, 0xa591, +0xa571, 0x3b, 0xa5b1, 0xa60b, 0x3b, 0xa5b1, 0xa55e, 0xa524, 0x3b, 0xa5db, 0xa515, 0x3b, 0xa562, 0xa54c, 0x3b, 0xa56d, 0xa583, 0x3b, 0xa51e, 0xa60b, +0xa554, 0xa57f, 0x20, 0xa578, 0xa583, 0xa5cf, 0x3b, 0xa5a8, 0xa595, 0x20, 0xa56a, 0xa574, 0x20, 0xa5cf, 0xa5ba, 0xa56e, 0xa54a, 0x3b, 0x6c, 0x75, +0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6b, 0x65, 0x6d, 0xe3, 0x3b, 0x253, 0x61, 0x6e, 0x64, 0x61, 0x253, 0x75, 0x3b, 0x76, 0x254, +0x254, 0x3b, 0x66, 0x75, 0x6c, 0x75, 0x3b, 0x67, 0x6f, 0x6f, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x6b, 0x254, 0x6e, 0x64, 0x65, +0x3b, 0x73, 0x61, 0x61, 0x68, 0x3b, 0x67, 0x61, 0x6c, 0x6f, 0x3b, 0x6b, 0x65, 0x6e, 0x70, 0x6b, 0x61, 0x74, 0x6f, 0x20, +0x253, 0x6f, 0x6c, 0x6f, 0x6c, 0x254, 0x3b, 0x6c, 0x75, 0x75, 0x6b, 0x61, 0x6f, 0x20, 0x6c, 0x254, 0x6d, 0x61, 0x3b, 0x4a, +0x65, 0x6e, 0x3b, 0x48, 0x6f, 0x72, 0x3b, 0x4d, 0xe4, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x65, 0x69, 0x3b, 0x42, +0x72, 0xe1, 0x3b, 0x48, 0x65, 0x69, 0x3b, 0xd6, 0x69, 0x67, 0x3b, 0x48, 0x65, 0x72, 0x3b, 0x57, 0xed, 0x6d, 0x3b, 0x57, +0x69, 0x6e, 0x3b, 0x43, 0x68, 0x72, 0x3b, 0x4a, 0x65, 0x6e, 0x6e, 0x65, 0x72, 0x3b, 0x48, 0x6f, 0x72, 0x6e, 0x69, 0x67, +0x3b, 0x4d, 0xe4, 0x72, 0x7a, 0x65, 0x3b, 0x41, 0x62, 0x72, 0x69, 0x6c, 0x6c, 0x65, 0x3b, 0x4d, 0x65, 0x69, 0x6a, 0x65, +0x3b, 0x42, 0x72, 0xe1, 0x10d, 0x65, 0x74, 0x3b, 0x48, 0x65, 0x69, 0x77, 0x65, 0x74, 0x3b, 0xd6, 0x69, 0x67, 0x161, 0x74, +0x65, 0x3b, 0x48, 0x65, 0x72, 0x62, 0x161, 0x74, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x57, 0xed, 0x6d, 0xe1, 0x6e, 0x65, +0x74, 0x3b, 0x57, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x43, 0x68, 0x72, 0x69, 0x161, 0x74, +0x6d, 0xe1, 0x6e, 0x65, 0x74, 0x3b, 0x4a, 0x3b, 0x48, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x42, 0x3b, 0x48, 0x3b, +0xd6, 0x3b, 0x48, 0x3b, 0x57, 0x3b, 0x57, 0x3b, 0x43, 0x3b, 0x6f, 0x2e, 0x31, 0x3b, 0x6f, 0x2e, 0x32, 0x3b, 0x6f, 0x2e, +0x33, 0x3b, 0x6f, 0x2e, 0x34, 0x3b, 0x6f, 0x2e, 0x35, 0x3b, 0x6f, 0x2e, 0x36, 0x3b, 0x6f, 0x2e, 0x37, 0x3b, 0x6f, 0x2e, +0x38, 0x3b, 0x6f, 0x2e, 0x39, 0x3b, 0x6f, 0x2e, 0x31, 0x30, 0x3b, 0x6f, 0x2e, 0x31, 0x31, 0x3b, 0x6f, 0x2e, 0x31, 0x32, +0x3b, 0x70, 0x69, 0x6b, 0xed, 0x74, 0xed, 0x6b, 0xed, 0x74, 0x69, 0x65, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0xed, 0x20, 0xfa, +0x20, 0x6b, 0x75, 0x74, 0xfa, 0x61, 0x6e, 0x3b, 0x73, 0x69, 0x25b, 0x79, 0x25b, 0x301, 0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, +0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x6e, 0x64, 0xed, 0x25b, 0x3b, 0x254, 0x6e, 0x73, 0xfa, 0x6d, 0x62, 0x254, 0x6c, 0x2c, 0x20, +0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x74, 0xe1, 0x74, 0xfa, 0x25b, 0x3b, 0x6d, 0x65, 0x73, 0x69, 0x14b, +0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe9, 0x6e, 0x69, 0x65, 0x3b, 0x65, 0x6e, 0x73, 0x69, 0x6c, +0x2c, 0x20, 0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x74, 0xe1, 0x6e, 0x75, 0x25b, 0x3b, 0x254, 0x73, 0x254, +0x6e, 0x3b, 0x65, 0x66, 0x75, 0x74, 0x65, 0x3b, 0x70, 0x69, 0x73, 0x75, 0x79, 0xfa, 0x3b, 0x69, 0x6d, 0x25b, 0x14b, 0x20, +0x69, 0x20, 0x70, 0x75, 0x254, 0x73, 0x3b, 0x69, 0x6d, 0x25b, 0x14b, 0x20, 0x69, 0x20, 0x70, 0x75, 0x74, 0xfa, 0x6b, 0x2c, +0x6f, 0xf3, 0x6c, 0x69, 0x20, 0xfa, 0x20, 0x6b, 0xe1, 0x74, 0xed, 0x25b, 0x3b, 0x6d, 0x61, 0x6b, 0x61, 0x6e, 0x64, 0x69, +0x6b, 0x25b, 0x3b, 0x70, 0x69, 0x6c, 0x254, 0x6e, 0x64, 0x254, 0x301, 0x3b, 0x58, 0x69, 0x6e, 0x3b, 0x46, 0x65, 0x62, 0x3b, +0x4d, 0x61, 0x72, 0x3b, 0x41, 0x62, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x58, 0x75, 0x6e, 0x3b, 0x58, 0x6e, 0x74, 0x3b, +0x41, 0x67, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x63, 0x68, 0x3b, 0x50, 0x61, 0x79, 0x3b, 0x41, 0x76, 0x69, 0x3b, +0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x6d, 0x61, 0x72, 0x7a, 0x75, +0x3b, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x6d, 0x61, 0x79, 0x75, 0x3b, 0x78, 0x75, 0x6e, 0x75, 0x3b, 0x78, 0x75, 0x6e, +0x65, 0x74, 0x75, 0x3b, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x75, 0x3b, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, 0x72, 0x65, +0x3b, 0x6f, 0x63, 0x68, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x70, 0x61, 0x79, 0x61, 0x72, 0x65, 0x73, 0x3b, 0x61, 0x76, 0x69, +0x65, 0x6e, 0x74, 0x75, 0x3b, 0x58, 0x3b, 0x46, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x58, 0x3b, 0x58, 0x3b, 0x41, +0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x50, 0x3b, 0x41, 0x3b, 0x78, 0x69, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x61, 0x72, +0x3b, 0x61, 0x62, 0x72, 0x3b, 0x6d, 0x61, 0x79, 0x3b, 0x78, 0x75, 0x6e, 0x3b, 0x78, 0x6e, 0x74, 0x3b, 0x61, 0x67, 0x6f, +0x3b, 0x73, 0x65, 0x74, 0x3b, 0x6f, 0x63, 0x68, 0x3b, 0x70, 0x61, 0x79, 0x3b, 0x61, 0x76, 0x69, 0x3b, 0x64, 0x65, 0x20, +0x78, 0x69, 0x6e, 0x65, 0x72, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x66, 0x65, 0x62, 0x72, 0x65, 0x72, 0x75, 0x3b, 0x64, 0x65, +0x20, 0x6d, 0x61, 0x72, 0x7a, 0x75, 0x3b, 0x64, 0x2019, 0x61, 0x62, 0x72, 0x69, 0x6c, 0x3b, 0x64, 0x65, 0x20, 0x6d, 0x61, +0x79, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x78, 0x75, 0x6e, 0x65, 0x74, 0x75, +0x3b, 0x64, 0x2019, 0x61, 0x67, 0x6f, 0x73, 0x74, 0x75, 0x3b, 0x64, 0x65, 0x20, 0x73, 0x65, 0x74, 0x69, 0x65, 0x6d, 0x62, +0x72, 0x65, 0x3b, 0x64, 0x2019, 0x6f, 0x63, 0x68, 0x6f, 0x62, 0x72, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x70, 0x61, 0x79, 0x61, +0x72, 0x65, 0x73, 0x3b, 0x64, 0x2019, 0x61, 0x76, 0x69, 0x65, 0x6e, 0x74, 0x75, 0x3b, 0x4e, 0x64, 0x75, 0x14b, 0x6d, 0x62, +0x69, 0x20, 0x53, 0x61, 0x14b, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x70, 0xe1, 0x3b, 0x50, 0x25b, +0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x74, 0xe1, 0x74, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, +0x6e, 0x25b, 0x301, 0x6b, 0x77, 0x61, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x61, 0x74, 0x61, 0x61, 0x3b, 0x50, +0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x6e, 0x74, 0xfa, 0x6b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, +0x61, 0x14b, 0x20, 0x53, 0x61, 0x61, 0x6d, 0x62, 0xe1, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, +0x25b, 0x301, 0x66, 0x254, 0x6d, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x50, 0x25b, 0x301, 0x6e, 0x25b, 0x301, 0x70, 0x66, +0xfa, 0xa78b, 0xfa, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, 0x25b, 0x67, 0x25b, 0x301, 0x6d, 0x3b, 0x50, 0x25b, 0x73, +0x61, 0x14b, 0x20, 0x4e, 0x74, 0x73, 0x254, 0x30c, 0x70, 0x6d, 0x254, 0x301, 0x3b, 0x50, 0x25b, 0x73, 0x61, 0x14b, 0x20, 0x4e, +0x74, 0x73, 0x254, 0x30c, 0x70, 0x70, 0xe1, 0x3b, 0x70, 0x61, 0x6d, 0x62, 0x61, 0x3b, 0x77, 0x61, 0x6e, 0x6a, 0x61, 0x3b, +0x6d, 0x62, 0x69, 0x79, 0x254, 0x20, 0x6d, 0x25b, 0x6e, 0x64, 0x6f, 0x14b, 0x67, 0x254, 0x3b, 0x4e, 0x79, 0x254, 0x6c, 0x254, +0x6d, 0x62, 0x254, 0x14b, 0x67, 0x254, 0x3b, 0x4d, 0x254, 0x6e, 0x254, 0x20, 0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, +0x4e, 0x79, 0x61, 0x14b, 0x67, 0x77, 0x25b, 0x20, 0x14b, 0x67, 0x62, 0x61, 0x6e, 0x6a, 0x61, 0x3b, 0x6b, 0x75, 0x14b, 0x67, +0x77, 0x25b, 0x3b, 0x66, 0x25b, 0x3b, 0x6e, 0x6a, 0x61, 0x70, 0x69, 0x3b, 0x6e, 0x79, 0x75, 0x6b, 0x75, 0x6c, 0x3b, 0x31, +0x31, 0x3b, 0x253, 0x75, 0x6c, 0x253, 0x75, 0x73, 0x25b, 0x3b, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, 0x69, 0x6d, +0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9, 0x62, 0xec, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, 0x63, 0x68, +0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, 0x259, 0x67, +0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, 0x3b, 0x69, +0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64, 0xf9, 0x6d, 0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, +0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x74, +0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, +0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6d, 0x62, 0x65, 0x67, 0x74, 0x75, 0x67, 0x3b, +0x69, 0x6d, 0x65, 0x67, 0x20, 0xe0, 0x62, 0xf9, 0x62, 0xec, 0x3b, 0x69, 0x6d, 0x65, 0x67, 0x20, 0x6d, 0x62, 0x259, 0x14b, +0x63, 0x68, 0x75, 0x62, 0x69, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6e, 0x67, 0x77, 0x259, 0x300, 0x74, 0x3b, 0x69, 0x6d, +0x259, 0x67, 0x20, 0x66, 0x6f, 0x67, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x69, 0x63, 0x68, 0x69, 0x69, 0x62, 0x254, 0x64, +0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0xe0, 0x64, 0xf9, 0x6d, 0x62, 0x259, 0x300, 0x14b, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, +0x69, 0x63, 0x68, 0x69, 0x6b, 0x61, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x6b, 0x75, 0x64, 0x3b, 0x69, 0x6d, 0x259, 0x67, +0x20, 0x74, 0xe8, 0x73, 0x69, 0x2bc, 0x65, 0x3b, 0x69, 0x6d, 0x259, 0x67, 0x20, 0x7a, 0xf2, 0x3b, 0x69, 0x6d, 0x259, 0x67, +0x20, 0x6b, 0x72, 0x69, 0x7a, 0x6d, 0x65, 0x64, 0x3b, 0x4d, 0x31, 0x3b, 0x41, 0x32, 0x3b, 0x4d, 0x33, 0x3b, 0x4e, 0x34, +0x3b, 0x46, 0x35, 0x3b, 0x49, 0x36, 0x3b, 0x41, 0x37, 0x3b, 0x49, 0x38, 0x3b, 0x4b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, +0x31, 0x3b, 0x31, 0x32, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x6c, 0xf9, +0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6b, 0xe0, 0x67, 0x20, 0x6e, 0x67, 0x77, 0xf3, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, +0x6c, 0x65, 0x70, 0x79, 0xe8, 0x20, 0x73, 0x68, 0xfa, 0x6d, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, +0x61, 0x14b, 0x20, 0x74, 0x73, 0x25b, 0x300, 0x25b, 0x20, 0x63, 0xff, 0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6e, 0x6a, 0xff, +0x6f, 0x6c, 0xe1, 0x2bc, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, 0x20, 0x74, 0x79, 0x25b, 0x300, 0x62, +0x20, 0x6d, 0x62, 0x289, 0x300, 0x14b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6d, 0x62, 0x289, 0x300, 0x14b, 0x3b, 0x73, 0x61, 0x14b, +0x20, 0x6e, 0x67, 0x77, 0x254, 0x300, 0x2bc, 0x20, 0x6d, 0x62, 0xff, 0x25b, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x74, 0xe0, 0x14b, +0x61, 0x20, 0x74, 0x73, 0x65, 0x74, 0x73, 0xe1, 0x2bc, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6d, 0x65, 0x6a, 0x77, 0x6f, 0x14b, +0xf3, 0x3b, 0x73, 0x61, 0x14b, 0x20, 0x6c, 0xf9, 0x6d, 0x3b, 0x57, 0x69, 0xf3, 0x74, 0x68, 0x65, 0x21f, 0x69, 0x6b, 0x61, +0x20, 0x57, 0xed, 0x3b, 0x54, 0x68, 0x69, 0x79, 0xf3, 0x21f, 0x65, 0x79, 0x75, 0x14b, 0x6b, 0x61, 0x20, 0x57, 0xed, 0x3b, +0x49, 0x161, 0x74, 0xe1, 0x77, 0x69, 0x10d, 0x68, 0x61, 0x79, 0x61, 0x7a, 0x61, 0x14b, 0x20, 0x57, 0xed, 0x3b, 0x50, 0x21f, +0x65, 0x17e, 0xed, 0x74, 0x21f, 0x6f, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x74, 0x21f, +0x6f, 0x20, 0x57, 0xed, 0x3b, 0x57, 0xed, 0x70, 0x61, 0x7a, 0x75, 0x6b, 0x21f, 0x61, 0x2d, 0x77, 0x61, 0x161, 0x74, 0xe9, +0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x70, 0x21f, 0xe1, 0x73, 0x61, 0x70, 0x61, 0x20, 0x57, 0xed, 0x3b, 0x57, +0x61, 0x73, 0xfa, 0x74, 0x21f, 0x75, 0x14b, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x1e7, +0x69, 0x20, 0x57, 0xed, 0x3b, 0x10c, 0x68, 0x61, 0x14b, 0x77, 0xe1, 0x70, 0x65, 0x2d, 0x6b, 0x61, 0x73, 0x6e, 0xe1, 0x20, +0x57, 0xed, 0x3b, 0x57, 0x61, 0x6e, 0xed, 0x79, 0x65, 0x74, 0x75, 0x20, 0x57, 0xed, 0x3b, 0x54, 0x21f, 0x61, 0x68, 0xe9, +0x6b, 0x61, 0x70, 0x161, 0x75, 0x14b, 0x20, 0x57, 0xed, 0x3b, 0x6a9, 0x627, 0x646, 0x648, 0x648, 0x646, 0x6cc, 0x20, 0x62f, 0x648, +0x648, 0x6d5, 0x645, 0x3b, 0x634, 0x648, 0x628, 0x627, 0x62a, 0x3b, 0x626, 0x627, 0x632, 0x627, 0x631, 0x3b, 0x646, 0x6cc, 0x633, 0x627, +0x646, 0x3b, 0x626, 0x627, 0x6cc, 0x627, 0x631, 0x3b, 0x62d, 0x648, 0x632, 0x6d5, 0x6cc, 0x631, 0x627, 0x646, 0x3b, 0x62a, 0x6d5, 0x645, +0x648, 0x648, 0x632, 0x3b, 0x626, 0x627, 0x628, 0x3b, 0x626, 0x6d5, 0x6cc, 0x644, 0x648, 0x648, 0x644, 0x3b, 0x62a, 0x634, 0x631, 0x6cc, +0x646, 0x6cc, 0x20, 0x6cc, 0x6d5, 0x6a9, 0x6d5, 0x645, 0x3b, 0x62a, 0x634, 0x631, 0x6cc, 0x646, 0x6cc, 0x20, 0x62f, 0x648, 0x648, 0x6d5, +0x645, 0x3b, 0x6a9, 0x627, 0x646, 0x648, 0x646, 0x6cc, 0x20, 0x6cc, 0x6d5, 0x6a9, 0x6d5, 0x645, 0x3b, 0x6a9, 0x3b, 0x634, 0x3b, 0x626, +0x3b, 0x646, 0x3b, 0x626, 0x3b, 0x62d, 0x3b, 0x62a, 0x3b, 0x626, 0x3b, 0x626, 0x3b, 0x62a, 0x3b, 0x62a, 0x3b, 0x6a9, 0x3b, 0x6a, +0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x11b, 0x72, 0x3b, 0x61, 0x70, 0x72, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, +0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x3b, 0x73, 0x65, 0x70, 0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, +0x6f, 0x77, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, +0x72, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x3b, 0x6d, 0x61, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, +0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, +0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, +0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, 0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, +0x2e, 0x3b, 0x6d, 0x11b, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, 0x61, 0x6a, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, +0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x77, 0x67, 0x2e, 0x3b, 0x73, 0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, +0x2e, 0x3b, 0x6e, 0x6f, 0x77, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x61, 0x3b, +0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x61, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, +0x61, 0x3b, 0x6d, 0x61, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x61, +0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, +0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, +0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6a, 0x61, 0x6e, 0x3b, 0x66, 0x65, 0x62, 0x3b, 0x6d, 0x11b, 0x72, 0x3b, 0x61, 0x70, 0x72, +0x3b, 0x6d, 0x65, 0x6a, 0x3b, 0x6a, 0x75, 0x6e, 0x3b, 0x6a, 0x75, 0x6c, 0x3b, 0x61, 0x77, 0x67, 0x3b, 0x73, 0x65, 0x70, +0x3b, 0x6f, 0x6b, 0x74, 0x3b, 0x6e, 0x6f, 0x77, 0x3b, 0x64, 0x65, 0x63, 0x3b, 0x6a, 0x61, 0x6e, 0x75, 0x61, 0x72, 0x3b, +0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x3b, 0x6d, 0x11b, 0x72, 0x63, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x3b, 0x6d, +0x65, 0x6a, 0x61, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x3b, 0x61, 0x77, 0x67, 0x75, +0x73, 0x74, 0x3b, 0x73, 0x65, 0x70, 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x65, 0x72, +0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x3b, 0x6a, +0x61, 0x6e, 0x2e, 0x3b, 0x66, 0x65, 0x62, 0x2e, 0x3b, 0x6d, 0x11b, 0x72, 0x2e, 0x3b, 0x61, 0x70, 0x72, 0x2e, 0x3b, 0x6d, +0x65, 0x6a, 0x2e, 0x3b, 0x6a, 0x75, 0x6e, 0x2e, 0x3b, 0x6a, 0x75, 0x6c, 0x2e, 0x3b, 0x61, 0x77, 0x67, 0x2e, 0x3b, 0x73, +0x65, 0x70, 0x2e, 0x3b, 0x6f, 0x6b, 0x74, 0x2e, 0x3b, 0x6e, 0x6f, 0x77, 0x2e, 0x3b, 0x64, 0x65, 0x63, 0x2e, 0x3b, 0x6a, +0x61, 0x6e, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x66, 0x65, 0x62, 0x72, 0x75, 0x61, 0x72, 0x61, 0x3b, 0x6d, 0x11b, 0x72, 0x63, +0x61, 0x3b, 0x61, 0x70, 0x72, 0x79, 0x6c, 0x61, 0x3b, 0x6d, 0x65, 0x6a, 0x65, 0x3b, 0x6a, 0x75, 0x6e, 0x69, 0x6a, 0x61, +0x3b, 0x6a, 0x75, 0x6c, 0x69, 0x6a, 0x61, 0x3b, 0x61, 0x77, 0x67, 0x75, 0x73, 0x74, 0x61, 0x3b, 0x73, 0x65, 0x70, 0x74, +0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x6f, 0x6b, 0x74, 0x6f, 0x62, 0x72, 0x61, 0x3b, 0x6e, 0x6f, 0x77, 0x65, 0x6d, 0x62, +0x72, 0x61, 0x3b, 0x64, 0x65, 0x63, 0x65, 0x6d, 0x62, 0x72, 0x61, 0x3b, 0x72, 0x61, 0x67, 0x3b, 0x77, 0x61, 0x73, 0x3b, +0x70, 0x16b, 0x6c, 0x3b, 0x73, 0x61, 0x6b, 0x3b, 0x7a, 0x61, 0x6c, 0x3b, 0x73, 0x12b, 0x6d, 0x3b, 0x6c, 0x12b, 0x70, 0x3b, +0x64, 0x61, 0x67, 0x3b, 0x73, 0x69, 0x6c, 0x3b, 0x73, 0x70, 0x61, 0x3b, 0x6c, 0x61, 0x70, 0x3b, 0x73, 0x61, 0x6c, 0x3b, +0x72, 0x61, 0x67, 0x73, 0x3b, 0x77, 0x61, 0x73, 0x73, 0x61, 0x72, 0x69, 0x6e, 0x73, 0x3b, 0x70, 0x16b, 0x6c, 0x69, 0x73, +0x3b, 0x73, 0x61, 0x6b, 0x6b, 0x69, 0x73, 0x3b, 0x7a, 0x61, 0x6c, 0x6c, 0x61, 0x77, 0x73, 0x3b, 0x73, 0x12b, 0x6d, 0x65, +0x6e, 0x69, 0x73, 0x3b, 0x6c, 0x12b, 0x70, 0x61, 0x3b, 0x64, 0x61, 0x67, 0x67, 0x69, 0x73, 0x3b, 0x73, 0x69, 0x6c, 0x6c, +0x69, 0x6e, 0x73, 0x3b, 0x73, 0x70, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x73, 0x3b, 0x6c, 0x61, 0x70, 0x6b, 0x72, 0x16b, 0x74, +0x69, 0x73, 0x3b, 0x73, 0x61, 0x6c, 0x6c, 0x61, 0x77, 0x73, 0x3b, 0x52, 0x3b, 0x57, 0x3b, 0x50, 0x3b, 0x53, 0x3b, 0x5a, +0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x44, 0x3b, 0x53, 0x3b, 0x53, 0x3b, 0x4c, 0x3b, 0x53, 0x3b, 0x75, 0x111, 0x69, 0x76, 0x3b, +0x6b, 0x75, 0x6f, 0x76, 0xe2, 0x3b, 0x6e, 0x6a, 0x75, 0x68, 0x10d, 0xe2, 0x3b, 0x63, 0x75, 0xe1, 0x14b, 0x75, 0x69, 0x3b, +0x76, 0x79, 0x65, 0x73, 0x69, 0x3b, 0x6b, 0x65, 0x73, 0x69, 0x3b, 0x73, 0x79, 0x65, 0x69, 0x6e, 0x69, 0x3b, 0x70, 0x6f, +0x72, 0x67, 0x65, 0x3b, 0x10d, 0x6f, 0x68, 0x10d, 0xe2, 0x3b, 0x72, 0x6f, 0x6f, 0x76, 0x76, 0xe2, 0x64, 0x3b, 0x73, 0x6b, +0x61, 0x6d, 0x6d, 0xe2, 0x3b, 0x6a, 0x75, 0x6f, 0x76, 0x6c, 0xe2, 0x3b, 0x75, 0x111, 0x111, 0xe2, 0x69, 0x76, 0x65, 0x6d, +0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6b, 0x75, 0x6f, 0x76, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6e, 0x6a, 0x75, 0x68, +0x10d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x63, 0x75, 0xe1, 0x14b, 0x75, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, +0x76, 0x79, 0x65, 0x73, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x6b, 0x65, 0x73, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, +0x3b, 0x73, 0x79, 0x65, 0x69, 0x6e, 0x69, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x70, 0x6f, 0x72, 0x67, 0x65, 0x6d, 0xe1, +0xe1, 0x6e, 0x75, 0x3b, 0x10d, 0x6f, 0x68, 0x10d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x72, 0x6f, 0x6f, 0x76, 0x76, +0xe2, 0x64, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x73, 0x6b, 0x61, 0x6d, 0x6d, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, +0x6a, 0x75, 0x6f, 0x76, 0x6c, 0xe2, 0x6d, 0xe1, 0xe1, 0x6e, 0x75, 0x3b, 0x55, 0x3b, 0x4b, 0x3b, 0x4e, 0x4a, 0x3b, 0x43, +0x3b, 0x56, 0x3b, 0x4b, 0x3b, 0x53, 0x3b, 0x50, 0x3b, 0x10c, 0x3b, 0x52, 0x3b, 0x53, 0x3b, 0x4a, 0x3b, 0x62c, 0x627, 0x646, +0x6a4, 0x6cc, 0x6d5, 0x3b, 0x641, 0x626, 0x6a4, 0x631, 0x6cc, 0x6d5, 0x3b, 0x645, 0x627, 0x631, 0x633, 0x3b, 0x622, 0x6a4, 0x631, 0x6cc, +0x644, 0x3b, 0x645, 0x626, 0x6cc, 0x3b, 0x62c, 0x648, 0x659, 0x623, 0x646, 0x3b, 0x62c, 0x648, 0x659, 0x644, 0x627, 0x3b, 0x622, 0x6af, +0x648, 0x633, 0x62a, 0x3b, 0x633, 0x626, 0x67e, 0x62a, 0x627, 0x645, 0x631, 0x3b, 0x626, 0x648, 0x6a9, 0x62a, 0x648, 0x6a4, 0x631, 0x3b, +0x646, 0x648, 0x6a4, 0x627, 0x645, 0x631, 0x3b, 0x62f, 0x626, 0x633, 0x627, 0x645, 0x631, 0x3b, 0x45, 0x6e, 0x3b, 0x50, 0x65, 0x62, +0x3b, 0x4d, 0x61, 0x72, 0x3b, 0x41, 0x70, 0x72, 0x3b, 0x4d, 0x61, 0x79, 0x3b, 0x48, 0x75, 0x6e, 0x3b, 0x48, 0x75, 0x6c, +0x3b, 0x41, 0x67, 0x3b, 0x53, 0x65, 0x74, 0x3b, 0x4f, 0x6b, 0x74, 0x3b, 0x4e, 0x6f, 0x62, 0x3b, 0x44, 0x69, 0x73, 0x3b, +0x45, 0x6e, 0x65, 0x72, 0x6f, 0x3b, 0x50, 0x65, 0x62, 0x72, 0x65, 0x72, 0x6f, 0x3b, 0x4d, 0x61, 0x72, 0x73, 0x6f, 0x3b, +0x41, 0x70, 0x72, 0x69, 0x6c, 0x3b, 0x4d, 0x61, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6e, 0x79, 0x6f, 0x3b, 0x48, 0x75, 0x6c, +0x79, 0x6f, 0x3b, 0x41, 0x67, 0x6f, 0x73, 0x74, 0x6f, 0x3b, 0x53, 0x65, 0x74, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, +0x4f, 0x6b, 0x74, 0x75, 0x62, 0x72, 0x65, 0x3b, 0x4e, 0x6f, 0x62, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x44, 0x69, +0x73, 0x79, 0x65, 0x6d, 0x62, 0x72, 0x65, 0x3b, 0x45, 0x3b, 0x50, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x4d, 0x3b, 0x48, 0x3b, +0x48, 0x3b, 0x41, 0x3b, 0x53, 0x3b, 0x4f, 0x3b, 0x4e, 0x3b, 0x44, 0x3b +}; +// GENERATED PART ENDS HERE + +QT_END_NAMESPACE + +#endif diff --git a/src/corelib/time/qromancalendar_p.h b/src/corelib/time/qromancalendar_p.h new file mode 100644 index 0000000000..ea2f9d01f0 --- /dev/null +++ b/src/corelib/time/qromancalendar_p.h @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QROMAN_CALENDAR_P_H +#define QROMAN_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qcalendarbackend_p.h" + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QRomanCalendar : public QCalendarBackend +{ +public: + // date queries: + int daysInMonth(int month, int year = QCalendar::Unspecified) const override; + int minDaysInMonth() const override; + // properties of the calendar + bool isLunar() const override; + bool isLuniSolar() const override; + bool isSolar() const override; +protected: + // locale support: + const QCalendarLocale *localeMonthIndexData() const override; + const ushort *localeMonthData() const override; + // (The INTEGRITY compiler got upset at: using QCalendarBackend:QCalendarBackend;) + QRomanCalendar(const QString &name, QCalendar::System id = QCalendar::System::User) + : QCalendarBackend(name, id) {} +}; + +QT_END_NAMESPACE + +#endif // QROMAN_CALENDAR_P_H diff --git a/src/corelib/time/time.pri b/src/corelib/time/time.pri index bacb7e875d..41896898f6 100644 --- a/src/corelib/time/time.pri +++ b/src/corelib/time/time.pri @@ -1,10 +1,20 @@ # Qt time / date / zone / calendar module HEADERS += \ + time/qcalendar.h \ + time/qcalendarbackend_p.h \ + time/qcalendarmath_p.h \ time/qdatetime.h \ - time/qdatetime_p.h + time/qdatetime_p.h \ + time/qgregoriancalendar_p.h \ + time/qromancalendar_p.h \ + time/qromancalendar_data_p.h -SOURCES += time/qdatetime.cpp +SOURCES += \ + time/qdatetime.cpp \ + time/qcalendar.cpp \ + time/qgregoriancalendar.cpp \ + time/qromancalendar.cpp qtConfig(timezone) { HEADERS += \ diff --git a/src/tools/bootstrap/bootstrap.pro b/src/tools/bootstrap/bootstrap.pro index 32e36cefa0..f9ffd1bbea 100644 --- a/src/tools/bootstrap/bootstrap.pro +++ b/src/tools/bootstrap/bootstrap.pro @@ -85,7 +85,10 @@ SOURCES += \ ../../corelib/text/qstringlist.cpp \ ../../corelib/text/qstringview.cpp \ ../../corelib/text/qvsnprintf.cpp \ + ../../corelib/time/qcalendar.cpp \ ../../corelib/time/qdatetime.cpp \ + ../../corelib/time/qgregoriancalendar.cpp \ + ../../corelib/time/qromancalendar.cpp \ ../../corelib/tools/qarraydata.cpp \ ../../corelib/tools/qbitarray.cpp \ ../../corelib/tools/qcommandlineparser.cpp \ diff --git a/tests/auto/corelib/time/qcalendar/qcalendar.pro b/tests/auto/corelib/time/qcalendar/qcalendar.pro new file mode 100644 index 0000000000..94e8fe8606 --- /dev/null +++ b/tests/auto/corelib/time/qcalendar/qcalendar.pro @@ -0,0 +1,5 @@ +CONFIG += testcase +TARGET = tst_qcalendar +QT = core testlib +SOURCES = \ + tst_qcalendar.cpp diff --git a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp new file mode 100644 index 0000000000..3a410100f4 --- /dev/null +++ b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp @@ -0,0 +1,219 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include + +#include +Q_DECLARE_METATYPE(QCalendar::System) + +class tst_QCalendar : public QObject +{ + Q_OBJECT +private: + void checkYear(const QCalendar &cal, int year, bool normal=false); + +private slots: + void basic_data(); + void basic(); + void nameCase(); + void specific_data(); + void specific(); + void daily_data() { basic_data(); } + void daily(); +}; + +// Support for basic(): +void tst_QCalendar::checkYear(const QCalendar &cal, int year, bool normal) +{ + const int moons = cal.monthsInYear(year); + // Months are numbered from 1 to moons: + QVERIFY(moons > 0); + QVERIFY(!cal.isDateValid(year, moons + 1, 1)); + QVERIFY(!cal.isDateValid(year, 0, 1)); + QVERIFY(moons <= cal.maxMonthsInYear()); + + const int days = cal.daysInYear(year); + QVERIFY(days > 0); + + int sum = 0; + const int longest = cal.maxDaysInMonth(); + for (int i = moons; i > 0; i--) { + const int last = cal.daysInMonth(i, year); + sum += last; + // Valid month has some days and no more than max: + QVERIFY(last > 0); + QVERIFY(last <= longest); + // Days are numbered from 1 to last: + QVERIFY(cal.isDateValid(year, i, 1)); + QVERIFY(cal.isDateValid(year, i, last)); + QVERIFY(!cal.isDateValid(year, i, 0)); + QVERIFY(!cal.isDateValid(year, i, last + 1)); + if (normal) // Unspecified year gets same daysInMonth(): + QCOMPARE(cal.daysInMonth(i), last); + } + // Months add up to the whole year: + QCOMPARE(sum, days); +} + +#define CHECKYEAR(cal, year) checkYear(cal, year); \ + if (QTest::currentTestFailed()) \ + return + +#define NORMALYEAR(cal, year) checkYear(cal, year, true); \ + if (QTest::currentTestFailed()) \ + return + +void tst_QCalendar::basic_data() +{ + QTest::addColumn("system"); + + QMetaEnum e = QCalendar::staticMetaObject.enumerator(0); + Q_ASSERT(qstrcmp(e.name(), "System") == 0); + + for (int i = 0; i <= int(QCalendar::System::Last); ++i) { + // There may be gaps in the enum's numbering; and Last is a duplicate: + if (e.value(i) != -1 && qstrcmp(e.key(i), "Last")) + QTest::newRow(e.key(i)) << QCalendar::System(e.value(i)); + } +} + +void tst_QCalendar::basic() +{ + QFETCH(QCalendar::System, system); + QCalendar cal(system); + QVERIFY(cal.isValid()); + QCOMPARE(QCalendar(cal.name()).isGregorian(), cal.isGregorian()); + QCOMPARE(QCalendar(cal.name()).name(), cal.name()); + + if (cal.hasYearZero()) { + CHECKYEAR(cal, 0); + } else { + QCOMPARE(cal.monthsInYear(0), 0); + QCOMPARE(cal.daysInYear(0), 0); + QVERIFY(!cal.isDateValid(0, 1, 1)); + } + + if (cal.isProleptic()) { + CHECKYEAR(cal, -1); + } else { + QCOMPARE(cal.monthsInYear(-1), 0); + QCOMPARE(cal.daysInYear(-1), 0); + QVERIFY(!cal.isDateValid(-1, 1, 1)); + } + + // Look for a leap year in the last decade. + int year = QDate::currentDate().year(cal); + for (int i = 10; i > 0 && !cal.isLeapYear(year); --i) + --year; + if (cal.isLeapYear(year)) { + // ... and a non-leap year within a decade before it. + int leap = year--; + for (int i = 10; i > 0 && cal.isLeapYear(year); --i) + year--; + if (!cal.isLeapYear(year)) + QVERIFY(cal.daysInYear(year) < cal.daysInYear(leap)); + + CHECKYEAR(cal, leap); + } + // Either year is non-leap or we have a decade of leap years together; + // expect daysInMonth() to treat year the same as unspecified. + NORMALYEAR(cal, year); +} + +void tst_QCalendar::nameCase() +{ + QVERIFY(QCalendar::availableCalendars().contains(QStringLiteral("Gregorian"))); +} + +void tst_QCalendar::specific_data() +{ + QTest::addColumn("system"); + // Date in that system: + QTest::addColumn("sysyear"); + QTest::addColumn("sysmonth"); + QTest::addColumn("sysday"); + // Gregorian equivalent: + QTest::addColumn("gregyear"); + QTest::addColumn("gregmonth"); + QTest::addColumn("gregday"); + +#define ADDROW(cal, year, month, day, gy, gm, gd) \ + QTest::newRow(#cal) << QCalendar::System::cal << year << month << day << gy << gm << gd + + ADDROW(Gregorian, 1970, 1, 1, 1970, 1, 1); + +#undef ADDROW +} + +void tst_QCalendar::specific() +{ + QFETCH(QCalendar::System, system); + QFETCH(int, sysyear); + QFETCH(int, sysmonth); + QFETCH(int, sysday); + QFETCH(int, gregyear); + QFETCH(int, gregmonth); + QFETCH(int, gregday); + + const QCalendar cal(system); + const QDate date(sysyear, sysmonth, sysday, cal), gregory(gregyear, gregmonth, gregday); + QCOMPARE(date, gregory); + QCOMPARE(gregory.year(cal), sysyear); + QCOMPARE(gregory.month(cal), sysmonth); + QCOMPARE(gregory.day(cal), sysday); + QCOMPARE(date.year(), gregyear); + QCOMPARE(date.month(), gregmonth); + QCOMPARE(date.day(), gregday); +} + +void tst_QCalendar::daily() +{ + QFETCH(QCalendar::System, system); + QCalendar calendar(system); + const quint64 startJDN = 0, endJDN = 2488070; + // Iterate from -4713-01-01 (Julian calendar) to 2100-01-01 + for (quint64 expect = startJDN; expect <= endJDN; ++expect) + { + QDate date = QDate::fromJulianDay(expect); + auto parts = calendar.partsFromDate(date); + if (!parts.isValid()) + continue; + + const int year = date.year(calendar); + QCOMPARE(year, parts.year); + const int month = date.month(calendar); + QCOMPARE(month, parts.month); + const int day = date.day(calendar); + QCOMPARE(day, parts.day); + const quint64 actual = QDate(year, month, day, calendar).toJulianDay(); + QCOMPARE(actual, expect); + } +} + +QTEST_APPLESS_MAIN(tst_QCalendar) +#include "tst_qcalendar.moc" diff --git a/tests/auto/corelib/time/time.pro b/tests/auto/corelib/time/time.pro index 6f9ff038db..6f1ee9a8bd 100644 --- a/tests/auto/corelib/time/time.pro +++ b/tests/auto/corelib/time/time.pro @@ -1,5 +1,6 @@ TEMPLATE = subdirs SUBDIRS = \ + qcalendar \ qdate \ qdatetime \ qtime \ diff --git a/util/locale_database/cldr2qlocalexml.py b/util/locale_database/cldr2qlocalexml.py index 1982e3ba27..4bc735976b 100755 --- a/util/locale_database/cldr2qlocalexml.py +++ b/util/locale_database/cldr2qlocalexml.py @@ -1,7 +1,8 @@ #!/usr/bin/env python2 +# coding=utf8 ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: https://www.qt.io/licensing/ ## ## This file is part of the test suite of the Qt Toolkit. @@ -62,6 +63,8 @@ from xpathlite import DraftResolution, findAlias, findEntry, findTagsInFile from dateconverter import convert_date from localexml import Locale +# TODO: make calendars a command-line option +calendars = ['gregorian'] # 'persian', 'islamic', 'hebrew' findEntryInFile = xpathlite._findEntryInFile def wrappedwarn(prefix, tokens): return sys.stderr.write( @@ -395,12 +398,12 @@ def _generateLocaleInfo(path, language_code, script_code, country_code, variant_ ('narrow', 'format', 'narrow'), ) - # Month data: - for cal in ('gregorian',): # We shall want to add to this + # Month names for 12-month calendars: + for cal in calendars: stem = 'dates/calendars/calendar[' + cal + ']/months/' for (key, mode, size) in namings: prop = 'monthContext[' + mode + ']/monthWidth[' + size + ']/' - result[key + 'Months'] = ';'.join( + result[key + 'Months_' + cal] = ';'.join( findEntry(path, stem + prop + "month[%d]" % i) for i in range(1, 13)) + ';' @@ -686,9 +689,9 @@ if skips: wrappedwarn('skipping likelySubtags (for unknown language codes): ', skips) print " " -Locale.C().toXml() +Locale.C(calendars).toXml(calendars) for key in locale_keys: - locale_database[key].toXml() + locale_database[key].toXml(calendars) print " " print "" diff --git a/util/locale_database/localexml.py b/util/locale_database/localexml.py index e95b3aebcc..c83f9cea21 100644 --- a/util/locale_database/localexml.py +++ b/util/locale_database/localexml.py @@ -1,6 +1,7 @@ +# coding=utf8 ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: https://www.qt.io/licensing/ ## ## This file is part of the test suite of the Qt Toolkit. @@ -113,12 +114,11 @@ def convertFormat(format): return result class Locale: - # Tool used during class body (see del below), not method: - def propsMonthDay(lengths=('long', 'short', 'narrow'), scale=('months', 'days')): + @staticmethod + def propsMonthDay(scale, lengths=('long', 'short', 'narrow')): for L in lengths: - for S in scale: - yield camelCase((L, S)) - yield camelCase(('standalone', L, S)) + yield camelCase((L, scale)) + yield camelCase(('standalone', L, scale)) # Expected to be numbers, read with int(): __asint = ("decimal", "group", "zero", @@ -137,15 +137,13 @@ class Locale: "listPatternPartEnd", "listPatternPartTwo", "am", "pm", 'byte_unit', 'byte_si_quantified', 'byte_iec_quantified', "currencyIsoCode", "currencySymbol", "currencyDisplayName", - "currencyFormat", "currencyNegativeFormat" - ) + tuple(propsMonthDay()) - del propsMonthDay + "currencyFormat", "currencyNegativeFormat") # Day-of-Week numbering used by Qt: __qDoW = {"mon": 1, "tue": 2, "wed": 3, "thu": 4, "fri": 5, "sat": 6, "sun": 7} @classmethod - def fromXmlData(cls, lookup): + def fromXmlData(cls, lookup, calendars=('gregorian',)): """Constructor from the contents of XML elements. Single parameter, lookup, is called with the names of XML @@ -170,12 +168,15 @@ class Locale: for k in cls.__asfmt: data[k] = convertFormat(lookup(k)) - for k in cls.__astxt: + for k in cls.__astxt + tuple(cls.propsMonthDay('days')): data[k] = lookup(k) + for k in cls.propsMonthDay('months'): + data[k] = dict((cal, lookup('_'.join((k, cal)))) for cal in calendars) + return cls(data) - def toXml(self, indent=' ', tab=' '): + def toXml(self, calendars=('gregorian',), indent=' ', tab=' '): print indent + '' inner = indent + tab get = lambda k: getattr(self, k) @@ -199,13 +200,14 @@ class Locale: 'weekendStart', 'weekendEnd', 'longDateFormat', 'shortDateFormat', 'longTimeFormat', 'shortTimeFormat', - 'standaloneLongMonths', 'standaloneShortMonths', - 'standaloneNarrowMonths', - 'longMonths', 'shortMonths', 'narrowMonths', 'longDays', 'shortDays', 'narrowDays', 'standaloneLongDays', 'standaloneShortDays', 'standaloneNarrowDays', 'currencyIsoCode', 'currencySymbol', 'currencyDisplayName', - 'currencyFormat', 'currencyNegativeFormat'): + 'currencyFormat', 'currencyNegativeFormat' + ) + tuple(self.propsMonthDay('days')) + tuple( + '_'.join((k, cal)) + for k in self.propsMonthDay('months') + for cal in calendars): ent = camelCase(key.split('_')) if key.endswith('_endonym') else key print inner + "<%s>%s" % (ent, escape(get(key)).encode('utf-8'), ent) @@ -218,16 +220,50 @@ class Locale: if data: self.__dict__.update(data) if kw: self.__dict__.update(kw) + # Tools used by __monthNames: + def fullName(i, name): return name + def firstThree(i, name): return name[:3] + def initial(i, name): return name[:1] + def number(i, name): return str(i + 1) + @staticmethod + def __monthNames(calendars, + known={ # Map calendar to (names, extractors...): + 'gregorian': (('January', 'February', 'March', 'April', 'May', 'June', 'July', + 'August', 'September', 'October', 'November', 'December'), + # Extractor pairs, (plain, standalone) + (fullName, fullName), # long + (firstThree, firstThree), # short + (number, initial)), # narrow + 'hebrew': (('Tishri', 'Heshvan', 'Kislev', 'Tevet', 'Shevat', 'Adar I', + 'Adar', 'Nisan', 'Iyar', 'Sivan', 'Tamuz', 'Av'), + (fullName, fullName), + (fullName, fullName), + (number, number)), + }, + sizes=('long', 'short', 'narrow')): + for cal in calendars: + try: + data = known[cal] + except KeyError: # Need to add an entry to known, above. + print 'Unsupported calendar:', cal + raise + names, get = data[0] + ('',), data[1:] + for n, size in enumerate(sizes): + yield ('_'.join((camelCase((size, 'months')), cal)), + ';'.join(get[n][0](i, x) for i, x in enumerate(names))) + yield ('_'.join((camelCase(('standalone', size, 'months')), cal)), + ';'.join(get[n][1](i, x) for i, x in enumerate(names))) + del fullName, firstThree, initial, number + @classmethod - def C(cls, - # Empty entries at end to ensure final separator when join()ed: - months = ('January', 'February', 'March', 'April', 'May', 'June', 'July', - 'August', 'September', 'October', 'November', 'December', ''), + def C(cls, calendars=('gregorian',), + # Empty entry at end to ensure final separator when join()ed: days = ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', ''), quantifiers=('k', 'M', 'G', 'T', 'P', 'E')): """Returns an object representing the C locale.""" - return cls(language='C', language_code='0', language_endonym='', + return cls(dict(cls.__monthNames(calendars)), + language='C', language_code='0', language_endonym='', script='AnyScript', script_code='0', country='AnyCountry', country_code='0', country_endonym='', decimal='.', group=',', list=';', percent='%', @@ -245,12 +281,6 @@ class Locale: weekendStart='sat', weekendEnd='sun', longDateFormat='EEEE, d MMMM yyyy', shortDateFormat='d MMM yyyy', longTimeFormat='HH:mm:ss z', shortTimeFormat='HH:mm:ss', - longMonths=';'.join(months), - shortMonths=';'.join(m[:3] for m in months), - narrowMonths='1;2;3;4;5;6;7;8;9;10;11;12;', - standaloneLongMonths=';'.join(months), - standaloneShortMonths=';'.join(m[:3] for m in months), - standaloneNarrowMonths=';'.join(m[:1] for m in months), longDays=';'.join(days), shortDays=';'.join(d[:3] for d in days), narrowDays='7;1;2;3;4;5;6;', diff --git a/util/locale_database/qlocalexml2cpp.py b/util/locale_database/qlocalexml2cpp.py index c0797f111d..641a80baf5 100755 --- a/util/locale_database/qlocalexml2cpp.py +++ b/util/locale_database/qlocalexml2cpp.py @@ -1,7 +1,7 @@ #!/usr/bin/env python2 ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2018 The Qt Company Ltd. ## Contact: https://www.qt.io/licensing/ ## ## This file is part of the test suite of the Qt Toolkit. @@ -42,6 +42,10 @@ from enumdata import language_aliases, country_aliases, script_aliases from localexml import Locale +# TODO: Make calendars a command-line parameter +# map { CLDR name: Qt file name } +calendars = {'gregorian': 'roman',} # 'persian': 'jalali', 'islamic': 'hijri', 'hebrew': 'hebrew', + generated_template = """ /* This part of the file was generated on %s from the @@ -165,7 +169,7 @@ def loadLocaleMap(doc, language_map, script_map, country_map, likely_subtags_map result = {} for locale_elt in eachEltInGroup(doc.documentElement, "localeList", "locale"): - locale = Locale.fromXmlData(lambda k: firstChildText(locale_elt, k)) + locale = Locale.fromXmlData(lambda k: firstChildText(locale_elt, k), calendars.keys()) language_id = languageNameToId(locale.language, language_map) if language_id == -1: sys.stderr.write("Cannot find a language id for '%s'\n" % locale.language) @@ -268,6 +272,7 @@ class StringData: self.data = [] self.hash = {} self.name = name + def append(self, s): if s in self.hash: return self.hash[s] @@ -293,6 +298,11 @@ class StringData: self.data += lst return token + def write(self, fd): + fd.write("\nstatic const ushort %s[] = {\n" % self.name) + fd.write(wrap_list(self.data)) + fd.write("\n};\n") + def escapedString(s): result = "" i = 0 @@ -443,7 +453,6 @@ def main(): list_pattern_part_data = StringData('list_pattern_part_data') date_format_data = StringData('date_format_data') time_format_data = StringData('time_format_data') - months_data = StringData('months_data') days_data = StringData('days_data') am_data = StringData('am_data') pm_data = StringData('pm_data') @@ -483,12 +492,6 @@ def main(): + ' lDtFmt ' + ' sTmFmt ' # Time format + ' lTmFmt ' - + ' ssMonth ' # Months - + ' slMonth ' - + ' snMonth ' - + ' sMonth ' - + ' lMonth ' - + ' nMonth ' + ' ssDays ' # Days + ' slDays ' + ' snDays ' @@ -533,7 +536,7 @@ def main(): # Quotation marks: + '%8d,' * 4 # List patterns, date/time formats, month/day names, am/pm: - + '%11s,' * 22 + + '%11s,' * 16 # SI/IEC byte-unit abbreviations: + '%8s,' * 3 # Currency ISO code: @@ -569,12 +572,6 @@ def main(): date_format_data.append(l.longDateFormat), time_format_data.append(l.shortTimeFormat), time_format_data.append(l.longTimeFormat), - months_data.append(l.standaloneShortMonths), - months_data.append(l.standaloneLongMonths), - months_data.append(l.standaloneNarrowMonths), - months_data.append(l.shortMonths), - months_data.append(l.longMonths), - months_data.append(l.narrowMonths), days_data.append(l.standaloneShortDays), days_data.append(l.standaloneLongDays), days_data.append(l.standaloneNarrowDays), @@ -600,7 +597,7 @@ def main(): l.weekendEnd) + ", // %s/%s/%s\n" % (l.language, l.script, l.country)) data_temp_file.write(line_format # All zeros, matching the format: - % ( (0,) * (3 + 8 + 4) + ("0,0",) * (22 + 3) + % ( (0,) * (3 + 8 + 4) + ("0,0",) * (16 + 3) + (currencyIsoCodeData(0),) + ("0,0",) * 6 + (0,) * (2 + 3)) + " // trailing 0s\n") @@ -608,13 +605,11 @@ def main(): # StringData tables: for data in (list_pattern_part_data, date_format_data, - time_format_data, months_data, days_data, + time_format_data, days_data, byte_unit_data, am_data, pm_data, currency_symbol_data, currency_display_name_data, currency_format_data, endonyms_data): - data_temp_file.write("\nstatic const ushort %s[] = {\n" % data.name) - data_temp_file.write(wrap_list(data.data)) - data_temp_file.write("\n};\n") + data.write(data_temp_file) data_temp_file.write("\n") @@ -739,6 +734,62 @@ def main(): os.remove(qtsrcdir + "/src/corelib/text/qlocale_data_p.h") os.rename(data_temp_file_path, qtsrcdir + "/src/corelib/text/qlocale_data_p.h") + # Generate calendar data + calendar_format = ' {%6d,%6d,%6d,{%5s},{%5s},{%5s},{%5s},{%5s},{%5s}}, ' + for calendar, stem in calendars.items(): + months_data = StringData('months_data') + calendar_data_file = "q%scalendar_data_p.h" % stem + calendar_template_file = open(os.path.join(qtsrcdir, 'src', 'corelib', 'time', + calendar_data_file), "r") + (calendar_temp_file, calendar_temp_file_path) = tempfile.mkstemp(calendar_data_file, dir=qtsrcdir) + calendar_temp_file = os.fdopen(calendar_temp_file, "w") + s = calendar_template_file.readline() + while s and s != GENERATED_BLOCK_START: + calendar_temp_file.write(s) + s = calendar_template_file.readline() + calendar_temp_file.write(GENERATED_BLOCK_START) + calendar_temp_file.write(generated_template % (datetime.date.today(), cldr_version)) + calendar_temp_file.write("static const QCalendarLocale locale_data[] = {\n") + calendar_temp_file.write(' // ' + # IDs, width 7 (6 + comma) + + ' lang ' + + ' script' + + ' terr ' + # Month-name start-end pairs, width 8 (5 plus '{},'): + + ' sShort ' + + ' sLong ' + + ' sNarrow' + + ' short ' + + ' long ' + + ' narrow' + # No trailing space on last; be sure + # to pad before adding later entries. + + '\n') + for key in locale_keys: + l = locale_map[key] + calendar_temp_file.write( + calendar_format + % (key[0], key[1], key[2], + months_data.append(l.standaloneShortMonths[calendar]), + months_data.append(l.standaloneLongMonths[calendar]), + months_data.append(l.standaloneNarrowMonths[calendar]), + months_data.append(l.shortMonths[calendar]), + months_data.append(l.longMonths[calendar]), + months_data.append(l.narrowMonths[calendar])) + + "// %s/%s/%s\n " % (l.language, l.script, l.country)) + calendar_temp_file.write(calendar_format % ( (0,) * 3 + ('0,0',) * 6 ) + + '// trailing zeros\n') + calendar_temp_file.write("};\n") + months_data.write(calendar_temp_file) + s = calendar_template_file.readline() + while s and s != GENERATED_BLOCK_END: + s = calendar_template_file.readline() + while s: + calendar_temp_file.write(s) + s = calendar_template_file.readline() + os.rename(calendar_temp_file_path, + os.path.join(qtsrcdir, 'src', 'corelib', 'time', calendar_data_file)) + # qlocale.h (qlocaleh_temp_file, qlocaleh_temp_file_path) = tempfile.mkstemp("qlocale.h", dir=qtsrcdir) -- cgit v1.2.3 From aa6e0e3e30ec7f330e2fbc02fc9fbe55ef0b6432 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Tue, 20 Aug 2019 12:44:41 +0200 Subject: Remove the usage of deprecated APIs from QSysInfo Replaced: QSysInfo::macVersion() -> QOperatingSystemVersion::current() Q_MV_OSX(10, 13) -> QOperatingSystemVersion::MacOSHighSierra Task-number: QTBUG-76491 Change-Id: Iae4f9c319ff16314fb04bbefaa48935a0f618007 Reviewed-by: Volker Hilsheimer --- tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp index da75e64d1e..243cb6483e 100644 --- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp +++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp @@ -417,7 +417,7 @@ void tst_QWizard::setPixmap() QVERIFY(wizard.pixmap(QWizard::BannerPixmap).isNull()); QVERIFY(wizard.pixmap(QWizard::LogoPixmap).isNull()); QVERIFY(wizard.pixmap(QWizard::WatermarkPixmap).isNull()); - if (QSysInfo::macVersion() <= Q_MV_OSX(10, 13)) + if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::MacOSHighSierra) QVERIFY(!wizard.pixmap(QWizard::BackgroundPixmap).isNull()); else QVERIFY(wizard.pixmap(QWizard::BackgroundPixmap).isNull()); @@ -425,7 +425,7 @@ void tst_QWizard::setPixmap() QVERIFY(page->pixmap(QWizard::BannerPixmap).isNull()); QVERIFY(page->pixmap(QWizard::LogoPixmap).isNull()); QVERIFY(page->pixmap(QWizard::WatermarkPixmap).isNull()); - if (QSysInfo::macVersion() <= Q_MV_OSX(10, 13)) + if (QOperatingSystemVersion::current() <= QOperatingSystemVersion::MacOSHighSierra) QVERIFY(!wizard.pixmap(QWizard::BackgroundPixmap).isNull()); else QVERIFY(page->pixmap(QWizard::BackgroundPixmap).isNull()); -- cgit v1.2.3 From 9e86fdb6e8004a0eba7d5f4b9a7b1f52275fd207 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 19 Aug 2019 12:53:10 +0200 Subject: Support writing color space profile in JPEG That way the image formats with color space supports all have both read and write support. Change-Id: Ib52ebd56192c4a8a0897a6afc7c4a26020319270 Reviewed-by: Eirik Aavitsland --- src/plugins/imageformats/jpeg/qjpeghandler.cpp | 29 ++++++++++++++++++++-- .../gui/image/qimagereader/tst_qimagereader.cpp | 7 ++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/plugins/imageformats/jpeg/qjpeghandler.cpp b/src/plugins/imageformats/jpeg/qjpeghandler.cpp index 0fb21df1d3..1f1675e490 100644 --- a/src/plugins/imageformats/jpeg/qjpeghandler.cpp +++ b/src/plugins/imageformats/jpeg/qjpeghandler.cpp @@ -492,6 +492,8 @@ inline my_jpeg_destination_mgr::my_jpeg_destination_mgr(QIODevice *device) free_in_buffer = max_buf; } +static constexpr int maxMarkerSize = 65533; + static inline void set_text(const QImage &image, j_compress_ptr cinfo, const QString &description) { const QMap text = qt_getImageText(image, description); @@ -500,12 +502,33 @@ static inline void set_text(const QImage &image, j_compress_ptr cinfo, const QSt if (!comment.isEmpty()) comment += ": "; comment += it.value().toUtf8(); - if (comment.length() > 65530) - comment.truncate(65530); + if (comment.length() > maxMarkerSize) + comment.truncate(maxMarkerSize); jpeg_write_marker(cinfo, JPEG_COM, (const JOCTET *)comment.constData(), comment.size()); } } +static inline void write_icc_profile(const QImage &image, j_compress_ptr cinfo) +{ + const QByteArray iccProfile = image.colorSpace().iccProfile(); + if (iccProfile.isEmpty()) + return; + + const QByteArray iccSignature("ICC_PROFILE", 12); + constexpr int maxIccMarkerSize = maxMarkerSize - (12 + 2); + int index = 0; + const int markers = (iccProfile.size() + (maxIccMarkerSize - 1)) / maxIccMarkerSize; + Q_ASSERT(markers < 256); + for (int marker = 1; marker <= markers; ++marker) { + const int len = std::min(iccProfile.size() - index, maxIccMarkerSize); + const QByteArray block = iccSignature + + QByteArray(1, char(marker)) + QByteArray(1, char(markers)) + + iccProfile.mid(index, len); + jpeg_write_marker(cinfo, JPEG_APP0 + 2, reinterpret_cast(block.constData()), block.size()); + index += len; + } +} + static bool write_jpeg_image(const QImage &image, QIODevice *device, volatile int sourceQuality, const QString &description, bool optimize, bool progressive) { bool success = false; @@ -586,6 +609,8 @@ static bool write_jpeg_image(const QImage &image, QIODevice *device, volatile in jpeg_start_compress(&cinfo, TRUE); set_text(image, &cinfo, description); + if (cinfo.in_color_space == JCS_RGB) + write_icc_profile(image, &cinfo); row_pointer[0] = new uchar[cinfo.image_width*cinfo.input_components]; int w = cinfo.image_width; diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp index 866a41c3d1..eeabfd0413 100644 --- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp @@ -1914,6 +1914,13 @@ void tst_QImageReader::saveColorSpace() QCOMPARE(stored, orig); QCOMPARE(stored.colorSpace(), orig.colorSpace()); + + buf.open(QIODevice::WriteOnly); + QVERIFY(orig.save(&buf, "jpeg")); + buf.close(); + stored = QImage::fromData(buf.buffer(), "jpeg"); + + QCOMPARE(stored.colorSpace(), orig.colorSpace()); } void tst_QImageReader::readText_data() -- cgit v1.2.3 From f556505f63a4255b681ba8a32e1f29ccb79725ce Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [6/N]: extra Had to port a lot of caching temporaries, too. Decided to leave them as crefs to unique_ptr to catch any mischief users may be doing with the raw pointer instead (like deleting it). Also fixed a use of 0 as nullptr (by standardizing on pointer-to-bool conversion, as is done everywhere else in qwidget.cpp), and made one impregnable if condition readable. Change-Id: Ifdc240bf352c52de0bc3c186fa7a5f4cb2882dd0 Reviewed-by: Volker Hilsheimer --- src/widgets/graphicsview/qgraphicsproxywidget.cpp | 12 ++++----- src/widgets/kernel/qapplication.cpp | 4 +-- src/widgets/kernel/qshortcut.cpp | 2 +- src/widgets/kernel/qwidget.cpp | 30 +++++++++++------------ src/widgets/kernel/qwidget_p.h | 4 +-- 5 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/widgets/graphicsview/qgraphicsproxywidget.cpp b/src/widgets/graphicsview/qgraphicsproxywidget.cpp index 2b6712075f..7413a26261 100644 --- a/src/widgets/graphicsview/qgraphicsproxywidget.cpp +++ b/src/widgets/graphicsview/qgraphicsproxywidget.cpp @@ -404,7 +404,7 @@ void QGraphicsProxyWidgetPrivate::_q_removeWidgetSlot() { Q_Q(QGraphicsProxyWidget); if (!widget.isNull()) { - if (QWExtra *extra = widget->d_func()->extra) + if (const auto &extra = widget->d_func()->extra) extra->proxyWidget = 0; } widget = 0; @@ -477,8 +477,8 @@ void QGraphicsProxyWidgetPrivate::updateProxyInputMethodAcceptanceFromWidget() */ void QGraphicsProxyWidgetPrivate::embedSubWindow(QWidget *subWin) { - QWExtra *extra; - if (!((extra = subWin->d_func()->extra) && extra->proxyWidget)) { + const auto &extra = subWin->d_func()->extra; + if (!extra || !extra->proxyWidget) { QGraphicsProxyWidget *subProxy = new QGraphicsProxyWidget(q_func(), subWin->windowFlags()); subProxy->d_func()->setWidget_helper(subWin, false); } @@ -631,7 +631,7 @@ void QGraphicsProxyWidgetPrivate::setWidget_helper(QWidget *newWidget, bool auto if (!newWidget) return; if (!newWidget->isWindow()) { - QWExtra *extra = newWidget->parentWidget()->d_func()->extra; + const auto &extra = newWidget->parentWidget()->d_func()->extra; if (!extra || !extra->proxyWidget) { qWarning("QGraphicsProxyWidget::setWidget: cannot embed widget %p " "which is not a toplevel widget, and is not a child of an embedded widget", newWidget); @@ -641,10 +641,10 @@ void QGraphicsProxyWidgetPrivate::setWidget_helper(QWidget *newWidget, bool auto // Register this proxy within the widget's private. // ### This is a bit backdoorish - QWExtra *extra = newWidget->d_func()->extra; + QWExtra *extra = newWidget->d_func()->extra.get(); if (!extra) { newWidget->d_func()->createExtra(); - extra = newWidget->d_func()->extra; + extra = newWidget->d_func()->extra.get(); } QGraphicsProxyWidget **proxyWidget = &extra->proxyWidget; if (*proxyWidget) { diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index 94b14ecb4f..629c696544 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -3388,7 +3388,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) #if QT_CONFIG(graphicsview) // QGraphicsProxyWidget handles its own propagation, // and we must not change QDragManagers currentTarget. - QWExtra *extra = w->window()->d_func()->extra; + const auto &extra = w->window()->d_func()->extra; if (extra && extra->proxyWidget) { res = d->notify_helper(w, dragEvent); break; @@ -3416,7 +3416,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) #if QT_CONFIG(graphicsview) // QGraphicsProxyWidget handles its own propagation, // and we must not change QDragManagers currentTarget. - QWExtra *extra = w->window()->d_func()->extra; + const auto &extra = w->window()->d_func()->extra; bool isProxyWidget = extra && extra->proxyWidget; if (!isProxyWidget) #endif diff --git a/src/widgets/kernel/qshortcut.cpp b/src/widgets/kernel/qshortcut.cpp index a4ebcdfc84..39b08dbc1e 100644 --- a/src/widgets/kernel/qshortcut.cpp +++ b/src/widgets/kernel/qshortcut.cpp @@ -178,7 +178,7 @@ static bool correctWidgetContext(Qt::ShortcutContext context, QWidget *w, QWidge // Below is Qt::WindowShortcut context QWidget *tlw = w->window(); #if QT_CONFIG(graphicsview) - if (auto topData = static_cast(QObjectPrivate::get(tlw))->extra) { + if (auto topData = static_cast(QObjectPrivate::get(tlw))->extra.get()) { if (topData->proxyWidget) { bool res = correctGraphicsWidgetContext(context, topData->proxyWidget, active_window); return res; diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 066dfaa183..2edbe05e32 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -148,7 +148,6 @@ extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp QWidgetPrivate::QWidgetPrivate(int version) : QObjectPrivate(version) - , extra(0) , focus_next(0) , focus_prev(0) , focus_child(0) @@ -1553,7 +1552,7 @@ QWidget::~QWidget() while (w->d_func()->extra && w->d_func()->extra->focus_proxy) w = w->d_func()->extra->focus_proxy; QWidget *window = w->window(); - QWExtra *e = window ? window->d_func()->extra : 0; + QWExtra *e = window ? window->d_func()->extra.get() : nullptr ; if (!e || !e->proxyWidget || (w->parentWidget() && w->parentWidget()->d_func()->focus_child == this)) #endif clearFocus(); @@ -1732,7 +1731,7 @@ void QWidgetPrivate::createTLExtra() void QWidgetPrivate::createExtra() { if (!extra) { // if not exists - extra = new QWExtra; + extra = qt_make_unique(); extra->glContext = 0; #if QT_CONFIG(graphicsview) extra->proxyWidget = 0; @@ -1780,9 +1779,8 @@ void QWidgetPrivate::deleteExtra() deleteTLSysExtra(); // extra->topextra->backingStore destroyed in QWidgetPrivate::deleteTLSysExtra() } - delete extra; // extra->xic destroyed in QWidget::destroy() - extra = 0; + extra.reset(); } } @@ -1853,7 +1851,7 @@ QRegion QWidgetPrivate::overlappedRegion(const QRect &rect, bool breakAfterFirst const QRect siblingRect = sibling->d_func()->effectiveRectFor(sibling->data->crect); if (qRectIntersects(siblingRect, r)) { - const QWExtra *siblingExtra = sibling->d_func()->extra; + const auto &siblingExtra = sibling->d_func()->extra; if (siblingExtra && siblingExtra->hasMask && !sibling->d_func()->graphicsEffect && !siblingExtra->mask.translated(sibling->data->crect.topLeft()).intersects(r)) { continue; @@ -3858,7 +3856,7 @@ QSize QWidget::sizeIncrement() const QSize QWidget::baseSize() const { Q_D(const QWidget); - return (d->extra != 0 && d->extra->topextra != 0) + return (d->extra && d->extra->topextra) ? QSize(d->extra->topextra->basew, d->extra->topextra->baseh) : QSize(0, 0); } @@ -5858,7 +5856,7 @@ QPixmap QWidgetEffectSourcePrivate::pixmap(Qt::CoordinateSystem system, QPoint * QGraphicsProxyWidget *QWidgetPrivate::nearestGraphicsProxyWidget(const QWidget *origin) { if (origin) { - QWExtra *extra = origin->d_func()->extra; + const auto &extra = origin->d_func()->extra; if (extra && extra->proxyWidget) return extra->proxyWidget; return nearestGraphicsProxyWidget(origin->parentWidget()); @@ -6404,7 +6402,7 @@ bool QWidget::hasFocus() const w = w->d_func()->extra->focus_proxy; #if QT_CONFIG(graphicsview) if (QWidget *window = w->window()) { - QWExtra *e = window->d_func()->extra; + const auto &e = window->d_func()->extra; if (e && e->proxyWidget && e->proxyWidget->hasFocus() && window->focusWidget() == w) return true; } @@ -6465,7 +6463,7 @@ void QWidget::setFocus(Qt::FocusReason reason) #if QT_CONFIG(graphicsview) QWidget *previousProxyFocus = 0; - if (QWExtra *topData = window()->d_func()->extra) { + if (const auto &topData = window()->d_func()->extra) { if (topData->proxyWidget && topData->proxyWidget->hasFocus()) { previousProxyFocus = topData->proxyWidget->widget()->focusWidget(); if (previousProxyFocus && previousProxyFocus->focusProxy()) @@ -6478,7 +6476,7 @@ void QWidget::setFocus(Qt::FocusReason reason) #if QT_CONFIG(graphicsview) // Update proxy state - if (QWExtra *topData = window()->d_func()->extra) { + if (const auto &topData = window()->d_func()->extra) { if (topData->proxyWidget && !topData->proxyWidget->hasFocus()) { f->d_func()->updateFocusChild(); topData->proxyWidget->d_func()->focusFromWidgetToProxy = 1; @@ -6519,7 +6517,7 @@ void QWidget::setFocus(Qt::FocusReason reason) } #endif #if QT_CONFIG(graphicsview) - if (QWExtra *topData = window()->d_func()->extra) { + if (const auto &topData = window()->d_func()->extra) { if (topData->proxyWidget) { if (previousProxyFocus && previousProxyFocus != f) { // Send event to self @@ -6532,7 +6530,7 @@ void QWidget::setFocus(Qt::FocusReason reason) if (!isHidden()) { #if QT_CONFIG(graphicsview) // Update proxy state - if (QWExtra *topData = window()->d_func()->extra) + if (const auto &topData = window()->d_func()->extra) if (topData->proxyWidget && topData->proxyWidget->hasFocus()) topData->proxyWidget->d_func()->updateProxyInputMethodAcceptanceFromWidget(); #endif @@ -6669,7 +6667,7 @@ void QWidget::clearFocus() } #if QT_CONFIG(graphicsview) - QWExtra *topData = d_func()->extra; + const auto &topData = d_func()->extra; if (topData && topData->proxyWidget) topData->proxyWidget->clearFocus(); #endif @@ -6835,7 +6833,7 @@ bool QWidget::isActiveWindow() const return true; #if QT_CONFIG(graphicsview) - if (QWExtra *tlwExtra = tlw->d_func()->extra) { + if (const auto &tlwExtra = tlw->d_func()->extra) { if (isVisible() && tlwExtra->proxyWidget) return tlwExtra->proxyWidget->isActiveWindow(); } @@ -10325,7 +10323,7 @@ void QWidget::setSizePolicy(QSizePolicy policy) d->size_policy = policy; #if QT_CONFIG(graphicsview) - if (QWExtra *extra = d->extra) { + if (const auto &extra = d->extra) { if (extra->proxyWidget) extra->proxyWidget->setSizePolicy(policy); } diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index b4a9d283db..687e8bef09 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -669,7 +669,7 @@ public: // Variables. // Regular pointers (keep them together to avoid gaps on 64 bit architectures). - QWExtra *extra; + std::unique_ptr extra; QWidget *focus_next; QWidget *focus_prev; QWidget *focus_child; @@ -945,7 +945,7 @@ public: inline QWExtra *QWidgetPrivate::extraData() const { - return extra; + return extra.get(); } inline QTLWExtra *QWidgetPrivate::topData() const -- cgit v1.2.3 From 9f082b4e03a52ed651e636f765eb076d3e56a2f4 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Tue, 20 Aug 2019 14:59:16 +0200 Subject: Clean up the docs of qevent.cpp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Build the docs for deprecated APIs conditionally, based on deprecation version. - Remove the docs of methods deprecated since 5.0.0, these methods are not compiled anymore. Change-Id: I2c1b038ce125ca737944f4fc4a28e2f6852eaded Reviewed-by: Tor Arne Vestbø --- src/gui/kernel/qevent.cpp | 52 ++--------------------------------------------- 1 file changed, 2 insertions(+), 50 deletions(-) diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index ec52791010..d79066adf2 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -534,13 +534,6 @@ Qt::MouseEventFlags QMouseEvent::flags() const \sa button(), Qt::MouseButton */ -/*! - \fn QPointF QMouseEvent::posF() const - \obsolete - - Use localPos() instead. -*/ - /*! \class QHoverEvent \ingroup events @@ -1101,16 +1094,6 @@ QKeyEvent::~QKeyEvent() { } -/*! - \fn QKeyEvent *QKeyEvent::createExtendedKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers, const QString& text, bool autorep, ushort count) - \internal -*/ - -/*! - \fn bool QKeyEvent::hasExtendedInfo() const - \internal -*/ - /*! \fn quint32 QKeyEvent::nativeScanCode() const \since 4.2 @@ -2539,7 +2522,7 @@ Qt::MouseButtons QTabletEvent::buttons() const globalPos() can differ significantly from the current position QCursor::pos(). - \sa globalX(), globalY(), hiResGlobalPos() + \sa globalX(), globalY() */ /*! @@ -2583,15 +2566,6 @@ Qt::MouseButtons QTabletEvent::buttons() const \sa pointerType() */ -/*! - \fn const QPointF &QTabletEvent::hiResGlobalPos() const - - The high precision coordinates delivered from the tablet expressed. - Sub pixeling information is in the fractional part of the QPointF. - - \sa globalPos(), hiResGlobalX(), hiResGlobalY() -*/ - /*! \fn qreal &QTabletEvent::hiResGlobalX() const @@ -2674,10 +2648,10 @@ Qt::MouseButtons QTabletEvent::buttons() const \sa Qt::NativeGestureType, QGestureEvent */ +#if QT_DEPRECATED_SINCE(5, 10) /*! \deprecated The QTouchDevice parameter is now required */ -#if QT_DEPRECATED_SINCE(5, 10) QNativeGestureEvent::QNativeGestureEvent(Qt::NativeGestureType type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos, qreal realValue, ulong sequenceId, quint64 intValue) : QInputEvent(QEvent::NativeGesture), mGestureType(type), @@ -4290,18 +4264,6 @@ QWindowStateChangeEvent::~QWindowStateChangeEvent() QGraphicsItem::acceptTouchEvents() */ -/*! \enum QTouchEvent::DeviceType - \obsolete - - This enum represents the type of device that generated a QTouchEvent. - - This enum has been deprecated. Use QTouchDevice::DeviceType instead. - \omitvalue TouchPad - \omitvalue TouchScreen - - \sa QTouchDevice::DeviceType, QTouchDevice::type(), QTouchEvent::device() -*/ - /*! Constructs a QTouchEvent with the given \a eventType, \a device, and \a touchPoints. The \a touchPointStates and \a modifiers @@ -4341,16 +4303,6 @@ QTouchEvent::~QTouchEvent() This is typically a QWidget or a QQuickItem. May be 0 when no specific target is available. */ -/*! \fn QTouchEvent::DeviceType QTouchEvent::deviceType() const - \obsolete - - Returns the touch device Type, which is of type \l {QTouchEvent::DeviceType} {DeviceType}. - - This function has been deprecated. Use QTouchDevice::type() instead. - - \sa QTouchDevice::type(), QTouchEvent::device() -*/ - /*! \fn QTouchEvent::TouchPoint::TouchPoint(TouchPoint &&other) Move-constructs a TouchPoint instance, making it point to the same -- cgit v1.2.3 From d46415c0af5c84b5924694a090a0cd70fdb18158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Mon, 12 Aug 2019 23:32:44 +0200 Subject: wasm: Add saveFileContent() Saves a file by file download, where the user can choose the file name and location using a file dialog. Change-Id: I4d2ecc76fc33bb65fdf3d7ca3fcd9566c62547dd Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/platform/wasm/qwasmlocalfileaccess.cpp | 37 ++++++++++++++++++ src/gui/platform/wasm/qwasmlocalfileaccess_p.h | 2 + src/widgets/dialogs/qfiledialog.cpp | 45 ++++++++++++++++++++++ src/widgets/dialogs/qfiledialog.h | 1 + .../snippets/code/src_gui_dialogs_qfiledialog.cpp | 5 +++ 5 files changed, 90 insertions(+) diff --git a/src/gui/platform/wasm/qwasmlocalfileaccess.cpp b/src/gui/platform/wasm/qwasmlocalfileaccess.cpp index 83f9415c69..85c894a74a 100644 --- a/src/gui/platform/wasm/qwasmlocalfileaccess.cpp +++ b/src/gui/platform/wasm/qwasmlocalfileaccess.cpp @@ -164,6 +164,43 @@ void openFile(const std::string &accept, openFiles(accept, FileSelectMode::SingleFile, fileDialogClosedWithInt, acceptFile, fileDataReady); } +void saveFile(const char *content, size_t size, const std::string &fileNameHint) +{ + // Save a file by creating programatically clicking a download + // link to an object url to a Blob containing the file content. + // File content is copied once, so that the passed in content + // buffer can be released as soon as this function returns - we + // don't know for how long the browser will retain the TypedArray + // view used to create the Blob. + + emscripten::val document = emscripten::val::global("document"); + emscripten::val window = emscripten::val::global("window"); + + emscripten::val fileContentView = emscripten::val(emscripten::typed_memory_view(size, content)); + emscripten::val fileContentCopy = emscripten::val::global("ArrayBuffer").new_(size); + emscripten::val fileContentCopyView = emscripten::val::global("Uint8Array").new_(fileContentCopy); + fileContentCopyView.call("set", fileContentView); + + emscripten::val contentArray = emscripten::val::array(); + contentArray.call("push", fileContentCopyView); + emscripten::val type = emscripten::val::object(); + type.set("type","application/octet-stream"); + emscripten::val contentBlob = emscripten::val::global("Blob").new_(contentArray, type); + + emscripten::val contentUrl = window["URL"].call("createObjectURL", contentBlob); + emscripten::val contentLink = document.call("createElement", std::string("a")); + contentLink.set("href", contentUrl); + contentLink.set("download", fileNameHint); + contentLink.set("style", "display:none"); + + emscripten::val body = document["body"]; + body.call("appendChild", contentLink); + contentLink.call("click"); + body.call("removeChild", contentLink); + + window["URL"].call("revokeObjectURL", contentUrl); +} + } // namespace QWasmLocalFileAccess QT_END_NAMESPACE diff --git a/src/gui/platform/wasm/qwasmlocalfileaccess_p.h b/src/gui/platform/wasm/qwasmlocalfileaccess_p.h index 794db8d9b2..ccd88570c8 100644 --- a/src/gui/platform/wasm/qwasmlocalfileaccess_p.h +++ b/src/gui/platform/wasm/qwasmlocalfileaccess_p.h @@ -71,6 +71,8 @@ void openFile(const std::string &accept, const std::function &acceptFile, const std::function &fileDataReady); +void saveFile(const char *content, size_t size, const std::string &fileNameHint); + } // namespace QWasmLocalFileAccess QT_END_NAMESPACE diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index a89192e76f..a1b9003c1c 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -2447,6 +2447,51 @@ void QFileDialog::getOpenFileContent(const QString &nameFilter, const std::funct #endif } +/*! + This is a convenience static function that saves \a fileContent to a file, using + a file name and location chosen by the user. \a fileNameHint can be provided to + suggest a file name to the user. + + This function is used to save files to the local file system on Qt for WebAssembly, where + the web sandbox places restrictions on how such access may happen. Its implementation will + make the browser display a native file dialog, where the user makes the file selection. + + It can also be used on other platforms, where it will fall back to using QFileDialog. + + The function is asynchronous and returns immediately. + + \snippet code/src_gui_dialogs_qfiledialog.cpp 16 + \since 5.14 +*/ +void QFileDialog::saveFileContent(const QByteArray &fileContent, const QString &fileNameHint) +{ +#ifdef Q_OS_WASM + QWasmLocalFileAccess::saveFile(fileContent.constData(), fileContent.size(), fileNameHint.toStdString()); +#else + QFileDialog *dialog = new QFileDialog(); + dialog->setAcceptMode(QFileDialog::AcceptSave); + dialog->setFileMode(QFileDialog::AnyFile); + dialog->selectFile(fileNameHint); + + auto fileSelected = [=](const QString &fileName) { + if (!fileName.isNull()) { + QFile selectedFile(fileName); + if (selectedFile.open(QIODevice::WriteOnly)) + selectedFile.write(fileContent); + } + }; + + auto dialogClosed = [=](int code) { + Q_UNUSED(code); + delete dialog; + }; + + connect(dialog, &QFileDialog::fileSelected, fileSelected); + connect(dialog, &QFileDialog::finished, dialogClosed); + dialog->show(); +#endif +} + /*! This is a convenience static function that will return a file name selected by the user. The file does not have to exist. diff --git a/src/widgets/dialogs/qfiledialog.h b/src/widgets/dialogs/qfiledialog.h index 354a1f928b..790f52f2e7 100644 --- a/src/widgets/dialogs/qfiledialog.h +++ b/src/widgets/dialogs/qfiledialog.h @@ -284,6 +284,7 @@ public: static void getOpenFileContent(const QString &nameFilter, const std::function &fileContentsReady); + static void saveFileContent(const QByteArray &fileContent, const QString &fileNameHint = QString()); protected: QFileDialog(const QFileDialogArgs &args); diff --git a/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp b/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp index 39aca459db..7ccd827a04 100644 --- a/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp +++ b/src/widgets/doc/snippets/code/src_gui_dialogs_qfiledialog.cpp @@ -155,3 +155,8 @@ auto fileOpenCompleted = [](const QString &fileName, const QByteArray &fileConte } QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)", fileContentReady); //! [15] + +//! [16] +QByteArray imageData; // obtained from e.g. QImage::save() +QFileDialog::saveFile("myimage.png", imageData); +//! [16] -- cgit v1.2.3 From 3b5f9678d721f5d44f154408ad8ad5cf08e34ca0 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 6 Aug 2019 15:06:15 +0200 Subject: Remove dead QMakeSourceFileInfo caching feature from QMake Since its introduction in commit 65bb1a25419210e6097cad973fb847aa3719c09b (old internal history, 2005) with the commit message "optimizations I've been sitting on here" we're dragging along this dead code. It is time for removal. Change-Id: Ic7902ebb8c402734974ad6651a1371d1e5bf93c5 Reviewed-by: Oliver Wolff --- mkspecs/features/qt_module.prf | 2 +- qmake/generators/makefile.cpp | 14 ---- qmake/generators/makefiledeps.cpp | 164 -------------------------------------- qmake/generators/makefiledeps.h | 9 --- 4 files changed, 1 insertion(+), 188 deletions(-) diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf index 169d91c746..828a9621b9 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf @@ -93,7 +93,7 @@ header_module { DESTDIR = $$MODULE_BASE_OUTDIR/lib DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin -CONFIG += qmake_cache target_qt +CONFIG += target_qt QMAKE_DOCS_TARGETDIR = qt$${MODULE} diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index ec73ccfe54..94e9259c68 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -771,20 +771,6 @@ MakefileGenerator::init() QMakeSourceFileInfo::setDependencyPaths(deplist); debug_msg(1, "Dependency Directories: %s", incDirs.join(QString(" :: ")).toLatin1().constData()); - //cache info - if(project->isActiveConfig("qmake_cache")) { - QString cache_file; - if(!project->isEmpty("QMAKE_INTERNAL_CACHE_FILE")) { - cache_file = QDir::fromNativeSeparators(project->first("QMAKE_INTERNAL_CACHE_FILE").toQString()); - } else { - cache_file = ".qmake.internal.cache"; - if(project->isActiveConfig("build_pass")) - cache_file += ".BUILD." + project->first("BUILD_PASS"); - } - if(cache_file.indexOf('/') == -1) - cache_file.prepend(Option::output_dir + '/'); - QMakeSourceFileInfo::setCacheFile(cache_file); - } //add to dependency engine for(x = 0; x < compilers.count(); ++x) { diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp index 10fcc1493c..d68539814e 100644 --- a/qmake/generators/makefiledeps.cpp +++ b/qmake/generators/makefiledeps.cpp @@ -60,8 +60,6 @@ QT_BEGIN_NAMESPACE inline bool qmake_endOfLine(const char &c) { return (c == '\r' || c == '\n'); } #endif -//#define QMAKE_USE_CACHE - QMakeLocalFileName::QMakeLocalFileName(const QString &name) : is_null(name.isNull()) { if(!name.isEmpty()) { @@ -265,19 +263,10 @@ QMakeSourceFileInfo::QMakeSourceFileInfo(const QString &cf) //buffer spare_buffer = nullptr; spare_buffer_size = 0; - - //cache - cachefile = cf; - if(!cachefile.isEmpty()) - loadCache(cachefile); } QMakeSourceFileInfo::~QMakeSourceFileInfo() { - //cache - if(!cachefile.isEmpty() /*&& files_changed*/) - saveCache(cachefile); - //buffer if(spare_buffer) { free(spare_buffer); @@ -290,12 +279,6 @@ QMakeSourceFileInfo::~QMakeSourceFileInfo() delete includes; } -void QMakeSourceFileInfo::setCacheFile(const QString &cf) -{ - cachefile = cf; - loadCache(cachefile); -} - void QMakeSourceFileInfo::addSourceFiles(const ProStringList &l, uchar seek, QMakeSourceFileInfo::SourceFileType type) { @@ -1054,151 +1037,4 @@ bool QMakeSourceFileInfo::findMocs(SourceFile *file) return true; } - -void QMakeSourceFileInfo::saveCache(const QString &cf) -{ -#ifdef QMAKE_USE_CACHE - if(cf.isEmpty()) - return; - - QFile file(QMakeLocalFileName(cf).local()); - if(file.open(QIODevice::WriteOnly)) { - QTextStream stream(&file); - stream << QMAKE_VERSION_STR << endl << endl; //version - { //cache verification - QMap verify = getCacheVerification(); - stream << verify.count() << endl; - for(QMap::iterator it = verify.begin(); - it != verify.end(); ++it) { - stream << it.key() << endl << it.value().join(';') << endl; - } - stream << endl; - } - if(files->nodes) { - for(int file = 0; file < files->num_nodes; ++file) { - for(SourceFiles::SourceFileNode *node = files->nodes[file]; node; node = node->next) { - stream << node->file->file.local() << endl; //source - stream << node->file->type << endl; //type - - //depends - stream << ";"; - if(node->file->deps) { - for(int depend = 0; depend < node->file->deps->used_nodes; ++depend) { - if(depend) - stream << ";"; - stream << node->file->deps->children[depend]->file.local(); - } - } - stream << endl; - - stream << node->file->mocable << endl; //mocable - stream << endl; //just for human readability - } - } - } - stream.flush(); - file.close(); - } -#else - Q_UNUSED(cf); -#endif -} - -void QMakeSourceFileInfo::loadCache(const QString &cf) -{ - if(cf.isEmpty()) - return; - -#ifdef QMAKE_USE_CACHE - QMakeLocalFileName cache_file(cf); - int fd = open(QMakeLocalFileName(cf).local().toLatin1(), O_RDONLY); - if(fd == -1) - return; - QFileInfo cache_fi = findFileInfo(cache_file); - if(!cache_fi.exists() || cache_fi.isDir()) - return; - - QFile file; - if (!file.open(fd, QIODevice::ReadOnly)) - return; - QTextStream stream(&file); - - if (stream.readLine() == QMAKE_VERSION_STR) { //version check - stream.skipWhiteSpace(); - - bool verified = true; - { //cache verification - QMap verify; - int len = stream.readLine().toInt(); - for(int i = 0; i < len; ++i) { - QString var = stream.readLine(); - QString val = stream.readLine(); - verify.insert(var, val.split(';', QString::SkipEmptyParts)); - } - verified = verifyCache(verify); - } - if(verified) { - stream.skipWhiteSpace(); - if(!files) - files = new SourceFiles; - while(!stream.atEnd()) { - QString source = stream.readLine(); - QString type = stream.readLine(); - QString depends = stream.readLine(); - QString mocable = stream.readLine(); - stream.skipWhiteSpace(); - - QMakeLocalFileName fn(source); - QFileInfo fi = findFileInfo(fn); - - SourceFile *file = files->lookupFile(fn); - if(!file) { - file = new SourceFile; - file->file = fn; - files->addFile(file); - file->type = (SourceFileType)type.toInt(); - file->exists = fi.exists(); - } - if(fi.exists() && fi.lastModified() < cache_fi.lastModified()) { - if(!file->dep_checked) { //get depends - if(!file->deps) - file->deps = new SourceDependChildren; - file->dep_checked = true; - QStringList depend_list = depends.split(";", QString::SkipEmptyParts); - for(int depend = 0; depend < depend_list.size(); ++depend) { - QMakeLocalFileName dep_fn(depend_list.at(depend)); - QFileInfo dep_fi(findFileInfo(dep_fn)); - SourceFile *dep = files->lookupFile(dep_fn); - if(!dep) { - dep = new SourceFile; - dep->file = dep_fn; - dep->exists = dep_fi.exists(); - dep->type = QMakeSourceFileInfo::TYPE_UNKNOWN; - files->addFile(dep); - } - dep->included_count++; - file->deps->addChild(dep); - } - } - if(!file->moc_checked) { //get mocs - file->moc_checked = true; - file->mocable = mocable.toInt(); - } - } - } - } - } -#endif -} - -QMap QMakeSourceFileInfo::getCacheVerification() -{ - return QMap(); -} - -bool QMakeSourceFileInfo::verifyCache(const QMap &v) -{ - return v == getCacheVerification(); -} - QT_END_NAMESPACE diff --git a/qmake/generators/makefiledeps.h b/qmake/generators/makefiledeps.h index b91a3e0a0f..66b87bf470 100644 --- a/qmake/generators/makefiledeps.h +++ b/qmake/generators/makefiledeps.h @@ -79,9 +79,6 @@ private: bool findDeps(SourceFile *); void dependTreeWalker(SourceFile *, SourceDependChildren *); - //cache - QString cachefile; - protected: virtual QMakeLocalFileName fixPathForFile(const QMakeLocalFileName &, bool forOpen=false); virtual QMakeLocalFileName findFileForDep(const QMakeLocalFileName &, const QMakeLocalFileName &); @@ -114,12 +111,6 @@ public: bool mocable(const QString &file); - virtual QMap getCacheVerification(); - virtual bool verifyCache(const QMap &); - void setCacheFile(const QString &cachefile); //auto caching - void loadCache(const QString &cf); - void saveCache(const QString &cf); - private: DependencyMode dep_mode; }; -- cgit v1.2.3 From 1d89748772947d38d284c59d59f50fa075d113d6 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 19 Aug 2019 09:42:21 +0200 Subject: Fix .sln generation for sub-projects with same TARGET Sub-projects in VS solutions must have unique project names. If there are multiple projects with the same TARGET then QMAKE_PROJECT_NAME must be set to different values. The .sln generation code did not use QMAKE_PROJECT_NAME and produced .sln files with equally named sub-projects. Replace the 'orig_target' member of VcsolutionDepend with a 'projectName' member and use it when writing the .sln file and for the misnamed "GUID map" that's supposed to have unique keys. This commit amends 9e750d34 (qt/qt.git). Fixes: QTBUG-77639 Change-Id: I81c64f8bc6baeb6d99e9d5808fb73dfd7aaaeeb8 Reviewed-by: Alexandru Croitor Reviewed-by: Kai Koehne --- qmake/generators/win32/msvc_vcproj.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index b6f7f20564..06db24df22 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -209,7 +209,9 @@ bool VcprojGenerator::writeProjectMakefile() struct VcsolutionDepend { QString uuid; - QString vcprojFile, orig_target, target; + QString vcprojFile; + QString projectName; + QString target; Target targetType; QStringList dependencies; }; @@ -433,7 +435,8 @@ ProStringList VcprojGenerator::collectDependencies(QMakeProject *proj, QHashfirst("QMAKE_PROJECT_NAME") + project->first("VCPROJ_EXTENSION"); + const ProString projectName = tmp_vcproj.project->first("QMAKE_PROJECT_NAME"); + const QString vcproj = projectName + project->first("VCPROJ_EXTENSION"); QString vcprojDir = Option::output_dir; // If file doesn't exsist, then maybe the users configuration @@ -445,14 +448,14 @@ ProStringList VcprojGenerator::collectDependencies(QMakeProject *proj, QHashvcprojFile = vcprojDir + Option::dir_sep + vcproj; - newDep->orig_target = tmp_proj.first("QMAKE_ORIG_TARGET").toQString(); + newDep->projectName = projectName.toQString(); newDep->target = tmp_proj.first("MSVCPROJ_TARGET").toQString().section(Option::dir_sep, -1); newDep->targetType = tmp_vcproj.projectTarget; newDep->uuid = tmp_proj.isEmpty("QMAKE_UUID") ? getProjectUUID(Option::fixPathToLocalOS(vcprojDir + QDir::separator() + vcproj)).toString().toUpper(): tmp_proj.first("QMAKE_UUID").toQString(); // We want to store it as the .lib name. if (newDep->target.endsWith(".dll")) newDep->target = newDep->target.left(newDep->target.length()-3) + "lib"; - projGuids.insert(newDep->orig_target, newDep->target); + projGuids.insert(newDep->projectName, newDep->target); if (tmpList.size()) { const ProStringList depends = tmpList; @@ -591,7 +594,7 @@ void VcprojGenerator::writeSubDirs(QTextStream &t) for (QList::Iterator it = solution_cleanup.begin(); it != solution_cleanup.end(); ++it) { // ### quoting rules? t << _slnProjectBeg << _slnMSVCvcprojGUID << _slnProjectMid - << "\"" << (*it)->orig_target << "\", \"" << (*it)->vcprojFile + << "\"" << (*it)->projectName << "\", \"" << (*it)->vcprojFile << "\", \"" << (*it)->uuid << "\""; debug_msg(1, "Project %s has dependencies: %s", (*it)->target.toLatin1().constData(), (*it)->dependencies.join(" ").toLatin1().constData()); -- cgit v1.2.3 From 38e55a26a484e292f6c42644b0902cd3c94f19d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 16 Aug 2019 16:59:33 +0200 Subject: widgets: Remove dead members from BeginPaintInfo The flags haven't been used since 2011 (6ce6b8a37) and is dead code. Change-Id: Ic5c47b30326ff70534bbf1aa37b25bae666b6b96 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 7 ------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 4 +--- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 4383b4c168..cbad1d3f04 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1306,13 +1306,6 @@ void QWidgetRepaintManager::doSync() BeginPaintInfo beginPaintInfo; beginPaint(toClean, tlw, store, &beginPaintInfo); - if (beginPaintInfo.nothingToPaint) { - for (int i = 0; i < opaqueNonOverlappedWidgets.size(); ++i) - resetWidget(opaqueNonOverlappedWidgets[i]); - dirty = QRegion(); - updateRequestSent = false; - return; - } // Must do this before sending any paint events because // the size may change in the paint event. diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 36f42b7e1a..933142a307 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -64,10 +64,8 @@ class QPlatformTextureListWatcher; class QWidgetRepaintManager; struct BeginPaintInfo { - inline BeginPaintInfo() : wasFlushed(0), nothingToPaint(0), backingStoreRecreated(0) {} + inline BeginPaintInfo() : wasFlushed(0) {} uint wasFlushed : 1; - uint nothingToPaint : 1; - uint backingStoreRecreated : 1; }; #ifndef QT_NO_OPENGL -- cgit v1.2.3 From e2a1fb90154d8c0dd9b5def17c7062a0bdbebfd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 20 Aug 2019 17:46:01 +0200 Subject: widgets: Remove unused function qt_dirtyRegion Change-Id: I7e6dbc4fb777a2323d65b73164d8645d6efc95a4 Reviewed-by: Marc Mutz --- src/widgets/kernel/qwidget.cpp | 16 ---------------- src/widgets/kernel/qwidgetrepaintmanager.cpp | 2 -- src/widgets/kernel/qwidgetrepaintmanager_p.h | 1 - 3 files changed, 19 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index d792b48467..113c569591 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -860,22 +860,6 @@ QWidgetMapper *QWidgetPrivate::mapper = 0; // widget with wid QWidgetSet *QWidgetPrivate::allWidgets = 0; // widgets with no wid -/***************************************************************************** - QWidget utility functions - *****************************************************************************/ - -QRegion qt_dirtyRegion(QWidget *widget) -{ - if (!widget) - return QRegion(); - - QWidgetRepaintManager *repaintManager = qt_widget_private(widget)->maybeRepaintManager(); - if (!repaintManager) - return QRegion(); - - return repaintManager->dirtyRegion(widget); -} - /***************************************************************************** QWidget member functions *****************************************************************************/ diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index cbad1d3f04..1a967aa6ef 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -72,8 +72,6 @@ QT_BEGIN_NAMESPACE -extern QRegion qt_dirtyRegion(QWidget *); - #ifndef QT_NO_OPENGL Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) #endif diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 933142a307..34da752feb 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -266,7 +266,6 @@ private: #endif } - friend QRegion qt_dirtyRegion(QWidget *); friend class QWidgetPrivate; friend class QWidget; friend class QBackingStore; -- cgit v1.2.3 From 5085f8e2115d105fe5c1e76c648c36cc1a80bdab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 16 Aug 2019 17:07:08 +0200 Subject: widgets: Remove unused arguments from QWidgetRepaintManager::beginPaint Change-Id: I3720d8ef31e623e514fc2e382192d3c4f99fb4ed Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 8 ++------ src/widgets/kernel/qwidgetrepaintmanager_p.h | 3 +-- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 1a967aa6ef..9d6e6b9c92 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -321,12 +321,8 @@ bool QWidgetRepaintManager::bltRect(const QRect &rect, int dx, int dy, QWidget * The \a toClean region might be clipped by the window surface. */ -void QWidgetRepaintManager::beginPaint(QRegion &toClean, QWidget *widget, QBackingStore *backingStore, - BeginPaintInfo *returnInfo, bool toCleanIsInTopLevelCoordinates) +void QWidgetRepaintManager::beginPaint(QRegion &toClean, QBackingStore *backingStore, BeginPaintInfo *returnInfo) { - Q_UNUSED(widget); - Q_UNUSED(toCleanIsInTopLevelCoordinates); - // Always flush repainted areas. dirtyOnScreen += toClean; @@ -1303,7 +1299,7 @@ void QWidgetRepaintManager::doSync() #endif BeginPaintInfo beginPaintInfo; - beginPaint(toClean, tlw, store, &beginPaintInfo); + beginPaint(toClean, store, &beginPaintInfo); // Must do this before sending any paint events because // the size may change in the paint event. diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 34da752feb..6608f39138 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -148,8 +148,7 @@ private: void doSync(); bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); - void beginPaint(QRegion &toClean, QWidget *widget, QBackingStore *backingStore, - BeginPaintInfo *returnInfo, bool toCleanIsInTopLevelCoordinates = true); + void beginPaint(QRegion &toClean, QBackingStore *backingStore, BeginPaintInfo *returnInfo); void endPaint(const QRegion &cleaned, QBackingStore *backingStore, BeginPaintInfo *beginPaintInfo); QRegion dirtyRegion(QWidget *widget = nullptr) const; -- cgit v1.2.3 From 4dab6184f5f885bac21eef9e17a87219e64ba7dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 16 Aug 2019 17:11:41 +0200 Subject: widgets: Remove stale documentation of QWidgetRepaintManager::flush Change-Id: I5c4df4a8694bc56014beaec34a81219d91332fec Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 9d6e6b9c92..3389d36bd9 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1341,7 +1341,6 @@ void QWidgetRepaintManager::doSync() /*! Flushes the contents of the backing store into the top-level widget. If the \a widget is non-zero, the content is flushed to the \a widget. - If the \a surface is non-zero, the content of the \a surface is flushed. */ void QWidgetRepaintManager::flush(QWidget *widget) { -- cgit v1.2.3 From 2cddaf0071d647221ea4936da22bca86cd523799 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 19 Aug 2019 14:46:28 +0200 Subject: Fix tst_bench_qimagereader It couldn't find the test images if not build in sources. Change-Id: Ieeb5a76694a37d05b3e9a4ed0154885040b0812f Reviewed-by: Daniel Smith Reviewed-by: Eirik Aavitsland --- .../benchmarks/gui/image/qimagereader/qimagereader.pro | 2 ++ .../gui/image/qimagereader/tst_qimagereader.cpp | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/tests/benchmarks/gui/image/qimagereader/qimagereader.pro b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro index 29f7f6b16e..3454cf1474 100644 --- a/tests/benchmarks/gui/image/qimagereader/qimagereader.pro +++ b/tests/benchmarks/gui/image/qimagereader/qimagereader.pro @@ -8,3 +8,5 @@ SOURCES += tst_qimagereader.cpp qtConfig(gif): DEFINES += QTEST_HAVE_GIF qtConfig(jpeg): DEFINES += QTEST_HAVE_JPEG + +TESTDATA += images/* diff --git a/tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp b/tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp index d81d5bb01a..48e838148f 100644 --- a/tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp +++ b/tests/benchmarks/gui/image/qimagereader/tst_qimagereader.cpp @@ -51,6 +51,7 @@ public: virtual ~tst_QImageReader(); public slots: + void initTestCase(); void init(); void cleanup(); @@ -69,6 +70,7 @@ private slots: private: QList< QPair > images; // filename, format + QString prefix; }; tst_QImageReader::tst_QImageReader() @@ -102,6 +104,13 @@ tst_QImageReader::~tst_QImageReader() { } +void tst_QImageReader::initTestCase() +{ + prefix = QFINDTESTDATA("images/"); + if (prefix.isEmpty()) + QFAIL("Can't find images directory!"); +} + void tst_QImageReader::init() { } @@ -128,7 +137,7 @@ void tst_QImageReader::readImage() QFETCH(QByteArray, format); QBENCHMARK { - QImageReader io("images/" + fileName, format); + QImageReader io(prefix + fileName, format); QImage image = io.read(); QVERIFY(!image.isNull()); } @@ -159,7 +168,7 @@ void tst_QImageReader::setScaledSize() QFETCH(QByteArray, format); QBENCHMARK { - QImageReader reader("images/" + fileName, format); + QImageReader reader(prefix + fileName, format); reader.setScaledSize(newSize); QImage image = reader.read(); QCOMPARE(image.size(), newSize); @@ -186,7 +195,7 @@ void tst_QImageReader::setClipRect() QFETCH(QByteArray, format); QBENCHMARK { - QImageReader reader("images/" + fileName, format); + QImageReader reader(prefix + fileName, format); reader.setClipRect(newRect); QImage image = reader.read(); QCOMPARE(image.rect(), newRect); @@ -205,7 +214,7 @@ void tst_QImageReader::setScaledClipRect() QFETCH(QByteArray, format); QBENCHMARK { - QImageReader reader("images/" + fileName, format); + QImageReader reader(prefix + fileName, format); reader.setScaledSize(QSize(300, 300)); reader.setScaledClipRect(newRect); QImage image = reader.read(); -- cgit v1.2.3 From ce73b4db62574fc966192e6a4f65b7e2b2280e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 20 Aug 2019 14:26:05 +0200 Subject: Remove dead code from Qt 4 times MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The benefit of keeping this code around was to inspire or inform changes in the areas to take into account possibly missing features in Qt 5, but at this point that benefit is questionable. We can always use the history to learn about missing pieces if needed. Change-Id: I87a02dc451e9027be9b97554427bf8a1c6b2c025 Reviewed-by: Tor Arne Vestbø --- doc/src/images/macmainwindow.png | Bin 39579 -> 0 bytes examples/widgets/graphicsview/boxes/scene.cpp | 4 - examples/widgets/tools/i18n/languagechooser.cpp | 10 - src/printsupport/dialogs/qpagesetupdialog.cpp | 2 - src/widgets/doc/snippets/code/doc_src_styles.cpp | 5 - src/widgets/doc/snippets/macmainwindow.mm | 290 --------------- src/widgets/graphicsview/qgraphicsitem.cpp | 13 - src/widgets/graphicsview/qgraphicsscene.cpp | 15 +- src/widgets/graphicsview/qgraphicsview.cpp | 12 +- src/widgets/graphicsview/qgraphicsview_p.h | 22 +- src/widgets/graphicsview/qgraphicswidget.cpp | 16 - src/widgets/graphicsview/qgraphicswidget_p.cpp | 7 - src/widgets/itemviews/qabstractitemview.cpp | 2 - src/widgets/itemviews/qheaderview.cpp | 2 - src/widgets/itemviews/qtreeview.cpp | 29 -- src/widgets/kernel/qapplication_p.h | 47 +-- src/widgets/kernel/qgesturemanager.cpp | 10 - src/widgets/kernel/qtooltip.cpp | 45 +-- src/widgets/kernel/qwhatsthis.cpp | 16 +- src/widgets/kernel/qwidget.cpp | 402 +-------------------- src/widgets/kernel/qwidget_p.h | 153 +------- src/widgets/styles/qpixmapstyle.cpp | 8 - src/widgets/styles/qstyleoption.cpp | 5 - src/widgets/styles/qstylesheetstyle.cpp | 7 - src/widgets/util/qflickgesture.cpp | 15 - src/widgets/util/qscroller_mac.mm | 72 ---- src/widgets/util/qscrollerproperties.cpp | 7 - src/widgets/util/qsystemtrayicon.cpp | 11 - src/widgets/util/util.pri | 4 - src/widgets/widgets/qabstractscrollarea.cpp | 143 +------- src/widgets/widgets/qabstractscrollarea_p.h | 9 +- src/widgets/widgets/qabstractslider.cpp | 9 +- src/widgets/widgets/qcalendarwidget.cpp | 3 +- src/widgets/widgets/qcombobox.cpp | 7 - src/widgets/widgets/qdatetimeedit.cpp | 10 - src/widgets/widgets/qdockarealayout.cpp | 22 +- src/widgets/widgets/qdockwidget.cpp | 22 -- src/widgets/widgets/qmaccocoaviewcontainer_mac.mm | 26 +- src/widgets/widgets/qmdiarea.cpp | 15 - src/widgets/widgets/qmdisubwindow.cpp | 43 --- src/widgets/widgets/qplaintextedit.cpp | 3 - src/widgets/widgets/qpushbutton.cpp | 32 -- src/widgets/widgets/qpushbutton_p.h | 3 - src/widgets/widgets/qrubberband.cpp | 13 - src/widgets/widgets/qsizegrip.cpp | 34 +- src/widgets/widgets/qstatusbar.cpp | 41 --- src/widgets/widgets/qtabbar.cpp | 24 +- src/widgets/widgets/qtabbar_p.h | 6 - src/widgets/widgets/qtextedit.cpp | 3 - src/widgets/widgets/qtoolbar.cpp | 7 +- src/widgets/widgets/qwidgetlinecontrol.cpp | 5 - src/widgets/widgets/qwidgetlinecontrol_p.h | 24 -- src/widgets/widgets/qwidgetresizehandler.cpp | 15 - tests/auto/gui/image/qpixmap/tst_qpixmap.cpp | 13 - tests/auto/gui/painting/qcolor/tst_qcolor.cpp | 60 --- tests/auto/gui/painting/qpainter/tst_qpainter.cpp | 5 - tests/auto/gui/painting/qregion/tst_qregion.cpp | 24 -- tests/auto/opengl/qglthreads/tst_qglthreads.cpp | 3 - tests/auto/other/lancelot/paintcommands.cpp | 11 - .../tst_qgraphicsproxywidget.cpp | 3 - .../qabstractitemview/tst_qabstractitemview.cpp | 3 - .../auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp | 3 - .../widgets/qmdisubwindow/tst_qmdisubwindow.cpp | 2 - .../qgraphicsview/benchapps/chipTest/view.cpp | 5 - .../qgraphicsview/benchapps/moveItems/main.cpp | 12 - .../qgraphicsview/benchapps/scrolltest/main.cpp | 5 - tests/manual/lance/main.cpp | 13 - tests/manual/textrendering/glyphshaping/main.cpp | 2 - 68 files changed, 73 insertions(+), 1841 deletions(-) delete mode 100644 doc/src/images/macmainwindow.png delete mode 100644 src/widgets/doc/snippets/macmainwindow.mm delete mode 100644 src/widgets/util/qscroller_mac.mm diff --git a/doc/src/images/macmainwindow.png b/doc/src/images/macmainwindow.png deleted file mode 100644 index 84eb11ca5e..0000000000 Binary files a/doc/src/images/macmainwindow.png and /dev/null differ diff --git a/examples/widgets/graphicsview/boxes/scene.cpp b/examples/widgets/graphicsview/boxes/scene.cpp index d51124aed7..a9995efa27 100644 --- a/examples/widgets/graphicsview/boxes/scene.cpp +++ b/examples/widgets/graphicsview/boxes/scene.cpp @@ -128,10 +128,6 @@ void ColorEdit::mousePressEvent(QMouseEvent *event) QColor color(m_color); QColorDialog dialog(color, 0); dialog.setOption(QColorDialog::ShowAlphaChannel, true); -// The ifdef block is a workaround for the beta, TODO: remove when bug 238525 is fixed -#if 0 // Used to be included in Qt4 for Q_WS_MAC - dialog.setOption(QColorDialog::DontUseNativeDialog, true); -#endif dialog.move(280, 120); if (dialog.exec() == QDialog::Rejected) return; diff --git a/examples/widgets/tools/i18n/languagechooser.cpp b/examples/widgets/tools/i18n/languagechooser.cpp index 963165ff81..e61e4432e4 100644 --- a/examples/widgets/tools/i18n/languagechooser.cpp +++ b/examples/widgets/tools/i18n/languagechooser.cpp @@ -53,12 +53,6 @@ #include "languagechooser.h" #include "mainwindow.h" -#if 0 // Used to be included in Qt4 for Q_WS_MAC -QT_BEGIN_NAMESPACE -extern void qt_mac_set_menubar_merge(bool merge); -QT_END_NAMESPACE -#endif - LanguageChooser::LanguageChooser(const QString& defaultLang, QWidget *parent) : QDialog(parent, Qt::WindowStaysOnTopHint) { @@ -95,10 +89,6 @@ LanguageChooser::LanguageChooser(const QString& defaultLang, QWidget *parent) mainLayout->addWidget(buttonBox); setLayout(mainLayout); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - qt_mac_set_menubar_merge(false); -#endif - setWindowTitle("I18N"); } diff --git a/src/printsupport/dialogs/qpagesetupdialog.cpp b/src/printsupport/dialogs/qpagesetupdialog.cpp index dc0457d20d..ce2a0416c8 100644 --- a/src/printsupport/dialogs/qpagesetupdialog.cpp +++ b/src/printsupport/dialogs/qpagesetupdialog.cpp @@ -114,10 +114,8 @@ void QPageSetupDialogPrivate::setPrinter(QPrinter *newPrinter) printer = new QPrinter; ownsPrinter = true; } -#if 1 // Used to be excluded in Qt4 for Q_WS_X11 if (printer->outputFormat() != QPrinter::NativeFormat) qWarning("QPageSetupDialog: Cannot be used on non-native printers"); -#endif } /*! diff --git a/src/widgets/doc/snippets/code/doc_src_styles.cpp b/src/widgets/doc/snippets/code/doc_src_styles.cpp index a70ed6b11d..3536be6e7b 100644 --- a/src/widgets/doc/snippets/code/doc_src_styles.cpp +++ b/src/widgets/doc/snippets/code/doc_src_styles.cpp @@ -81,11 +81,6 @@ state |= QStyle::State_MouseOver; if (widget->window()->isActiveWindow()) state |= QStyle::State_Active; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - extern bool qt_mac_can_clickThrough(const QWidget *w); //qwidget_mac.cpp - if (!(state & QStyle::State_Active) && !qt_mac_can_clickThrough(widget)) - state &= ~QStyle::State_Enabled; -#endif #ifdef QT_KEYPAD_NAVIGATION if (widget->hasEditFocus()) state |= QStyle::State_HasEditFocus; diff --git a/src/widgets/doc/snippets/macmainwindow.mm b/src/widgets/doc/snippets/macmainwindow.mm deleted file mode 100644 index c63796a3f2..0000000000 --- a/src/widgets/doc/snippets/macmainwindow.mm +++ /dev/null @@ -1,290 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "macmainwindow.h" -#import -#include - - -#if 0 // Used to be included in Qt4 for Q_WS_MAC - -//![0] -SearchWidget::SearchWidget(QWidget *parent) - : QMacCocoaViewContainer(0, parent) -{ - // Many Cocoa objects create temporary autorelease objects, - // so create a pool to catch them. - NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; - - // Create the NSSearchField, set it on the QCocoaViewContainer. - NSSearchField *search = [[NSSearchField alloc] init]; - setCocoaView(search); - - // Use a Qt menu for the search field menu. - QMenu *qtMenu = createMenu(this); - NSMenu *nsMenu = qtMenu->macMenu(0); - [[search cell] setSearchMenuTemplate:nsMenu]; - - // Release our reference, since our super class takes ownership and we - // don't need it anymore. - [search release]; - - // Clean up our pool as we no longer need it. - [pool release]; -} -//![0] - -SearchWidget::~SearchWidget() -{ -} - -QSize SearchWidget::sizeHint() const -{ - return QSize(150, 40); -} - -QMenu *createMenu(QWidget *parent) -{ - QMenu *searchMenu = new QMenu(parent); - - QAction * indexAction = searchMenu->addAction("Index Search"); - indexAction->setCheckable(true); - indexAction->setChecked(true); - - QAction * fulltextAction = searchMenu->addAction("Full Text Search"); - fulltextAction->setCheckable(true); - - QActionGroup *searchActionGroup = new QActionGroup(parent); - searchActionGroup->addAction(indexAction); - searchActionGroup->addAction(fulltextAction); - searchActionGroup->setExclusive(true); - - return searchMenu; -} - -SearchWrapper::SearchWrapper(QWidget *parent) -:QWidget(parent) -{ - s = new SearchWidget(this); - s->move(2,2); - setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); -} - -QSize SearchWrapper::sizeHint() const -{ - return s->sizeHint() + QSize(6, 2); -} - -Spacer::Spacer(QWidget *parent) -:QWidget(parent) -{ - QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - setSizePolicy(sizePolicy); -} - -QSize Spacer::sizeHint() const -{ - return QSize(1, 1); -} - -MacSplitterHandle::MacSplitterHandle(Qt::Orientation orientation, QSplitter *parent) -: QSplitterHandle(orientation, parent) { } - -// Paint the horizontal handle as a gradient, paint -// the vertical handle as a line. -void MacSplitterHandle::paintEvent(QPaintEvent *) -{ - QPainter painter(this); - - QColor topColor(145, 145, 145); - QColor bottomColor(142, 142, 142); - QColor gradientStart(252, 252, 252); - QColor gradientStop(223, 223, 223); - - if (orientation() == Qt::Vertical) { - painter.setPen(topColor); - painter.drawLine(0, 0, width(), 0); - painter.setPen(bottomColor); - painter.drawLine(0, height() - 1, width(), height() - 1); - - QLinearGradient linearGrad(QPointF(0, 0), QPointF(0, height() -3)); - linearGrad.setColorAt(0, gradientStart); - linearGrad.setColorAt(1, gradientStop); - painter.fillRect(QRect(QPoint(0,1), size() - QSize(0, 2)), QBrush(linearGrad)); - } else { - painter.setPen(topColor); - painter.drawLine(0, 0, 0, height()); - } -} - -QSize MacSplitterHandle::sizeHint() const -{ - QSize parent = QSplitterHandle::sizeHint(); - if (orientation() == Qt::Vertical) { - return parent + QSize(0, 3); - } else { - return QSize(1, parent.height()); - } -} - -QSplitterHandle *MacSplitter::createHandle() -{ - return new MacSplitterHandle(orientation(), this); -} - -MacMainWindow::MacMainWindow() -{ - QSettings settings; - restoreGeometry(settings.value("Geometry").toByteArray()); - - setWindowTitle("Mac Main Window"); - - splitter = new MacSplitter(); - - // Set up the left-hand side blue side bar. - sidebar = new QTreeView(); - sidebar->setFrameStyle(QFrame::NoFrame); - sidebar->setAttribute(Qt::WA_MacShowFocusRect, false); - sidebar->setAutoFillBackground(true); - - // Set the palette. - QPalette palette = sidebar->palette(); - QColor macSidebarColor(231, 237, 246); - QColor macSidebarHighlightColor(168, 183, 205); - palette.setColor(QPalette::Base, macSidebarColor); - palette.setColor(QPalette::Highlight, macSidebarHighlightColor); - sidebar->setPalette(palette); - - sidebar->setModel(createItemModel()); - sidebar->header()->hide(); - sidebar->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - sidebar->setTextElideMode(Qt::ElideMiddle); - - splitter->addWidget(sidebar); - - horizontalSplitter = new MacSplitter(); - horizontalSplitter->setOrientation(Qt::Vertical); - splitter->addWidget(horizontalSplitter); - - splitter->setStretchFactor(0, 0); - splitter->setStretchFactor(1, 1); - - // Set up the top document list view. - documents = new QListView(); - documents->setFrameStyle(QFrame::NoFrame); - documents->setAttribute(Qt::WA_MacShowFocusRect, false); - documents->setModel(createDocumentModel()); - documents->setAlternatingRowColors(true); - documents->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - horizontalSplitter->addWidget(documents); - horizontalSplitter->setStretchFactor(0, 0); - - // Set up the text view. - textedit = new QTextEdit(); - textedit->setFrameStyle(QFrame::NoFrame); - textedit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - textedit->setText("





This demo shows how to create a \ - Qt main window application that has the same appearance as other \ - OS X applications such as Mail or iTunes. This includes \ - customizing the item views and QSplitter and wrapping native widgets \ - such as the search field.
"); - - horizontalSplitter->addWidget(textedit); - - setCentralWidget(splitter); - - toolBar = addToolBar(tr("Search")); - toolBar->addWidget(new Spacer()); - toolBar->addWidget(new SearchWrapper()); - - setUnifiedTitleAndToolBarOnMac(true); -} - -MacMainWindow::~MacMainWindow() -{ - QSettings settings; - settings.setValue("Geometry", saveGeometry()); -} - -QAbstractItemModel *MacMainWindow::createItemModel() -{ - QStandardItemModel *model = new QStandardItemModel(); - QStandardItem *parentItem = model->invisibleRootItem(); - - QStandardItem *documentationItem = new QStandardItem("Documentation"); - parentItem->appendRow(documentationItem); - - QStandardItem *assistantItem = new QStandardItem("Qt MainWindow Manual"); - documentationItem->appendRow(assistantItem); - - QStandardItem *designerItem = new QStandardItem("Qt Designer Manual"); - documentationItem->appendRow(designerItem); - - QStandardItem *qtItem = new QStandardItem("Qt Reference Documentation"); - qtItem->appendRow(new QStandardItem("Classes")); - qtItem->appendRow(new QStandardItem("Overviews")); - qtItem->appendRow(new QStandardItem("Tutorial & Examples")); - documentationItem->appendRow(qtItem); - - QStandardItem *bookmarksItem = new QStandardItem("Bookmarks"); - parentItem->appendRow(bookmarksItem); - bookmarksItem->appendRow(new QStandardItem("QWidget")); - bookmarksItem->appendRow(new QStandardItem("QObject")); - bookmarksItem->appendRow(new QStandardItem("QWizard")); - - return model; -} - -void MacMainWindow::resizeEvent(QResizeEvent *) -{ - if (toolBar) - toolBar->updateGeometry(); -} - -QAbstractItemModel *MacMainWindow::createDocumentModel() -{ - QStandardItemModel *model = new QStandardItemModel(); - QStandardItem *parentItem = model->invisibleRootItem(); - parentItem->appendRow(new QStandardItem("QWidget Class Reference")); - parentItem->appendRow(new QStandardItem("QObject Class Reference")); - parentItem->appendRow(new QStandardItem("QListView Class Reference")); - - return model; -} - -#endif diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp index ca30c72db5..6273de56a6 100644 --- a/src/widgets/graphicsview/qgraphicsitem.cpp +++ b/src/widgets/graphicsview/qgraphicsitem.cpp @@ -7566,19 +7566,6 @@ void QGraphicsItem::setInputMethodHints(Qt::InputMethodHints hints) */ void QGraphicsItem::updateMicroFocus() { -#if !defined(QT_NO_IM) && 0 /* Used to be included in Qt4 for Q_WS_X11 */ - if (QWidget *fw = QApplication::focusWidget()) { - if (scene()) { - for (int i = 0 ; i < scene()->views().count() ; ++i) { - if (scene()->views().at(i) == fw) { - if (qApp) - QGuiApplication::inputMethod()->update(Qt::ImQueryAll); - break; - } - } - } - } -#endif } /*! diff --git a/src/widgets/graphicsview/qgraphicsscene.cpp b/src/widgets/graphicsview/qgraphicsscene.cpp index 313939e638..1208adfd17 100644 --- a/src/widgets/graphicsview/qgraphicsscene.cpp +++ b/src/widgets/graphicsview/qgraphicsscene.cpp @@ -4170,14 +4170,6 @@ void QGraphicsScene::wheelEvent(QGraphicsSceneWheelEvent *wheelEvent) wheelEvent->scenePos(), wheelEvent->widget()); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // On Mac, ignore the event if the first item under the mouse is not the last opened - // popup (or one of its descendant) - if (!d->popupWidgets.isEmpty() && !wheelCandidates.isEmpty() && wheelCandidates.first() != d->popupWidgets.back() && !d->popupWidgets.back()->isAncestorOf(wheelCandidates.first())) { - wheelEvent->accept(); - return; - } -#else // Find the first popup under the mouse (including the popup's descendants) starting from the last. // Remove all popups after the one found, or all or them if no popup is under the mouse. // Then continue with the event. @@ -4187,7 +4179,6 @@ void QGraphicsScene::wheelEvent(QGraphicsSceneWheelEvent *wheelEvent) break; d->removePopup(*iter); } -#endif bool hasSetFocus = false; for (QGraphicsItem *item : wheelCandidates) { @@ -4409,11 +4400,7 @@ void QGraphicsScenePrivate::drawItemHelper(QGraphicsItem *item, QPainter *painte QGraphicsItem::CacheMode cacheMode = QGraphicsItem::CacheMode(itemd->cacheMode); // Render directly, using no cache. - if (cacheMode == QGraphicsItem::NoCache -#if 0 // Used to be included in Qt4 for Q_WS_X11 - || !X11->use_xrender -#endif - ) { + if (cacheMode == QGraphicsItem::NoCache) { _q_paintItem(static_cast(item), painter, option, widget, true, painterStateProtection); return; } diff --git a/src/widgets/graphicsview/qgraphicsview.cpp b/src/widgets/graphicsview/qgraphicsview.cpp index 7f14218720..57be850829 100644 --- a/src/widgets/graphicsview/qgraphicsview.cpp +++ b/src/widgets/graphicsview/qgraphicsview.cpp @@ -3476,11 +3476,7 @@ void QGraphicsView::paintEvent(QPaintEvent *event) const QTransform viewTransform = painter.worldTransform(); // Draw background - if ((d->cacheMode & CacheBackground) -#if 0 // Used to be included in Qt4 for Q_WS_X11 - && X11->use_xrender -#endif - ) { + if (d->cacheMode & CacheBackground) { // Recreate the background pixmap, and flag the whole background as // exposed. if (d->mustResizeBackgroundPixmap) { @@ -3677,11 +3673,7 @@ void QGraphicsView::scrollContentsBy(int dx, int dy) d->updateLastCenterPoint(); - if ((d->cacheMode & CacheBackground) -#if 0 // Used to be included in Qt4 for Q_WS_X11 - && X11->use_xrender -#endif - ) { + if (d->cacheMode & CacheBackground) { // Below, QPixmap::scroll() works in device pixels, while the delta values // and backgroundPixmapExposed are in device independent pixels. const qreal dpr = d->backgroundPixmap.devicePixelRatio(); diff --git a/src/widgets/graphicsview/qgraphicsview_p.h b/src/widgets/graphicsview/qgraphicsview_p.h index 0428b9ce70..b534004587 100644 --- a/src/widgets/graphicsview/qgraphicsview_p.h +++ b/src/widgets/graphicsview/qgraphicsview_p.h @@ -184,24 +184,10 @@ public: inline void dispatchPendingUpdateRequests() { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // QWidget::update() works slightly different on the Mac without the raster engine; - // it's not part of our backing store so it needs special threatment. - if (QApplicationPrivate::graphics_system_name != QLatin1String("raster")) { - // At this point either HIViewSetNeedsDisplay (Carbon) or setNeedsDisplay: YES (Cocoa) - // is called, which means there's a pending update request. We want to dispatch it - // now because otherwise graphics view updates would require two - // round-trips in the event loop before the item is painted. - extern void qt_mac_dispatchPendingUpdateRequests(QWidget *); - qt_mac_dispatchPendingUpdateRequests(viewport->window()); - } else -#endif - { - if (qt_widget_private(viewport)->paintOnScreen()) - QCoreApplication::sendPostedEvents(viewport, QEvent::UpdateRequest); - else - QCoreApplication::sendPostedEvents(viewport->window(), QEvent::UpdateRequest); - } + if (qt_widget_private(viewport)->paintOnScreen()) + QCoreApplication::sendPostedEvents(viewport, QEvent::UpdateRequest); + else + QCoreApplication::sendPostedEvents(viewport->window(), QEvent::UpdateRequest); } void setUpdateClip(QGraphicsItem *); diff --git a/src/widgets/graphicsview/qgraphicswidget.cpp b/src/widgets/graphicsview/qgraphicswidget.cpp index 643f073085..cf041b9817 100644 --- a/src/widgets/graphicsview/qgraphicswidget.cpp +++ b/src/widgets/graphicsview/qgraphicswidget.cpp @@ -716,22 +716,6 @@ void QGraphicsWidget::initStyleOption(QStyleOption *option) const option->state |= QStyle::State_Window; /* ### -#if 0 // Used to be included in Qt4 for Q_WS_MAC - extern bool qt_mac_can_clickThrough(const QGraphicsWidget *w); //qwidget_mac.cpp - if (!(option->state & QStyle::State_Active) && !qt_mac_can_clickThrough(widget)) - option->state &= ~QStyle::State_Enabled; - - switch (QMacStyle::widgetSizePolicy(widget)) { - case QMacStyle::SizeSmall: - option->state |= QStyle::State_Small; - break; - case QMacStyle::SizeMini: - option->state |= QStyle::State_Mini; - break; - default: - ; - } -#endif #ifdef QT_KEYPAD_NAVIGATION if (widget->hasEditFocus()) state |= QStyle::State_HasEditFocus; diff --git a/src/widgets/graphicsview/qgraphicswidget_p.cpp b/src/widgets/graphicsview/qgraphicswidget_p.cpp index fd47f444ea..0156faf8e4 100644 --- a/src/widgets/graphicsview/qgraphicswidget_p.cpp +++ b/src/widgets/graphicsview/qgraphicswidget_p.cpp @@ -691,13 +691,6 @@ void QGraphicsWidgetPrivate::windowFrameHoverMoveEvent(QGraphicsSceneHoverEvent case Qt::TitleBarArea: windowData->buttonRect = q->style()->subControlRect( QStyle::CC_TitleBar, &bar, QStyle::SC_TitleBarCloseButton, 0); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // On mac we should hover if we are in the 'area' of the buttons - windowData->buttonRect |= q->style()->subControlRect( - QStyle::CC_TitleBar, &bar, QStyle::SC_TitleBarMinButton, 0); - windowData->buttonRect |= q->style()->subControlRect( - QStyle::CC_TitleBar, &bar, QStyle::SC_TitleBarMaxButton, 0); -#endif if (windowData->buttonRect.contains(pos.toPoint())) windowData->buttonMouseOver = true; event->ignore(); diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index d4c83cb82c..2ed5df46b8 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -3727,12 +3727,10 @@ QStyleOptionViewItem QAbstractItemView::viewOptions() const option.state &= ~QStyle::State_MouseOver; option.font = font(); -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC // On mac the focus appearance follows window activation // not widget activation if (!hasFocus()) option.state &= ~QStyle::State_Active; -#endif option.state &= ~QStyle::State_HasFocus; if (d->iconSize.isValid()) { diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index c4766a74bd..d7bdf6aa4c 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -2570,7 +2570,6 @@ void QHeaderView::mouseMoveEvent(QMouseEvent *e) if (pos < 0 && d->state != QHeaderViewPrivate::SelectSections) return; if (e->buttons() == Qt::NoButton) { -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC // Under Cocoa, when the mouse button is released, may include an extra // simulated mouse moved event. The state of the buttons when this event // is generated is already "no button" and the code below gets executed @@ -2578,7 +2577,6 @@ void QHeaderView::mouseMoveEvent(QMouseEvent *e) // column dragging from working. So this code is disabled under Cocoa. d->state = QHeaderViewPrivate::NoState; d->pressed = -1; -#endif } switch (d->state) { case QHeaderViewPrivate::ResizeSection: { diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 53e546bb4d..823be1ca08 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -2173,35 +2173,6 @@ QModelIndex QTreeView::moveCursor(CursorAction cursorAction, Qt::KeyboardModifie return QModelIndex(); } int vi = -1; -#if 0 /* Used to be included in Qt4 for Q_WS_MAC */ && QT_CONFIG(style_mac) - // Selection behavior is slightly different on the Mac. - if (d->selectionMode == QAbstractItemView::ExtendedSelection - && d->selectionModel - && d->selectionModel->hasSelection()) { - - const bool moveUpDown = (cursorAction == MoveUp || cursorAction == MoveDown); - const bool moveNextPrev = (cursorAction == MoveNext || cursorAction == MovePrevious); - const bool contiguousSelection = moveUpDown && (modifiers & Qt::ShiftModifier); - - // Use the outermost index in the selection as the current index - if (!contiguousSelection && (moveUpDown || moveNextPrev)) { - - // Find outermost index. - const bool useTopIndex = (cursorAction == MoveUp || cursorAction == MovePrevious); - int index = useTopIndex ? INT_MAX : INT_MIN; - const QItemSelection selection = d->selectionModel->selection(); - for (int i = 0; i < selection.count(); ++i) { - const QItemSelectionRange &range = selection.at(i); - int candidate = d->viewIndex(useTopIndex ? range.topLeft() : range.bottomRight()); - if (candidate >= 0) - index = useTopIndex ? qMin(index, candidate) : qMax(index, candidate); - } - - if (index >= 0 && index < INT_MAX) - vi = index; - } - } -#endif if (vi < 0) vi = qMax(0, d->viewIndex(current)); diff --git a/src/widgets/kernel/qapplication_p.h b/src/widgets/kernel/qapplication_p.h index 36c0ba8739..3167bd423f 100644 --- a/src/widgets/kernel/qapplication_p.h +++ b/src/widgets/kernel/qapplication_p.h @@ -112,16 +112,9 @@ public: virtual bool shouldQuit() override; bool tryCloseAllWindows() override; -#if 0 // Used to be included in Qt4 for Q_WS_X11 -#if QT_CONFIG(settings) - static bool x11_apply_settings(); -#endif - static void reset_instance_pointer(); -#endif static bool autoSipEnabled; static QString desktopStyleKey(); - void createEventDispatcher() override; static void dispatchEnterLeave(QWidget *enter, QWidget *leave, const QPointF &globalPosF); @@ -132,10 +125,7 @@ public: static bool isBlockedByModal(QWidget *widget); static bool modalState(); static bool tryModalHelper(QWidget *widget, QWidget **rettop = nullptr); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - static QWidget *tryModalHelper_sys(QWidget *top); - bool canQuit(); -#endif + #ifdef QT_KEYPAD_NAVIGATION static bool keypadNavigationEnabled() { @@ -146,18 +136,10 @@ public: bool notify_helper(QObject *receiver, QEvent * e); - void init( -#if 0 // Used to be included in Qt4 for Q_WS_X11 - Display *dpy = 0, Qt::HANDLE visual = 0, Qt::HANDLE cmap = 0 -#endif - ); + void init(); void initialize(); void process_cmdline(); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - static void x11_initialize_style(); -#endif - static bool inPopupMode(); bool popupActive() override { return inPopupMode(); } void closePopup(QWidget *popup); @@ -212,10 +194,6 @@ public: static void initializeWidgetFontHash(); static void setSystemFont(const QFont &font); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - static void applyX11SpecificCommandLineArguments(QWidget *main_widget); -#endif - static QApplicationPrivate *instance() { return self; } #ifdef QT_KEYPAD_NAVIGATION @@ -223,10 +201,6 @@ public: static Qt::NavigationMode navigationMode; #endif -#if 0 /* Used to be included in Qt4 for Q_WS_MAC */ || 0 /* Used to be included in Qt4 for Q_WS_X11 */ - void _q_alertTimeOut(); - QHash alertTimerHash; -#endif #ifndef QT_NO_STYLE_STYLESHEET static QString styleSheet; #endif @@ -263,14 +237,6 @@ public: QGestureManager *gestureManager; QWidget *gestureWidget; #endif -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ || 0 /* Used to be included in Qt4 for Q_WS_WIN */ - QPixmap *move_cursor; - QPixmap *copy_cursor; - QPixmap *link_cursor; -#endif -#if 0 // Used to be included in Qt4 for Q_WS_WIN - QPixmap *ignore_cursor; -#endif static bool updateTouchPointsForWidget(QWidget *widget, QTouchEvent *touchEvent); void initializeMultitouch(); @@ -299,14 +265,7 @@ private: static bool isAlien(QWidget *); }; -#if 0 // Used to be included in Qt4 for Q_WS_WIN - extern void qt_win_set_cursor(QWidget *, bool); -#elif 0 // Used to be included in Qt4 for Q_WS_X11 - extern void qt_x11_enforce_cursor(QWidget *, bool); - extern void qt_x11_enforce_cursor(QWidget *); -#else - extern void qt_qpa_set_cursor(QWidget * w, bool force); -#endif +extern void qt_qpa_set_cursor(QWidget * w, bool force); QT_END_NAMESPACE diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp index 1555c2a73a..d9d071a31a 100644 --- a/src/widgets/kernel/qgesturemanager.cpp +++ b/src/widgets/kernel/qgesturemanager.cpp @@ -54,9 +54,6 @@ #ifdef Q_OS_OSX #include "qmacgesturerecognizer_p.h" #endif -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ && !defined(QT_NO_NATIVE_GESTURES) -#include "qwinnativepangesturerecognizer_win_p.h" -#endif #include "qdebug.h" #include @@ -102,14 +99,7 @@ QGestureManager::QGestureManager(QObject *parent) registerGestureRecognizer(new QSwipeGestureRecognizer); registerGestureRecognizer(new QTapGestureRecognizer); #endif -#if 0 // Used to be included in Qt4 for Q_WS_WIN - #if !defined(QT_NO_NATIVE_GESTURES) - if (QApplicationPrivate::HasTouchSupport) - registerGestureRecognizer(new QWinNativePanGestureRecognizer); - #endif -#else registerGestureRecognizer(new QTapAndHoldGestureRecognizer); -#endif } QGestureManager::~QGestureManager() diff --git a/src/widgets/kernel/qtooltip.cpp b/src/widgets/kernel/qtooltip.cpp index d030a28356..97a279d65d 100644 --- a/src/widgets/kernel/qtooltip.cpp +++ b/src/widgets/kernel/qtooltip.cpp @@ -36,9 +36,6 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#if 0 // Used to be included in Qt4 for Q_WS_MAC -# include -#endif #include @@ -63,11 +60,6 @@ #include #include -#if 0 // Used to be included in Qt4 for Q_WS_MAC -# include -#include -#endif - QT_BEGIN_NAMESPACE /*! @@ -317,20 +309,7 @@ void QTipLabel::timerEvent(QTimerEvent *e) || e->timerId() == expireTimer.timerId()){ hideTimer.stop(); expireTimer.stop(); -#if 0 /* Used to be included in Qt4 for Q_WS_MAC */ && QT_CONFIG(effects) - if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip)){ - // Fade out tip on mac (makes it invisible). - // The tip will not be deleted until a new tip is shown. - - // DRSWAT - Cocoa - macWindowFade(qt_mac_window_for(this)); - QTipLabel::instance->fadingOut = true; // will never be false again. - } - else - hideTipImmediately(); -#else hideTipImmediately(); -#endif } } @@ -420,29 +399,11 @@ void QTipLabel::placeTip(const QPoint &pos, QWidget *w) #endif //QT_NO_STYLE_STYLESHEET -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // When in full screen mode, there is no Dock nor Menu so we can use - // the whole screen for displaying the tooltip. However when not in - // full screen mode we need to save space for the dock, so we use - // availableGeometry instead. - extern bool qt_mac_app_fullscreen; //qapplication_mac.mm - QRect screen; - if(qt_mac_app_fullscreen) - screen = QDesktopWidgetPrivate::screenGeometry(getTipScreen(pos, w)); - else - screen = QDesktopWidgetPrivate::availableGeometry(getTipScreen(pos, w)); -#else QRect screen = QDesktopWidgetPrivate::screenGeometry(getTipScreen(pos, w)); -#endif QPoint p = pos; - p += QPoint(2, -#if 0 // Used to be included in Qt4 for Q_WS_WIN - 21 -#else - 16 -#endif - ); + p += QPoint(2, 16); + if (p.x() + this->width() > screen.x() + screen.width()) p.rx() -= 4 + this->width(); if (p.y() + this->height() > screen.y() + screen.height()) @@ -541,7 +502,7 @@ QT_WARNING_POP QTipLabel::instance->setObjectName(QLatin1String("qtooltip_label")); -#if QT_CONFIG(effects) && !0 /* Used to be included in Qt4 for Q_WS_MAC */ +#if QT_CONFIG(effects) if (QApplication::isEffectEnabled(Qt::UI_FadeTooltip)) qFadeEffect(QTipLabel::instance); else if (QApplication::isEffectEnabled(Qt::UI_AnimateTooltip)) diff --git a/src/widgets/kernel/qwhatsthis.cpp b/src/widgets/kernel/qwhatsthis.cpp index a48eae6628..228ca4d38a 100644 --- a/src/widgets/kernel/qwhatsthis.cpp +++ b/src/widgets/kernel/qwhatsthis.cpp @@ -577,26 +577,12 @@ void QWhatsThisPrivate::say(QWidget * widget, const QString &text, int x, int y) if (text.size() == 0) return; // make a fresh widget, and set it up - QWhatsThat *whatsThat = new QWhatsThat( - text, -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ && !defined(QT_NO_CURSOR) - QApplication::desktop()->screen(widget ? widget->x11Info().screen() : QCursor::x11Screen()), -#else - 0, -#endif - widget - ); - + QWhatsThat *whatsThat = new QWhatsThat(text, 0, widget); // okay, now to find a suitable location - int scr = (widget ? QDesktopWidgetPrivate::screenNumber(widget) : -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ && !defined(QT_NO_CURSOR) - QCursor::x11Screen() -#else QDesktopWidgetPrivate::screenNumber(QPoint(x,y)) -#endif ); QRect screen = QDesktopWidgetPrivate::screenGeometry(scr); diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 113c569591..0a7566614b 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -61,13 +61,6 @@ #ifndef QT_NO_ACCESSIBILITY # include "qaccessible.h" #endif -#if 0 // Used to be included in Qt4 for Q_WS_MAC -# include "qt_mac_p.h" -# include "qt_cocoa_helpers_mac_p.h" -# include "qmainwindow.h" -# include "qtoolbar.h" -# include -#endif #include #include "private/qwidgetwindow_p.h" #include "qpainter.h" @@ -91,9 +84,6 @@ #endif #include #include -#if 0 // Used to be included in Qt4 for Q_WS_MAC -# include -#endif #include #include "qwidget_p.h" @@ -129,20 +119,12 @@ QT_BEGIN_NAMESPACE -#if 0 // Used to be included in Qt4 for Q_WS_MAC -bool qt_mac_clearDirtyOnWidgetInsideDrawWidget = false; -#endif - static inline bool qRectIntersects(const QRect &r1, const QRect &r2) { return (qMax(r1.left(), r2.left()) <= qMin(r1.right(), r2.right()) && qMax(r1.top(), r2.top()) <= qMin(r1.bottom(), r2.bottom())); } -#if 0 // Used to be included in Qt4 for Q_WS_MAC -# define QT_NO_PAINT_DEBUG -#endif - extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); // qapplication.cpp extern QDesktopWidget *qt_desktopWidget; // qapplication.cpp @@ -202,17 +184,6 @@ QWidgetPrivate::QWidgetPrivate(int version) #if defined(Q_OS_WIN) , noPaintOnScreen(0) #endif -#if 0 // Used to be included in Qt4 for Q_WS_X11 - , picture(0) -#elif 0 // Used to be included in Qt4 for Q_WS_WIN - #ifndef QT_NO_GESTURES - , nativeGesturePanEnabled(0) - #endif -#elif 0 // Used to be included in Qt4 for Q_WS_MAC - , needWindowChange(0) - , window_event(0) - , qd_hd(0) -#endif { if (Q_UNLIKELY(!qApp)) { qFatal("QWidget: Must construct a QApplication before a QWidget"); @@ -231,16 +202,7 @@ QWidgetPrivate::QWidgetPrivate(int version) isWidget = true; memset(high_attributes, 0, sizeof(high_attributes)); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - drawRectOriginalAdded = false; - originalDrawMethod = true; - changeMethods = false; - isInUnifiedToolbar = false; - unifiedSurface = 0; - toolbar_ancestor = 0; - flushRequested = false; - touchEventsEnabled = false; -#endif + #ifdef QWIDGET_EXTRA_DEBUG static int count = 0; qDebug() << "widgets" << ++count; @@ -985,17 +947,12 @@ void QWidgetPrivate::adjustFlags(Qt::WindowFlags &flags, QWidget *w) // Only enable this on non-Mac platforms. Since the old way of doing this would // interpret WindowSystemMenuHint as a close button and we can't change that behavior // we can't just add this in. -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC if ((flags & (Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint | Qt::WindowContextHelpButtonHint)) # ifdef Q_OS_WIN && type != Qt::Dialog // QTBUG-2027, allow for menu-less dialogs. # endif ) { flags |= Qt::WindowSystemMenuHint; -#else - if (flags & (Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint - | Qt::WindowSystemMenuHint)) { -#endif flags |= Qt::WindowTitleHint; flags &= ~Qt::FramelessWindowHint; } @@ -1050,13 +1007,6 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f) } #endif -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (desktopWidget) { - // make sure the widget is created on the same screen as the - // programmer specified desktop widget - xinfo = desktopWidget->d_func()->xinfo; - } -#endif if (targetScreen >= 0) { topData()->initialScreenIndex = targetScreen; if (QWindow *window = q->windowHandle()) @@ -1084,9 +1034,6 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f) mustHaveWindowHandle = 1; q->setAttribute(Qt::WA_NativeWindow); } -//#if 0 // Used to be included in Qt4 for Q_WS_MAC -// q->setAttribute(Qt::WA_NativeWindow); -//#endif q->setAttribute(Qt::WA_QuitOnClose); // might be cleared in adjustQuitOnCloseAttribute() adjustQuitOnCloseAttribute(); @@ -1110,9 +1057,6 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f) setOpaque(q->isWindow() && background.style() != Qt::NoBrush && background.isOpaque()); } data.fnt = QFont(data.fnt, q); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - data.fnt.x11SetScreen(xinfo.screen()); -#endif q->setAttribute(Qt::WA_PendingMoveEvent); q->setAttribute(Qt::WA_PendingResizeEvent); @@ -1128,20 +1072,8 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f) QCoreApplication::postEvent(q, new QEvent(QEvent::PolishRequest)); extraPaintEngine = 0; - -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // If we add a child to the unified toolbar, we have to redirect the painting. - if (parentWidget && parentWidget->d_func() && parentWidget->d_func()->isInUnifiedToolbar) { - if (parentWidget->d_func()->unifiedSurface) { - QWidget *toolbar = parentWidget->d_func()->toolbar_ancestor; - parentWidget->d_func()->unifiedSurface->recursiveRedirect(toolbar, toolbar, toolbar->d_func()->toolbar_offset); - } - } -#endif } - - void QWidgetPrivate::createRecursively() { Q_Q(QWidget); @@ -1248,15 +1180,6 @@ void QWidget::create(WId window, bool initializeWindow, bool destroyOldWindow) << "Alien?" << !testAttribute(Qt::WA_NativeWindow); #endif -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ && QT_CONFIG(draganddrop) - // Unregister the dropsite (if already registered) before we - // re-create the widget with a native window. - if (testAttribute(Qt::WA_WState_Created) && !internalWinId() && testAttribute(Qt::WA_NativeWindow) - && d->extra && d->extra->dropTarget) { - d->registerDropSite(false); - } -#endif - d->updateIsOpaque(); setAttribute(Qt::WA_WState_Created); // set created flag @@ -1558,14 +1481,7 @@ QWidget::~QWidget() // and if that also doesn't work, then give up } } - } - -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ || 0 /* Used to be included in Qt4 for Q_WS_X11 */|| 0 /* Used to be included in Qt4 for Q_WS_MAC */ - else if (!internalWinId() && isVisible()) { - qApp->d_func()->sendSyntheticEnterLeave(this); - } -#endif - else if (isVisible()) { + } else if (isVisible()) { qApp->d_func()->sendSyntheticEnterLeave(this); } @@ -1609,15 +1525,6 @@ QWidget::~QWidget() d->blockSig = blocked; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // QCocoaView holds a pointer back to this widget. Clear it now - // to make sure it's not followed later on. The lifetime of the - // QCocoaView might exceed the lifetime of this widget in cases - // where Cocoa itself holds references to it. - extern void qt_mac_clearCocoaViewQWidgetPointers(QWidget *); - qt_mac_clearCocoaViewQWidgetPointers(this); -#endif - if (!d->children.isEmpty()) d->deleteChildren(); @@ -1664,9 +1571,6 @@ void QWidgetPrivate::setWinId(WId id) // set widget identifier const WId oldWinId = data.winid; data.winid = id; -#if 0 // Used to be included in Qt4 for Q_WS_X11 - hd = id; // X11: hd == ident -#endif if (mapper && id && !userDesktopWidget) { mapper->insert(data.winid, q); } @@ -1698,9 +1602,7 @@ void QWidgetPrivate::createTLExtra() x->embedded = 0; x->window = 0; x->initialScreenIndex = -1; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - x->wasMaximized = false; -#endif + #ifdef QWIDGET_EXTRA_DEBUG static int count = 0; qDebug() << "tlextra" << ++count; @@ -2097,11 +1999,6 @@ void QWidgetPrivate::subtractOpaqueSiblings(QRegion &sourceRegion, bool *hasDirt if (disableSubtractOpaqueSiblings || q->isWindow()) return; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (q->d_func()->isInUnifiedToolbar) - return; -#endif - QRect clipBoundingRect; bool dirtyClipBoundingRect = true; @@ -2234,13 +2131,6 @@ void QWidgetPrivate::updateIsOpaque() #endif // QT_CONFIG(graphicseffect) Q_Q(QWidget); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (q->testAttribute(Qt::WA_X11OpenGLOverlay)) { - setOpaque(false); - return; - } -#endif - if (q->testAttribute(Qt::WA_OpaquePaintEvent) || q->testAttribute(Qt::WA_PaintOnScreen)) { setOpaque(true); return; @@ -2293,20 +2183,9 @@ static inline void fillRegion(QPainter *painter, const QRegion &rgn, const QBrus Q_ASSERT(painter); if (brush.style() == Qt::TexturePattern) { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // Optimize pattern filling on mac by using HITheme directly - // when filling with the standard widget background. - // Defined in qmacstyle_mac.cpp - extern void qt_mac_fill_background(QPainter *painter, const QRegion &rgn, const QBrush &brush); - qt_mac_fill_background(painter, rgn, brush); -#else - { - const QRect rect(rgn.boundingRect()); - painter->setClipRegion(rgn); - painter->drawTiledPixmap(rect, brush.texture(), rect.topLeft()); - } -#endif - + const QRect rect(rgn.boundingRect()); + painter->setClipRegion(rgn); + painter->drawTiledPixmap(rect, brush.texture(), rect.topLeft()); } else if (brush.gradient() && (brush.gradient()->coordinateMode() == QGradient::ObjectBoundingMode || brush.gradient()->coordinateMode() == QGradient::ObjectMode)) { @@ -2380,11 +2259,7 @@ void QWidgetPrivate::paintBackground(QPainter *painter, const QRegion &rgn, Draw visible widgets. */ -#if 0 // Used to be included in Qt4 for Q_WS_MAC - extern QPointer qt_button_down; -#else - extern QWidget *qt_button_down; -#endif +extern QWidget *qt_button_down; void QWidgetPrivate::deactivateWidgetCleanup() { @@ -3053,15 +2928,6 @@ bool QWidget::isFullScreen() const */ void QWidget::showFullScreen() { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // If the unified toolbar is enabled, we have to disable it before going fullscreen. - QMainWindow *mainWindow = qobject_cast(this); - if (mainWindow && mainWindow->unifiedTitleAndToolBarOnMac()) { - mainWindow->setUnifiedTitleAndToolBarOnMac(false); - QMainWindowLayout *mainLayout = qobject_cast(mainWindow->layout()); - mainLayout->activateUnifiedToolbarAfterFullScreen = true; - } -#endif ensurePolished(); setWindowState((windowState() & ~(Qt::WindowMinimized | Qt::WindowMaximized)) @@ -3089,18 +2955,6 @@ void QWidget::showMaximized() setWindowState((windowState() & ~(Qt::WindowMinimized | Qt::WindowFullScreen)) | Qt::WindowMaximized); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // If the unified toolbar was enabled before going fullscreen, we have to enable it back. - QMainWindow *mainWindow = qobject_cast(this); - if (mainWindow) - { - QMainWindowLayout *mainLayout = qobject_cast(mainWindow->layout()); - if (mainLayout->activateUnifiedToolbarAfterFullScreen) { - mainWindow->setUnifiedTitleAndToolBarOnMac(true); - mainLayout->activateUnifiedToolbarAfterFullScreen = false; - } - } -#endif setVisible(true); } @@ -3118,18 +2972,6 @@ void QWidget::showNormal() setWindowState(windowState() & ~(Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen)); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // If the unified toolbar was enabled before going fullscreen, we have to enable it back. - QMainWindow *mainWindow = qobject_cast(this); - if (mainWindow) - { - QMainWindowLayout *mainLayout = qobject_cast(mainWindow->layout()); - if (mainLayout->activateUnifiedToolbarAfterFullScreen) { - mainWindow->setUnifiedTitleAndToolBarOnMac(true); - mainLayout->activateUnifiedToolbarAfterFullScreen = false; - } - } -#endif setVisible(true); } @@ -3345,13 +3187,6 @@ void QWidgetPrivate::setEnabled_helper(bool enable) if (w && !w->testAttribute(attribute)) w->d_func()->setEnabled_helper(enable); } -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (q->testAttribute(Qt::WA_SetCursor) || q->isWindow()) { - // enforce the windows behavior of clearing the cursor on - // disabled widgets - qt_x11_enforce_cursor(q); - } -#endif #ifndef QT_NO_CURSOR if (q->testAttribute(Qt::WA_SetCursor) || q->isWindow()) { // enforce the windows behavior of clearing the cursor on @@ -3359,9 +3194,6 @@ void QWidgetPrivate::setEnabled_helper(bool enable) qt_qpa_set_cursor(q, false); } #endif -#if 0 // Used to be included in Qt4 for Q_WS_MAC - setEnabled_helper_sys(enable); -#endif #ifndef QT_NO_IM if (q->testAttribute(Qt::WA_InputMethodEnabled) && q->hasFocus()) { QWidget *focusWidget = effectiveFocusWidget(); @@ -4456,13 +4288,7 @@ const QPalette &QWidget::palette() const ) { data->pal.setCurrentColorGroup(QPalette::Active); } else { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - extern bool qt_mac_can_clickThrough(const QWidget *); //qwidget_mac.cpp - if (qt_mac_can_clickThrough(this)) - data->pal.setCurrentColorGroup(QPalette::Active); - else -#endif - data->pal.setCurrentColorGroup(QPalette::Inactive); + data->pal.setCurrentColorGroup(QPalette::Inactive); } return data->pal; } @@ -4725,10 +4551,7 @@ void QWidgetPrivate::updateFont(const QFont &font) #endif data.fnt = QFont(font, q); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - // make sure the font set on this widget is associated with the correct screen - data.fnt.x11SetScreen(xinfo.screen()); -#endif + // Combine new mask with natural mask and propagate to children. #if QT_CONFIG(graphicsview) if (!q->parentWidget() && extra && extra->proxyWidget) { @@ -4902,11 +4725,8 @@ QCursor QWidget::cursor() const void QWidget::setCursor(const QCursor &cursor) { Q_D(QWidget); -// On Mac we must set the cursor even if it is the ArrowCursor. -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC if (cursor.shape() != Qt::ArrowCursor || (d->extra && d->extra->curs)) -#endif { d->createExtra(); d->extra->curs = qt_make_unique(cursor); @@ -5333,11 +5153,9 @@ void QWidgetPrivate::render_helper(QPainter *painter, const QPoint &targetOffset Q_ASSERT(!toBePainted.isEmpty()); Q_Q(QWidget); -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC const QTransform originalTransform = painter->worldTransform(); const bool useDeviceCoordinates = originalTransform.isScaling(); if (!useDeviceCoordinates) { -#endif // Render via a pixmap. const QRect rect = toBePainted.boundingRect(); const QSize size = rect.size(); @@ -5360,7 +5178,6 @@ void QWidgetPrivate::render_helper(QPainter *painter, const QPoint &targetOffset if (restore) painter->setRenderHints(QPainter::SmoothPixmapTransform, false); -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC } else { // Render via a pixmap in device coordinates (to avoid pixmap scaling). QTransform transform = originalTransform; @@ -5391,7 +5208,6 @@ void QWidgetPrivate::render_helper(QPainter *painter, const QPoint &targetOffset painter->drawPixmap(deviceRect.topLeft(), pixmap); painter->setTransform(originalTransform); } -#endif } void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QPoint &offset, DrawWidgetFlags flags, @@ -5471,15 +5287,6 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP if (paintEngine) { setRedirected(pdev, -offset); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // (Alien support) Special case for Mac when redirecting: If the paint device - // is of the Widget type we need to set WA_WState_InPaintEvent since painting - // outside the paint event is not supported on QWidgets. The attributeis - // restored further down. - if (pdev->devType() == QInternal::Widget) - static_cast(pdev)->setAttribute(Qt::WA_WState_InPaintEvent); - -#endif if (sharedPainter) setSystemClip(pdev->paintEngine(), pdev->devicePixelRatioF(), toBePainted); else @@ -5561,10 +5368,6 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP //restore if (paintEngine) { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (pdev->devType() == QInternal::Widget) - static_cast(pdev)->setAttribute(Qt::WA_WState_InPaintEvent, false); -#endif restoreRedirected(); if (!sharedPainter) paintEngine->d_func()->systemRect = QRect(); @@ -5635,7 +5438,6 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, if (paintRegion.isEmpty()) return; -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC QPainter *oldSharedPainter = inRenderWithPainter ? sharedPainter() : 0; // Use the target's shared painter if set (typically set when doing @@ -5648,7 +5450,6 @@ void QWidgetPrivate::render(QPaintDevice *target, const QPoint &targetOffset, setSharedPainter(targetPainter); } } -#endif // Use the target's redirected device if set and adjust offset and paint // region accordingly. This is typically the case when people call render @@ -6440,11 +6241,7 @@ void QWidget::setFocus(Qt::FocusReason reason) if (!f) f = this; - if (QApplication::focusWidget() == f -#if 0 // Used to be included in Qt4 for Q_WS_WIN - && GetFocus() == f->internalWinId() -#endif - ) + if (QApplication::focusWidget() == f) return; #if QT_CONFIG(graphicsview) @@ -6661,17 +6458,10 @@ void QWidget::clearFocus() if (hasFocus()) { // Update proxy state QApplicationPrivate::setFocusWidget(0, Qt::OtherFocusReason); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - if (!(windowType() == Qt::Popup) && GetFocus() == internalWinId()) - SetFocus(0); - else -#endif - { #ifndef QT_NO_ACCESSIBILITY - QAccessibleEvent event(this, QAccessible::Focus); - QAccessible::updateAccessibility(&event); + QAccessibleEvent event(this, QAccessible::Focus); + QAccessible::updateAccessibility(&event); #endif - } } } @@ -7315,18 +7105,6 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove) */ QByteArray QWidget::saveGeometry() const { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // We check if the window was maximized during this invocation. If so, we need to record the - // starting position as 0,0. - Q_D(const QWidget); - QRect newFramePosition = frameGeometry(); - QRect newNormalPosition = normalGeometry(); - if(d->topData()->wasMaximized && !(windowState() & Qt::WindowMaximized)) { - // Change the starting position - newFramePosition.moveTo(0, 0); - newNormalPosition.moveTo(0, 0); - } -#endif QByteArray array; QDataStream stream(&array, QIODevice::WriteOnly); stream.setVersion(QDataStream::Qt_4_0); @@ -7341,13 +7119,8 @@ QByteArray QWidget::saveGeometry() const stream << magicNumber << majorVersion << minorVersion -#if 0 // Used to be included in Qt4 for Q_WS_MAC - << newFramePosition - << newNormalPosition -#else << frameGeometry() << normalGeometry() -#endif << qint32(screenNumber) << quint8(windowState() & Qt::WindowMaximized) << quint8(windowState() & Qt::WindowFullScreen) @@ -7467,11 +7240,6 @@ bool QWidget::restoreGeometry(const QByteArray &geometry) // that would make the window "lost". This happens if: // - The restored geometry is completely oustside the available geometry // - The title bar is outside the available geometry. - // - (Mac only) The window is higher than the available geometry. It must - // be possible to bring the size grip on screen by moving the window. -#if 0 // Used to be included in Qt4 for Q_WS_MAC - restoredNormalGeometry.setHeight(qMin(restoredNormalGeometry.height(), availableGeometry.height() - frameHeight)); -#endif checkRestoredGeometry(availableGeometry, &restoredGeometry, frameHeight); checkRestoredGeometry(availableGeometry, &restoredNormalGeometry, frameHeight); @@ -7991,14 +7759,6 @@ void QWidgetPrivate::show_helper() Q_UNUSED(isEmbedded); #endif - // On Windows, show the popup now so that our own focus handling - // stores the correct old focus widget even if it's stolen in the - // showevent -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ || 0 /* Used to be included in Qt4 for Q_WS_MAC */ - if (!isEmbedded && q->windowType() == Qt::Popup) - qApp->d_func()->openPopup(q); -#endif - // send the show event before showing the window QShowEvent showEvent; QCoreApplication::sendEvent(q, &showEvent); @@ -8123,12 +7883,6 @@ void QWidgetPrivate::hide_helper() if (!isEmbedded && (q->windowType() == Qt::Popup)) qApp->d_func()->closePopup(q); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - if (q->isWindow() && !(q->windowType() == Qt::Popup) && q->parentWidget() - && !q->parentWidget()->isHidden() && q->isActiveWindow()) - q->parentWidget()->activateWindow(); // Activate parent -#endif - q->setAttribute(Qt::WA_Mapped, false); hide_sys(); @@ -8313,16 +8067,6 @@ void QWidgetPrivate::setVisible(bool visible) QEvent showToParentEvent(QEvent::ShowToParent); QCoreApplication::sendEvent(q, &showToParentEvent); } else { // hide -#if 0 // Used to be included in Qt4 for Q_WS_WIN - // reset WS_DISABLED style in a Blocked window - if(isWindow() && testAttribute(Qt::WA_WState_Created) - && QApplicationPrivate::isBlockedByModal(this)) - { - LONG dwStyle = GetWindowLong(winId(), GWL_STYLE); - dwStyle &= ~WS_DISABLED; - SetWindowLong(winId(), GWL_STYLE, dwStyle); - } -#endif if (QApplicationPrivate::hidden_focus_widget == q) QApplicationPrivate::hidden_focus_widget = 0; @@ -8395,23 +8139,7 @@ void QWidgetPrivate::hideChildren(bool spontaneous) QWidget *widget = qobject_cast(childList.at(i)); if (!widget || widget->isWindow() || widget->testAttribute(Qt::WA_WState_Hidden)) continue; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // Before doing anything we need to make sure that we don't leave anything in a non-consistent state. - // When hiding a widget we need to make sure that no mouse_down events are active, because - // the mouse_up event will never be received by a hidden widget or one of its descendants. - // The solution is simple, before going through with this we check if there are any mouse_down events in - // progress, if so we check if it is related to this widget or not. If so, we just reset the mouse_down and - // then we continue. - // In X11 and Windows we send a mouse_release event, however we don't do that here because we were already - // ignoring that from before. I.e. Carbon did not send the mouse release event, so we will not send the - // mouse release event. There are two ways to interpret this: - // 1. If we don't send the mouse release event, the widget might get into an inconsistent state, i.e. it - // might be waiting for a release event that will never arrive. - // 2. If we send the mouse release event, then the widget might decide to trigger an action that is not - // supposed to trigger because it is not visible. - if(widget == qt_button_down) - qt_button_down = 0; -#endif + if (spontaneous) widget->setAttribute(Qt::WA_Mapped, false); else @@ -8646,11 +8374,9 @@ QSize QWidgetPrivate::adjustedSize() const s.setWidth(qMax(s.width(), 200)); if (exp & Qt::Vertical) s.setHeight(qMax(s.height(), 100)); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - QRect screen = QDesktopWidgetPrivate::screenGeometry(q->x11Info().screen()); -#else // all others + QRect screen = QDesktopWidgetPrivate::screenGeometry(q->pos()); -#endif + s.setWidth(qMin(s.width(), screen.width()*2/3)); s.setHeight(qMin(s.height(), screen.height()*2/3)); @@ -8775,26 +8501,6 @@ bool QWidget::isAncestorOf(const QWidget *child) const return false; } -#if 0 // Used to be included in Qt4 for Q_WS_WIN -inline void setDisabledStyle(QWidget *w, bool setStyle) -{ - // set/reset WS_DISABLED style. - if(w && w->isWindow() && w->isVisible() && w->isEnabled()) { - LONG dwStyle = GetWindowLong(w->winId(), GWL_STYLE); - LONG newStyle = dwStyle; - if (setStyle) - newStyle |= WS_DISABLED; - else - newStyle &= ~WS_DISABLED; - if (newStyle != dwStyle) { - SetWindowLong(w->winId(), GWL_STYLE, newStyle); - // we might need to repaint in some situations (eg. menu) - w->repaint(); - } - } -} -#endif - /***************************************************************************** QWidget event handling *****************************************************************************/ @@ -9211,9 +8917,6 @@ bool QWidget::event(QEvent *event) } } } -#if 0 // Used to be included in Qt4 for Q_WS_WIN - setDisabledStyle(this, (event->type() == QEvent::WindowBlocked)); -#endif break; #ifndef QT_NO_TOOLTIP case QEvent::ToolTip: @@ -9238,9 +8941,6 @@ bool QWidget::event(QEvent *event) case QEvent::EmbeddingControl: d->topData()->frameStrut.setCoords(0 ,0, 0, 0); data->fstrut_dirty = false; -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ || 0 /* Used to be included in Qt4 for Q_WS_X11 */ - d->topData()->embedded = 1; -#endif break; #ifndef QT_NO_ACTION case QEvent::ActionAdded: @@ -9263,11 +8963,6 @@ bool QWidget::event(QEvent *event) } break; } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - case QEvent::MacGLWindowChange: - d->needWindowChange = false; - break; -#endif case QEvent::TouchBegin: case QEvent::TouchUpdate: case QEvent::TouchEnd: @@ -9379,11 +9074,6 @@ void QWidget::changeEvent(QEvent * event) case QEvent::MacSizeChange: updateGeometry(); break; -#elif 0 // Used to be included in Qt4 for Q_WS_MAC - case QEvent::ToolTipChange: - case QEvent::MouseTrackingChange: - qt_mac_update_mouseTracking(this); - break; #endif default: @@ -10695,7 +10385,7 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) // (f & Qt::MSWindowsOwnDC) clause (which is set on QGLWidgets on all // platforms). if (newParent -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ || defined(QT_OPENGL_ES) +#if defined(QT_OPENGL_ES) || (f & Qt::MSWindowsOwnDC) #endif ) { @@ -10714,15 +10404,6 @@ void QWidget::setParent(QWidget *parent, Qt::WindowFlags f) QCoreApplication::sendEvent(parent, &e); } -//### already hidden above ---> must probably do something smart on the mac -// #if 0 // Used to be included in Qt4 for Q_WS_MAC -// extern bool qt_mac_is_macdrawer(const QWidget *); //qwidget_mac.cpp -// if(!qt_mac_is_macdrawer(q)) //special case -// q->setAttribute(Qt::WA_WState_Hidden); -// #else -// q->setAttribute(Qt::WA_WState_Hidden); -//#endif - if (parent && d->sendChildEvents && d->polished) { QChildEvent e(QEvent::ChildPolished, this); QCoreApplication::sendEvent(parent, &e); @@ -11204,23 +10885,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) case Qt::WA_NoChildEventsFromChildren: d->receiveChildEvents = !on; break; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - case Qt::WA_MacOpaqueSizeGrip: - d->macUpdateOpaqueSizeGrip(); - break; - case Qt::WA_MacShowFocusRect: - if (hasFocus()) { - clearFocus(); - setFocus(); - } - break; - case Qt::WA_Hover: - qt_mac_update_mouseTracking(this); - break; - case Qt::WA_MacAlwaysShowToolWindow: - d->macUpdateHideOnSuspend(); - break; -#endif case Qt::WA_MacNormalSize: case Qt::WA_MacSmallSize: case Qt::WA_MacMiniSize: @@ -11298,15 +10962,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) } case Qt::WA_PaintOnScreen: d->updateIsOpaque(); -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ || 0 /* Used to be included in Qt4 for Q_WS_X11 */ || 0 /* Used to be included in Qt4 for Q_WS_MAC */ - // Recreate the widget if it's already created as an alien widget and - // WA_PaintOnScreen is enabled. Paint on screen widgets must have win id. - // So must their children. - if (on) { - setAttribute(Qt::WA_NativeWindow); - d->enforceNativeChildren(); - } -#endif Q_FALLTHROUGH(); case Qt::WA_OpaquePaintEvent: d->updateIsOpaque(); @@ -11318,9 +10973,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) d->updateSystemBackground(); break; case Qt::WA_TransparentForMouseEvents: -#if 0 // Used to be included in Qt4 for Q_WS_MAC - d->macUpdateIgnoreMouseEvents(); -#endif break; case Qt::WA_InputMethodEnabled: { #ifndef QT_NO_IM @@ -11337,20 +10989,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) d->resolveFont(); d->resolveLocale(); break; -#if 0 // Used to be included in Qt4 for Q_WS_X11 - case Qt::WA_NoX11EventCompression: - if (!d->extra) - d->createExtra(); - d->extra->compress_events = on; - break; - case Qt::WA_X11OpenGLOverlay: - d->updateIsOpaque(); - break; - case Qt::WA_X11DoNotAcceptFocus: - if (testAttribute(Qt::WA_WState_Created)) - d->updateX11AcceptFocus(); - break; -#endif case Qt::WA_DontShowOnScreen: { if (on && isVisible()) { // Make sure we keep the current state and only hide the widget @@ -11393,10 +11031,6 @@ void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on) break; case Qt::WA_AcceptTouchEvents: -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ || 0 /* Used to be included in Qt4 for Q_WS_MAC */ - if (on) - d->registerTouchWindow(); -#endif break; default: break; @@ -12012,10 +11646,8 @@ QRect QWidgetPrivate::frameStrut() const } if (data.fstrut_dirty -#if 1 // Used to be excluded in Qt4 for Q_WS_WIN // ### Fix properly for 4.3 && q->isVisible() -#endif && q->testAttribute(Qt::WA_WState_Created)) const_cast(this)->updateFrameStrut(); @@ -12942,10 +12574,8 @@ void QWidget::setMask(const QRegion &newMask) d->extra->mask = newMask; d->extra->hasMask = !newMask.isEmpty(); -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC if (!testAttribute(Qt::WA_WState_Created)) return; -#endif d->setMask_sys(newMask); diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 941f92c062..6fd9c2d273 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -155,41 +155,6 @@ struct QTLWExtra { uint sizeAdjusted : 1; uint inTopLevelResize : 1; uint embedded : 1; - - // *************************** Platform specific values (bit fields first) ********** -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ // <----------------------------------------------------------- X11 - uint spont_unmapped: 1; // window was spontaneously unmapped - uint dnd : 1; // DND properties installed - uint validWMState : 1; // is WM_STATE valid? - uint waitingForMapNotify : 1; // show() has been called, haven't got the MapNotify yet - WId parentWinId; // parent window Id (valid after reparenting) - WId userTimeWindow; // window id that contains user-time timestamp when WM supports a _NET_WM_USER_TIME_WINDOW atom - QPoint fullScreenOffset; -#ifndef QT_NO_XSYNC - WId syncUpdateCounter; - ulong syncRequestTimestamp; - qint32 newCounterValueHi; - quint32 newCounterValueLo; -#endif -#elif 0 /* Used to be included in Qt4 for Q_WS_WIN */ // <--------------------------------------------------------- WIN - uint hotkeyRegistered: 1; // Hot key from the STARTUPINFO has been registered. - HICON winIconBig; // internal big Windows icon - HICON winIconSmall; // internal small Windows icon -#elif 0 /* Used to be included in Qt4 for Q_WS_MAC */ // <--------------------------------------------------------- MAC - uint resizer : 4; - uint isSetGeometry : 1; - uint isMove : 1; - quint32 wattr; - quint32 wclass; - WindowGroupRef group; - IconRef windowIcon; // the current window icon, if set with setWindowIcon_sys. - quint32 savedWindowAttributesFromMaximized; // Saved attributes from when the calling updateMaximizeButton_sys() - // This value is just to make sure we maximize and restore to the right location, yet we allow apps to be maximized and - // manually resized. - // The name is misleading, since this is set when maximizing the window. It is a hint to saveGeometry(..) to record the - // starting position as 0,0 instead of the normal starting position. - bool wasMaximized; -#endif }; struct QWExtra { @@ -228,21 +193,6 @@ struct QWExtra { uint inRenderWithPainter : 1; uint hasMask : 1; uint hasWindowContainer : 1; - - // *************************** Platform specific values (bit fields first) ********** -#if 0 /* Used to be included in Qt4 for Q_WS_WIN */ // <----------------------------------------------------------- WIN -#if QT_CONFIG(draganddrop) - QOleDropTarget *dropTarget; // drop target - QList > oleDropWidgets; -#endif -#elif 0 /* Used to be included in Qt4 for Q_WS_X11 */ // <--------------------------------------------------------- X11 - uint compress_events : 1; - WId xDndProxy; // XDND forwarding to embedded windows -#elif 0 /* Used to be included in Qt4 for Q_WS_MAC */ // <------------------------------------------------------ MAC - // Cocoa Mask stuff - QImage maskBits; - CGImageRef imageMask; -#endif }; /*! @@ -770,109 +720,8 @@ public: // *************************** Platform specific ************************************ #if defined(Q_OS_WIN) uint noPaintOnScreen : 1; // see qwidget.cpp ::paintEngine() -#endif -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ // <----------------------------------------------------------- X11 - Qt::HANDLE picture; - static QWidget *mouseGrabber; - static QWidget *keyboardGrabber; - - void setWindowRole(); - void sendStartupMessage(const char *message) const; - void x11UpdateIsOpaque(); - bool isBackgroundInherited() const; - void updateX11AcceptFocus(); - QPoint mapToGlobal(const QPoint &pos) const; - QPoint mapFromGlobal(const QPoint &pos) const; -#elif 0 /* Used to be included in Qt4 for Q_WS_WIN */ // <--------------------------------------------------------- WIN -#ifndef QT_NO_GESTURES - uint nativeGesturePanEnabled : 1; -#endif - bool shouldShowMaximizeButton(); - void winUpdateIsOpaque(); - void reparentChildren(); -#if QT_CONFIG(draganddrop) - QOleDropTarget *registerOleDnd(QWidget *widget); - void unregisterOleDnd(QWidget *widget, QOleDropTarget *target); -#endif - void grabMouseWhileInWindow(); - void registerTouchWindow(); - void winSetupGestures(); -#elif defined(Q_OS_MAC) // <--------------------------------------------------------- MAC +#elif defined(Q_OS_MAC) void macUpdateSizeAttribute(); -#elif 0 /* Used to be included in Qt4 for Q_WS_MAC */ // <--------------------------------------------------------- MAC (old stuff) - // This is new stuff - uint needWindowChange : 1; - - // Each wiget keeps a list of all its child and grandchild OpenGL widgets. - // This list is used to update the gl context whenever a parent and a granparent - // moves, and also to check for intersections with gl widgets within the window - // when a widget moves. - struct GlWidgetInfo - { - GlWidgetInfo(QWidget *widget) : widget(widget), lastUpdateWidget(0) { } - bool operator==(const GlWidgetInfo &other) const { return (widget == other.widget); } - QWidget * widget; - QWidget * lastUpdateWidget; - }; - - // dirtyOnWidget contains the areas in the widget that needs to be repained, - // in the same way as dirtyOnScreen does for the window. Areas are added in - // dirtyWidget_sys and cleared in the paint event. In scroll_sys we then use - // this information repaint invalid areas when widgets are scrolled. - QRegion dirtyOnWidget; - EventHandlerRef window_event; - QList glWidgets; - - //these are here just for code compat (HIViews) - Qt::HANDLE qd_hd; - - void macUpdateHideOnSuspend(); - void macUpdateOpaqueSizeGrip(); - void macUpdateIgnoreMouseEvents(); - void macUpdateMetalAttribute(); - void macUpdateIsOpaque(); - void macSetNeedsDisplay(QRegion region); - void setEnabled_helper_sys(bool enable); - bool isRealWindow() const; - void adjustWithinMaxAndMinSize(int &w, int &h); - void applyMaxAndMinSizeOnWindow(); - void update_sys(const QRect &rect); - void update_sys(const QRegion &rgn); - void setGeometry_sys_helper(int, int, int, int, bool); - void updateMaximizeButton_sys(); - void createWindow_sys(); - void recreateMacWindow(); - void setSubWindowStacking(bool set); - void setWindowLevel(); - void finishCreateWindow_sys_Cocoa(void * /*NSWindow * */ windowRef); - void syncCocoaMask(); - void finishCocoaMaskSetup(); - // Did we add the drawRectOriginal method? - bool drawRectOriginalAdded; - // Is the original drawRect method available? - bool originalDrawMethod; - // Do we need to change the methods? - bool changeMethods; - - // Unified toolbar variables - bool isInUnifiedToolbar; - QUnifiedToolbarSurface *unifiedSurface; - QPoint toolbar_offset; - QWidget *toolbar_ancestor; - bool flushRequested; - bool touchEventsEnabled; - void determineWindowClass(); - void transferChildren(); - bool qt_mac_dnd_event(uint, DragRef); - void toggleDrawers(bool); - //mac event functions - static bool qt_create_root_win(); - static void qt_clean_root_win(); - static bool qt_mac_update_sizer(QWidget *, int up = 0); - static OSStatus qt_window_event(EventHandlerCallRef er, EventRef event, void *); - static OSStatus qt_widget_event(EventHandlerCallRef er, EventRef event, void *); - static bool qt_widget_rgn(QWidget *, short, RgnHandle, bool); - void registerTouchWindow(bool enable = true); #endif void setNetWmWindowTypes(bool skipIfMissing = false); diff --git a/src/widgets/styles/qpixmapstyle.cpp b/src/widgets/styles/qpixmapstyle.cpp index 976bd2630e..05e8467528 100644 --- a/src/widgets/styles/qpixmapstyle.cpp +++ b/src/widgets/styles/qpixmapstyle.cpp @@ -122,9 +122,6 @@ QPixmapStyle::~QPixmapStyle() void QPixmapStyle::polish(QApplication *application) { QCommonStyle::polish(application); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - QApplication::setEffectEnabled(Qt::UI_AnimateCombo, false); -#endif } /*! @@ -188,11 +185,6 @@ void QPixmapStyle::polish(QWidget *widget) frame->setContentsMargins(pix.margins.left(), desc.margins.top(), pix.margins.right(), desc.margins.bottom()); frame->setAttribute(Qt::WA_TranslucentBackground); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - // FramelessWindowHint is needed on windows to make - // WA_TranslucentBackground work properly - frame->setWindowFlags(widget->windowFlags() | Qt::FramelessWindowHint); -#endif } } #endif // QT_CONFIG(combobox) diff --git a/src/widgets/styles/qstyleoption.cpp b/src/widgets/styles/qstyleoption.cpp index 4faf98a0a3..5b3efd598f 100644 --- a/src/widgets/styles/qstyleoption.cpp +++ b/src/widgets/styles/qstyleoption.cpp @@ -198,11 +198,6 @@ void QStyleOption::init(const QWidget *widget) state |= QStyle::State_Active; if (widget->isWindow()) state |= QStyle::State_Window; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - extern bool qt_mac_can_clickThrough(const QWidget *w); //qwidget_mac.cpp - if (!(state & QStyle::State_Active) && !qt_mac_can_clickThrough(widget)) - state &= ~QStyle::State_Enabled; -#endif switch (QStyleHelper::widgetSizePolicy(widget)) { case QStyleHelper::SizeSmall: state |= QStyle::State_Small; diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp index ea653459d3..dd225fbec3 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -5153,13 +5153,6 @@ QSize QStyleSheetStyle::sizeFromContents(ContentsType ct, const QStyleOption *op sz = csz + QSize(vertical ? 0 : spaceForIcon, vertical ? spaceForIcon : 0); return subRule.boxSize(subRule.adjustSize(sz)); } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (baseStyle()->inherits("QMacStyle")) { - //adjust the size after the call to the style because the mac style ignore the size arguments anyway. - //this might cause the (max-){width,height} property to include the native style border while they should not. - return subRule.adjustSize(baseStyle()->sizeFromContents(ct, opt, csz, w)); - } -#endif sz = subRule.adjustSize(csz); break; } diff --git a/src/widgets/util/qflickgesture.cpp b/src/widgets/util/qflickgesture.cpp index 55ec93c7d3..14a30ce7cf 100644 --- a/src/widgets/util/qflickgesture.cpp +++ b/src/widgets/util/qflickgesture.cpp @@ -462,21 +462,6 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state, } break; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // the only way to distinguish between real mouse wheels and wheel - // events generated by the native 2 finger swipe gesture is to listen - // for these events (according to Apple's Cocoa Event-Handling Guide) - - case QEvent::NativeGesture: { - QNativeGestureEvent *nge = static_cast(event); - if (nge->gestureType == QNativeGestureEvent::GestureBegin) - d->macIgnoreWheel = true; - else if (nge->gestureType == QNativeGestureEvent::GestureEnd) - d->macIgnoreWheel = false; - break; - } -#endif - // consume all wheel events if the scroller is active case QEvent::Wheel: if (d->macIgnoreWheel || (scroller->state() != QScroller::Inactive)) diff --git a/src/widgets/util/qscroller_mac.mm b/src/widgets/util/qscroller_mac.mm deleted file mode 100644 index 6dbb483089..0000000000 --- a/src/widgets/util/qscroller_mac.mm +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtWidgets module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include - -#if 0 // Used to be included in Qt4 for Q_WS_MAC - -#import - -#include "qscroller_p.h" - -QT_BEGIN_NAMESPACE - -QPointF QScrollerPrivate::realDpi(int screen) const -{ - QMacAutoReleasePool pool; - NSArray *nsscreens = [NSScreen screens]; - - if (screen < 0 || screen >= int([nsscreens count])) - screen = 0; - - NSScreen *nsscreen = [nsscreens objectAtIndex:screen]; - CGDirectDisplayID display = [[[nsscreen deviceDescription] objectForKey:@"NSScreenNumber"] intValue]; - - CGSize mmsize = CGDisplayScreenSize(display); - if (mmsize.width > 0 && mmsize.height > 0) { - return QPointF(CGDisplayPixelsWide(display) / mmsize.width, - CGDisplayPixelsHigh(display) / mmsize.height) * qreal(25.4); - } else { - return QPointF(); - } -} - -QT_END_NAMESPACE - -#endif diff --git a/src/widgets/util/qscrollerproperties.cpp b/src/widgets/util/qscrollerproperties.cpp index c26fba2cd3..df6b899fe4 100644 --- a/src/widgets/util/qscrollerproperties.cpp +++ b/src/widgets/util/qscrollerproperties.cpp @@ -40,9 +40,6 @@ #include #include #include -#if 0 // Used to be included in Qt4 for Q_WS_WIN -# include -#endif #include "qscrollerproperties.h" #include "private/qscrollerproperties_p.h" @@ -73,10 +70,6 @@ QScrollerPropertiesPrivate *QScrollerPropertiesPrivate::defaults() spp.overshootDragDistanceFactor = qreal(1); spp.overshootScrollDistanceFactor = qreal(0.5); spp.overshootScrollTime = qreal(0.7); -# if 0 // Used to be included in Qt4 for Q_WS_WIN - if (QLibrary::resolve(QLatin1String("UxTheme"), "BeginPanningFeedback")) - spp.overshootScrollTime = qreal(0.35); -# endif spp.hOvershootPolicy = QScrollerProperties::OvershootWhenScrollable; spp.vOvershootPolicy = QScrollerProperties::OvershootWhenScrollable; spp.frameRate = QScrollerProperties::Standard; diff --git a/src/widgets/util/qsystemtrayicon.cpp b/src/widgets/util/qsystemtrayicon.cpp index a38a50d3df..fd18888870 100644 --- a/src/widgets/util/qsystemtrayicon.cpp +++ b/src/widgets/util/qsystemtrayicon.cpp @@ -626,16 +626,6 @@ void QBalloonTip::balloon(const QPoint& pos, int msecs, bool showArrow) } QPainterPath path; -#if defined(QT_NO_XSHAPE) && 0 /* Used to be included in Qt4 for Q_WS_X11 */ - // XShape is required for setting the mask, so we just - // draw an ugly square when its not available - path.moveTo(0, 0); - path.lineTo(sz.width() - 1, 0); - path.lineTo(sz.width() - 1, sz.height() - 1); - path.lineTo(0, sz.height() - 1); - path.lineTo(0, 0); - move(qMax(pos.x() - sz.width(), scr.left()), pos.y()); -#else path.moveTo(ml + rc, mt); if (arrowAtTop && arrowAtLeft) { if (showArrow) { @@ -685,7 +675,6 @@ void QBalloonTip::balloon(const QPoint& pos, int msecs, bool showArrow) painter1.setBrush(QBrush(Qt::color1)); painter1.drawPath(path); setMask(bitmap); -#endif // Draw the border pixmap = QPixmap(sz); diff --git a/src/widgets/util/util.pri b/src/widgets/util/util.pri index a3bd8897f1..363291528e 100644 --- a/src/widgets/util/util.pri +++ b/src/widgets/util/util.pri @@ -54,7 +54,3 @@ qtConfig(xcb) { } else { SOURCES += util/qsystemtrayicon_qpa.cpp } - -mac { - OBJECTIVE_SOURCES += util/qscroller_mac.mm -} diff --git a/src/widgets/widgets/qabstractscrollarea.cpp b/src/widgets/widgets/qabstractscrollarea.cpp index 55b2dcd662..b295e66574 100644 --- a/src/widgets/widgets/qabstractscrollarea.cpp +++ b/src/widgets/widgets/qabstractscrollarea.cpp @@ -62,10 +62,6 @@ #include -#if 0 // Used to be included in Qt4 for Q_WS_MAC -#include -#include -#endif #ifdef Q_OS_WIN # include #endif @@ -169,9 +165,6 @@ QAbstractScrollAreaPrivate::QAbstractScrollAreaPrivate() shownOnce(false), inResize(false), sizeAdjustPolicy(QAbstractScrollArea::AdjustIgnored), viewport(0), cornerWidget(0), left(0), top(0), right(0), bottom(0), xoffset(0), yoffset(0), viewportFilter(0) -#if 0 // Used to be included in Qt4 for Q_WS_WIN - , singleFingerPanEnabled(false) -#endif { } @@ -322,16 +315,6 @@ void QAbstractScrollAreaPrivate::init() #endif } -#if 0 // Used to be included in Qt4 for Q_WS_WIN -void QAbstractScrollAreaPrivate::setSingleFingerPanEnabled(bool on) -{ - singleFingerPanEnabled = on; - QWidgetPrivate *dd = static_cast(QObjectPrivate::get(viewport)); - if (dd) - dd->winSetupGestures(); -} -#endif - void QAbstractScrollAreaPrivate::layoutChildren() { bool needH = false; @@ -362,38 +345,6 @@ void QAbstractScrollAreaPrivate::layoutChildren_helper(bool *needHorizontalScrol const int hscrollOverlap = hbar->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarOverlap, &opt, hbar); const int vscrollOverlap = vbar->style()->pixelMetric(QStyle::PM_ScrollView_ScrollBarOverlap, &opt, vbar); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - QWidget * const window = q->window(); - - // Use small scroll bars for tool windows, to match the native size grip. - bool hbarIsSmall = hbar->testAttribute(Qt::WA_MacSmallSize); - bool vbarIsSmall = vbar->testAttribute(Qt::WA_MacSmallSize); - const Qt::WindowType windowType = window->windowType(); - if (windowType == Qt::Tool) { - if (!hbarIsSmall) { - hbar->setAttribute(Qt::WA_MacMiniSize, false); - hbar->setAttribute(Qt::WA_MacNormalSize, false); - hbar->setAttribute(Qt::WA_MacSmallSize, true); - } - if (!vbarIsSmall) { - vbar->setAttribute(Qt::WA_MacMiniSize, false); - vbar->setAttribute(Qt::WA_MacNormalSize, false); - vbar->setAttribute(Qt::WA_MacSmallSize, true); - } - } else { - if (hbarIsSmall) { - hbar->setAttribute(Qt::WA_MacMiniSize, false); - hbar->setAttribute(Qt::WA_MacNormalSize, false); - hbar->setAttribute(Qt::WA_MacSmallSize, false); - } - if (vbarIsSmall) { - vbar->setAttribute(Qt::WA_MacMiniSize, false); - vbar->setAttribute(Qt::WA_MacNormalSize, false); - vbar->setAttribute(Qt::WA_MacSmallSize, false); - } - } -#endif - const int hsbExt = hbar->sizeHint().height(); const int vsbExt = vbar->sizeHint().width(); const QPoint extPoint(vsbExt, hsbExt); @@ -403,30 +354,6 @@ void QAbstractScrollAreaPrivate::layoutChildren_helper(bool *needHorizontalScrol const bool hasCornerWidget = (cornerWidget != 0); -// If the scroll bars are at the very right and bottom of the window we -// move their positions to be aligned with the size grip. -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // Check if a native sizegrip is present. - bool hasMacReverseSizeGrip = false; - bool hasMacSizeGrip = false; - bool nativeGripPresent = false; - if (q->testAttribute(Qt::WA_WState_Created)) - nativeGripPresent = qt_mac_checkForNativeSizeGrip(q); - - if (nativeGripPresent) { - // Look for a native size grip at the visual window bottom right and at the - // absolute window bottom right. In reverse mode, the native size grip does not - // swich side, so we need to check if it is on the "wrong side". - const QPoint scrollAreaBottomRight = q->mapTo(window, widgetRect.bottomRight() - QPoint(frameWidth, frameWidth)); - const QPoint windowBottomRight = window->rect().bottomRight(); - const QPoint visualWindowBottomRight = QStyle::visualPos(opt.direction, opt.rect, windowBottomRight); - const QPoint offset = windowBottomRight - scrollAreaBottomRight; - const QPoint visualOffset = visualWindowBottomRight - scrollAreaBottomRight; - hasMacSizeGrip = (visualOffset.manhattanLength() < vsbExt); - hasMacReverseSizeGrip = (hasMacSizeGrip == false && (offset.manhattanLength() < hsbExt)); - } -#endif - QPoint cornerOffset((needv && vscrollOverlap == 0) ? vsbExt : 0, (needh && hscrollOverlap == 0) ? hsbExt : 0); QRect controlsRect; QRect viewportRect; @@ -458,12 +385,6 @@ void QAbstractScrollAreaPrivate::layoutChildren_helper(bool *needHorizontalScrol if (hasCornerWidget && ((needv && vscrollOverlap == 0) || (needh && hscrollOverlap == 0))) cornerOffset = extPoint; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - // Also move the scroll bars if they are covered by the native Mac size grip. - if (hasMacSizeGrip) - cornerOffset = extPoint; -#endif - // The corner point is where the scroll bar rects, the corner widget rect and the // viewport rect meets. const QPoint cornerPoint(controlsRect.bottomRight() + QPoint(1, 1) - cornerOffset); @@ -475,13 +396,6 @@ void QAbstractScrollAreaPrivate::layoutChildren_helper(bool *needHorizontalScrol else cornerPaintingRect = QRect(); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (hasMacReverseSizeGrip) - reverseCornerPaintingRect = QRect(controlsRect.bottomRight() + QPoint(1, 1) - extPoint, extSize); - else - reverseCornerPaintingRect = QRect(); -#endif - // move the scrollbars away from top/left headers int vHeaderRight = 0; int hHeaderBottom = 0; @@ -501,10 +415,7 @@ void QAbstractScrollAreaPrivate::layoutChildren_helper(bool *needHorizontalScrol #endif // QT_CONFIG(itemviews) if (needh) { QRect horizontalScrollBarRect(QPoint(controlsRect.left() + vHeaderRight, cornerPoint.y()), QPoint(cornerPoint.x() - 1, controlsRect.bottom())); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (hasMacReverseSizeGrip) - horizontalScrollBarRect.adjust(vsbExt, 0, 0, 0); -#endif + if (!hasCornerWidget && htransient) horizontalScrollBarRect.adjust(0, 0, cornerOffset.x(), 0); scrollBarContainers[Qt::Horizontal]->setGeometry(QStyle::visualRect(opt.direction, opt.rect, horizontalScrollBarRect)); @@ -617,10 +528,8 @@ void QAbstractScrollArea::setViewport(QWidget *widget) d->viewport->setParent(this); d->viewport->setFocusProxy(this); d->viewport->installEventFilter(d->viewportFilter.data()); -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC #ifndef QT_NO_GESTURES d->viewport->grabGesture(Qt::PanGesture); -#endif #endif d->layoutChildren(); #ifndef QT_NO_OPENGL @@ -1043,13 +952,6 @@ bool QAbstractScrollArea::event(QEvent *e) QPainter p(this); style()->drawPrimitive(QStyle::PE_PanelScrollAreaCorner, &option, &p, this); } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (d->reverseCornerPaintingRect.isValid()) { - option.rect = d->reverseCornerPaintingRect; - QPainter p(this); - style()->drawPrimitive(QStyle::PE_PanelScrollAreaCorner, &option, &p, this); - } -#endif } QFrame::paintEvent((QPaintEvent*)e); break; @@ -1122,38 +1024,10 @@ bool QAbstractScrollArea::event(QEvent *e) hBar->setValue(se->contentPos().x()); vBar->setValue(se->contentPos().y()); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - typedef BOOL (*PtrBeginPanningFeedback)(HWND); - typedef BOOL (*PtrUpdatePanningFeedback)(HWND, LONG, LONG, BOOL); - typedef BOOL (*PtrEndPanningFeedback)(HWND, BOOL); - - static PtrBeginPanningFeedback ptrBeginPanningFeedback = 0; - static PtrUpdatePanningFeedback ptrUpdatePanningFeedback = 0; - static PtrEndPanningFeedback ptrEndPanningFeedback = 0; - - if (!ptrBeginPanningFeedback) - ptrBeginPanningFeedback = (PtrBeginPanningFeedback) QLibrary::resolve(QLatin1String("UxTheme"), "BeginPanningFeedback"); - if (!ptrUpdatePanningFeedback) - ptrUpdatePanningFeedback = (PtrUpdatePanningFeedback) QLibrary::resolve(QLatin1String("UxTheme"), "UpdatePanningFeedback"); - if (!ptrEndPanningFeedback) - ptrEndPanningFeedback = (PtrEndPanningFeedback) QLibrary::resolve(QLatin1String("UxTheme"), "EndPanningFeedback"); - - if (ptrBeginPanningFeedback && ptrUpdatePanningFeedback && ptrEndPanningFeedback) { - WId wid = window()->winId(); - - if (!se->overshootDistance().isNull() && d->overshoot.isNull()) - ptrBeginPanningFeedback(wid); - if (!se->overshootDistance().isNull()) - ptrUpdatePanningFeedback(wid, -se->overshootDistance().x(), -se->overshootDistance().y(), false); - if (se->overshootDistance().isNull() && !d->overshoot.isNull()) - ptrEndPanningFeedback(wid, true); - } else -#endif - { - QPoint delta = d->overshoot - se->overshootDistance().toPoint(); - if (!delta.isNull()) - viewport()->move(viewport()->pos() + delta); - } + QPoint delta = d->overshoot - se->overshootDistance().toPoint(); + if (!delta.isNull()) + viewport()->move(viewport()->pos() + delta); + d->overshoot = se->overshootDistance().toPoint(); return true; @@ -1546,13 +1420,6 @@ void QAbstractScrollAreaPrivate::_q_vslide(int y) void QAbstractScrollAreaPrivate::_q_showOrHideScrollBars() { layoutChildren(); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - // Need to re-subscribe to gestures as the content changes to make sure we - // enable/disable panning when needed. - QWidgetPrivate *dd = static_cast(QObjectPrivate::get(viewport)); - if (dd) - dd->winSetupGestures(); -#endif } QPoint QAbstractScrollAreaPrivate::contentsOffset() const diff --git a/src/widgets/widgets/qabstractscrollarea_p.h b/src/widgets/widgets/qabstractscrollarea_p.h index 732a2ab40d..6d78b9db6d 100644 --- a/src/widgets/widgets/qabstractscrollarea_p.h +++ b/src/widgets/widgets/qabstractscrollarea_p.h @@ -85,9 +85,7 @@ public: QWidget *viewport; QWidget *cornerWidget; QRect cornerPaintingRect; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - QRect reverseCornerPaintingRect; -#endif + int left, top, right, bottom; // viewport margin int xoffset, yoffset; @@ -112,11 +110,6 @@ public: inline bool viewportEvent(QEvent *event) { return q_func()->viewportEvent(event); } QScopedPointer viewportFilter; - -#if 0 // Used to be included in Qt4 for Q_WS_WIN - bool singleFingerPanEnabled; - void setSingleFingerPanEnabled(bool on = true); -#endif }; class QAbstractScrollAreaFilter : public QObject diff --git a/src/widgets/widgets/qabstractslider.cpp b/src/widgets/widgets/qabstractslider.cpp index 129d540f50..dc325ab871 100644 --- a/src/widgets/widgets/qabstractslider.cpp +++ b/src/widgets/widgets/qabstractslider.cpp @@ -721,15 +721,10 @@ bool QAbstractSliderPrivate::scrollByDelta(Qt::Orientation orientation, Qt::Keyb offset_accumulated = 0; offset_accumulated += stepsToScrollF; -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC + // Don't scroll more than one page in any case: stepsToScroll = qBound(-pageStep, int(offset_accumulated), pageStep); -#else - // Native UI-elements on Mac can scroll hundreds of lines at a time as - // a result of acceleration. So keep the same behaviour in Qt, and - // don't restrict stepsToScroll to certain maximum (pageStep): - stepsToScroll = int(offset_accumulated); -#endif + offset_accumulated -= int(offset_accumulated); if (stepsToScroll == 0) { // We moved less than a line, but might still have accumulated partial scroll, diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp index 78706b1854..81cc0b833a 100644 --- a/src/widgets/widgets/qcalendarwidget.cpp +++ b/src/widgets/widgets/qcalendarwidget.cpp @@ -1585,7 +1585,6 @@ protected: { Q_UNUSED(e) -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC QStyleOptionToolButton opt; initStyleOption(&opt); @@ -1598,7 +1597,7 @@ protected: toolPalette.setColor(QPalette::ButtonText, toolPalette.color(QPalette::HighlightedText)); setPalette(toolPalette); } -#endif + QToolButton::paintEvent(e); } }; diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp index 68f19cc334..e73c63f657 100644 --- a/src/widgets/widgets/qcombobox.cpp +++ b/src/widgets/widgets/qcombobox.cpp @@ -447,13 +447,6 @@ void QComboBoxPrivateContainer::paintEvent(QPaintEvent *e) void QComboBoxPrivateContainer::leaveEvent(QEvent *) { -// On Mac using the Mac style we want to clear the selection -// when the mouse moves outside the popup. -#if 0 // Used to be included in Qt4 for Q_WS_MAC - QStyleOptionComboBox opt = comboStyleOption(); - if (combo->style()->styleHint(QStyle::SH_ComboBox_Popup, &opt, combo)) - view->clearSelection(); -#endif } QComboBoxPrivateContainer::QComboBoxPrivateContainer(QAbstractItemView *itemView, QComboBox *parent) diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp index 3c92d4be0e..17dc94bba1 100644 --- a/src/widgets/widgets/qdatetimeedit.cpp +++ b/src/widgets/widgets/qdatetimeedit.cpp @@ -1125,16 +1125,6 @@ void QDateTimeEdit::keyPressEvent(QKeyEvent *event) select = false; break; } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - else -#ifdef QT_KEYPAD_NAVIGATION - if (!QApplicationPrivate::keypadNavigationEnabled()) -#endif - { - select = (event->modifiers() & Qt::ShiftModifier); - break; - } -#endif } Q_FALLTHROUGH(); case Qt::Key_Backtab: diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index 55ae42db04..9be99c4723 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -1934,11 +1934,6 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList QDockAreaLayoutItem item(new QDockWidgetItem(widget)); if (flags & StateFlagFloating) { bool drawer = false; -#if 0 // Used to be included in Qt4 for Q_WS_MAC // drawer support - extern bool qt_mac_is_macdrawer(const QWidget *); //qwidget_mac.cpp - extern bool qt_mac_set_drawer_preferred_edge(QWidget *, Qt::DockWidgetArea); //qwidget_mac.cpp - drawer = qt_mac_is_macdrawer(widget); -#endif if (!testing) { widget->hide(); @@ -1949,13 +1944,6 @@ bool QDockAreaLayoutInfo::restoreState(QDataStream &stream, QList int x, y, w, h; stream >> x >> y >> w >> h; -#if 0 // Used to be included in Qt4 for Q_WS_MAC // drawer support - if (drawer) { - mainWindow->window()->createWinId(); - widget->window()->createWinId(); - qt_mac_set_drawer_preferred_edge(widget, toDockWidgetArea(dockPos)); - } else -#endif if (!testing) widget->setGeometry(QDockAreaLayout::constrainedRect(QRect(x, y, w, h), widget)); @@ -2049,9 +2037,8 @@ void QDockAreaLayoutInfo::updateSeparatorWidgets() const } j++; -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC sepWidget->raise(); -#endif + QRect sepRect = separatorRect(i).adjusted(-2, -2, 2, 2); sepWidget->setGeometry(sepRect); sepWidget->setMask( QRegion(separatorRect(i).translated( - sepRect.topLeft()))); @@ -3090,10 +3077,6 @@ bool QDockAreaLayout::restoreDockWidget(QDockWidget *dockWidget) dockWidget->d_func()->setWindowState(true, true, r); } dockWidget->setVisible(!placeHolder->hidden); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (placeHolder->window) // gets rid of the X11BypassWindowManager window flag - dockWidget->d_func()->setWindowState(true); -#endif item->placeHolderItem = 0; delete placeHolder; @@ -3340,9 +3323,8 @@ void QDockAreaLayout::updateSeparatorWidgets() const } j++; -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC sepWidget->raise(); -#endif + QRect sepRect = separatorRect(i).adjusted(-2, -2, 2, 2); sepWidget->setGeometry(sepRect); sepWidget->setMask( QRegion(separatorRect(i).translated( - sepRect.topLeft()))); diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index 28a7cee2a0..1ba34e0fed 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -977,11 +977,7 @@ bool QDockWidgetPrivate::mouseMoveEvent(QMouseEvent *event) && (event->pos() - state->pressPos).manhattanLength() > QApplication::startDragDistance()) { startDrag(); -#if 0 // Used to be included in Qt4 for Q_WS_WIN - grabMouseWhileInWindow(); -#else q->grabMouse(); -#endif ret = true; } } @@ -1029,13 +1025,6 @@ void QDockWidgetPrivate::nonClientAreaMouseEvent(QMouseEvent *event) QWidget *tl = q->topLevelWidget(); QRect geo = tl->geometry(); QRect titleRect = tl->frameGeometry(); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if ((features & QDockWidget::DockWidgetVerticalTitleBar)) { - titleRect.setTop(geo.top()); - titleRect.setBottom(geo.bottom()); - titleRect.setRight(geo.left() - 1); - } else -#endif { titleRect.setLeft(geo.left()); titleRect.setRight(geo.right()); @@ -1588,17 +1577,6 @@ bool QDockWidget::event(QEvent *event) if (d->mouseMoveEvent(static_cast(event))) return true; break; -#if 0 // Used to be included in Qt4 for Q_WS_WIN - case QEvent::Leave: - if (d->state != 0 && d->state->dragging && !d->state->nca) { - // This is a workaround for loosing the mouse on Vista. - QPoint pos = QCursor::pos(); - QMouseEvent fake(QEvent::MouseMove, mapFromGlobal(pos), pos, Qt::NoButton, - QGuiApplication::mouseButtons(), QGuiApplication::keyboardModifiers()); - d->mouseMoveEvent(&fake); - } - break; -#endif case QEvent::MouseButtonRelease: if (d->mouseReleaseEvent(static_cast(event))) return true; diff --git a/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm b/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm index 0b64b2a2bb..88baf0410b 100644 --- a/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm +++ b/src/widgets/widgets/qmaccocoaviewcontainer_mac.mm @@ -82,8 +82,32 @@ The following is a snippet showing how to subclass QMacCocoaViewContainer to wrap an NSSearchField. - \snippet macmainwindow.mm 0 + \code + SearchWidget::SearchWidget(QWidget *parent) + : QMacCocoaViewContainer(0, parent) + { + // Many Cocoa objects create temporary autorelease objects, + // so create a pool to catch them. + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + // Create the NSSearchField, set it on the QCocoaViewContainer. + NSSearchField *search = [[NSSearchField alloc] init]; + setCocoaView(search); + + // Use a Qt menu for the search field menu. + QMenu *qtMenu = createMenu(this); + NSMenu *nsMenu = qtMenu->macMenu(0); + [[search cell] setSearchMenuTemplate:nsMenu]; + + // Release our reference, since our super class takes ownership and we + // don't need it anymore. + [search release]; + + // Clean up our pool as we no longer need it. + [pool release]; + } + \endcode */ QT_BEGIN_NAMESPACE diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp index c7b7e5bf97..6e3de1b1ff 100644 --- a/src/widgets/widgets/qmdiarea.cpp +++ b/src/widgets/widgets/qmdiarea.cpp @@ -2493,13 +2493,6 @@ bool QMdiArea::event(QEvent *event) { Q_D(QMdiArea); switch (event->type()) { -#if 0 // Used to be included in Qt4 for Q_WS_WIN - // QWidgetPrivate::hide_helper activates another sub-window when closing a - // modal dialog on Windows (see activateWindow() inside the ifdef). - case QEvent::WindowUnblocked: - d->activateCurrentWindow(); - break; -#endif case QEvent::WindowActivate: { d->isActivated = true; if (d->childWindows.isEmpty()) @@ -2557,11 +2550,7 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event) QKeyEvent *keyEvent = static_cast(event); // Ingore key events without a Ctrl modifier (except for press/release on the modifier itself). -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (!(keyEvent->modifiers() & Qt::MetaModifier) && keyEvent->key() != Qt::Key_Meta) -#else if (!(keyEvent->modifiers() & Qt::ControlModifier) && keyEvent->key() != Qt::Key_Control) -#endif return QAbstractScrollArea::eventFilter(object, event); // Find closest mdi area (in case we have a nested workspace). @@ -2576,11 +2565,7 @@ bool QMdiArea::eventFilter(QObject *object, QEvent *event) // 3) Ctrl-Shift-Tab (Tab, Tab, ...) -> iterate through all windows in the opposite // direction (activatePreviousSubWindow()) switch (keyEvent->key()) { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - case Qt::Key_Meta: -#else case Qt::Key_Control: -#endif if (keyPress) area->d_func()->startTabToPreviousTimer(); else diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp index 474cce983c..d58a1d06db 100644 --- a/src/widgets/widgets/qmdisubwindow.cpp +++ b/src/widgets/widgets/qmdisubwindow.cpp @@ -288,13 +288,6 @@ static inline bool isHoverControl(QStyle::SubControl control) return control != QStyle::SC_None && control != QStyle::SC_TitleBarLabel; } -#if 0 // Used to be included in Qt4 for Q_WS_WIN -static inline QRgb colorref2qrgb(COLORREF col) -{ - return qRgb(GetRValue(col),GetGValue(col),GetBValue(col)); -} -#endif - #ifndef QT_NO_TOOLTIP static void showToolTip(QHelpEvent *helpEvent, QWidget *widget, const QStyleOptionComplex &opt, QStyle::ComplexControl complexControl, QStyle::SubControl subControl) @@ -1926,43 +1919,7 @@ QPalette QMdiSubWindowPrivate::desktopPalette() const QPalette newPalette = q->palette(); bool colorsInitialized = false; -#if 0 // Used to be included in Qt4 for Q_WS_WIN // ask system properties on windows -#ifndef SPI_GETGRADIENTCAPTIONS -#define SPI_GETGRADIENTCAPTIONS 0x1008 -#endif -#ifndef COLOR_GRADIENTACTIVECAPTION -#define COLOR_GRADIENTACTIVECAPTION 27 -#endif -#ifndef COLOR_GRADIENTINACTIVECAPTION -#define COLOR_GRADIENTINACTIVECAPTION 28 -#endif - if (QGuiApplication::desktopSettingsAware()) { - newPalette.setColor(QPalette::Active, QPalette::Highlight, - colorref2qrgb(GetSysColor(COLOR_ACTIVECAPTION))); - newPalette.setColor(QPalette::Inactive, QPalette::Highlight, - colorref2qrgb(GetSysColor(COLOR_INACTIVECAPTION))); - newPalette.setColor(QPalette::Active, QPalette::HighlightedText, - colorref2qrgb(GetSysColor(COLOR_CAPTIONTEXT))); - newPalette.setColor(QPalette::Inactive, QPalette::HighlightedText, - colorref2qrgb(GetSysColor(COLOR_INACTIVECAPTIONTEXT))); - colorsInitialized = true; - BOOL hasGradient = false; - SystemParametersInfo(SPI_GETGRADIENTCAPTIONS, 0, &hasGradient, 0); - - if (hasGradient) { - newPalette.setColor(QPalette::Active, QPalette::Base, - colorref2qrgb(GetSysColor(COLOR_GRADIENTACTIVECAPTION))); - newPalette.setColor(QPalette::Inactive, QPalette::Base, - colorref2qrgb(GetSysColor(COLOR_GRADIENTINACTIVECAPTION))); - } else { - newPalette.setColor(QPalette::Active, QPalette::Base, - newPalette.color(QPalette::Active, QPalette::Highlight)); - newPalette.setColor(QPalette::Inactive, QPalette::Base, - newPalette.color(QPalette::Inactive, QPalette::Highlight)); - } - } -#endif if (!colorsInitialized) { newPalette.setColor(QPalette::Active, QPalette::Highlight, newPalette.color(QPalette::Active, QPalette::Highlight)); diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index 8843797430..0a81931b57 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -825,9 +825,6 @@ void QPlainTextEditPrivate::init(const QString &txt) viewport->setCursor(Qt::IBeamCursor); #endif originalOffsetY = 0; -#if 0 // Used to be included in Qt4 for Q_WS_WIN - setSingleFingerPanEnabled(true); -#endif } void QPlainTextEditPrivate::_q_textChanged() diff --git a/src/widgets/widgets/qpushbutton.cpp b/src/widgets/widgets/qpushbutton.cpp index b578aa0b18..f48b5706f7 100644 --- a/src/widgets/widgets/qpushbutton.cpp +++ b/src/widgets/widgets/qpushbutton.cpp @@ -684,38 +684,6 @@ bool QPushButton::event(QEvent *e) return QAbstractButton::event(e); } -#if 0 // Used to be included in Qt4 for Q_WS_MAC -/* \reimp */ -bool QPushButton::hitButton(const QPoint &pos) const -{ - QStyleOptionButton opt; - initStyleOption(&opt); - if (qt_mac_buttonIsRenderedFlat(this, &opt)) - return QAbstractButton::hitButton(pos); - - // Now that we know we are using the native style, let's proceed. - Q_D(const QPushButton); - QPushButtonPrivate *nonConst = const_cast(d); - // In OSX buttons are round, which causes the hit method to be special. - // We cannot simply relay on detecting if something is inside the rect or not, - // we need to check if it is inside the "rounded area" or not. A point might - // be inside the rect but not inside the rounded area. - // Notice this method is only reimplemented for OSX. - return nonConst->hitButton(pos); -} - -bool QPushButtonPrivate::hitButton(const QPoint &pos) -{ - Q_Q(QPushButton); - QRect roundedRect(q->rect().left() + QMacStylePrivate::PushButtonLeftOffset, - q->rect().top() + QMacStylePrivate::PushButtonContentPadding, - q->rect().width() - QMacStylePrivate::PushButtonRightOffset, - q->rect().height() - QMacStylePrivate::PushButtonBottomOffset); - return roundedRect.contains(pos); -} -#endif - - QT_END_NAMESPACE #include "moc_qpushbutton.cpp" diff --git a/src/widgets/widgets/qpushbutton_p.h b/src/widgets/widgets/qpushbutton_p.h index a58675fe64..439b6e35d6 100644 --- a/src/widgets/widgets/qpushbutton_p.h +++ b/src/widgets/widgets/qpushbutton_p.h @@ -73,9 +73,6 @@ public: inline void init() { resetLayoutItemMargins(); } static QPushButtonPrivate* get(QPushButton *b) { return b->d_func(); } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - bool hitButton(const QPoint &pos); -#endif #if QT_CONFIG(menu) QPoint adjustedMenuPosition(); #endif diff --git a/src/widgets/widgets/qrubberband.cpp b/src/widgets/widgets/qrubberband.cpp index ade8675db8..af730f8023 100644 --- a/src/widgets/widgets/qrubberband.cpp +++ b/src/widgets/widgets/qrubberband.cpp @@ -45,10 +45,6 @@ #include "qstyle.h" #include "qstyleoption.h" -#if 0 // Used to be included in Qt4 for Q_WS_MAC -# include -# include -#endif #include @@ -140,18 +136,9 @@ QRubberBand::QRubberBand(Shape s, QWidget *p) Q_D(QRubberBand); d->shape = s; setAttribute(Qt::WA_TransparentForMouseEvents); -#if 1 // Used to be excluded in Qt4 for Q_WS_WIN setAttribute(Qt::WA_NoSystemBackground); -#endif setAttribute(Qt::WA_WState_ExplicitShowHide); setVisible(false); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (isWindow()) { - createWinId(); - extern OSWindowRef qt_mac_window_for(const QWidget *); //qwidget_mac.cpp - macWindowSetHasShadow(qt_mac_window_for(this), false); - } -#endif } /*! diff --git a/src/widgets/widgets/qsizegrip.cpp b/src/widgets/widgets/qsizegrip.cpp index dc5a7158dd..835af9c7b8 100644 --- a/src/widgets/widgets/qsizegrip.cpp +++ b/src/widgets/widgets/qsizegrip.cpp @@ -50,10 +50,6 @@ #include "qdebug.h" #include -#if 0 // Used to be included in Qt4 for Q_WS_MAC -#include -#endif - #include #include #include @@ -81,9 +77,7 @@ public: Qt::Corner m_corner; bool gotMousePress; QPointer tlw; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - void updateMacSizer(bool hide) const; -#endif + Qt::Corner corner() const; inline bool atBottom() const { @@ -119,9 +113,7 @@ public: updateTopLevelWidget(); if (tlw && showSizeGrip) { Qt::WindowStates sizeGripNotVisibleState = Qt::WindowFullScreen; -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC sizeGripNotVisibleState |= Qt::WindowMaximized; -#endif // Don't show the size grip if the tlw is maximized or in full screen mode. showSizeGrip = !(tlw->windowState() & sizeGripNotVisibleState); } @@ -141,18 +133,6 @@ QSizeGripPrivate::QSizeGripPrivate() { } -#if 0 // Used to be included in Qt4 for Q_WS_MAC -void QSizeGripPrivate::updateMacSizer(bool hide) const -{ - Q_Q(const QSizeGrip); - if (QApplication::closingDown() || !parent) - return; - QWidget *topLevelWindow = qt_sizegrip_topLevelWidget(const_cast(q)); - if(topLevelWindow && topLevelWindow->isWindow()) - QWidgetPrivate::qt_mac_update_sizer(topLevelWindow, hide ? -1 : 1); -} -#endif - Qt::Corner QSizeGripPrivate::corner() const { Q_Q(const QSizeGrip); @@ -227,7 +207,7 @@ void QSizeGripPrivate::init() Q_Q(QSizeGrip); m_corner = q->isLeftToRight() ? Qt::BottomRightCorner : Qt::BottomLeftCorner; -#if !defined(QT_NO_CURSOR) && !0 /* Used to be included in Qt4 for Q_WS_MAC */ +#if !defined(QT_NO_CURSOR) q->setCursor(m_corner == Qt::TopLeftCorner || m_corner == Qt::BottomRightCorner ? Qt::SizeFDiagCursor : Qt::SizeBDiagCursor); #endif @@ -440,7 +420,7 @@ void QSizeGrip::moveEvent(QMoveEvent * /*moveEvent*/) return; d->m_corner = d->corner(); -#if !defined(QT_NO_CURSOR) && !0 /* Used to be included in Qt4 for Q_WS_MAC */ +#if !defined(QT_NO_CURSOR) setCursor(d->m_corner == Qt::TopLeftCorner || d->m_corner == Qt::BottomRightCorner ? Qt::SizeFDiagCursor : Qt::SizeBDiagCursor); #endif @@ -451,9 +431,6 @@ void QSizeGrip::moveEvent(QMoveEvent * /*moveEvent*/) */ void QSizeGrip::showEvent(QShowEvent *showEvent) { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - d_func()->updateMacSizer(false); -#endif QWidget::showEvent(showEvent); } @@ -462,9 +439,6 @@ void QSizeGrip::showEvent(QShowEvent *showEvent) */ void QSizeGrip::hideEvent(QHideEvent *hideEvent) { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - d_func()->updateMacSizer(true); -#endif QWidget::hideEvent(hideEvent); } @@ -486,9 +460,7 @@ bool QSizeGrip::eventFilter(QObject *o, QEvent *e) return QWidget::eventFilter(o, e); } Qt::WindowStates sizeGripNotVisibleState = Qt::WindowFullScreen; -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC sizeGripNotVisibleState |= Qt::WindowMaximized; -#endif // Don't show the size grip if the tlw is maximized or in full screen mode. setVisible(!(d->tlw->windowState() & sizeGripNotVisibleState)); setAttribute(Qt::WA_WState_ExplicitShowHide, false); diff --git a/src/widgets/widgets/qstatusbar.cpp b/src/widgets/widgets/qstatusbar.cpp index e9044e6cad..39f0f11daf 100644 --- a/src/widgets/widgets/qstatusbar.cpp +++ b/src/widgets/widgets/qstatusbar.cpp @@ -90,10 +90,6 @@ public: int savedStrut; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - QPoint dragStart; -#endif - int indexToLastNonPermanentWidget() const { int i = items.size() - 1; @@ -747,44 +743,7 @@ bool QStatusBar::event(QEvent *e) } } -// On Mac OS X Leopard it is possible to drag the window by clicking -// on the tool bar on most applications. -#if 1 // Used to be excluded in Qt4 for Q_WS_MAC return QWidget::event(e); -#else - // Enable drag-click only if the status bar is the status bar for a - // QMainWindow with a unifed toolbar. - if (parent() == 0 || qobject_cast(parent()) == 0 || - qobject_cast(parent())->unifiedTitleAndToolBarOnMac() == false ) - return QWidget::event(e); - - // Check for mouse events. - QMouseEvent *mouseEvent; - if (e->type() == QEvent::MouseButtonPress || - e->type() == QEvent::MouseMove || - e->type() == QEvent::MouseButtonRelease) { - mouseEvent = static_cast (e); - } else { - return QWidget::event(e); - } - - // The following is a standard mouse drag handler. - if (e->type() == QEvent::MouseButtonPress && (mouseEvent->button() == Qt::LeftButton)) { - d->dragStart = mouseEvent->pos(); - } else if (e->type() == QEvent::MouseMove){ - if (d->dragStart == QPoint()) - return QWidget::event(e); - QPoint pos = mouseEvent->pos(); - QPoint delta = (pos - d->dragStart); - window()->move(window()->pos() + delta); - } else if (e->type() == QEvent::MouseButtonRelease && (mouseEvent->button() == Qt::LeftButton)){ - d->dragStart = QPoint(); - } else { - return QWidget::event(e); - } - - return true; -#endif } QT_END_NAMESPACE diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp index 18fda11ddf..7e1794efef 100644 --- a/src/widgets/widgets/qtabbar.cpp +++ b/src/widgets/widgets/qtabbar.cpp @@ -68,11 +68,6 @@ #include "private/qapplication_p.h" #include "private/qtabbar_p.h" -#if 0 // Used to be included in Qt4 for Q_WS_MAC -#include -#include -#endif - QT_BEGIN_NAMESPACE namespace { @@ -1976,9 +1971,7 @@ void QTabBar::mousePressEvent(QMouseEvent *event) d->moveTabFinished(d->pressedIndex); d->pressedIndex = d->indexAtPos(event->pos()); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - d->previousPressedIndex = d->pressedIndex; -#endif + if (d->validIndex(d->pressedIndex)) { QStyleOptionTabBarBase optTabBase; optTabBase.init(this); @@ -2058,17 +2051,6 @@ void QTabBar::mouseMoveEvent(QMouseEvent *event) update(); } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - } else if (!d->documentMode && event->buttons() == Qt::LeftButton && d->previousPressedIndex != -1) { - int newPressedIndex = d->indexAtPos(event->pos()); - if (d->pressedIndex == -1 && d->previousPressedIndex == newPressedIndex) { - d->pressedIndex = d->previousPressedIndex; - update(tabRect(d->pressedIndex)); - } else if(d->pressedIndex != newPressedIndex) { - d->pressedIndex = -1; - update(tabRect(d->previousPressedIndex)); - } -#endif } if (event->buttons() != Qt::LeftButton) { @@ -2162,9 +2144,7 @@ void QTabBar::mouseReleaseEvent(QMouseEvent *event) event->ignore(); return; } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - d->previousPressedIndex = -1; -#endif + if (d->movable && d->dragInProgress && d->validIndex(d->pressedIndex)) { int length = d->tabList[d->pressedIndex].dragOffset; int width = verticalTabs(d->shape) diff --git a/src/widgets/widgets/qtabbar_p.h b/src/widgets/widgets/qtabbar_p.h index 458d486b10..5552c43548 100644 --- a/src/widgets/widgets/qtabbar_p.h +++ b/src/widgets/widgets/qtabbar_p.h @@ -93,9 +93,6 @@ public: selectionBehaviorOnRemove(QTabBar::SelectRightTab), paintWithOffsets(true), movable(false), dragInProgress(false), documentMode(false), autoHide(false), changeCurrentOnDrag(false), switchTabCurrentIndex(-1), switchTabTimerId(0), movingTab(nullptr) -#if 0 // Used to be included in Qt4 for Q_WS_MAC - , previousPressedIndex(-1) -#endif {} int currentIndex; @@ -232,9 +229,6 @@ public: int switchTabTimerId; QMovableTabWidget *movingTab; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - int previousPressedIndex; -#endif // shared by tabwidget and qtabbar static void initStyleBaseOption(QStyleOptionTabBarBase *optTabBase, QTabBar *tabbar, QSize size) { diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index bd9e5f8159..0ccbad7eaa 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -200,9 +200,6 @@ void QTextEditPrivate::init(const QString &html) #ifndef QT_NO_CURSOR viewport->setCursor(Qt::IBeamCursor); #endif -#if 0 // Used to be included in Qt4 for Q_WS_WIN - setSingleFingerPanEnabled(true); -#endif } void QTextEditPrivate::_q_repaintContents(const QRectF &contentsRect) diff --git a/src/widgets/widgets/qtoolbar.cpp b/src/widgets/widgets/qtoolbar.cpp index d1a0f5ea78..58e9c4fd87 100644 --- a/src/widgets/widgets/qtoolbar.cpp +++ b/src/widgets/widgets/qtoolbar.cpp @@ -324,13 +324,8 @@ bool QToolBarPrivate::mouseMoveEvent(QMouseEvent *event) event->y() >= 0 && event->y() < q->height()); startDrag(moving); - if (!moving && !wasDragging) { -#if 0 // Used to be included in Qt4 for Q_WS_WIN - grabMouseWhileInWindow(); -#else + if (!moving && !wasDragging) q->grabMouse(); -#endif - } } if (state->dragging) { diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index 46bc29eed7..9cdae4f28f 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -78,11 +78,6 @@ int QWidgetLineControl::redoTextLayout() const QTextLine l = m_textLayout.createLine(); m_textLayout.endLayout(); -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (m_threadChecks) - m_textLayoutThread = QThread::currentThread(); -#endif - return qRound(l.ascent()); } diff --git a/src/widgets/widgets/qwidgetlinecontrol_p.h b/src/widgets/widgets/qwidgetlinecontrol_p.h index 940a17714f..8ebed25084 100644 --- a/src/widgets/widgets/qwidgetlinecontrol_p.h +++ b/src/widgets/widgets/qwidgetlinecontrol_p.h @@ -95,10 +95,6 @@ public: m_selstart(0), m_selend(0), m_passwordEchoEditing(false) , m_passwordEchoTimer(0) , m_passwordMaskDelay(-1) -#if 0 // Used to be included in Qt4 for Q_WS_MAC - , m_threadChecks(false) - , m_textLayoutThread(0) - #endif #if defined(QT_BUILD_INTERNAL) , m_passwordMaskDelayOverride(-1) #endif @@ -404,25 +400,9 @@ public: QTextLayout *textLayout() const { -#if 0 // Used to be included in Qt4 for Q_WS_MAC - if (m_threadChecks && QThread::currentThread() != m_textLayoutThread) - redoTextLayout(); -#endif return &m_textLayout; } -#if 0 // Used to be included in Qt4 for Q_WS_MAC - void setThreadChecks(bool threadChecks) - { - m_threadChecks = threadChecks; - } - - bool threadChecks() const - { - return m_threadChecks; - } -#endif - private: void init(const QString &txt); void removeSelectedText(); @@ -534,10 +514,6 @@ private: } int redoTextLayout() const; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - bool m_threadChecks; - mutable QThread *m_textLayoutThread; -#endif public: #if defined(QT_BUILD_INTERNAL) diff --git a/src/widgets/widgets/qwidgetresizehandler.cpp b/src/widgets/widgets/qwidgetresizehandler.cpp index e8d435429f..9dbba12aba 100644 --- a/src/widgets/widgets/qwidgetresizehandler.cpp +++ b/src/widgets/widgets/qwidgetresizehandler.cpp @@ -124,21 +124,6 @@ bool QWidgetResizeHandler::eventFilter(QObject *o, QEvent *ee) if (!widgetRect.contains(cursorPoint)) return false; if (e->button() == Qt::LeftButton) { -#if 0 // Used to be included in Qt4 for Q_WS_X11 - /* - Implicit grabs do not stop the X server from changing - the cursor in children, which looks *really* bad when - doing resizingk, so we grab the cursor. Note that we do - not do this on Windows since double clicks are lost due - to the grab (see change 198463). - */ - if (e->spontaneous()) -# if !defined(QT_NO_CURSOR) - widget->grabMouse(widget->cursor()); -# else - widget->grabMouse(); -# endif // QT_NO_CURSOR -#endif buttonDown = false; emit activate(); bool me = movingEnabled; diff --git a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp index 4d31d80246..ba5df809f2 100644 --- a/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp +++ b/tests/auto/gui/image/qpixmap/tst_qpixmap.cpp @@ -267,10 +267,6 @@ void tst_QPixmap::fromImage() image.fill(0x7f7f7f7f); const QPixmap pixmap = QPixmap::fromImage(image); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (pixmap.handle()->classId() == QPlatformPixmap::X11Class && !pixmap.x11PictureHandle()) - QSKIP("Requires XRender support"); -#endif const QImage result = pixmap.toImage(); image = image.convertToFormat(result.format()); QCOMPARE(result, image); @@ -491,11 +487,6 @@ void tst_QPixmap::fill() else pm = QPixmap(400, 400); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (!bitmap && pm.handle()->classId() == QPlatformPixmap::X11Class && !pm.x11PictureHandle()) - QSKIP("Requires XRender support"); -#endif - pm.fill(color); if (syscolor && !bitmap && pm.depth() < 24) { QSKIP("Test does not work on displays without true color"); @@ -521,10 +512,6 @@ void tst_QPixmap::fill() void tst_QPixmap::fill_transparent() { QPixmap pixmap(10, 10); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (pixmap.handle()->classId() == QPlatformPixmap::X11Class && !pixmap.x11PictureHandle()) - QSKIP("Requires XRender support"); -#endif pixmap.fill(Qt::transparent); QVERIFY(pixmap.hasAlphaChannel()); } diff --git a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp index 90a216e14a..c1c231089a 100644 --- a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp +++ b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp @@ -111,10 +111,6 @@ private slots: void qcolorprofile_data(); void qcolorprofile(); - -#if 0 // Used to be included in Qt4 for Q_WS_X11 - void setallowX11ColorNames(); -#endif }; // Testing get/set functions @@ -1460,62 +1456,6 @@ void tst_QColor::achromaticHslHue() QCOMPARE(hsl.hslHue(), -1); } -#if 0 // Used to be included in Qt4 for Q_WS_X11 -void tst_QColor::setallowX11ColorNames() -{ - RGBData x11RgbTbl[] = { - // a few standard X11 color names - { "DodgerBlue1", qRgb(30, 144, 255) }, - { "DodgerBlue2", qRgb(28, 134, 238) }, - { "DodgerBlue3", qRgb(24, 116, 205) }, - { "DodgerBlue4", qRgb(16, 78, 139) }, - { "SteelBlue1", qRgb(99, 184, 255) }, - { "SteelBlue2", qRgb(92, 172, 238) }, - { "SteelBlue3", qRgb(79, 148, 205) }, - { "SteelBlue4", qRgb(54, 100, 139) }, - { "DeepSkyBlue1", qRgb(0, 191, 255) }, - { "DeepSkyBlue2", qRgb(0, 178, 238) }, - { "DeepSkyBlue3", qRgb(0, 154, 205) }, - { "DeepSkyBlue4", qRgb(0, 104, 139) }, - { "SkyBlue1", qRgb(135, 206, 255) }, - { "SkyBlue2", qRgb(126, 192, 238) }, - { "SkyBlue3", qRgb(108, 166, 205) }, - { "SkyBlue4", qRgb(74, 112, 139) } - }; - static const int x11RgbTblSize = sizeof(x11RgbTbl) / sizeof(RGBData); - - // X11 color names should not work by default - QVERIFY(!QColor::allowX11ColorNames()); - for (int i = 0; i < x11RgbTblSize; ++i) { - QString colorName = QLatin1String(x11RgbTbl[i].name); - QColor color; - color.setNamedColor(colorName); - QVERIFY(!color.isValid()); - } - - // enable X11 color names - QColor::setAllowX11ColorNames(true); - QVERIFY(QColor::allowX11ColorNames()); - for (int i = 0; i < x11RgbTblSize; ++i) { - QString colorName = QLatin1String(x11RgbTbl[i].name); - QColor color; - color.setNamedColor(colorName); - QColor expected(x11RgbTbl[i].value); - QCOMPARE(color, expected); - } - - // should be able to turn off X11 color names - QColor::setAllowX11ColorNames(false); - QVERIFY(!QColor::allowX11ColorNames()); - for (int i = 0; i < x11RgbTblSize; ++i) { - QString colorName = QLatin1String(x11RgbTbl[i].name); - QColor color; - color.setNamedColor(colorName); - QVERIFY(!color.isValid()); - } -} -#endif - void tst_QColor::premultiply() { // Tests that qPremultiply(qUnpremultiply(x)) returns x. diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp index 0efeb9b356..4cf23455e1 100644 --- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp +++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp @@ -461,11 +461,6 @@ void tst_QPainter::drawPixmap_comp() destPm.fill(c1); srcPm.fill(c2); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - if (!destPm.x11PictureHandle()) - QSKIP("Requires XRender support"); -#endif - QPainter p(&destPm); p.drawPixmap(0, 0, srcPm); p.end(); diff --git a/tests/auto/gui/painting/qregion/tst_qregion.cpp b/tests/auto/gui/painting/qregion/tst_qregion.cpp index 24c4583819..d1ea7706b9 100644 --- a/tests/auto/gui/painting/qregion/tst_qregion.cpp +++ b/tests/auto/gui/painting/qregion/tst_qregion.cpp @@ -33,9 +33,6 @@ #include #include #include -#if 0 // Used to be included in Qt4 for Q_WS_X11 -#include -#endif class tst_QRegion : public QObject { @@ -79,9 +76,6 @@ private slots: void isEmpty_data(); void isEmpty(); -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ && defined(QT_BUILD_INTERNAL) - void clipRectangles(); -#endif void regionFromPath(); void scaleRegions_data(); @@ -910,24 +904,6 @@ void tst_QRegion::isEmpty() #endif } -#if 0 /* Used to be included in Qt4 for Q_WS_X11 */ && defined(QT_BUILD_INTERNAL) -void tst_QRegion::clipRectangles() -{ - QRegion region(30, 30, 30, 30); - int num = 0; - qt_getClipRects(region, num); - QCOMPARE(num, 1); - - region += QRegion(10, 10, 10, 10); - XRectangle *rects2 = static_cast(qt_getClipRects(region, num)); - QCOMPARE(num, 2); - - // Here's the important part (Y-sorted): - QCOMPARE(int(rects2[0].y), 10); - QCOMPARE(int(rects2[1].y), 30); -} -#endif - void tst_QRegion::regionFromPath() { { diff --git a/tests/auto/opengl/qglthreads/tst_qglthreads.cpp b/tests/auto/opengl/qglthreads/tst_qglthreads.cpp index 8a38d0f517..e12f6d9c18 100644 --- a/tests/auto/opengl/qglthreads/tst_qglthreads.cpp +++ b/tests/auto/opengl/qglthreads/tst_qglthreads.cpp @@ -606,9 +606,6 @@ void tst_QGLThreads::painterOnPixmapInThread() if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::ThreadedOpenGL) || !QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::ThreadedPixmaps)) QSKIP("No platformsupport for ThreadedOpenGL or ThreadedPixmaps"); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - QSKIP("Drawing text in threads onto X11 drawables currently crashes on some X11 servers."); -#endif PaintThreadManager painterThreads(5); painterThreads.start(); diff --git a/tests/auto/other/lancelot/paintcommands.cpp b/tests/auto/other/lancelot/paintcommands.cpp index dc71253f3e..032580e0f6 100644 --- a/tests/auto/other/lancelot/paintcommands.cpp +++ b/tests/auto/other/lancelot/paintcommands.cpp @@ -2477,12 +2477,6 @@ void PaintCommands::command_surface_begin(QRegularExpressionMatch re) m_painter->setCompositionMode(QPainter::CompositionMode_Clear); m_painter->fillRect(QRect(0, 0, qRound(w), qRound(h)), Qt::transparent); m_painter->restore(); -#endif -#if 0 // Used to be included in Qt4 for Q_WS_X11 - } else if (m_type == WidgetType) { - m_surface_pixmap = QPixmap(qRound(w), qRound(h)); - m_surface_pixmap.fill(Qt::transparent); - m_painter = new QPainter(&m_surface_pixmap); #endif } else { QImage::Format surface_format; @@ -2534,11 +2528,6 @@ void PaintCommands::command_surface_end(QRegularExpressionMatch) // Flush the pipeline: m_painter->beginNativePainting(); m_painter->endNativePainting(); -#endif -#if 0 // Used to be included in Qt4 for Q_WS_X11 - } else if (m_type == WidgetType) { - m_painter->drawPixmap(m_surface_rect.topLeft(), m_surface_pixmap); - m_surface_pixmap = QPixmap(); #endif } else { m_painter->drawImage(m_surface_rect, m_surface_image); diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp index 39aa65a478..a437b05479 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp @@ -2768,9 +2768,6 @@ void tst_QGraphicsProxyWidget::windowOpacity() // disabled on platforms without alpha channel support in QPixmap (e.g., // X11 without XRender). int paints = 0; -#if 0 // Used to be included in Qt4 for Q_WS_X11 - paints = !X11->use_xrender; -#endif QTRY_COMPARE(eventSpy.counts[QEvent::UpdateRequest], 0); QTRY_COMPARE(eventSpy.counts[QEvent::Paint], paints); diff --git a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp index 6f7dca86eb..bcfc477733 100644 --- a/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp +++ b/tests/auto/widgets/itemviews/qabstractitemview/tst_qabstractitemview.cpp @@ -1024,9 +1024,6 @@ void tst_QAbstractItemView::setItemDelegate() centerOnScreen(&v); moveCursorAway(&v); v.show(); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - QCursor::setPos(v.geometry().center()); -#endif QApplication::setActiveWindow(&v); QVERIFY(QTest::qWaitForWindowActive(&v)); diff --git a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp index b8abd78657..6d38dc262f 100644 --- a/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp +++ b/tests/auto/widgets/widgets/qmdiarea/tst_qmdiarea.cpp @@ -479,9 +479,6 @@ void tst_QMdiArea::subWindowActivated2() // Check that we only emit _one_ signal and the active window // is unchanged after hide/show. mdiArea.hide(); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - qt_x11_wait_for_window_manager(&mdiArea); -#endif QTest::qWait(100); QTRY_COMPARE(spy.count(), 1); QVERIFY(!mdiArea.activeSubWindow()); diff --git a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp index b8891fab95..3ee9c72209 100644 --- a/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp +++ b/tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp @@ -52,9 +52,7 @@ #include QT_BEGIN_NAMESPACE -#if 1 // Used to be excluded in Qt4 for Q_WS_WIN extern bool qt_tab_all_widgets(); -#endif QT_END_NAMESPACE static inline bool tabAllWidgets() diff --git a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp index de4e9e5ad7..6e0ac445a6 100644 --- a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp +++ b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/chipTest/view.cpp @@ -30,12 +30,7 @@ #include -#if 0 // Used to be included in Qt4 for Q_WS_WIN -#define CALLGRIND_START_INSTRUMENTATION {} -#define CALLGRIND_STOP_INSTRUMENTATION {} -#else #include "valgrind/callgrind.h" -#endif #ifndef QT_NO_OPENGL #include diff --git a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp index e0cc0f8eb4..140278b8f6 100644 --- a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp +++ b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/moveItems/main.cpp @@ -27,16 +27,7 @@ ****************************************************************************/ #include -#if 0 // Used to be included in Qt4 for Q_WS_WIN -#define CALLGRIND_START_INSTRUMENTATION {} -#define CALLGRIND_STOP_INSTRUMENTATION {} -#else #include "valgrind/callgrind.h" -#endif - -#if 0 // Used to be included in Qt4 for Q_WS_X11 -extern void qt_x11_wait_for_window_manager(QWidget *); -#endif class View : public QGraphicsView { @@ -89,9 +80,6 @@ int main(int argc, char *argv[]) View view(&scene, item); view.resize(300, 300); view.show(); -#if 0 // Used to be included in Qt4 for Q_WS_X11 - qt_x11_wait_for_window_manager(&view); -#endif return app.exec(); } diff --git a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp index 1fbb229cd8..566d16ca51 100644 --- a/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp +++ b/tests/benchmarks/widgets/graphicsview/qgraphicsview/benchapps/scrolltest/main.cpp @@ -27,12 +27,7 @@ ****************************************************************************/ #include -#if 0 // Used to be included in Qt4 for Q_WS_WIN -#define CALLGRIND_START_INSTRUMENTATION {} -#define CALLGRIND_STOP_INSTRUMENTATION {} -#else #include "valgrind/callgrind.h" -#endif class ItemMover : public QObject { diff --git a/tests/manual/lance/main.cpp b/tests/manual/lance/main.cpp index 7f5af2d908..6dc5e2076a 100644 --- a/tests/manual/lance/main.cpp +++ b/tests/manual/lance/main.cpp @@ -334,20 +334,7 @@ int main(int argc, char **argv) checkers_background = false; } } else { -#if 0 // Used to be included in Qt4 for Q_WS_WIN - QString input = QString::fromLocal8Bit(argv[i]); - if (input.indexOf('*') >= 0) { - QFileInfo info(input); - QDir dir = info.dir(); - QFileInfoList infos = dir.entryInfoList(QStringList(info.fileName())); - for (int ii=0; ii Date: Sat, 10 Aug 2019 10:51:57 -0700 Subject: forkfd: fix compilation in C mode without precompiled headers Missing one "struct" and one #include for struct rusage. Change-Id: Iec9c051acd73484c8d94fffd15b9a1274703afca Reviewed-by: Marc Mutz Reviewed-by: Edward Welbourne --- src/3rdparty/forkfd/forkfd.c | 4 ++-- src/3rdparty/forkfd/forkfd.h | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c index 12537b6199..c2105e93cc 100644 --- a/src/3rdparty/forkfd/forkfd.c +++ b/src/3rdparty/forkfd/forkfd.c @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 Intel Corporation. +** Copyright (C) 2019 Intel Corporation. ** Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com ** ** Permission is hereby granted, free of charge, to any person obtaining a copy @@ -843,7 +843,7 @@ out: #endif // _POSIX_SPAWN && !FORKFD_NO_SPAWNFD -int forkfd_wait(int ffd, forkfd_info *info, struct rusage *rusage) +int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage) { struct pipe_payload payload; int ret; diff --git a/src/3rdparty/forkfd/forkfd.h b/src/3rdparty/forkfd/forkfd.h index 958321c299..eb121de593 100644 --- a/src/3rdparty/forkfd/forkfd.h +++ b/src/3rdparty/forkfd/forkfd.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 Intel Corporation. +** Copyright (C) 2019 Intel Corporation. ** ** Permission is hereby granted, free of charge, to any person obtaining a copy ** of this software and associated documentation files (the "Software"), to deal @@ -27,6 +27,7 @@ #include #include +#include #include // to get the POSIX flags #if _POSIX_SPAWN > 0 @@ -48,7 +49,7 @@ struct forkfd_info { }; int forkfd(int flags, pid_t *ppid); -int forkfd_wait(int ffd, forkfd_info *info, struct rusage *rusage); +int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage); int forkfd_close(int ffd); #if _POSIX_SPAWN > 0 -- cgit v1.2.3 From 8784ab7ba8718c7254a774e3a487950cb77cd5ec Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 10 Aug 2019 08:11:23 -0700 Subject: forkfd: Add C11 and C++11 atomic support For forkfd, this is extremely useful, since users can rely on proper atomic API, not the old GCC API or the internal API that backs the C11 / C++11 implementation itself. This also caught one more mistaken use of seq_cst. Change-Id: Iec9c051acd73484c8d94fffd15b9985fe545e8b5 Reviewed-by: Marc Mutz --- src/3rdparty/forkfd/forkfd.c | 4 +-- src/3rdparty/forkfd/forkfd_atomic.h | 39 ++++++++++++++++++++++ src/3rdparty/forkfd/forkfd_c11.h | 64 +++++++++++++++++++++++++++++++++++++ src/corelib/io/forkfd_qt.cpp | 29 ++--------------- 4 files changed, 106 insertions(+), 30 deletions(-) create mode 100644 src/3rdparty/forkfd/forkfd_atomic.h create mode 100644 src/3rdparty/forkfd/forkfd_c11.h diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c index c2105e93cc..17a9b23581 100644 --- a/src/3rdparty/forkfd/forkfd.c +++ b/src/3rdparty/forkfd/forkfd.c @@ -93,9 +93,7 @@ # endif #endif -#ifndef FFD_ATOMIC_RELAXED -# include "forkfd_gcc.h" -#endif +#include "forkfd_atomic.h" #define CHILDREN_IN_SMALL_ARRAY 16 #define CHILDREN_IN_BIG_ARRAY 256 diff --git a/src/3rdparty/forkfd/forkfd_atomic.h b/src/3rdparty/forkfd/forkfd_atomic.h new file mode 100644 index 0000000000..394e30d26c --- /dev/null +++ b/src/3rdparty/forkfd/forkfd_atomic.h @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2019 Intel Corporation. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to deal +** in the Software without restriction, including without limitation the rights +** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +** copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +** THE SOFTWARE. +** +****************************************************************************/ + +#if !defined(FFD_ATOMIC_H) & !defined(FFD_ATOMIC_RELAXED) +#define FFD_ATOMIC_H + +#if defined(__cplusplus) && __cplusplus >= 201103L +# include "forkfd_c11.h" +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L +# include "forkfd_c11.h" +#elif defined(__GNUC__) +# include "forkfd_gcc.h" +#endif + +#endif /* FFD_ATOMIC_h && FFD_ATOMIC_RELAXED */ +#ifndef FFD_ATOMIC_RELAXED +# error "Could not determine atomics for this platform" +#endif diff --git a/src/3rdparty/forkfd/forkfd_c11.h b/src/3rdparty/forkfd/forkfd_c11.h new file mode 100644 index 0000000000..f3dc2b5357 --- /dev/null +++ b/src/3rdparty/forkfd/forkfd_c11.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2019 Intel Corporation. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to deal +** in the Software without restriction, including without limitation the rights +** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +** copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +** THE SOFTWARE. +** +****************************************************************************/ + +#ifndef FFD_ATOMIC_C11_H +#define FFD_ATOMIC_C11_H + +/* atomics */ +/* Using the C11 header or C++11's + */ + +#if defined(__cplusplus) +# include +# define ffd_atomic_pointer(type) std::atomic +# define FFD_ATOMIC_RELAXED std::memory_order_relaxed +# define FFD_ATOMIC_ACQUIRE std::memory_order_acquire +# define FFD_ATOMIC_RELEASE std::memory_order_release +// acq_rel & cst not necessary +typedef std::atomic_int ffd_atomic_int; +#else +# include +# define ffd_atomic_pointer(type) _Atomic(type*) +# define FFD_ATOMIC_RELAXED memory_order_relaxed +# define FFD_ATOMIC_ACQUIRE memory_order_acquire +# define FFD_ATOMIC_RELEASE memory_order_release +// acq_rel & cst not necessary + +typedef atomic_int ffd_atomic_int; +#endif + +#define FFD_ATOMIC_INIT(val) ATOMIC_VAR_INIT(val) + +#define ffd_atomic_load(ptr, order) \ + atomic_load_explicit(ptr, order) +#define ffd_atomic_store(ptr, val, order) \ + atomic_store_explicit(ptr, val, order) +#define ffd_atomic_exchange(ptr,val,order) \ + atomic_exchange_explicit(ptr, val, order) +#define ffd_atomic_compare_exchange(ptr, expected, desired, order1, order2) \ + atomic_compare_exchange_strong_explicit(ptr, expected, desired, order1, order2) +#define ffd_atomic_add_fetch(ptr, val, order) \ + (atomic_fetch_add_explicit(ptr, val, order) + (val)) + +#endif diff --git a/src/corelib/io/forkfd_qt.cpp b/src/corelib/io/forkfd_qt.cpp index 80d1cd54d7..cf44874153 100644 --- a/src/corelib/io/forkfd_qt.cpp +++ b/src/corelib/io/forkfd_qt.cpp @@ -37,37 +37,12 @@ ** ****************************************************************************/ -// these might be defined via precompiled headers -#include +#include #define FORKFD_NO_SPAWNFD - #if defined(QT_NO_DEBUG) && !defined(NDEBUG) # define NDEBUG #endif -typedef QT_PREPEND_NAMESPACE(QBasicAtomicInt) ffd_atomic_int; -#define ffd_atomic_pointer(type) QT_PREPEND_NAMESPACE(QBasicAtomicPointer) - -QT_BEGIN_NAMESPACE - -#define FFD_ATOMIC_INIT(val) Q_BASIC_ATOMIC_INITIALIZER(val) - -#define FFD_ATOMIC_RELAXED Relaxed -#define FFD_ATOMIC_ACQUIRE Acquire -#define FFD_ATOMIC_RELEASE Release - -#define FFD_CONCAT(x, y) x ## y - -#define ffd_atomic_load(ptr,order) (ptr)->FFD_CONCAT(load, order)() -#define ffd_atomic_store(ptr,val,order) (ptr)->FFD_CONCAT(store, order)(val) -#define ffd_atomic_exchange(ptr,val,order) (ptr)->FFD_CONCAT(fetchAndStore, order)(val) -#define ffd_atomic_compare_exchange(ptr,expected,desired,order1,order2) \ - (ptr)->FFD_CONCAT(testAndSet, order1)(*expected, desired, *expected) -#define ffd_atomic_add_fetch(ptr,val,order) ((ptr)->FFD_CONCAT(fetchAndAdd, order)(val) + val) - -QT_END_NAMESPACE - -extern "C" { +#include #include "../../3rdparty/forkfd/forkfd.c" -} -- cgit v1.2.3 From 1b9274573e204ed24ef41eb0dc273bb7aa0be6f2 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Sat, 10 Aug 2019 08:13:14 -0700 Subject: forkfd: move the FreeBSD system implementation to a separate file Simplifies the code a bit and will be helpful when I add the Linux equivalent. Change-Id: Iec9c051acd73484c8d94fffd15b99879dc269db9 Reviewed-by: Lars Knoll --- src/3rdparty/forkfd/forkfd.c | 178 ++++++++++++++--------------------- src/3rdparty/forkfd/forkfd_freebsd.c | 101 ++++++++++++++++++++ 2 files changed, 170 insertions(+), 109 deletions(-) create mode 100644 src/3rdparty/forkfd/forkfd_freebsd.c diff --git a/src/3rdparty/forkfd/forkfd.c b/src/3rdparty/forkfd/forkfd.c index 17a9b23581..e4f3bd85de 100644 --- a/src/3rdparty/forkfd/forkfd.c +++ b/src/3rdparty/forkfd/forkfd.c @@ -59,9 +59,6 @@ # define HAVE_PIPE2 1 # endif #endif -#if defined(__FreeBSD__) && __FreeBSD__ >= 9 -# include -#endif #if _POSIX_VERSION-0 >= 200809L || _XOPEN_VERSION-0 >= 500 # define HAVE_WAITID 1 @@ -95,6 +92,10 @@ #include "forkfd_atomic.h" +static int system_has_forkfd(void); +static int system_forkfd(int flags, pid_t *ppid, int *system); +static int system_forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage); + #define CHILDREN_IN_SMALL_ARRAY 16 #define CHILDREN_IN_BIG_ARRAY 256 #define sizeofarray(array) (sizeof(array)/sizeof(array[0])) @@ -446,6 +447,37 @@ static void ignore_sigpipe() #endif } +#if defined(__GNUC__) && (!defined(__FreeBSD__) || __FreeBSD__ < 10) +__attribute((destructor, unused)) static void cleanup(); +#endif + +static void cleanup() +{ + BigArray *array; + /* This function is not thread-safe! + * It must only be called when the process is shutting down. + * At shutdown, we expect no one to be calling forkfd(), so we don't + * need to be thread-safe with what is done there. + * + * But SIGCHLD might be delivered to any thread, including this one. + * There's no way to prevent that. The correct solution would be to + * cooperatively delete. We don't do that. + */ + if (ffd_atomic_load(&forkfd_status, FFD_ATOMIC_RELAXED) == 0) + return; + + /* notify the handler that we're no longer in operation */ + ffd_atomic_store(&forkfd_status, 0, FFD_ATOMIC_RELAXED); + + /* free any arrays we might have */ + array = ffd_atomic_load(&children.header.nextArray, FFD_ATOMIC_ACQUIRE); + while (array != NULL) { + BigArray *next = ffd_atomic_load(&array->header.nextArray, FFD_ATOMIC_ACQUIRE); + free(array); + array = next; + } +} + static void forkfd_initialize() { #if defined(HAVE_BROKEN_WAITID) @@ -487,44 +519,15 @@ static void forkfd_initialize() ignore_sigpipe(); #endif -#ifndef __GNUC__ +#ifdef __GNUC__ + (void) cleanup; /* suppress unused static function warning */ +#else atexit(cleanup); #endif ffd_atomic_store(&forkfd_status, 1, FFD_ATOMIC_RELAXED); } -#ifdef __GNUC__ -__attribute((destructor, unused)) static void cleanup(); -#endif - -static void cleanup() -{ - BigArray *array; - /* This function is not thread-safe! - * It must only be called when the process is shutting down. - * At shutdown, we expect no one to be calling forkfd(), so we don't - * need to be thread-safe with what is done there. - * - * But SIGCHLD might be delivered to any thread, including this one. - * There's no way to prevent that. The correct solution would be to - * cooperatively delete. We don't do that. - */ - if (ffd_atomic_load(&forkfd_status, FFD_ATOMIC_RELAXED) == 0) - return; - - /* notify the handler that we're no longer in operation */ - ffd_atomic_store(&forkfd_status, 0, FFD_ATOMIC_RELAXED); - - /* free any arrays we might have */ - array = ffd_atomic_load(&children.header.nextArray, FFD_ATOMIC_ACQUIRE); - while (array != NULL) { - BigArray *next = ffd_atomic_load(&array->header.nextArray, FFD_ATOMIC_ACQUIRE); - free(array); - array = next; - } -} - static int create_pipe(int filedes[], int flags) { int ret = -1; @@ -563,55 +566,6 @@ static int create_pipe(int filedes[], int flags) return ret; } -#if defined(FORKFD_NO_SPAWNFD) && defined(__FreeBSD__) && __FreeBSD__ >= 9 -# if __FreeBSD__ == 9 -/* PROCDESC is an optional feature in the kernel and wasn't enabled - * by default on FreeBSD 9. So we need to check for it at runtime. */ -static ffd_atomic_int system_has_forkfd = FFD_ATOMIC_INIT(1); -# else -/* On FreeBSD 10, PROCDESC was enabled by default. On v11, it's not an option - * anymore and can't be disabled. */ -static const int system_has_forkfd = 1; -# endif - -static int system_forkfd(int flags, pid_t *ppid) -{ - int ret; - pid_t pid; - pid = pdfork(&ret, PD_DAEMON); - if (__builtin_expect(pid == -1, 0)) { -# if __FreeBSD__ == 9 - if (errno == ENOSYS) { - /* PROCDESC wasn't compiled into the kernel: don't try it again. */ - ffd_atomic_store(&system_has_forkfd, 0, FFD_ATOMIC_RELAXED); - } -# endif - return -1; - } - if (pid == 0) { - /* child process */ - return FFD_CHILD_PROCESS; - } - - /* parent process */ - if (flags & FFD_CLOEXEC) - fcntl(ret, F_SETFD, FD_CLOEXEC); - if (flags & FFD_NONBLOCK) - fcntl(ret, F_SETFL, fcntl(ret, F_GETFL) | O_NONBLOCK); - if (ppid) - *ppid = pid; - return ret; -} -#else -static const int system_has_forkfd = 0; -static int system_forkfd(int flags, pid_t *ppid) -{ - (void)flags; - (void)ppid; - return -1; -} -#endif - #ifndef FORKFD_NO_FORKFD /** * @brief forkfd returns a file descriptor representing a child process @@ -659,11 +613,9 @@ int forkfd(int flags, pid_t *ppid) int efd; #endif - if (system_has_forkfd) { - ret = system_forkfd(flags, ppid); - if (system_has_forkfd) - return ret; - } + fd = system_forkfd(flags, ppid, &ret); + if (ret) + return fd; (void) pthread_once(&forkfd_initialization, forkfd_initialize); @@ -788,7 +740,7 @@ int spawnfd(int flags, pid_t *ppid, const char *path, const posix_spawn_file_act /* we can only do work if we have a way to start the child in stopped mode; * otherwise, we have a major race condition. */ - assert(!system_has_forkfd); + assert(!system_has_forkfd()); (void) pthread_once(&forkfd_initialization, forkfd_initialize); @@ -846,25 +798,8 @@ int forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage) struct pipe_payload payload; int ret; - if (system_has_forkfd) { -#if defined(__FreeBSD__) && __FreeBSD__ >= 9 - pid_t pid; - int status; - int options = WEXITED; - - ret = pdgetpid(ffd, &pid); - if (ret == -1) - return ret; - ret = fcntl(ffd, F_GETFL); - if (ret == -1) - return ret; - options |= (ret & O_NONBLOCK) ? WNOHANG : 0; - ret = wait4(pid, &status, options, rusage); - if (ret != -1 && info) - convertStatusToForkfdInfo(status, info); - return ret == -1 ? -1 : 0; -#endif - } + if (system_has_forkfd()) + return system_forkfd_wait(ffd, info, rusage); ret = read(ffd, &payload, sizeof(payload)); if (ret == -1) @@ -884,3 +819,28 @@ int forkfd_close(int ffd) { return close(ffd); } + +#if defined(__FreeBSD__) && __FreeBSD__ >= 9 +# include "forkfd_freebsd.c" +#else +int system_has_forkfd() +{ + return 0; +} + +int system_forkfd(int flags, pid_t *ppid, int *system) +{ + (void)flags; + (void)ppid; + *system = 0; + return -1; +} + +int system_forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage) +{ + (void)ffd; + (void)info; + (void)rusage; + return -1; +} +#endif diff --git a/src/3rdparty/forkfd/forkfd_freebsd.c b/src/3rdparty/forkfd/forkfd_freebsd.c new file mode 100644 index 0000000000..77ce3fcfad --- /dev/null +++ b/src/3rdparty/forkfd/forkfd_freebsd.c @@ -0,0 +1,101 @@ +/**************************************************************************** +** +** Copyright (C) 2019 Intel Corporation. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to deal +** in the Software without restriction, including without limitation the rights +** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +** copies of the Software, and to permit persons to whom the Software is +** furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Software. +** +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +** THE SOFTWARE. +** +****************************************************************************/ + +#include "forkfd.h" + +#include +#include + +#include "forkfd_atomic.h" + +#if __FreeBSD__ >= 10 +/* On FreeBSD 10, PROCDESC was enabled by default. On v11, it's not an option + * anymore and can't be disabled. */ +static ffd_atomic_int system_forkfd_state = FFD_ATOMIC_INIT(1); +#else +static ffd_atomic_int system_forkfd_state = FFD_ATOMIC_INIT(0); +#endif + +int system_has_forkfd() +{ + return ffd_atomic_load(&system_forkfd_state, FFD_ATOMIC_RELAXED) > 0; +} + +int system_forkfd(int flags, pid_t *ppid, int *system) +{ + int ret; + pid_t pid; + + int state = ffd_atomic_load(&system_forkfd_state, FFD_ATOMIC_RELAXED); + *system = 0; + if (state < 0) + return -1; + + pid = pdfork(&ret, PD_DAEMON); +# if __FreeBSD__ == 9 + if (state == 0 && pid != 0) { + /* Parent process: remember whether PROCDESC was compiled into the kernel */ + state = (pid == -1 && errno == ENOSYS) ? -1 : 1; + ffd_atomic_store(&system_forkfd_state, state, FFD_ATOMIC_RELAXED); + } + if (state < 0) + return -1; +# endif + *system = 1; + if (__builtin_expect(pid == -1, 0)) + return -1; + + if (pid == 0) { + /* child process */ + return FFD_CHILD_PROCESS; + } + + /* parent process */ + if (flags & FFD_CLOEXEC) + fcntl(ret, F_SETFD, FD_CLOEXEC); + if (flags & FFD_NONBLOCK) + fcntl(ret, F_SETFL, fcntl(ret, F_GETFL) | O_NONBLOCK); + if (ppid) + *ppid = pid; + return ret; +} + +int system_forkfd_wait(int ffd, struct forkfd_info *info, struct rusage *rusage) +{ + pid_t pid; + int status; + int options = WEXITED; + + int ret = pdgetpid(ffd, &pid); + if (ret == -1) + return ret; + ret = fcntl(ffd, F_GETFL); + if (ret == -1) + return ret; + options |= (ret & O_NONBLOCK) ? WNOHANG : 0; + ret = wait4(pid, &status, options, rusage); + if (ret != -1 && info) + convertStatusToForkfdInfo(status, info); + return ret == -1 ? -1 : 0; +} -- cgit v1.2.3 From fb462102b70024f518b004b9e08a6987a2bab5bd Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Tue, 20 Aug 2019 14:49:37 +0200 Subject: QHttp2Configuration - respect the value returned by huffmanCompressionEnabled() And either compress or not. Task-number: QTBUG-77412 Change-Id: I3b09385d2b3caf4f7de0455ad6e22c0f068c33a9 Reviewed-by: Volker Hilsheimer --- src/network/access/http2/hpack.cpp | 5 +++++ src/network/access/http2/hpack_p.h | 1 + src/network/access/qhttp2protocolhandler.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/src/network/access/http2/hpack.cpp b/src/network/access/http2/hpack.cpp index 2d324d5092..b40cc29e1a 100644 --- a/src/network/access/http2/hpack.cpp +++ b/src/network/access/http2/hpack.cpp @@ -208,6 +208,11 @@ void Encoder::setMaxDynamicTableSize(quint32 size) lookupTable.setMaxDynamicTableSize(size); } +void Encoder::setCompressStrings(bool compress) +{ + compressStrings = compress; +} + bool Encoder::encodeRequestPseudoHeaders(BitOStream &outputStream, const HttpHeader &header) { diff --git a/src/network/access/http2/hpack_p.h b/src/network/access/http2/hpack_p.h index 6a1d30d87b..8c2701e7af 100644 --- a/src/network/access/http2/hpack_p.h +++ b/src/network/access/http2/hpack_p.h @@ -83,6 +83,7 @@ public: quint32 newSize); void setMaxDynamicTableSize(quint32 size); + void setCompressStrings(bool compress); private: bool encodeRequestPseudoHeaders(BitOStream &outputStream, diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp index b8a415000a..c1053882af 100644 --- a/src/network/access/qhttp2protocolhandler.cpp +++ b/src/network/access/qhttp2protocolhandler.cpp @@ -179,6 +179,7 @@ QHttp2ProtocolHandler::QHttp2ProtocolHandler(QHttpNetworkConnectionChannel *chan maxSessionReceiveWindowSize = h2Config.sessionReceiveWindowSize(); pushPromiseEnabled = h2Config.serverPushEnabled(); streamInitialReceiveWindowSize = h2Config.streamReceiveWindowSize(); + encoder.setCompressStrings(h2Config.huffmanCompressionEnabled()); if (!channel->ssl && m_connection->connectionType() != QHttpNetworkConnection::ConnectionTypeHTTP2Direct) { // We upgraded from HTTP/1.1 to HTTP/2. channel->request was already sent -- cgit v1.2.3 From 4c6e549b250b834b43473aa3d748d625449df42c Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Tue, 20 Aug 2019 14:55:54 +0200 Subject: QHttp2Configuration: remove setters/getter for indexing Upon reading the Apple's documentation it would appear the indexing is more complicated (they name the specific fields and which kind of indexing must be applied to each). This requires a finer level of configuration/control and probably a separate class (aka QHpackConfiguration? ;). We'll provide it in future, if requested by our users. Fixes: QTBUG-77412 Change-Id: I6e9461b3966ed59c8b70873eab999a07a04eb289 Reviewed-by: Volker Hilsheimer --- src/network/access/qhttp2configuration.cpp | 37 +++--------------------------- src/network/access/qhttp2configuration.h | 3 --- 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/src/network/access/qhttp2configuration.cpp b/src/network/access/qhttp2configuration.cpp index 14c9d6dc29..a32bccfd09 100644 --- a/src/network/access/qhttp2configuration.cpp +++ b/src/network/access/qhttp2configuration.cpp @@ -79,13 +79,9 @@ QT_BEGIN_NAMESPACE frame. \endlist - The QHttp2Configuration class also controls some of the parameters - affecting the header compression algorithm (HPACK). They include: - - \list - \li Huffman string compression. - \li Indexing strings. - \endlist + The QHttp2Configuration class also controls if the header compression + algorithm (HPACK) is additionally using Huffman coding for string + compression. \note The configuration must be set before the first request was sent to a given host (and thus an HTTP/2 session established). @@ -112,7 +108,6 @@ public: bool pushEnabled = false; // TODO: for now those two below are noop. bool huffmanCompressionEnabled = true; - bool indexingEnabled = true; }; /*! @@ -122,7 +117,6 @@ public: \list \li Server push is disabled \li Huffman string compression is enabled - \li String indexing is enabled \li Window size for connection-level flow control is 65535 octets \li Window size for stream-level flow control is 65535 octets \li Frame size is 16384 octets @@ -211,30 +205,6 @@ bool QHttp2Configuration::huffmanCompressionEnabled() const return d->huffmanCompressionEnabled; } -/*! - If \a enable is \c true, HPACK compression will index strings - in its dynamic compression table. Enabled by default. - - \note This setting only has an affect on how QNetworkAccessManager - sending 'HEADERS' frames. - - \sa stringIndexingEnabled -*/ -void QHttp2Configuration::setStringIndexingEnabled(bool enable) -{ - d->indexingEnabled = enable; -} - -/*! - Returns \true if HPACK compression is indexing strings. - - \sa setStringIndexingEnabled -*/ -bool QHttp2Configuration::stringIndexingEnabled() const -{ - return d->indexingEnabled; -} - /*! Sets the window size for connection-level flow control. \a size cannot be 0 and must not exceed 2147483647 octets. @@ -335,7 +305,6 @@ bool operator==(const QHttp2Configuration &lhs, const QHttp2Configuration &rhs) return lhs.d->pushEnabled == rhs.d->pushEnabled && lhs.d->huffmanCompressionEnabled == rhs.d->huffmanCompressionEnabled - && lhs.d->indexingEnabled == rhs.d->indexingEnabled && lhs.d->sessionWindowSize == rhs.d->sessionWindowSize && lhs.d->streamWindowSize == rhs.d->streamWindowSize; } diff --git a/src/network/access/qhttp2configuration.h b/src/network/access/qhttp2configuration.h index 2a5e8c9341..544e3a3d98 100644 --- a/src/network/access/qhttp2configuration.h +++ b/src/network/access/qhttp2configuration.h @@ -66,9 +66,6 @@ public: void setHuffmanCompressionEnabled(bool enable); bool huffmanCompressionEnabled() const; - void setStringIndexingEnabled(bool enable); - bool stringIndexingEnabled() const; - bool setSessionReceiveWindowSize(unsigned size); unsigned sessionReceiveWindowSize() const; -- cgit v1.2.3 From 764f488c96a7641e6f7a7fb9570bcd589a7c5613 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 21 Aug 2019 09:41:57 +0200 Subject: QTextDocumentFragment: Fix deprecation warning Fix text/qtextdocumentfragment.cpp: In member function 'bool QTextHtmlImporter::appendNodeText()': text/qtextdocumentfragment.cpp:613:125: warning: 'constexpr QChar::QChar(char)' is deprecated: Use fromUtf8, QStringLiteral, or QLatin1String [-Wdeprecated-declarations] Change-Id: I90b23fa949e5cd979f2955b523060c8b1752f893 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/text/qtextdocumentfragment.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/text/qtextdocumentfragment.cpp b/src/gui/text/qtextdocumentfragment.cpp index 8ad1300e6c..34698b2fb0 100644 --- a/src/gui/text/qtextdocumentfragment.cpp +++ b/src/gui/text/qtextdocumentfragment.cpp @@ -610,7 +610,7 @@ bool QTextHtmlImporter::appendNodeText() || ch == QChar::ParagraphSeparator) { if (!textToInsert.isEmpty()) { - if (wsm == QTextHtmlParserNode::WhiteSpacePreLine && textToInsert.at(textToInsert.length() - 1) == QChar(' ')) + if (wsm == QTextHtmlParserNode::WhiteSpacePreLine && textToInsert.at(textToInsert.length() - 1) == QLatin1Char(' ')) textToInsert = textToInsert.chopped(1); cursor.insertText(textToInsert, format); textToInsert.clear(); -- cgit v1.2.3 From 6743b174c036b7ad79cf55e98c917e9a5f4e19ef Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Wed, 21 Aug 2019 15:02:32 +0200 Subject: CMake: Fix invalid setting of QT_PLUGIN_TYPES on interface libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is forbidden to set upper case named properties on CMake interface libraries which do not start with the "INTERFACE_" prefix. Rename QT_PLUGIN_TYPES to INTERFACE_QT_PLUGIN_TYPES. There does not seem to be any usage of the property, so it's just for informational purposes, so it's a one line change. Fixes: QTBUG-77754 Change-Id: I3621f2b6188c3c72c4c2446f93ba1e078b755f72 Reviewed-by: Friedemann Kleint Reviewed-by: Jörg Bornemann --- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 7a599d30d5..4d3dc1bd35 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -397,7 +397,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_ENABLED_FEATURES $$join(QT.$${MODULE}.enabled_features, ";")) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_DISABLED_FEATURES $$join(QT.$${MODULE}.disabled_features, ";")) - set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY QT_PLUGIN_TYPES \"$${CMAKE_MODULE_PLUGIN_TYPES}\") + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY INTERFACE_QT_PLUGIN_TYPES \"$${CMAKE_MODULE_PLUGIN_TYPES}\") set(_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIRS_EXIST TRUE) foreach (_Qt5$${CMAKE_MODULE_NAME}_PRIVATE_DIR ${Qt5$${CMAKE_MODULE_NAME}_OWN_PRIVATE_INCLUDE_DIRS}) -- cgit v1.2.3 From 3e771a8b09cd5e46c4aff0e8bd28b946dd4e3fa5 Mon Sep 17 00:00:00 2001 From: Soroush Rabiei Date: Thu, 8 Aug 2019 20:15:09 +0200 Subject: Add support for Julian and Milankovic calendars These share their locale data with the Gregorian calendar, making them virtually free to add. Still leave them out of the boot-strap build, though. [ChangeLog][QtCore][QCalendar] Added support for Julian and Milankovic calendars. These are enabled by default, except in bootstrap builds. Change-Id: I585045ed9e78c1e959957f6772b3e144093b701c Reviewed-by: Paul Wicking Reviewed-by: Volker Hilsheimer --- src/corelib/time/qcalendar.cpp | 14 ++ src/corelib/time/qcalendar.h | 9 +- src/corelib/time/qgregoriancalendar.cpp | 2 +- src/corelib/time/qjuliancalendar.cpp | 128 +++++++++++++++++++ src/corelib/time/qjuliancalendar_p.h | 74 +++++++++++ src/corelib/time/qmilankoviccalendar.cpp | 141 +++++++++++++++++++++ src/corelib/time/qmilankoviccalendar_p.h | 74 +++++++++++ src/corelib/time/qromancalendar.cpp | 2 +- src/corelib/time/time.pri | 4 + .../auto/corelib/time/qcalendar/tst_qcalendar.cpp | 8 ++ 10 files changed, 452 insertions(+), 4 deletions(-) create mode 100644 src/corelib/time/qjuliancalendar.cpp create mode 100644 src/corelib/time/qjuliancalendar_p.h create mode 100644 src/corelib/time/qmilankoviccalendar.cpp create mode 100644 src/corelib/time/qmilankoviccalendar_p.h diff --git a/src/corelib/time/qcalendar.cpp b/src/corelib/time/qcalendar.cpp index 06dd1c671f..4207d26e5c 100644 --- a/src/corelib/time/qcalendar.cpp +++ b/src/corelib/time/qcalendar.cpp @@ -29,6 +29,10 @@ #include "qcalendar.h" #include "qcalendarbackend_p.h" #include "qgregoriancalendar_p.h" +#ifndef QT_BOOTSTRAPPED +#include "qjuliancalendar_p.h" +#include "qmilankoviccalendar_p.h" +#endif #include "qdatetime.h" #include "qcalendarmath_p.h" @@ -608,6 +612,14 @@ const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) switch (system) { case QCalendar::System::Gregorian: return new QGregorianCalendar; +#ifndef QT_BOOTSTRAPPED + case QCalendar::System::Julian: + return new QJulianCalendar; + case QCalendar::System::Milankovic: + return new QMilankovicCalendar; +#else // When highest-numbered system isn't enabled, ensure we have a case for Last: + case QCalendar::System::Last: +#endif case QCalendar::System::User: Q_UNREACHABLE(); } @@ -645,6 +657,8 @@ const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) This enumerated type is used to specify a choice of calendar system. \value Gregorian The default calendar, used internationally. + \value Julian An ancient Roman calendar with too few leap years. + \value Milankovic A revised Julian calendar used by some Orthodox churches. \sa QCalendar */ diff --git a/src/corelib/time/qcalendar.h b/src/corelib/time/qcalendar.h index 1f85647cab..25740fa3d3 100644 --- a/src/corelib/time/qcalendar.h +++ b/src/corelib/time/qcalendar.h @@ -103,9 +103,14 @@ public: int day = Unspecified; }; // Feature (\w+)calendar uses CLDR type="\1" data, except as noted in type="..." comments below - enum class System { + enum class System + { Gregorian, // CLDR: type = "gregory", alias = "gregorian" - Last = Gregorian, +#ifndef QT_BOOTSTRAPPED + Julian = 8, + Milankovic = 9, +#endif // These are Roman-based, so share Gregorian's CLDR data + Last = 9, // Highest number of any above User = -1 }; // New entries must be added to the \enum doc in qcalendar.cpp and diff --git a/src/corelib/time/qgregoriancalendar.cpp b/src/corelib/time/qgregoriancalendar.cpp index 64501600b4..d3db572aa7 100644 --- a/src/corelib/time/qgregoriancalendar.cpp +++ b/src/corelib/time/qgregoriancalendar.cpp @@ -57,7 +57,7 @@ using namespace QRoundingDown; The Gregorian calendar is a refinement of the earlier Julian calendar, itself a late form of the Roman calendar. It is widely used. - \sa QRomanCalendar, QCalendarBackend, QCalendar + \sa QRomanCalendar, QJulianCalendar, QCalendarBackend, QCalendar */ QGregorianCalendar::QGregorianCalendar() diff --git a/src/corelib/time/qjuliancalendar.cpp b/src/corelib/time/qjuliancalendar.cpp new file mode 100644 index 0000000000..8c6818eb31 --- /dev/null +++ b/src/corelib/time/qjuliancalendar.cpp @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobal.h" +#include "qjuliancalendar_p.h" +#include "qromancalendar_data_p.h" +#include "qcalendarmath_p.h" +#include +#include +#include + +QT_BEGIN_NAMESPACE + +using namespace QRoundingDown; + +/*! + \since 5.14 + + \class QJulianCalendar + \inmodule QtCore + \brief The QJulianCalendar class provides Julian calendar system + implementation. + + \section1 Julian Calendar + + The Julian calendar, proposed by Julius Caesar in 46 BC (708 AUC), was a + reform of the Roman calendar. It took effect on 1 January 45 BC (AUC 709), + by edict. It was the predominant calendar in the Roman world, most of + Europe, and in European settlements in the Americas and elsewhere, until it + was refined and gradually replaced by the Gregorian calendar, + promulgated in 1582 by Pope Gregory XIII. + + The Julian calendar gains against the mean tropical year at the rate of one + day in 128 years. For the Gregorian calendar, the figure is one day in + 3030 years. The difference in the average length of the year + between Julian (365.25 days) and Gregorian (365.2425 days) is 0.002%. + + Source: \l {https://en.wikipedia.org/wiki/Julian_calendar}{Wikipedia page on + Julian Calendar} + */ + +QJulianCalendar::QJulianCalendar() + : QRomanCalendar(QStringLiteral("Julian"), QCalendar::System::Julian) {} + +QString QJulianCalendar::name() const +{ + return QStringLiteral("Julian"); +} + +QCalendar::System QJulianCalendar::calendarSystem() const +{ + return QCalendar::System::Julian; +} + +bool QJulianCalendar::isLeapYear(int year) const +{ + if (year == QCalendar::Unspecified || !year) + return false; + + return qMod(year < 0 ? year + 1 : year, 4) == 0; +} + +// Julian Day 0 was January the first in the proleptic Julian calendar's 4713 BC + +bool QJulianCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd) const +{ + Q_ASSERT(jd); + if (!isDateValid(year, month, day)) + return false; + if (year < 0) + ++year; + const qint64 c0 = month < 3 ? -1 : 0; + const qint64 j1 = qDiv(1461 * (year + c0), 4); + const qint64 j2 = qDiv(153 * month - 1836 * c0 - 457, 5); + *jd = j1 + j2 + day + 1721117; + return true; +} + +QCalendar::YearMonthDay QJulianCalendar::julianDayToDate(qint64 jd) const +{ + const qint64 y2 = jd - 1721118; + const qint64 k2 = 4 * y2 + 3; + const qint64 k1 = 5 * qDiv(qMod(k2, 1461), 4) + 2; + const qint64 x1 = qDiv(k1, 153); + const qint64 c0 = qDiv(x1 + 2, 12); + const int y = qint16(qDiv(k2, 1461) + c0); + const int month = quint8(x1 - 12 * c0 + 3); + const int day = qDiv(qMod(k1, 153), 5) + 1; + return QCalendar::YearMonthDay(y > 0 ? y : y - 1, month, day); +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qjuliancalendar_p.h b/src/corelib/time/qjuliancalendar_p.h new file mode 100644 index 0000000000..104cf6aa30 --- /dev/null +++ b/src/corelib/time/qjuliancalendar_p.h @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QJULIAN_CALENDAR_P_H +#define QJULIAN_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qromancalendar_p.h" + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QJulianCalendar : public QRomanCalendar +{ +public: + QJulianCalendar(); + // Calendar properties: + QString name() const override; + QCalendar::System calendarSystem() const override; + // Date queries: + bool isLeapYear(int year) const override; + // Julian Day conversions: + bool dateToJulianDay(int year, int month, int day, qint64 *jd) const override; + QCalendar::YearMonthDay julianDayToDate(qint64 jd) const override; +}; + +QT_END_NAMESPACE + +#endif // QJULIAN_CALENDAR_P_H diff --git a/src/corelib/time/qmilankoviccalendar.cpp b/src/corelib/time/qmilankoviccalendar.cpp new file mode 100644 index 0000000000..68d74947b9 --- /dev/null +++ b/src/corelib/time/qmilankoviccalendar.cpp @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobal.h" +#include "qmilankoviccalendar_p.h" +#include "qcalendarmath_p.h" +#include +#include +#include + +QT_BEGIN_NAMESPACE + +using namespace QRoundingDown; + +/*! + \since 5.14 + + \class QMilankovicCalendar + \inmodule QtCore + \brief The QMilankovicCalendar class provides Milanković calendar system + implementation. + + \section1 + + The Revised Julian calendar, also known as the Milanković calendar, or, + less formally, new calendar, is a calendar, developed and proposed by the + Serbian scientist Milutin Milanković in 1923, which effectively discontinued + the 340 years of divergence between the naming of dates sanctioned by those + Eastern Orthodox churches adopting it and the Gregorian calendar that has + come to predominate worldwide. This calendar was intended to replace the + ecclesiastical calendar based on the Julian calendar hitherto in use by all + of the Eastern Orthodox Church. The Revised Julian calendar temporarily + aligned its dates with the Gregorian calendar proclaimed in 1582 by Pope + Gregory XIII for adoption by the Christian world. The calendar has been + adopted by the Orthodox churches of Constantinople, Albania, Alexandria, + Antioch, Bulgaria, Cyprus, Greece, Poland, and Romania. + + Source: \l {https://en.wikipedia.org/wiki/Revised_Julian_calendar}{Wikipedia + page on Milanković Calendar} + */ + +QMilankovicCalendar::QMilankovicCalendar() + : QRomanCalendar(QStringLiteral("Milankovic"), QCalendar::System::Milankovic) {} + +QString QMilankovicCalendar::name() const +{ + return QStringLiteral("Milankovic"); +} + +QCalendar::System QMilankovicCalendar::calendarSystem() const +{ + return QCalendar::System::Milankovic; +} + +bool QMilankovicCalendar::isLeapYear(int year) const +{ + if (year == QCalendar::Unspecified) + return false; + if (year <= 0) + ++year; + if (qMod(year, 4)) + return false; + if (qMod(year, 100) == 0) { + const qint16 century = qMod(qDiv(year, 100), 9); + if (century != 2 && century != 6) + return false; + } + return true; +} + +bool QMilankovicCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd) const +{ + Q_ASSERT(jd); + if (!isDateValid(year, month, day)) + return false; + if (year <= 0) + ++year; + const qint16 c0 = month < 3 ? -1 : 0; + const qint16 x1 = month - 12 * c0 - 3; + const qint16 x4 = year + c0; + const qint16 x3 = qDiv(x4, 100); + const qint16 x2 = qMod(x4, 100); + *jd = qDiv(328718 * x3 + 6, 9) + + qDiv(36525 * x2 , 100) + + qDiv(153 * x1 + 2 , 5) + + day + 1721119; + return true; +} + +QCalendar::YearMonthDay QMilankovicCalendar::julianDayToDate(qint64 jd) const +{ + const qint64 k3 = 9 * (jd - 1721120) + 2; + const qint64 x3 = qDiv(k3, 328718); + const qint64 k2 = 100 * qDiv(qMod(k3, 328718), 9) + 99; + const qint64 k1 = qDiv(qMod(k2, 36525), 100) * 5 + 2; + const qint64 x2 = qDiv(k2, 36525); + const qint64 x1 = qDiv(5 * qDiv(qMod(k2, 36525), 100) + 2, 153); + const qint64 c0 = qDiv(x1 + 2, 12); + const int y = 100 * x3 + x2 + c0; + const int month = x1 - 12 * c0 + 3; + const int day = qDiv(qMod(k1, 153), 5) + 1; + return QCalendar::YearMonthDay(y > 0 ? y : y - 1, month, day); +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qmilankoviccalendar_p.h b/src/corelib/time/qmilankoviccalendar_p.h new file mode 100644 index 0000000000..ebff7e7f39 --- /dev/null +++ b/src/corelib/time/qmilankoviccalendar_p.h @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QMILANKOVICCALENDAR_CALENDAR_P_H +#define QMILANKOVICCALENDAR_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qromancalendar_p.h" + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QMilankovicCalendar : public QRomanCalendar +{ +public: + QMilankovicCalendar(); + // Calendar properties: + QString name() const override; + QCalendar::System calendarSystem() const override; + // Date queries: + bool isLeapYear(int year) const override; + // Julian Day conversions: + bool dateToJulianDay(int year, int month, int day, qint64 *jd) const override; + QCalendar::YearMonthDay julianDayToDate(qint64 jd) const override; +}; + +QT_END_NAMESPACE + +#endif // QMILANKOVICCALENDAR_CALENDAR_P_H diff --git a/src/corelib/time/qromancalendar.cpp b/src/corelib/time/qromancalendar.cpp index 7b07fe8498..81b8d93d43 100644 --- a/src/corelib/time/qromancalendar.cpp +++ b/src/corelib/time/qromancalendar.cpp @@ -57,7 +57,7 @@ QT_BEGIN_NAMESPACE lengths depend in a common way on whether the year is a leap year. They differ in how they determine which years are leap years. - \sa QGregorianCalendar + \sa QGregorianCalendar, QJulianCalendar, QMilankovicCalendar */ int QRomanCalendar::daysInMonth(int month, int year) const diff --git a/src/corelib/time/time.pri b/src/corelib/time/time.pri index 41896898f6..17462487f3 100644 --- a/src/corelib/time/time.pri +++ b/src/corelib/time/time.pri @@ -7,6 +7,8 @@ HEADERS += \ time/qdatetime.h \ time/qdatetime_p.h \ time/qgregoriancalendar_p.h \ + time/qjuliancalendar_p.h \ + time/qmilankoviccalendar_p.h \ time/qromancalendar_p.h \ time/qromancalendar_data_p.h @@ -14,6 +16,8 @@ SOURCES += \ time/qdatetime.cpp \ time/qcalendar.cpp \ time/qgregoriancalendar.cpp \ + time/qjuliancalendar.cpp \ + time/qmilankoviccalendar.cpp \ time/qromancalendar.cpp qtConfig(timezone) { diff --git a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp index 3a410100f4..625567747e 100644 --- a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp +++ b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp @@ -167,6 +167,14 @@ void tst_QCalendar::specific_data() ADDROW(Gregorian, 1970, 1, 1, 1970, 1, 1); + // One known specific date, for each calendar +#ifndef QT_BOOTSTRAPPED + // Julian 1582-10-4 was followed by Gregorian 1582-10-15 + ADDROW(Julian, 1582, 10, 4, 1582, 10, 14); + // Milankovic matches Gregorian for a few centuries + ADDROW(Milankovic, 1923, 3, 20, 1923, 3, 20); +#endif + #undef ADDROW } -- cgit v1.2.3 From e71bf9d5c7b14fb3e3b7f970440060c5fd9f9059 Mon Sep 17 00:00:00 2001 From: Soroush Rabiei Date: Thu, 8 Aug 2019 20:27:18 +0200 Subject: Add support for the Jalali (Solar Hijri or Persian) calendar This has its own locale data, extracted from CLDR. [ChangeLog][QtCore][QCalendar] Added support for the Jalali (Persian or Solar Hijri) calendar, controlled by feature jalalicalendar. Fixes: QTBUG-58404 Change-Id: Id5c56a10db05a4fd612aafc01615273db81ec743 Reviewed-by: Paul Wicking Reviewed-by: Volker Hilsheimer --- src/corelib/configure.json | 6 + src/corelib/global/qconfig-bootstrapped.h | 1 + src/corelib/time/qcalendar.cpp | 8 + src/corelib/time/qcalendar.h | 8 +- src/corelib/time/qjalalicalendar.cpp | 212 +++++ src/corelib/time/qjalalicalendar_data_p.h | 893 +++++++++++++++++++++ src/corelib/time/qjalalicalendar_p.h | 86 ++ src/corelib/time/time.pri | 8 + .../auto/corelib/time/qcalendar/tst_qcalendar.cpp | 5 + util/locale_database/cldr2qlocalexml.py | 2 +- util/locale_database/localexml.py | 5 + util/locale_database/qlocalexml2cpp.py | 2 +- 12 files changed, 1233 insertions(+), 3 deletions(-) create mode 100644 src/corelib/time/qjalalicalendar.cpp create mode 100644 src/corelib/time/qjalalicalendar_data_p.h create mode 100644 src/corelib/time/qjalalicalendar_p.h diff --git a/src/corelib/configure.json b/src/corelib/configure.json index ac6396de00..2f3d30d5b2 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -1041,6 +1041,12 @@ "section": "Utilities", "output": [ "privateFeature" ] }, + "jalalicalendar": { + "label": "QJalaliCalendar", + "purpose": "Support the Jalali (Persian) calendar", + "section": "Utilities", + "output": [ "publicFeature" ] + }, "timezone": { "label": "QTimeZone", "purpose": "Provides support for time-zone handling.", diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h index ce3b672637..58427364b6 100644 --- a/src/corelib/global/qconfig-bootstrapped.h +++ b/src/corelib/global/qconfig-bootstrapped.h @@ -86,6 +86,7 @@ #define QT_NO_GEOM_VARIANT #define QT_FEATURE_iconv -1 #define QT_FEATURE_icu -1 +#define QT_FEATURE_jalalicalendar -1 #define QT_FEATURE_journald -1 #define QT_FEATURE_futimens -1 #define QT_FEATURE_futimes -1 diff --git a/src/corelib/time/qcalendar.cpp b/src/corelib/time/qcalendar.cpp index 4207d26e5c..a315c257de 100644 --- a/src/corelib/time/qcalendar.cpp +++ b/src/corelib/time/qcalendar.cpp @@ -33,6 +33,9 @@ #include "qjuliancalendar_p.h" #include "qmilankoviccalendar_p.h" #endif +#if QT_CONFIG(jalalicalendar) +#include "qjalalicalendar_p.h" +#endif #include "qdatetime.h" #include "qcalendarmath_p.h" @@ -617,6 +620,10 @@ const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) return new QJulianCalendar; case QCalendar::System::Milankovic: return new QMilankovicCalendar; +#endif +#if QT_CONFIG(jalalicalendar) + case QCalendar::System::Jalali: + return new QJalaliCalendar; #else // When highest-numbered system isn't enabled, ensure we have a case for Last: case QCalendar::System::Last: #endif @@ -659,6 +666,7 @@ const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) \value Gregorian The default calendar, used internationally. \value Julian An ancient Roman calendar with too few leap years. \value Milankovic A revised Julian calendar used by some Orthodox churches. + \value Jalali The Solar Hijri calendar (also called Persian). \sa QCalendar */ diff --git a/src/corelib/time/qcalendar.h b/src/corelib/time/qcalendar.h index 25740fa3d3..595b7397cd 100644 --- a/src/corelib/time/qcalendar.h +++ b/src/corelib/time/qcalendar.h @@ -110,7 +110,13 @@ public: Julian = 8, Milankovic = 9, #endif // These are Roman-based, so share Gregorian's CLDR data - Last = 9, // Highest number of any above + + // Feature-controlled calendars: +#if QT_CONFIG(jalalicalendar) // type="persian" + Jalali = 10, +#endif + + Last = 10, // Highest number of any above User = -1 }; // New entries must be added to the \enum doc in qcalendar.cpp and diff --git a/src/corelib/time/qjalalicalendar.cpp b/src/corelib/time/qjalalicalendar.cpp new file mode 100644 index 0000000000..be9246d7db --- /dev/null +++ b/src/corelib/time/qjalalicalendar.cpp @@ -0,0 +1,212 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobal.h" +#include "qjalalicalendar_p.h" +#include "qjalalicalendar_data_p.h" +#include "qcalendarmath_p.h" +#include + +QT_BEGIN_NAMESPACE + +using namespace QRoundingDown; + +// Constants + +static const qint64 cycleDays = 1029983; +static const int cycleYears = 2820; +static const double yearLength = 365.24219858156028368; // 365 + leapRatio; +static const qint64 jalaliEpoch = 2121446; // 475/01/01 AP, start of 2820 cycle + +// Calendar implementation + +static inline int cycle(qint64 jdn) +{ + return qDiv(jdn - jalaliEpoch, cycleDays); +} + +qint64 cycleStart(int cycleNo) +{ + return jalaliEpoch + cycleNo * cycleDays; +} + +qint64 firstDayOfYear(int year, int cycleNo) +{ + qint64 firstDOYinEra = static_cast(qFloor(year * yearLength)); + return jalaliEpoch + cycleNo * cycleDays + firstDOYinEra; +} + +/*! + \since 5.14 + + \class QJalaliCalendar + \inmodule QtCore + \brief The QJalaliCalendar class provides Jalali (Hijri Shamsi) calendar + system implementation. + + \section1 Solar Hijri Calendar System + + The Solar Hijri calendar, also called the Solar Hejri calendar, Shamsi + Hijri calendar or Jalali calendar, is the official calendar of Iran and + Afghanistan. It begins on the vernal equinox (Nowruz) as determined by + astronomical calculation for the Iran Standard Time meridian + (52.5°E or GMT+3.5h). This determination of starting moment is more accurate + than the Gregorian calendar for predicting the date of the vernal equinox, + because it uses astronomical observations rather than mathematical rules. + + \section2 Calendar Organization + + Each of the twelve months corresponds with a zodiac sign. The first six + months have 31 days, the next five have 30 days, and the last month has 29 + days in usual years but 30 days in leap years. The New Year's Day always + falls on the March equinox. + + \section2 Leap Year Rules + + The Solar Hijri calendar produces a five-year leap year interval after about + every seven four-year leap year intervals. It usually follows a 33-year + cycle with occasional interruptions by single 29-year or 37-year subcycles. + The reason for this behavior is that it tracks the observed vernal equinox. + By contrast, some less accurate predictive algorithms are in use based + on confusion between the average tropical year (365.2422 days, approximated + with near 128-year cycles or 2820-year great cycles) and the mean interval + between spring equinoxes (365.2424 days, approximated with a near 33-year + cycle). + + Source: \l {https://en.wikipedia.org/wiki/Solar_Hijri_calendar}{Wikipedia + page on Solar Hijri Calendar} + */ + +QJalaliCalendar::QJalaliCalendar() + : QCalendarBackend(QStringLiteral("Jalali"), QCalendar::System::Jalali) +{ + registerAlias(QStringLiteral("Persian")); +} + +QString QJalaliCalendar::name() const +{ + return QStringLiteral("Jalali"); +} + +QCalendar::System QJalaliCalendar::calendarSystem() const +{ + return QCalendar::System::Jalali; +} + +bool QJalaliCalendar::isLeapYear(int year) const +{ + if (year == QCalendar::Unspecified) + return false; + if (year < 0) + year++; + return qMod((year + 2346) * 683, 2820) < 683; +} + +bool QJalaliCalendar::isLunar() const +{ + return false; +} + +bool QJalaliCalendar::isLuniSolar() const +{ + return false; +} + +bool QJalaliCalendar::isSolar() const +{ + return true; +} + +bool QJalaliCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd) const +{ + Q_ASSERT(jd); + if (!isDateValid(year, month, day)) + return false; + + const int y = year - (year < 0 ? 474 : 475); + const int c = qDiv(y, cycleYears); + const int yearInCycle = y - c * cycleYears; + int dayInYear = day; + for (int i = 1; i < month; ++i) + dayInYear += daysInMonth(i, year); + *jd = firstDayOfYear(yearInCycle, c) + dayInYear - 1; + return true; +} + +QCalendar::YearMonthDay QJalaliCalendar::julianDayToDate(qint64 jd) const +{ + const int c = cycle(jd); + int yearInCycle = qFloor((jd - cycleStart(c)) / yearLength); + int year = yearInCycle + 475 + c * cycleYears; + int day = jd - firstDayOfYear(yearInCycle, c) + 1; + if (day > daysInYear(year <= 0 ? year - 1 : year)) { + year++; + day = 1; + } + if (year <= 0) + year--; + int month; + for (month = 1; month < 12; ++month) { + const int last = daysInMonth(month, year); + if (day <= last) + break; + day -= last; + } + return QCalendar::YearMonthDay(year, month, day); +} + +int QJalaliCalendar::daysInMonth(int month, int year) const +{ + if (year && month > 0 && month <= 12) + return month < 7 ? 31 : month < 12 || isLeapYear(year) ? 30 : 29; + + return 0; +} + +const QCalendarLocale *QJalaliCalendar::localeMonthIndexData() const +{ + return locale_data; +} + +const ushort *QJalaliCalendar::localeMonthData() const +{ + return months_data; +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qjalalicalendar_data_p.h b/src/corelib/time/qjalalicalendar_data_p.h new file mode 100644 index 0000000000..865e3ff98d --- /dev/null +++ b/src/corelib/time/qjalalicalendar_data_p.h @@ -0,0 +1,893 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QPERSIANCALENDAR_DATA_P_H +#define QPERSIANCALENDAR_DATA_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +// GENERATED PART STARTS HERE + +/* + This part of the file was generated on 2019-05-27 from the + Common Locale Data Repository v35.1 + + http://www.unicode.org/cldr/ + + Do not edit this section: instead regenerate it using + cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or + edited) CLDR data; see qtbase/util/locale_database/. +*/ + +static const QCalendarLocale locale_data[] = { + // lang script terr sShort sLong sNarrow short long narrow + { 1, 0, 0,{ 0,48 },{ 48,84 },{ 132,24 },{ 0,48 },{ 48,84 },{ 156,29 }}, // C/AnyScript/AnyCountry + { 3, 7, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Oromo/Latin/Ethiopia + { 3, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Oromo/Latin/Kenya + { 4, 7, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Afar/Latin/Ethiopia + { 5, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Afrikaans/Latin/South Africa + { 5, 7, 148,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Afrikaans/Latin/Namibia + { 6, 7, 2,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Albanian/Latin/Albania + { 6, 7, 127,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Albanian/Latin/Macedonia + { 6, 7, 257,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Albanian/Latin/Kosovo + { 7, 14, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Amharic/Ethiopic/Ethiopia + { 8, 1, 64,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Egypt + { 8, 1, 3,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Algeria + { 8, 1, 17,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Bahrain + { 8, 1, 42,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Chad + { 8, 1, 48,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Comoros + { 8, 1, 59,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Djibouti + { 8, 1, 67,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Eritrea + { 8, 1, 103,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Iraq + { 8, 1, 105,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Israel + { 8, 1, 109,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Jordan + { 8, 1, 115,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Kuwait + { 8, 1, 119,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Lebanon + { 8, 1, 122,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Libya + { 8, 1, 136,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Mauritania + { 8, 1, 145,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Morocco + { 8, 1, 162,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Oman + { 8, 1, 165,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Palestinian Territories + { 8, 1, 175,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Qatar + { 8, 1, 186,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Saudi Arabia + { 8, 1, 194,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Somalia + { 8, 1, 201,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Sudan + { 8, 1, 207,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Syria + { 8, 1, 216,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Tunisia + { 8, 1, 223,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/United Arab Emirates + { 8, 1, 236,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Western Sahara + { 8, 1, 237,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/Yemen + { 8, 1, 254,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/South Sudan + { 8, 1, 260,{ 212,68 },{ 212,68 },{ 185,27 },{ 212,68 },{ 212,68 },{ 185,27 }}, // Arabic/Arabic/World + { 9, 10, 11,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Armenian/Armenian/Armenia + { 10, 11, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Assamese/Bengali/India + { 12, 7, 15,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Azerbaijani/Latin/Azerbaijan + { 12, 1, 102,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Azerbaijani/Arabic/Iran + { 12, 2, 15,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Azerbaijani/Cyrillic/Azerbaijan + { 13, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bashkir/Cyrillic/Russia + { 14, 7, 197,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Basque/Latin/Spain + { 15, 11, 18,{ 280,88 },{ 368,89 },{ 457,27 },{ 280,88 },{ 368,89 },{ 457,27 }}, // Bengali/Bengali/Bangladesh + { 15, 11, 100,{ 280,88 },{ 368,89 },{ 457,27 },{ 280,88 },{ 368,89 },{ 457,27 }}, // Bengali/Bengali/India + { 16, 31, 25,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dzongkha/Tibetan/Bhutan + { 19, 7, 74,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Breton/Latin/France + { 20, 2, 33,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bulgarian/Cyrillic/Bulgaria + { 21, 25, 147,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Burmese/Myanmar/Myanmar + { 22, 2, 20,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Belarusian/Cyrillic/Belarus + { 23, 20, 36,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Khmer/Khmer/Cambodia + { 24, 7, 197,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Catalan/Latin/Spain + { 24, 7, 5,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Catalan/Latin/Andorra + { 24, 7, 74,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Catalan/Latin/France + { 24, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Catalan/Latin/Italy + { 25, 5, 44,{ 484,39 },{ 523,38 },{ 185,27 },{ 484,39 },{ 523,38 },{ 185,27 }}, // Chinese/Simplified Han/China + { 25, 5, 97,{ 484,39 },{ 523,38 },{ 185,27 },{ 484,39 },{ 523,38 },{ 185,27 }}, // Chinese/Simplified Han/Hong Kong + { 25, 5, 126,{ 484,39 },{ 523,38 },{ 185,27 },{ 484,39 },{ 523,38 },{ 185,27 }}, // Chinese/Simplified Han/Macau + { 25, 5, 190,{ 484,39 },{ 523,38 },{ 185,27 },{ 484,39 },{ 523,38 },{ 185,27 }}, // Chinese/Simplified Han/Singapore + { 25, 6, 97,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Chinese/Traditional Han/Hong Kong + { 25, 6, 126,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Chinese/Traditional Han/Macau + { 25, 6, 208,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Chinese/Traditional Han/Taiwan + { 26, 7, 74,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Corsican/Latin/France + { 27, 7, 54,{ 48,84 },{ 48,84 },{ 561,39 },{ 48,84 },{ 48,84 },{ 561,39 }}, // Croatian/Latin/Croatia + { 27, 7, 27,{ 48,84 },{ 48,84 },{ 561,39 },{ 48,84 },{ 48,84 },{ 561,39 }}, // Croatian/Latin/Bosnia And Herzegowina + { 28, 7, 57,{ 600,82 },{ 600,82 },{ 185,27 },{ 600,82 },{ 600,82 },{ 185,27 }}, // Czech/Latin/Czech Republic + { 29, 7, 58,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Danish/Latin/Denmark + { 29, 7, 86,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Danish/Latin/Greenland + { 30, 7, 151,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Netherlands + { 30, 7, 12,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Aruba + { 30, 7, 21,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Belgium + { 30, 7, 152,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Cura Sao + { 30, 7, 202,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Suriname + { 30, 7, 255,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Bonaire + { 30, 7, 256,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Dutch/Latin/Sint Maarten + { 31, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/United States + { 31, 3, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Deseret/United States + { 31, 7, 4,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/American Samoa + { 31, 7, 7,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Anguilla + { 31, 7, 9,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Antigua And Barbuda + { 31, 7, 13,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Australia + { 31, 7, 14,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Austria + { 31, 7, 16,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Bahamas + { 31, 7, 19,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Barbados + { 31, 7, 21,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Belgium + { 31, 7, 22,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Belize + { 31, 7, 24,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Bermuda + { 31, 7, 28,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Botswana + { 31, 7, 31,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/British Indian Ocean Territory + { 31, 7, 35,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Burundi + { 31, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Cameroon + { 31, 7, 38,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Canada + { 31, 7, 40,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Cayman Islands + { 31, 7, 45,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Christmas Island + { 31, 7, 46,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Cocos Islands + { 31, 7, 51,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Cook Islands + { 31, 7, 56,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Cyprus + { 31, 7, 58,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Denmark + { 31, 7, 60,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Dominica + { 31, 7, 67,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Eritrea + { 31, 7, 70,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Falkland Islands + { 31, 7, 72,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Fiji + { 31, 7, 73,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Finland + { 31, 7, 75,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Guernsey + { 31, 7, 80,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Gambia + { 31, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Germany + { 31, 7, 83,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Ghana + { 31, 7, 84,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Gibraltar + { 31, 7, 87,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Grenada + { 31, 7, 89,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Guam + { 31, 7, 93,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Guyana + { 31, 7, 97,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Hong Kong + { 31, 7, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/India + { 31, 7, 104,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Ireland + { 31, 7, 105,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Israel + { 31, 7, 107,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Jamaica + { 31, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Kenya + { 31, 7, 112,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Kiribati + { 31, 7, 120,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Lesotho + { 31, 7, 121,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Liberia + { 31, 7, 126,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Macau + { 31, 7, 128,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Madagascar + { 31, 7, 129,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Malawi + { 31, 7, 130,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Malaysia + { 31, 7, 133,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Malta + { 31, 7, 134,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Marshall Islands + { 31, 7, 137,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Mauritius + { 31, 7, 140,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Micronesia + { 31, 7, 144,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Montserrat + { 31, 7, 148,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Namibia + { 31, 7, 149,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Nauru + { 31, 7, 151,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Netherlands + { 31, 7, 154,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/New Zealand + { 31, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Nigeria + { 31, 7, 158,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Niue + { 31, 7, 159,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Norfolk Island + { 31, 7, 160,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Northern Mariana Islands + { 31, 7, 163,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Pakistan + { 31, 7, 164,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Palau + { 31, 7, 167,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Papua New Guinea + { 31, 7, 170,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Philippines + { 31, 7, 171,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Pitcairn + { 31, 7, 174,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Puerto Rico + { 31, 7, 179,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Rwanda + { 31, 7, 180,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Saint Kitts And Nevis + { 31, 7, 181,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Saint Lucia + { 31, 7, 182,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Saint Vincent And The Grenadines + { 31, 7, 183,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Samoa + { 31, 7, 188,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Seychelles + { 31, 7, 189,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Sierra Leone + { 31, 7, 190,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Singapore + { 31, 7, 192,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Slovenia + { 31, 7, 193,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Solomon Islands + { 31, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/South Africa + { 31, 7, 199,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Saint Helena + { 31, 7, 201,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Sudan + { 31, 7, 204,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Swaziland + { 31, 7, 205,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Sweden + { 31, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Switzerland + { 31, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Tanzania + { 31, 7, 213,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Tokelau + { 31, 7, 214,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Tonga + { 31, 7, 215,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Trinidad And Tobago + { 31, 7, 219,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Turks And Caicos Islands + { 31, 7, 220,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Tuvalu + { 31, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Uganda + { 31, 7, 223,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/United Arab Emirates + { 31, 7, 224,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/United Kingdom + { 31, 7, 226,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/United States Minor Outlying Islands + { 31, 7, 229,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Vanuatu + { 31, 7, 233,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/British Virgin Islands + { 31, 7, 234,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/United States Virgin Islands + { 31, 7, 239,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Zambia + { 31, 7, 240,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Zimbabwe + { 31, 7, 249,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Diego Garcia + { 31, 7, 251,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Isle Of Man + { 31, 7, 252,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Jersey + { 31, 7, 254,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/South Sudan + { 31, 7, 256,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Sint Maarten + { 31, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/World + { 31, 7, 261,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // English/Latin/Europe + { 32, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Esperanto/Latin/World + { 33, 7, 68,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Estonian/Latin/Estonia + { 34, 7, 71,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Faroese/Latin/Faroe Islands + { 34, 7, 58,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Faroese/Latin/Denmark + { 36, 7, 73,{ 766,82 },{ 848,118 },{ 185,27 },{ 966,142 },{ 966,142 },{ 185,27 }}, // Finnish/Latin/Finland + { 37, 7, 74,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/France + { 37, 7, 3,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Algeria + { 37, 7, 21,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Belgium + { 37, 7, 23,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Benin + { 37, 7, 34,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Burkina Faso + { 37, 7, 35,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Burundi + { 37, 7, 37,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Cameroon + { 37, 7, 38,{ 1248,58 },{ 1306,82 },{ 185,27 },{ 1248,58 },{ 1306,82 },{ 185,27 }}, // French/Latin/Canada + { 37, 7, 41,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Central African Republic + { 37, 7, 42,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Chad + { 37, 7, 48,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Comoros + { 37, 7, 49,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Congo Kinshasa + { 37, 7, 50,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Congo Brazzaville + { 37, 7, 53,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Ivory Coast + { 37, 7, 59,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Djibouti + { 37, 7, 66,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Equatorial Guinea + { 37, 7, 76,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/French Guiana + { 37, 7, 77,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/French Polynesia + { 37, 7, 79,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Gabon + { 37, 7, 88,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Guadeloupe + { 37, 7, 91,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Guinea + { 37, 7, 94,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Haiti + { 37, 7, 125,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Luxembourg + { 37, 7, 128,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Madagascar + { 37, 7, 132,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Mali + { 37, 7, 135,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Martinique + { 37, 7, 136,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Mauritania + { 37, 7, 137,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Mauritius + { 37, 7, 138,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Mayotte + { 37, 7, 142,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Monaco + { 37, 7, 145,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Morocco + { 37, 7, 153,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/New Caledonia + { 37, 7, 156,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Niger + { 37, 7, 176,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Reunion + { 37, 7, 179,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Rwanda + { 37, 7, 187,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Senegal + { 37, 7, 188,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Seychelles + { 37, 7, 200,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Saint Pierre And Miquelon + { 37, 7, 206,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Switzerland + { 37, 7, 207,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Syria + { 37, 7, 212,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Togo + { 37, 7, 216,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Tunisia + { 37, 7, 229,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Vanuatu + { 37, 7, 235,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Wallis And Futuna Islands + { 37, 7, 244,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Saint Barthelemy + { 37, 7, 245,{ 1108,58 },{ 1166,82 },{ 185,27 },{ 1108,58 },{ 1166,82 },{ 185,27 }}, // French/Latin/Saint Martin + { 38, 7, 151,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Western Frisian/Latin/Netherlands + { 39, 7, 224,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Gaelic/Latin/United Kingdom + { 40, 7, 197,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Galician/Latin/Spain + { 41, 15, 81,{ 1388,92 },{ 1388,92 },{ 185,27 },{ 1388,92 },{ 1388,92 },{ 185,27 }}, // Georgian/Georgian/Georgia + { 42, 7, 82,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Germany + { 42, 7, 14,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Austria + { 42, 7, 21,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Belgium + { 42, 7, 106,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Italy + { 42, 7, 123,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Liechtenstein + { 42, 7, 125,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Luxembourg + { 42, 7, 206,{ 1480,87 },{ 1480,87 },{ 185,27 },{ 1480,87 },{ 1480,87 },{ 185,27 }}, // German/Latin/Switzerland + { 43, 16, 85,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Greek/Greek/Greece + { 43, 16, 56,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Greek/Greek/Cyprus + { 44, 7, 86,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Greenlandic/Latin/Greenland + { 45, 7, 168,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Guarani/Latin/Paraguay + { 46, 17, 100,{ 1567,86 },{ 1567,86 },{ 185,27 },{ 1567,86 },{ 1567,86 },{ 185,27 }}, // Gujarati/Gujarati/India + { 47, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Hausa/Latin/Nigeria + { 47, 1, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Hausa/Arabic/Nigeria + { 47, 7, 83,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Hausa/Latin/Ghana + { 47, 7, 156,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Hausa/Latin/Niger + { 48, 18, 105,{ 1653,69 },{ 1653,69 },{ 185,27 },{ 1653,69 },{ 1653,69 },{ 185,27 }}, // Hebrew/Hebrew/Israel + { 49, 13, 100,{ 1722,82 },{ 1722,82 },{ 185,27 },{ 1722,82 },{ 1722,82 },{ 185,27 }}, // Hindi/Devanagari/India + { 50, 7, 98,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Hungarian/Latin/Hungary + { 51, 7, 99,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Icelandic/Latin/Iceland + { 52, 7, 101,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Indonesian/Latin/Indonesia + { 53, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Interlingua/Latin/World + { 55, 44, 38,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Inuktitut/Canadian Aboriginal/Canada + { 55, 7, 38,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Inuktitut/Latin/Canada + { 57, 7, 104,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Irish/Latin/Ireland + { 58, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/Italy + { 58, 7, 184,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/San Marino + { 58, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/Switzerland + { 58, 7, 230,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Italian/Latin/Vatican City State + { 59, 19, 108,{ 1804,78 },{ 1804,78 },{ 185,27 },{ 1804,78 },{ 1804,78 },{ 185,27 }}, // Japanese/Japanese/Japan + { 60, 7, 101,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Javanese/Latin/Indonesia + { 61, 21, 100,{ 1882,93 },{ 1882,93 },{ 185,27 },{ 1882,93 },{ 1882,93 },{ 185,27 }}, // Kannada/Kannada/India + { 62, 1, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kashmiri/Arabic/India + { 63, 2, 110,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kazakh/Cyrillic/Kazakhstan + { 64, 7, 179,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kinyarwanda/Latin/Rwanda + { 65, 2, 116,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kirghiz/Cyrillic/Kyrgyzstan + { 66, 22, 114,{ 1975,55 },{ 1975,55 },{ 185,27 },{ 1975,55 },{ 1975,55 },{ 185,27 }}, // Korean/Korean/South Korea + { 66, 22, 113,{ 1975,55 },{ 1975,55 },{ 185,27 },{ 1975,55 },{ 1975,55 },{ 185,27 }}, // Korean/Korean/North Korea + { 67, 7, 217,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kurdish/Latin/Turkey + { 68, 7, 35,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Rundi/Latin/Burundi + { 69, 23, 117,{ 2030,80 },{ 2110,81 },{ 185,27 },{ 2191,80 },{ 2110,81 },{ 185,27 }}, // Lao/Lao/Laos + { 71, 7, 118,{ 2271,93 },{ 2271,93 },{ 185,27 },{ 2271,93 },{ 2271,93 },{ 185,27 }}, // Latvian/Latin/Latvia + { 72, 7, 49,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lingala/Latin/Congo Kinshasa + { 72, 7, 6,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lingala/Latin/Angola + { 72, 7, 41,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lingala/Latin/Central African Republic + { 72, 7, 50,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lingala/Latin/Congo Brazzaville + { 73, 7, 124,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lithuanian/Latin/Lithuania + { 74, 2, 127,{ 2364,80 },{ 2364,80 },{ 185,27 },{ 2364,80 },{ 2364,80 },{ 185,27 }}, // Macedonian/Cyrillic/Macedonia + { 75, 7, 128,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Malagasy/Latin/Madagascar + { 76, 7, 130,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Malay/Latin/Malaysia + { 76, 1, 130,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Malay/Arabic/Malaysia + { 76, 7, 32,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Malay/Latin/Brunei + { 76, 7, 190,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Malay/Latin/Singapore + { 77, 24, 100,{ 2444,92 },{ 2444,92 },{ 2536,40 },{ 2444,92 },{ 2444,92 },{ 2536,40 }}, // Malayalam/Malayalam/India + { 78, 7, 133,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Maltese/Latin/Malta + { 79, 7, 154,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Maori/Latin/New Zealand + { 80, 13, 100,{ 2576,81 },{ 2576,81 },{ 2657,27 },{ 2576,81 },{ 2576,81 },{ 2657,27 }}, // Marathi/Devanagari/India + { 82, 2, 143,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mongolian/Cyrillic/Mongolia + { 82, 8, 44,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mongolian/Mongolian/China + { 84, 13, 150,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nepali/Devanagari/Nepal + { 84, 13, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nepali/Devanagari/India + { 85, 7, 161,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Norwegian Bokmal/Latin/Norway + { 85, 7, 203,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Norwegian Bokmal/Latin/Svalbard And Jan Mayen Islands + { 86, 7, 74,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Occitan/Latin/France + { 87, 26, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Oriya/Oriya/India + { 88, 1, 1,{ 2684,63 },{ 2684,63 },{ 185,27 },{ 2684,63 },{ 2684,63 },{ 185,27 }}, // Pashto/Arabic/Afghanistan + { 88, 1, 163,{ 2684,63 },{ 2684,63 },{ 185,27 },{ 2684,63 },{ 2684,63 },{ 185,27 }}, // Pashto/Arabic/Pakistan + { 89, 1, 102,{ 2747,67 },{ 2747,67 },{ 2814,24 },{ 2747,67 },{ 2747,67 },{ 2814,24 }}, // Persian/Arabic/Iran + { 89, 1, 1,{ 2747,67 },{ 2747,67 },{ 2838,24 },{ 2747,67 },{ 2862,57 },{ 2814,24 }}, // Persian/Arabic/Afghanistan + { 90, 7, 172,{ 2919,84 },{ 2919,84 },{ 185,27 },{ 2919,84 },{ 2919,84 },{ 185,27 }}, // Polish/Latin/Poland + { 91, 7, 30,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Brazil + { 91, 7, 6,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Angola + { 91, 7, 39,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Cape Verde + { 91, 7, 62,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/East Timor + { 91, 7, 66,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Equatorial Guinea + { 91, 7, 92,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Guinea Bissau + { 91, 7, 125,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Luxembourg + { 91, 7, 126,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Macau + { 91, 7, 146,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Mozambique + { 91, 7, 173,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Portugal + { 91, 7, 185,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Sao Tome And Principe + { 91, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Portuguese/Latin/Switzerland + { 92, 4, 100,{ 3003,78 },{ 3003,78 },{ 185,27 },{ 3003,78 },{ 3003,78 },{ 185,27 }}, // Punjabi/Gurmukhi/India + { 92, 1, 163,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Punjabi/Arabic/Pakistan + { 93, 7, 169,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Quechua/Latin/Peru + { 93, 7, 26,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Quechua/Latin/Bolivia + { 93, 7, 63,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Quechua/Latin/Ecuador + { 94, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Romansh/Latin/Switzerland + { 95, 7, 177,{ 3081,86 },{ 3081,86 },{ 185,27 },{ 3081,86 },{ 3081,86 },{ 185,27 }}, // Romanian/Latin/Romania + { 95, 7, 141,{ 3081,86 },{ 3081,86 },{ 185,27 },{ 3081,86 },{ 3081,86 },{ 185,27 }}, // Romanian/Latin/Moldova + { 96, 2, 178,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Russia + { 96, 2, 20,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Belarus + { 96, 2, 110,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Kazakhstan + { 96, 2, 116,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Kyrgyzstan + { 96, 2, 141,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Moldova + { 96, 2, 222,{ 3167,81 },{ 3167,81 },{ 185,27 },{ 3167,81 },{ 3167,81 },{ 185,27 }}, // Russian/Cyrillic/Ukraine + { 98, 7, 41,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sango/Latin/Central African Republic + { 99, 13, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sanskrit/Devanagari/India + { 100, 2, 243,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Serbia + { 100, 7, 27,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Bosnia And Herzegowina + { 100, 7, 242,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Montenegro + { 100, 7, 243,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Serbia + { 100, 2, 27,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Bosnia And Herzegowina + { 100, 2, 242,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Montenegro + { 100, 2, 257,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Serbian/Cyrillic/Kosovo + { 100, 7, 257,{ 3329,81 },{ 3329,81 },{ 185,27 },{ 3329,81 },{ 3329,81 },{ 185,27 }}, // Serbian/Latin/Kosovo + { 101, 2, 81,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ossetic/Cyrillic/Georgia + { 101, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ossetic/Cyrillic/Russia + { 102, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Southern Sotho/Latin/South Africa + { 103, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tswana/Latin/South Africa + { 104, 7, 240,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Shona/Latin/Zimbabwe + { 105, 1, 163,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sindhi/Arabic/Pakistan + { 106, 32, 198,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sinhala/Sinhala/Sri Lanka + { 107, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swati/Latin/South Africa + { 108, 7, 191,{ 600,82 },{ 600,82 },{ 185,27 },{ 600,82 },{ 600,82 },{ 185,27 }}, // Slovak/Latin/Slovakia + { 109, 7, 192,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Slovenian/Latin/Slovenia + { 110, 7, 194,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Somali/Latin/Somalia + { 110, 7, 59,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Somali/Latin/Djibouti + { 110, 7, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Somali/Latin/Ethiopia + { 110, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Somali/Latin/Kenya + { 111, 7, 197,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Spain + { 111, 7, 10,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Argentina + { 111, 7, 22,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Belize + { 111, 7, 26,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Bolivia + { 111, 7, 30,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Brazil + { 111, 7, 43,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Chile + { 111, 7, 47,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Colombia + { 111, 7, 52,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Costa Rica + { 111, 7, 55,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Cuba + { 111, 7, 61,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Dominican Republic + { 111, 7, 63,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Ecuador + { 111, 7, 65,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/El Salvador + { 111, 7, 66,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Equatorial Guinea + { 111, 7, 90,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Guatemala + { 111, 7, 96,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Honduras + { 111, 7, 139,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Mexico + { 111, 7, 155,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Nicaragua + { 111, 7, 166,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Panama + { 111, 7, 168,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Paraguay + { 111, 7, 169,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Peru + { 111, 7, 170,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Philippines + { 111, 7, 174,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Puerto Rico + { 111, 7, 225,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/United States + { 111, 7, 227,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Uruguay + { 111, 7, 231,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Venezuela + { 111, 7, 238,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Canary Islands + { 111, 7, 246,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Latin America + { 111, 7, 250,{ 682,84 },{ 682,84 },{ 185,27 },{ 682,84 },{ 682,84 },{ 185,27 }}, // Spanish/Latin/Ceuta And Melilla + { 113, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Tanzania + { 113, 7, 49,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Congo Kinshasa + { 113, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Kenya + { 113, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swahili/Latin/Uganda + { 114, 7, 205,{ 3410,84 },{ 3410,84 },{ 185,27 },{ 3494,84 },{ 3494,84 },{ 185,27 }}, // Swedish/Latin/Sweden + { 114, 7, 73,{ 3410,84 },{ 3410,84 },{ 185,27 },{ 3494,84 },{ 3494,84 },{ 185,27 }}, // Swedish/Latin/Finland + { 114, 7, 248,{ 3410,84 },{ 3410,84 },{ 185,27 },{ 3494,84 },{ 3494,84 },{ 185,27 }}, // Swedish/Latin/Aland Islands + { 115, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sardinian/Latin/Italy + { 116, 2, 209,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tajik/Cyrillic/Tajikistan + { 117, 27, 100,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/India + { 117, 27, 130,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/Malaysia + { 117, 27, 190,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/Singapore + { 117, 27, 198,{ 3578,64 },{ 3642,94 },{ 185,27 },{ 3578,64 },{ 3642,94 },{ 185,27 }}, // Tamil/Tamil/Sri Lanka + { 118, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tatar/Cyrillic/Russia + { 119, 28, 100,{ 3736,89 },{ 3736,89 },{ 185,27 },{ 3736,89 },{ 3736,89 },{ 185,27 }}, // Telugu/Telugu/India + { 120, 30, 211,{ 3825,99 },{ 3825,99 },{ 185,27 },{ 3825,99 },{ 3825,99 },{ 185,27 }}, // Thai/Thai/Thailand + { 121, 31, 44,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tibetan/Tibetan/China + { 121, 31, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tibetan/Tibetan/India + { 122, 14, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tigrinya/Ethiopic/Ethiopia + { 122, 14, 67,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tigrinya/Ethiopic/Eritrea + { 123, 7, 214,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tongan/Latin/Tonga + { 124, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tsonga/Latin/South Africa + { 125, 7, 217,{ 3924,81 },{ 3924,81 },{ 185,27 },{ 3924,81 },{ 3924,81 },{ 185,27 }}, // Turkish/Latin/Turkey + { 125, 7, 56,{ 3924,81 },{ 3924,81 },{ 185,27 },{ 3924,81 },{ 3924,81 },{ 185,27 }}, // Turkish/Latin/Cyprus + { 126, 7, 218,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Turkmen/Latin/Turkmenistan + { 128, 1, 44,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uighur/Arabic/China + { 129, 2, 222,{ 4005,50 },{ 4055,81 },{ 185,27 },{ 4136,58 },{ 4055,81 },{ 185,27 }}, // Ukrainian/Cyrillic/Ukraine + { 130, 1, 163,{ 4194,67 },{ 4194,67 },{ 185,27 },{ 4194,67 },{ 4194,67 },{ 185,27 }}, // Urdu/Arabic/Pakistan + { 130, 1, 100,{ 4194,67 },{ 4194,67 },{ 185,27 },{ 4194,67 },{ 4194,67 },{ 185,27 }}, // Urdu/Arabic/India + { 131, 7, 228,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uzbek/Latin/Uzbekistan + { 131, 1, 1,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uzbek/Arabic/Afghanistan + { 131, 2, 228,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Uzbek/Cyrillic/Uzbekistan + { 132, 7, 232,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Vietnamese/Latin/Vietnam + { 133, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Volapuk/Latin/World + { 134, 7, 224,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Welsh/Latin/United Kingdom + { 135, 7, 187,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Wolof/Latin/Senegal + { 136, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Xhosa/Latin/South Africa + { 137, 18, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Yiddish/Hebrew/World + { 138, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Yoruba/Latin/Nigeria + { 138, 7, 23,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Yoruba/Latin/Benin + { 140, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Zulu/Latin/South Africa + { 141, 7, 161,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Norwegian Nynorsk/Latin/Norway + { 142, 7, 27,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bosnian/Latin/Bosnia And Herzegowina + { 142, 2, 27,{ 3248,81 },{ 3248,81 },{ 185,27 },{ 3248,81 },{ 3248,81 },{ 185,27 }}, // Bosnian/Cyrillic/Bosnia And Herzegowina + { 143, 29, 131,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Divehi/Thaana/Maldives + { 144, 7, 251,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Manx/Latin/Isle Of Man + { 145, 7, 224,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Cornish/Latin/United Kingdom + { 146, 7, 83,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Akan/Latin/Ghana + { 147, 13, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Konkani/Devanagari/India + { 148, 7, 83,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ga/Latin/Ghana + { 149, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Igbo/Latin/Nigeria + { 150, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kamba/Latin/Kenya + { 151, 33, 103,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Syriac/Syriac/Iraq + { 152, 14, 67,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Blin/Ethiopic/Eritrea + { 153, 14, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Geez/Ethiopic/Ethiopia + { 155, 7, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sidamo/Latin/Ethiopia + { 156, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Atsam/Latin/Nigeria + { 157, 14, 67,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tigre/Ethiopic/Eritrea + { 158, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Jju/Latin/Nigeria + { 159, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Friulian/Latin/Italy + { 160, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Venda/Latin/South Africa + { 161, 7, 83,{ 4261,48 },{ 4309,87 },{ 185,27 },{ 4261,48 },{ 4309,87 },{ 185,27 }}, // Ewe/Latin/Ghana + { 161, 7, 212,{ 4261,48 },{ 4309,87 },{ 185,27 },{ 4261,48 },{ 4309,87 },{ 185,27 }}, // Ewe/Latin/Togo + { 162, 14, 69,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Walamo/Ethiopic/Ethiopia + { 163, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Hawaiian/Latin/United States + { 164, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tyap/Latin/Nigeria + { 165, 7, 129,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nyanja/Latin/Malawi + { 166, 7, 170,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Filipino/Latin/Philippines + { 167, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swiss German/Latin/Switzerland + { 167, 7, 74,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swiss German/Latin/France + { 167, 7, 123,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Swiss German/Latin/Liechtenstein + { 168, 34, 44,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sichuan Yi/Yi/China + { 169, 7, 121,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kpelle/Latin/Liberia + { 170, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Low German/Latin/Germany + { 170, 7, 151,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Low German/Latin/Netherlands + { 171, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // South Ndebele/Latin/South Africa + { 172, 7, 195,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Sotho/Latin/South Africa + { 173, 7, 161,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Sami/Latin/Norway + { 173, 7, 73,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Sami/Latin/Finland + { 173, 7, 205,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Sami/Latin/Sweden + { 174, 7, 208,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Taroko/Latin/Taiwan + { 175, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Gusii/Latin/Kenya + { 176, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Taita/Latin/Kenya + { 177, 7, 187,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Senegal + { 177, 7, 34,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Burkina Faso + { 177, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Cameroon + { 177, 7, 80,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Gambia + { 177, 7, 83,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Ghana + { 177, 7, 91,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Guinea + { 177, 7, 92,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Guinea Bissau + { 177, 7, 121,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Liberia + { 177, 7, 136,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Mauritania + { 177, 7, 156,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Niger + { 177, 7, 157,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Nigeria + { 177, 7, 189,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Latin/Sierra Leone + { 177, 134, 91,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Fulah/Adlam/Guinea + { 178, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kikuyu/Latin/Kenya + { 179, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Samburu/Latin/Kenya + { 180, 7, 146,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sena/Latin/Mozambique + { 181, 7, 240,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // North Ndebele/Latin/Zimbabwe + { 182, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Rombo/Latin/Tanzania + { 183, 9, 145,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tachelhit/Tifinagh/Morocco + { 183, 7, 145,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tachelhit/Latin/Morocco + { 184, 7, 3,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kabyle/Latin/Algeria + { 185, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nyankole/Latin/Uganda + { 186, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bena/Latin/Tanzania + { 187, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Vunjo/Latin/Tanzania + { 188, 7, 132,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bambara/Latin/Mali + { 188, 75, 132,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bambara/Nko/Mali + { 189, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Embu/Latin/Kenya + { 190, 12, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Cherokee/Cherokee/United States + { 191, 7, 137,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Morisyen/Latin/Mauritius + { 192, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Makonde/Latin/Tanzania + { 193, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Langi/Latin/Tanzania + { 194, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ganda/Latin/Uganda + { 195, 7, 239,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bemba/Latin/Zambia + { 196, 7, 39,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kabuverdianu/Latin/Cape Verde + { 197, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Meru/Latin/Kenya + { 198, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kalenjin/Latin/Kenya + { 199, 7, 148,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nama/Latin/Namibia + { 200, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Machame/Latin/Tanzania + { 201, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Colognian/Latin/Germany + { 202, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Masai/Latin/Kenya + { 202, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Masai/Latin/Tanzania + { 203, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Soga/Latin/Uganda + { 204, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Luyia/Latin/Kenya + { 205, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Asu/Latin/Tanzania + { 206, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Teso/Latin/Uganda + { 206, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Teso/Latin/Kenya + { 207, 7, 67,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Saho/Latin/Eritrea + { 208, 7, 132,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Koyra Chiini/Latin/Mali + { 209, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Rwa/Latin/Tanzania + { 210, 7, 111,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Luo/Latin/Kenya + { 211, 7, 221,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Chiga/Latin/Uganda + { 212, 7, 145,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Central Morocco Tamazight/Latin/Morocco + { 213, 7, 132,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Koyraboro Senni/Latin/Mali + { 214, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Shambala/Latin/Tanzania + { 215, 13, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bodo/Devanagari/India + { 218, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Chechen/Cyrillic/Russia + { 219, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Church/Cyrillic/Russia + { 220, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Chuvash/Cyrillic/Russia + { 230, 7, 49,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Luba Katanga/Latin/Congo Kinshasa + { 231, 7, 125,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Luxembourgish/Latin/Luxembourg + { 236, 7, 21,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Walloon/Latin/Belgium + { 237, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Aghem/Latin/Cameroon + { 238, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Basaa/Latin/Cameroon + { 239, 7, 156,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Zarma/Latin/Niger + { 240, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Duala/Latin/Cameroon + { 241, 7, 187,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Jola Fonyi/Latin/Senegal + { 242, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ewondo/Latin/Cameroon + { 243, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Bafia/Latin/Cameroon + { 244, 7, 146,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Makhuwa Meetto/Latin/Mozambique + { 245, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mundang/Latin/Cameroon + { 246, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kwasio/Latin/Cameroon + { 247, 7, 254,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nuer/Latin/South Sudan + { 248, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sakha/Cyrillic/Russia + { 249, 7, 210,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sangu/Latin/Tanzania + { 251, 7, 156,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tasawaq/Latin/Niger + { 252, 35, 121,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Vai/Vai/Liberia + { 252, 7, 121,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Vai/Latin/Liberia + { 253, 7, 206,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Walser/Latin/Switzerland + { 254, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Yangben/Latin/Cameroon + { 256, 7, 197,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Asturian/Latin/Spain + { 257, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ngomba/Latin/Cameroon + { 258, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kako/Latin/Cameroon + { 259, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Meta/Latin/Cameroon + { 260, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ngiemboon/Latin/Cameroon + { 290, 11, 100,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Manipuri/Bengali/India + { 309, 100, 232,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Tai Dam/Tai Viet/Vietnam + { 312, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Akoose/Latin/Cameroon + { 313, 7, 225,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lakota/Latin/United States + { 314, 9, 145,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Standard Moroccan Tamazight/Tifinagh/Morocco + { 315, 7, 43,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mapuche/Latin/Chile + { 316, 1, 103,{ 4396,102 },{ 4396,102 },{ 185,27 },{ 4396,102 },{ 4396,102 },{ 185,27 }}, // Central Kurdish/Arabic/Iraq + { 316, 1, 102,{ 4396,102 },{ 4396,102 },{ 185,27 },{ 4396,102 },{ 4396,102 },{ 185,27 }}, // Central Kurdish/Arabic/Iran + { 317, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lower Sorbian/Latin/Germany + { 318, 7, 82,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Upper Sorbian/Latin/Germany + { 319, 7, 37,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kenyang/Latin/Cameroon + { 320, 7, 38,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mohawk/Latin/Canada + { 321, 75, 91,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Nko/Nko/Guinea + { 322, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Prussian/Latin/World + { 323, 7, 90,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Kiche/Latin/Guatemala + { 324, 7, 205,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Southern Sami/Latin/Sweden + { 325, 7, 205,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lule Sami/Latin/Sweden + { 326, 7, 73,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Inari Sami/Latin/Finland + { 327, 7, 73,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Skolt Sami/Latin/Finland + { 328, 7, 13,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Warlpiri/Latin/Australia + { 346, 1, 102,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Mazanderani/Arabic/Iran + { 349, 1, 102,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Luri/Arabic/Iran + { 349, 1, 103,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Northern Luri/Arabic/Iraq + { 357, 6, 97,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Cantonese/Traditional Han/Hong Kong + { 357, 5, 44,{ 484,39 },{ 484,39 },{ 185,27 },{ 484,39 },{ 484,39 },{ 185,27 }}, // Cantonese/Simplified Han/China + { 360, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Ido/Latin/World + { 361, 7, 260,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Lojban/Latin/World + { 362, 7, 106,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Sicilian/Latin/Italy + { 363, 1, 102,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Southern Kurdish/Arabic/Iran + { 364, 1, 163,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Western Balochi/Arabic/Pakistan + { 365, 7, 170,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Cebuano/Latin/Philippines + { 366, 2, 178,{ 48,84 },{ 48,84 },{ 185,27 },{ 48,84 },{ 48,84 },{ 185,27 }}, // Erzya/Cyrillic/Russia + { 0, 0, 0,{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0}}, // trailing zeros +}; + +static const ushort months_data[] = { +0x46, 0x61, 0x72, 0x3b, 0x4f, 0x72, 0x64, 0x3b, 0x4b, 0x68, 0x6f, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x3b, +0x53, 0x68, 0x61, 0x3b, 0x4d, 0x65, 0x68, 0x3b, 0x41, 0x62, 0x61, 0x3b, 0x41, 0x7a, 0x61, 0x3b, 0x44, 0x65, 0x79, 0x3b, +0x42, 0x61, 0x68, 0x3b, 0x45, 0x73, 0x66, 0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, +0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, +0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x53, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, +0x65, 0x68, 0x72, 0x3b, 0x41, 0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x61, +0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x46, 0x3b, 0x4f, 0x3b, 0x4b, 0x3b, 0x54, 0x3b, +0x4d, 0x3b, 0x53, 0x3b, 0x4d, 0x3b, 0x41, 0x3b, 0x41, 0x3b, 0x44, 0x3b, 0x42, 0x3b, 0x45, 0x3b, 0x31, 0x3b, 0x32, 0x3b, +0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, 0x3b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, +0x31, 0x32, 0x3b, 0x31, 0x33, 0x31, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, +0x3b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x641, 0x631, 0x641, 0x631, 0x62f, 0x646, 0x3b, 0x623, +0x630, 0x631, 0x628, 0x64a, 0x647, 0x634, 0x62a, 0x3b, 0x62e, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x627, 0x631, 0x3b, 0x645, 0x631, +0x62f, 0x627, 0x62f, 0x3b, 0x634, 0x647, 0x631, 0x641, 0x627, 0x631, 0x3b, 0x645, 0x647, 0x631, 0x3b, 0x622, 0x64a, 0x627, 0x646, 0x3b, +0x622, 0x630, 0x631, 0x3b, 0x62f, 0x64a, 0x3b, 0x628, 0x647, 0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f, 0x627, 0x631, 0x3b, +0x9ab, 0x9cd, 0x9af, 0x9be, 0x9ad, 0x9be, 0x9b0, 0x9cd, 0x9a1, 0x9bf, 0x9a8, 0x3b, 0x985, 0x9b0, 0x9a1, 0x9bf, 0x9ac, 0x9c7, 0x9b9, 0x9c7, +0x9b6, 0x9cd, 0x9a4, 0x3b, 0x996, 0x9cb, 0x9b0, 0x9cd, 0x9a6, 0x9cd, 0x9a6, 0x3b, 0x9a4, 0x9c0, 0x9b0, 0x3b, 0x9ae, 0x9b0, 0x9cd, 0x9af, +0x9be, 0x9a6, 0x3b, 0x9b6, 0x9be, 0x9b9, 0x9b0, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, 0x9ae, 0x9c7, 0x9b9, 0x9c7, 0x9b0, 0x3b, 0x986, 0x9ac, +0x9be, 0x9a8, 0x3b, 0x986, 0x99c, 0x9be, 0x9b0, 0x3b, 0x9a6, 0x9c7, 0x3b, 0x9ac, 0x9be, 0x9b9, 0x9ae, 0x9be, 0x9a8, 0x3b, 0x98f, 0x9b8, +0x9ab, 0x9cd, 0x9af, 0x9be, 0x9a8, 0x9cd, 0x9a1, 0x3b, 0x9ab, 0x9cd, 0x9af, 0x9be, 0x9ad, 0x9be, 0x9b0, 0x9cd, 0x9a1, 0x9bf, 0x9a8, 0x3b, +0x985, 0x9b0, 0x9a1, 0x9bf, 0x9ac, 0x9c7, 0x9b9, 0x9c7, 0x9b6, 0x9cd, 0x9a4, 0x3b, 0x996, 0x9cb, 0x9b0, 0x9cd, 0x9a6, 0x9cd, 0x9a6, 0x3b, +0x9a4, 0x9c0, 0x9b0, 0x3b, 0x9ae, 0x9b0, 0x9cd, 0x9af, 0x9be, 0x9a6, 0x3b, 0x9b6, 0x9be, 0x9b9, 0x9b0, 0x9bf, 0x9ac, 0x9be, 0x9b0, 0x3b, +0x9ae, 0x9c7, 0x9b9, 0x9c7, 0x9b0, 0x3b, 0x986, 0x9ac, 0x9be, 0x9a8, 0x3b, 0x9ac, 0x9be, 0x99c, 0x9be, 0x9b0, 0x3b, 0x9a6, 0x9c7, 0x3b, +0x9ac, 0x9be, 0x9b9, 0x9ae, 0x9be, 0x9a8, 0x3b, 0x98f, 0x9b8, 0x9ab, 0x9cd, 0x9af, 0x9be, 0x9a8, 0x9cd, 0x9a1, 0x3b, 0x9e7, 0x3b, 0x9e8, +0x3b, 0x9e9, 0x3b, 0x9ea, 0x3b, 0x9eb, 0x3b, 0x9ec, 0x3b, 0x9ed, 0x3b, 0x9ee, 0x3b, 0x9ef, 0x3b, 0x9e7, 0x9e6, 0x3b, 0x9e7, 0x9e7, +0x3b, 0x9e7, 0x9e8, 0x3b, 0x31, 0x6708, 0x3b, 0x32, 0x6708, 0x3b, 0x33, 0x6708, 0x3b, 0x34, 0x6708, 0x3b, 0x35, 0x6708, 0x3b, 0x36, +0x6708, 0x3b, 0x37, 0x6708, 0x3b, 0x38, 0x6708, 0x3b, 0x39, 0x6708, 0x3b, 0x31, 0x30, 0x6708, 0x3b, 0x31, 0x31, 0x6708, 0x3b, 0x31, +0x32, 0x6708, 0x3b, 0x4e00, 0x6708, 0x3b, 0x4e8c, 0x6708, 0x3b, 0x4e09, 0x6708, 0x3b, 0x56db, 0x6708, 0x3b, 0x4e94, 0x6708, 0x3b, 0x516d, 0x6708, +0x3b, 0x4e03, 0x6708, 0x3b, 0x516b, 0x6708, 0x3b, 0x4e5d, 0x6708, 0x3b, 0x5341, 0x6708, 0x3b, 0x5341, 0x4e00, 0x6708, 0x3b, 0x5341, 0x4e8c, 0x6708, +0x3b, 0x31, 0x2e, 0x3b, 0x32, 0x2e, 0x3b, 0x33, 0x2e, 0x3b, 0x34, 0x2e, 0x3b, 0x35, 0x2e, 0x3b, 0x36, 0x2e, 0x3b, 0x37, +0x2e, 0x3b, 0x38, 0x2e, 0x3b, 0x39, 0x2e, 0x3b, 0x31, 0x30, 0x2e, 0x3b, 0x31, 0x31, 0x2e, 0x3b, 0x31, 0x32, 0x2e, 0x3b, +0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, +0x3b, 0x63, 0x68, 0x6f, 0x72, 0x64, 0xe1, 0x64, 0x3b, 0x74, 0xed, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x64, 0xe1, 0x64, 0x3b, +0x161, 0x61, 0x68, 0x72, 0xed, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, 0xe1, 0x62, 0xe1, 0x6e, 0x3b, 0xe1, +0x7a, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x69, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x65, 0x73, 0x66, 0x61, 0x6e, +0x64, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, +0x73, 0x68, 0x74, 0x3b, 0x6b, 0x68, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x64, +0x61, 0x64, 0x3b, 0x73, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, 0x61, 0x62, +0x61, 0x6e, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x65, +0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, +0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x3b, 0x6b, 0x68, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, +0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x161, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, +0x61, 0x62, 0x61, 0x6e, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, +0x3b, 0x65, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x6b, 0x75, 0x75, +0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x6b, 0x75, 0x75, 0x3b, 0x6b, 0x68, 0x6f, 0x72, 0x64, +0x61, 0x64, 0x6b, 0x75, 0x75, 0x3b, 0x74, 0x69, 0x72, 0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x6b, +0x75, 0x75, 0x3b, 0x161, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x6b, 0x75, 0x75, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x6b, +0x75, 0x75, 0x3b, 0x61, 0x62, 0x61, 0x6e, 0x6b, 0x75, 0x75, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x6b, 0x75, 0x75, 0x3b, 0x64, +0x65, 0x79, 0x6b, 0x75, 0x75, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x6b, 0x75, 0x75, 0x3b, 0x65, 0x73, 0x66, 0x61, +0x6e, 0x64, 0x6b, 0x75, 0x75, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x6b, 0x75, 0x75, 0x74, 0x61, +0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6b, 0x68, 0x6f, +0x72, 0x64, 0x61, 0x64, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x74, 0x69, 0x72, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, +0x6f, 0x72, 0x64, 0x61, 0x64, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x161, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x6b, +0x75, 0x75, 0x74, 0x61, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x61, 0x62, 0x61, 0x6e, 0x6b, +0x75, 0x75, 0x74, 0x61, 0x3b, 0x61, 0x7a, 0x61, 0x72, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x64, 0x65, 0x79, 0x6b, 0x75, +0x75, 0x74, 0x61, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x65, 0x73, 0x66, 0x61, +0x6e, 0x64, 0x6b, 0x75, 0x75, 0x74, 0x61, 0x3b, 0x66, 0x61, 0x72, 0x2e, 0x3b, 0x6f, 0x72, 0x64, 0x2e, 0x3b, 0x6b, 0x68, +0x6f, 0x2e, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x2e, 0x3b, 0x161, 0x61, 0x68, 0x2e, 0x3b, 0x6d, 0x65, 0x68, +0x72, 0x3b, 0xe2, 0x62, 0xe2, 0x6e, 0x3b, 0xe2, 0x7a, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x2e, +0x3b, 0x65, 0x73, 0x66, 0x2e, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, +0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x3b, 0x6b, 0x68, 0x6f, 0x72, 0x64, 0xe2, 0x64, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, +0x6f, 0x72, 0x64, 0xe2, 0x64, 0x3b, 0x161, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, +0xe2, 0x62, 0xe2, 0x6e, 0x3b, 0xe2, 0x7a, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, +0x3b, 0x65, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x46, 0x61, 0x72, 0x2e, 0x3b, 0x4f, 0x72, 0x64, 0x2e, 0x3b, 0x4b, 0x68, +0x6f, 0x2e, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x2e, 0x3b, 0x160, 0x61, 0x68, 0x2e, 0x3b, 0x4d, 0x65, 0x68, +0x72, 0x3b, 0xc2, 0x62, 0xe2, 0x2e, 0x3b, 0xc2, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x61, 0x68, 0x2e, +0x3b, 0x45, 0x73, 0x66, 0x2e, 0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, +0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0xe2, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, +0x6f, 0x72, 0x64, 0xe2, 0x64, 0x3b, 0x160, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, +0xc2, 0x62, 0xe2, 0x6e, 0x3b, 0xc2, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, +0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x10e4, 0x10d0, 0x10e0, 0x10d5, 0x10d0, 0x10e0, 0x10d3, 0x10d8, 0x10dc, 0x10d8, 0x3b, 0x10dd, +0x10e0, 0x10d3, 0x10d8, 0x10d1, 0x10d4, 0x10f0, 0x10d4, 0x10e8, 0x10d7, 0x10d8, 0x3b, 0x10ee, 0x10dd, 0x10e0, 0x10d3, 0x10d0, 0x10d3, 0x10d8, 0x3b, 0x10d7, +0x10d8, 0x10e0, 0x10d8, 0x3b, 0x10db, 0x10dd, 0x10e0, 0x10d3, 0x10d0, 0x10d3, 0x10d8, 0x3b, 0x10e8, 0x10d0, 0x10f0, 0x10e0, 0x10d8, 0x10d5, 0x10d0, 0x10e0, +0x10d8, 0x3b, 0x10db, 0x10d4, 0x10f0, 0x10e0, 0x10d8, 0x3b, 0x10d0, 0x10d1, 0x10d0, 0x10dc, 0x10d8, 0x3b, 0x10d0, 0x10d6, 0x10d0, 0x10e0, 0x10d8, 0x3b, +0x10d3, 0x10d4, 0x10d8, 0x3b, 0x10d1, 0x10d0, 0x10f0, 0x10db, 0x10d0, 0x10dc, 0x10d8, 0x3b, 0x10d4, 0x10e1, 0x10e4, 0x10d0, 0x10dc, 0x10d3, 0x10d8, 0x3b, +0x46, 0x61, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x63, +0x68, 0x74, 0x3b, 0x43, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x101, +0x64, 0x3b, 0x53, 0x63, 0x68, 0x61, 0x68, 0x72, 0x69, 0x77, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x100, 0x62, +0x101, 0x6e, 0x3b, 0x100, 0x73, 0x61, 0x72, 0x3b, 0x44, 0xe9, 0x69, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, +0x73, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0xaab, 0xabe, 0xab0, 0xacd, 0xab5, 0xabe, 0xab0, 0xacd, 0xaa6, 0xabf, 0xaa8, 0x3b, 0xa93, +0xab0, 0xaa1, 0xac0, 0xaac, 0xac7, 0xab9, 0xac7, 0xab6, 0xacd, 0xa9f, 0x3b, 0xa96, 0xacb, 0xab0, 0xaa6, 0xabe, 0xaa6, 0x3b, 0xaa4, 0xabf, +0xab0, 0x3b, 0xaae, 0xacb, 0xab0, 0xacd, 0xaa6, 0xabe, 0xaa6, 0x3b, 0xab6, 0xabe, 0xab9, 0xab0, 0xabf, 0xab5, 0xab0, 0x3b, 0xaae, 0xac7, +0xab9, 0xab0, 0x3b, 0xa85, 0xaac, 0xabe, 0xaa8, 0x3b, 0xa85, 0xa9d, 0xabe, 0xab0, 0x3b, 0xaa1, 0xac7, 0xaaf, 0x3b, 0xaac, 0xabe, 0xab9, +0xaae, 0xac7, 0xaa8, 0x3b, 0xa8f, 0xab8, 0xacd, 0xaab, 0xabe, 0xaa8, 0xacd, 0xaa1, 0x3b, 0x5e4, 0x5e8, 0x5d5, 0x5e8, 0x5d3, 0x5d9, 0x5df, +0x3b, 0x5d0, 0x5e8, 0x5d3, 0x5d9, 0x5d1, 0x5d4, 0x5e9, 0x5ea, 0x3b, 0x5d7, 0x5f3, 0x5e8, 0x5d3, 0x5d0, 0x5d3, 0x3b, 0x5ea, 0x5d9, 0x5e8, +0x3b, 0x5de, 0x5e8, 0x5d3, 0x5d0, 0x5d3, 0x3b, 0x5e9, 0x5d4, 0x5e8, 0x5d9, 0x5d5, 0x5e8, 0x3b, 0x5de, 0x5d4, 0x5e8, 0x3b, 0x5d0, 0x5d1, +0x5d0, 0x5df, 0x3b, 0x5d0, 0x5d3, 0x5f3, 0x5e8, 0x3b, 0x5d3, 0x5d9, 0x3b, 0x5d1, 0x5d4, 0x5de, 0x5df, 0x3b, 0x5d0, 0x5e1, 0x5e4, 0x5e0, +0x5d3, 0x3b, 0x92b, 0x930, 0x94d, 0x935, 0x93e, 0x926, 0x93f, 0x928, 0x3b, 0x913, 0x930, 0x94d, 0x926, 0x93f, 0x935, 0x947, 0x939, 0x947, +0x938, 0x94d, 0x91f, 0x3b, 0x916, 0x94b, 0x930, 0x930, 0x94d, 0x926, 0x93e, 0x926, 0x3b, 0x91f, 0x93f, 0x930, 0x3b, 0x92e, 0x94b, 0x930, +0x926, 0x93e, 0x926, 0x3b, 0x936, 0x93e, 0x939, 0x930, 0x940, 0x935, 0x930, 0x94d, 0x3b, 0x92e, 0x947, 0x939, 0x930, 0x3b, 0x905, 0x935, +0x928, 0x3b, 0x905, 0x91c, 0x93c, 0x930, 0x3b, 0x921, 0x947, 0x3b, 0x92c, 0x939, 0x92e, 0x928, 0x3b, 0x908, 0x938, 0x94d, 0x92b, 0x928, +0x94d, 0x926, 0x94d, 0x3b, 0x30d5, 0x30a1, 0x30eb, 0x30f4, 0x30a1, 0x30eb, 0x30c7, 0x30a3, 0x30fc, 0x30f3, 0x3b, 0x30aa, 0x30eb, 0x30c7, 0x30a3, 0x30fc, +0x30d9, 0x30d8, 0x30b7, 0x30e5, 0x30c8, 0x3b, 0x30db, 0x30eb, 0x30c0, 0x30fc, 0x30c9, 0x3b, 0x30c6, 0x30a3, 0x30fc, 0x30eb, 0x3b, 0x30e2, 0x30eb, 0x30c0, +0x30fc, 0x30c9, 0x3b, 0x30b7, 0x30e3, 0x30cf, 0x30ea, 0x30fc, 0x30f4, 0x30a1, 0x30eb, 0x3b, 0x30e1, 0x30d5, 0x30eb, 0x3b, 0x30a2, 0x30fc, 0x30d0, 0x30fc, +0x30f3, 0x3b, 0x30a2, 0x30fc, 0x30b6, 0x30eb, 0x3b, 0x30c7, 0x30a4, 0x3b, 0x30d0, 0x30d5, 0x30de, 0x30f3, 0x3b, 0x30a8, 0x30b9, 0x30d5, 0x30a1, 0x30f3, +0x30c9, 0x3b, 0xcab, 0xcb0, 0xccd, 0xcb5, 0xcb0, 0xccd, 0xca6, 0xcbf, 0xca8, 0xccd, 0x3b, 0xc93, 0xcb0, 0xccd, 0xca6, 0xcbf, 0xcac, 0xcc6, +0xcb9, 0xcc6, 0xcb6, 0xccd, 0xc9f, 0xccd, 0x3b, 0xc96, 0xccb, 0xcb0, 0xccd, 0xca1, 0xcbe, 0xca6, 0xccd, 0x3b, 0xc9f, 0xcbf, 0xcb0, 0xccd, +0x3b, 0xcae, 0xcca, 0xcb0, 0xccd, 0xca6, 0xcbe, 0xca6, 0xccd, 0x3b, 0xcb6, 0xcb9, 0xcb0, 0xcbf, 0xcb5, 0xcbe, 0xcb0, 0xccd, 0x3b, 0xcae, +0xcc6, 0xcb9, 0xccd, 0xcb0, 0xccd, 0x3b, 0xc85, 0xcac, 0xca8, 0xccd, 0x3b, 0xc85, 0xc9d, 0xcb0, 0xccd, 0x3b, 0xca1, 0xcc7, 0x3b, 0xcac, +0xcb9, 0xccd, 0xcae, 0xca8, 0xccd, 0x3b, 0xc8e, 0xcb8, 0xccd, 0xcab, 0xcbe, 0xc82, 0xca1, 0xccd, 0x3b, 0xd654, 0xb974, 0xbc14, 0xb518, 0x3b, +0xc624, 0xb974, 0xb514, 0xbca0, 0xd5e4, 0xc26c, 0xd2b8, 0x3b, 0xd638, 0xb974, 0xb2e4, 0xb4dc, 0x3b, 0xd2f0, 0xb974, 0x3b, 0xbaa8, 0xb974, 0xb2e4, 0xb4dc, +0x3b, 0xc0e4, 0xd750, 0xb9ac, 0xbc14, 0xb974, 0x3b, 0xba54, 0xd750, 0xb974, 0x3b, 0xc544, 0xbc18, 0x3b, 0xc544, 0xc790, 0xb974, 0x3b, 0xb2e4, 0xc774, +0x3b, 0xbc14, 0xd750, 0xb9cc, 0x3b, 0xc5d0, 0xc2a4, 0xd310, 0xb4dc, 0x3b, 0xe9f, 0xea3, 0xeb2, 0xea7, 0xeb2, 0xe94, 0xeb4, 0xe99, 0x3b, 0xead, +0xecd, 0xea3, 0xe94, 0xeb5, 0xe9a, 0xeb5, 0xec0, 0xeab, 0xeae, 0xe94, 0x3b, 0xe84, 0xecd, 0xea3, 0xec0, 0xe94, 0xe94, 0x3b, 0xec1, 0xe95, +0xea3, 0x3b, 0xea1, 0xecd, 0xea3, 0xec0, 0xe94, 0xe94, 0x3b, 0xe8a, 0xeb2, 0xea3, 0xea5, 0xeb4, 0xea7, 0xeb2, 0x3b, 0xec0, 0xea1, 0xeb5, +0x3b, 0xead, 0xeb2, 0xe9a, 0xeb2, 0xe99, 0x3b, 0xead, 0xeb2, 0xe8a, 0xeb2, 0x3b, 0xe94, 0xeb5, 0xea3, 0x3b, 0xe9a, 0xea3, 0xeb2, 0xea1, +0xeb2, 0xe99, 0x3b, 0xec0, 0xead, 0xeaa, 0xe9f, 0xeb2, 0xe99, 0x3b, 0xe9f, 0xea3, 0xeb2, 0xea7, 0xeb2, 0xe94, 0xeb4, 0xe99, 0x3b, 0xead, +0xecd, 0xea3, 0xe94, 0xeb5, 0xe9a, 0xeb5, 0xec0, 0xeab, 0xea3, 0xe94, 0x3b, 0xe84, 0xecd, 0xea3, 0xec0, 0xe94, 0xe94, 0x3b, 0xec1, 0xe95, +0xea3, 0x3b, 0xea1, 0xecd, 0xea3, 0xec0, 0xe94, 0xe94, 0x3b, 0xe8a, 0xeb2, 0xea3, 0xeab, 0xeb4, 0xea7, 0xeb2, 0x3b, 0xec0, 0xea1, 0xeb5, +0x3b, 0xead, 0xeb2, 0xe9a, 0xeb2, 0xe99, 0x3b, 0xead, 0xeb2, 0xe8a, 0xeb2, 0xea3, 0x3b, 0xe94, 0xeb5, 0xea3, 0x3b, 0xe9a, 0xea3, 0xeb2, +0xec1, 0xea1, 0xe99, 0x3b, 0xec0, 0xead, 0xeaa, 0xe9f, 0xeb2, 0xe99, 0x3b, 0xe9f, 0xeb2, 0xea3, 0xea7, 0xeb2, 0xe94, 0xeb4, 0xe99, 0x3b, +0xead, 0xecd, 0xea3, 0xe94, 0xeb5, 0xe9a, 0xeb5, 0xec0, 0xeab, 0xea3, 0xe94, 0x3b, 0xe84, 0xecd, 0xea3, 0xec0, 0xe94, 0xe94, 0x3b, 0xec1, +0xe95, 0xea3, 0x3b, 0xea1, 0xecd, 0xea3, 0xec0, 0xe94, 0xe94, 0x3b, 0xe8a, 0xeb2, 0xea3, 0xeab, 0xeb4, 0xea7, 0xeb2, 0x3b, 0xec0, 0xea1, +0xeb5, 0x3b, 0xead, 0xeb2, 0xe9a, 0xeb2, 0xe99, 0x3b, 0xead, 0xeb2, 0xe8a, 0xeb2, 0x3b, 0xe94, 0xeb5, 0xea3, 0x3b, 0xe9a, 0xea3, 0xeb2, +0xea1, 0xeb2, 0xe99, 0x3b, 0xec0, 0xead, 0xeaa, 0xe9f, 0xeb2, 0xe99, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x12b, 0x6e, +0x73, 0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x73, 0x3b, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, +0x73, 0x3b, 0x74, 0x12b, 0x72, 0x73, 0x3b, 0x6d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x73, 0x3b, 0x161, 0x61, 0x68, 0x72, 0x69, +0x76, 0x113, 0x72, 0x73, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x73, 0x3b, 0x61, 0x62, 0x61, 0x6e, 0x73, 0x3b, 0x61, 0x7a, 0x65, +0x72, 0x73, 0x3b, 0x64, 0x65, 0x6a, 0x73, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x73, 0x3b, 0x65, 0x73, 0x66, 0x61, +0x6e, 0x64, 0x73, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, 0x440, 0x434, 0x438, 0x43d, 0x3b, 0x43e, 0x440, 0x434, 0x438, 0x431, 0x435, +0x445, 0x435, 0x448, 0x442, 0x3b, 0x43a, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x442, 0x438, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x434, +0x430, 0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x438, 0x432, 0x430, 0x440, 0x3b, 0x43c, 0x435, 0x440, 0x3b, 0x430, 0x431, 0x430, 0x43d, +0x3b, 0x430, 0x437, 0x430, 0x440, 0x3b, 0x434, 0x435, 0x458, 0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d, 0x3b, 0x435, 0x441, 0x444, +0x430, 0x43d, 0x434, 0x3b, 0xd2b, 0xd7c, 0xd35, 0xd3e, 0xd7c, 0xd26, 0xd3f, 0xd7b, 0x3b, 0xd13, 0xd7c, 0xd21, 0xd3f, 0xd2c, 0xd46, 0xd39, +0xd46, 0xd37, 0xd4d, 0x200c, 0xd31, 0xd4d, 0xd31, 0xd4d, 0x3b, 0xd16, 0xd4b, 0xd7c, 0xd26, 0xd3e, 0xd26, 0xd4d, 0x3b, 0xd1f, 0xd3f, 0xd7c, +0x3b, 0xd2e, 0xd4b, 0xd7c, 0xd26, 0xd3e, 0xd26, 0xd4d, 0x3b, 0xd37, 0xd39, 0xd4d, 0x200c, 0xd30, 0xd3f, 0xd35, 0xd3e, 0xd7c, 0x3b, 0xd2e, +0xd46, 0xd39, 0xd7c, 0x3b, 0xd05, 0xd2c, 0xd3e, 0xd7b, 0x3b, 0xd05, 0xd38, 0xd7c, 0x3b, 0xd21, 0xd46, 0xd2f, 0xd4d, 0x3b, 0xd2c, 0xd39, +0xd4d, 0x200c, 0xd2e, 0xd3e, 0xd7b, 0x3b, 0xd0e, 0xd38, 0xd4d, 0x200c, 0xd2b, 0xd3e, 0xd7b, 0xd21, 0xd4d, 0x3b, 0xd2b, 0x2e, 0x3b, 0xd13, +0x2e, 0x3b, 0xd16, 0xd4b, 0x3b, 0xd1f, 0xd3f, 0x2e, 0x3b, 0xd2e, 0xd4b, 0x2e, 0x3b, 0xd37, 0x2e, 0x3b, 0xd2e, 0xd46, 0x2e, 0x3b, +0xd05, 0x2e, 0x3b, 0xd05, 0x2e, 0x3b, 0xd21, 0xd46, 0x2e, 0x3b, 0xd2c, 0x2e, 0x3b, 0xd0e, 0x2e, 0x3b, 0x92b, 0x930, 0x935, 0x930, +0x926, 0x93f, 0x928, 0x3b, 0x913, 0x930, 0x94d, 0x926, 0x93f, 0x92c, 0x947, 0x939, 0x947, 0x936, 0x94d, 0x924, 0x3b, 0x916, 0x94b, 0x930, +0x926, 0x93e, 0x926, 0x3b, 0x924, 0x93f, 0x930, 0x3b, 0x92e, 0x94b, 0x930, 0x926, 0x93e, 0x926, 0x3b, 0x936, 0x93e, 0x939, 0x930, 0x940, +0x935, 0x93e, 0x930, 0x3b, 0x92e, 0x947, 0x939, 0x947, 0x930, 0x3b, 0x905, 0x92c, 0x93e, 0x928, 0x3b, 0x905, 0x91d, 0x93e, 0x930, 0x3b, +0x926, 0x947, 0x3b, 0x92c, 0x93e, 0x939, 0x92e, 0x93e, 0x928, 0x3b, 0x90f, 0x938, 0x92b, 0x93e, 0x902, 0x926, 0x3b, 0x967, 0x3b, 0x968, +0x3b, 0x969, 0x3b, 0x96a, 0x3b, 0x96b, 0x3b, 0x96c, 0x3b, 0x96d, 0x3b, 0x96e, 0x3b, 0x96f, 0x3b, 0x967, 0x966, 0x3b, 0x967, 0x967, +0x3b, 0x967, 0x968, 0x3b, 0x648, 0x631, 0x6cc, 0x3b, 0x63a, 0x648, 0x6cc, 0x6cc, 0x3b, 0x63a, 0x628, 0x631, 0x6af, 0x648, 0x644, 0x6cc, +0x3b, 0x686, 0x646, 0x6af, 0x627, 0x69a, 0x3b, 0x632, 0x645, 0x631, 0x6cc, 0x3b, 0x648, 0x696, 0x6cc, 0x3b, 0x62a, 0x644, 0x647, 0x3b, +0x644, 0x693, 0x645, 0x3b, 0x644, 0x6cc, 0x646, 0x62f, 0x6cd, 0x3b, 0x645, 0x631, 0x63a, 0x648, 0x645, 0x6cc, 0x3b, 0x633, 0x644, 0x648, +0x627, 0x63a, 0x647, 0x3b, 0x6a9, 0x628, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x62f, 0x6cc, 0x646, 0x3b, 0x627, 0x631, 0x62f, 0x6cc, 0x628, +0x647, 0x634, 0x62a, 0x3b, 0x62e, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x6cc, 0x631, 0x3b, 0x645, 0x631, 0x62f, 0x627, 0x62f, 0x3b, +0x634, 0x647, 0x631, 0x6cc, 0x648, 0x631, 0x3b, 0x645, 0x647, 0x631, 0x3b, 0x622, 0x628, 0x627, 0x646, 0x3b, 0x622, 0x630, 0x631, 0x3b, +0x62f, 0x6cc, 0x3b, 0x628, 0x647, 0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f, 0x3b, 0x641, 0x3b, 0x627, 0x3b, 0x62e, 0x3b, +0x62a, 0x3b, 0x645, 0x3b, 0x634, 0x3b, 0x645, 0x3b, 0x622, 0x3b, 0x622, 0x3b, 0x62f, 0x3b, 0x628, 0x3b, 0x627, 0x3b, 0x62d, 0x3b, +0x62b, 0x3b, 0x62c, 0x3b, 0x633, 0x3b, 0x627, 0x3b, 0x633, 0x3b, 0x645, 0x3b, 0x639, 0x3b, 0x642, 0x3b, 0x62c, 0x3b, 0x62f, 0x3b, +0x62d, 0x3b, 0x62d, 0x645, 0x644, 0x3b, 0x62b, 0x648, 0x631, 0x3b, 0x62c, 0x648, 0x632, 0x627, 0x3b, 0x633, 0x631, 0x637, 0x627, 0x646, +0x3b, 0x627, 0x633, 0x62f, 0x3b, 0x633, 0x646, 0x628, 0x644, 0x647, 0x654, 0x3b, 0x645, 0x6cc, 0x632, 0x627, 0x646, 0x3b, 0x639, 0x642, +0x631, 0x628, 0x3b, 0x642, 0x648, 0x633, 0x3b, 0x62c, 0x62f, 0x6cc, 0x3b, 0x62f, 0x644, 0x648, 0x3b, 0x62d, 0x648, 0x62a, 0x3b, 0x46, +0x61, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x7a, 0x74, +0x3b, 0x43, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, +0x53, 0x7a, 0x61, 0x68, 0x72, 0x69, 0x77, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x100, 0x62, 0x101, 0x6e, 0x3b, +0x100, 0x73, 0x61, 0x72, 0x3b, 0x44, 0xe9, 0x69, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, +0x6e, 0x64, 0x3b, 0xa2b, 0xa3e, 0xa30, 0xa35, 0xa30, 0xa21, 0xa40, 0xa28, 0x3b, 0xa14, 0xa30, 0xa21, 0xa3e, 0xa08, 0xa2c, 0xa39, 0xa48, +0xa38, 0xa3c, 0xa1f, 0x3b, 0xa16, 0xa4b, 0xa21, 0xa30, 0xa21, 0x3b, 0xa1f, 0xa3f, 0xa30, 0x3b, 0xa2e, 0xa4b, 0xa30, 0xa21, 0xa3e, 0xa26, +0x3b, 0xa38, 0xa3c, 0xa30, 0xa3e, 0xa07, 0xa35, 0xa30, 0x3b, 0xa2e, 0xa47, 0xa39, 0xa30, 0x3b, 0xa05, 0xa2c, 0xa3e, 0xa28, 0x3b, 0xa05, +0xa1c, 0xa3c, 0xa3e, 0xa30, 0x3b, 0xa21, 0xa47, 0xa05, 0x3b, 0xa2c, 0xa3e, 0xa39, 0xa2e, 0xa28, 0x3b, 0xa10, 0xa38, 0xa2b, 0xa70, 0xa21, +0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, +0x68, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x41, 0x2d, 0x4d, 0x6f, 0x72, +0x64, 0x61, 0x64, 0x3b, 0x53, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41, +0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, +0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, 0x440, 0x434, 0x438, 0x43d, 0x3b, 0x43e, 0x440, 0x434, +0x438, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x445, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x442, 0x438, 0x440, 0x3b, 0x43c, +0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x438, 0x432, 0x435, 0x440, 0x3b, 0x43c, 0x435, 0x445, 0x440, 0x3b, +0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d, +0x3b, 0x44d, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x424, 0x430, 0x440, 0x430, 0x432, 0x430, 0x434, 0x438, 0x43d, 0x3b, 0x41e, 0x440, +0x434, 0x438, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x41a, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x422, 0x438, 0x440, 0x3b, +0x41c, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x428, 0x430, 0x445, 0x440, 0x438, 0x432, 0x430, 0x440, 0x3b, 0x41c, 0x435, 0x445, 0x440, +0x3b, 0x410, 0x431, 0x430, 0x43d, 0x3b, 0x410, 0x437, 0x430, 0x440, 0x3b, 0x414, 0x435, 0x458, 0x3b, 0x411, 0x430, 0x445, 0x43c, 0x430, +0x43d, 0x3b, 0x415, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x46, 0x61, 0x72, 0x61, 0x76, 0x61, 0x64, 0x69, 0x6e, 0x3b, 0x4f, +0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x161, 0x74, 0x3b, 0x4b, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72, +0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x160, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, 0x3b, 0x4d, 0x65, 0x68, +0x72, 0x3b, 0x41, 0x62, 0x61, 0x6e, 0x3b, 0x41, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x6a, 0x3b, 0x42, 0x61, 0x68, 0x6d, +0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x46, 0x61, 0x72, 0x76, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x3b, +0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x4b, 0x68, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, +0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x53, 0x68, 0x61, 0x68, 0x72, 0x69, 0x76, 0x61, 0x72, +0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x100, 0x62, 0x101, 0x6e, 0x3b, 0x100, 0x7a, 0x61, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, +0x42, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x45, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0x66, 0x61, 0x72, 0x76, 0x61, 0x72, +0x64, 0x69, 0x6e, 0x3b, 0x6f, 0x72, 0x64, 0x69, 0x62, 0x65, 0x68, 0x65, 0x73, 0x68, 0x74, 0x3b, 0x6b, 0x68, 0x6f, 0x72, +0x64, 0x101, 0x64, 0x3b, 0x74, 0x69, 0x72, 0x3b, 0x6d, 0x6f, 0x72, 0x64, 0x101, 0x64, 0x3b, 0x73, 0x68, 0x61, 0x68, 0x72, +0x69, 0x76, 0x61, 0x72, 0x3b, 0x6d, 0x65, 0x68, 0x72, 0x3b, 0x101, 0x62, 0x101, 0x6e, 0x3b, 0x101, 0x7a, 0x61, 0x72, 0x3b, +0x64, 0x65, 0x79, 0x3b, 0x62, 0x61, 0x68, 0x6d, 0x61, 0x6e, 0x3b, 0x65, 0x73, 0x66, 0x61, 0x6e, 0x64, 0x3b, 0xb83, 0xbaa, +0xbb0, 0xbcd, 0x2e, 0x3b, 0xb86, 0xbb0, 0xbcd, 0xb9f, 0xbbf, 0x2e, 0x3b, 0xb95, 0xbca, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xba4, 0xbbf, 0xbb0, +0xbcd, 0x3b, 0xbae, 0xbca, 0xbb0, 0xbcd, 0x2e, 0x3b, 0xbb7, 0xbbe, 0xbb0, 0xbbf, 0x2e, 0x3b, 0xbae, 0xbc6, 0xbb9, 0xbcd, 0x2e, 0x3b, +0xb85, 0xbaa, 0xbbe, 0x2e, 0x3b, 0xb85, 0xb9a, 0xbbe, 0x2e, 0x3b, 0xba4, 0xbc7, 0x3b, 0xbaa, 0xbb9, 0xbcd, 0x2e, 0x3b, 0xb8e, 0xb83, +0x2e, 0x3b, 0xb83, 0xbaa, 0xbb0, 0xbcd, 0xbb5, 0xbbe, 0xba4, 0xbbf, 0xba9, 0xbcd, 0x3b, 0xb86, 0xbb0, 0xbcd, 0xb9f, 0xbbf, 0xbaa, 0xbc6, +0xbb9, 0xbc6, 0xbb7, 0xbcd, 0xba4, 0xbcd, 0x3b, 0xb95, 0xbca, 0xbb0, 0xbcd, 0xba4, 0xbbe, 0xba4, 0xbcd, 0x3b, 0xba4, 0xbbf, 0xbb0, 0xbcd, +0x3b, 0xbae, 0xbca, 0xbb0, 0xbcd, 0xba4, 0xbbe, 0xba4, 0xbcd, 0x3b, 0xbb7, 0xbbe, 0xbb0, 0xbbf, 0xbb5, 0xbbe, 0xbb0, 0xbcd, 0x3b, 0xbae, +0xbc6, 0xbb9, 0xbcd, 0xbb0, 0xbcd, 0x3b, 0xb85, 0xbaa, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xb85, 0xb9a, 0xbbe, 0xbb0, 0xbcd, 0x3b, 0xba4, 0xbc7, +0x3b, 0xbaa, 0xbb9, 0xbcd, 0xbae, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xb8e, 0xb83, 0xbaa, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xc2b, 0xc3e, 0xc35, 0xc30, +0xc4d, 0xc21, 0xc3f, 0xc28, 0xc4d, 0x3b, 0xc0a, 0xc21, 0xc3e, 0xc2c, 0xc39, 0xc37, 0xc4d, 0xc1f, 0xc4d, 0x3b, 0xc16, 0xc4b, 0xc30, 0xc4d, +0xc21, 0xc3e, 0xc21, 0xc4d, 0x3b, 0xc1f, 0xc3f, 0xc30, 0xc4d, 0x3b, 0xc2e, 0xc46, 0xc30, 0xc4d, 0xc21, 0xc3e, 0xc21, 0xc4d, 0x3b, 0xc36, +0xc36, 0xc3f, 0xc35, 0xc30, 0xc4d, 0x3b, 0xc2e, 0xc46, 0xc39, 0xc30, 0xc4d, 0x3b, 0xc05, 0xc2c, 0xc28, 0xc4d, 0x3b, 0xc05, 0xc1c, 0xc30, +0xc4d, 0x3b, 0xc21, 0xc47, 0x3b, 0xc2c, 0xc3e, 0xc39, 0xc4d, 0x200c, 0xc2e, 0xc3e, 0xc28, 0xc4d, 0x3b, 0xc0e, 0xc38, 0xc4d, 0x200c, 0xc2b, +0xc3e, 0xc02, 0xc21, 0xc4d, 0x3b, 0xe1f, 0xe32, 0xe23, 0xe4c, 0xe27, 0xe32, 0xe23, 0xe4c, 0xe14, 0xe34, 0xe19, 0x3b, 0xe2d, 0xe2d, 0xe23, +0xe4c, 0xe14, 0xe34, 0xe40, 0xe1a, 0xe40, 0xe2e, 0xe0a, 0xe15, 0xe4c, 0x3b, 0xe04, 0xe2d, 0xe23, 0xe4c, 0xe41, 0xe14, 0xe14, 0x3b, 0xe40, +0xe15, 0xe2d, 0xe23, 0xe4c, 0x3b, 0xe21, 0xe2d, 0xe23, 0xe4c, 0xe41, 0xe14, 0xe14, 0x3b, 0xe0a, 0xe32, 0xe2b, 0xe23, 0xe34, 0xe27, 0xe32, +0xe23, 0xe4c, 0x3b, 0xe40, 0xe21, 0xe2e, 0xe23, 0xe4c, 0x3b, 0xe2d, 0xe30, 0xe1a, 0xe32, 0xe19, 0x3b, 0xe2d, 0xe30, 0xe0b, 0xe32, 0xe23, +0xe4c, 0x3b, 0xe40, 0xe14, 0xe22, 0xe4c, 0x3b, 0xe1a, 0xe32, 0xe2e, 0xe4c, 0xe21, 0xe32, 0xe19, 0x3b, 0xe40, 0xe2d, 0xe2a, 0xe1f, 0xe32, +0xe19, 0xe14, 0xe4c, 0x3b, 0x46, 0x65, 0x72, 0x76, 0x65, 0x72, 0x64, 0x69, 0x6e, 0x3b, 0x4f, 0x72, 0x64, 0x69, 0x62, 0x65, +0x68, 0x65, 0x15f, 0x74, 0x3b, 0x48, 0x6f, 0x72, 0x64, 0x61, 0x64, 0x3b, 0x54, 0x69, 0x72, 0x3b, 0x4d, 0x6f, 0x72, 0x64, +0x61, 0x64, 0x3b, 0x15e, 0x65, 0x68, 0x72, 0x69, 0x76, 0x65, 0x72, 0x3b, 0x4d, 0x65, 0x68, 0x72, 0x3b, 0x41, 0x62, 0x61, +0x6e, 0x3b, 0x41, 0x7a, 0x65, 0x72, 0x3b, 0x44, 0x65, 0x79, 0x3b, 0x42, 0x65, 0x68, 0x6d, 0x65, 0x6e, 0x3b, 0x45, 0x73, +0x66, 0x65, 0x6e, 0x64, 0x3b, 0x444, 0x430, 0x440, 0x3b, 0x43e, 0x440, 0x434, 0x3b, 0x445, 0x43e, 0x440, 0x3b, 0x442, 0x456, 0x440, +0x3b, 0x43c, 0x43e, 0x440, 0x3b, 0x448, 0x430, 0x445, 0x3b, 0x43c, 0x435, 0x445, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, +0x435, 0x440, 0x3b, 0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x3b, 0x435, 0x441, 0x444, 0x3b, 0x444, 0x430, 0x440, 0x432, 0x430, +0x440, 0x434, 0x456, 0x43d, 0x3b, 0x43e, 0x440, 0x434, 0x456, 0x431, 0x435, 0x445, 0x435, 0x448, 0x442, 0x3b, 0x445, 0x43e, 0x440, 0x434, +0x430, 0x434, 0x3b, 0x442, 0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x434, 0x430, 0x434, 0x3b, 0x448, 0x430, 0x445, 0x440, 0x456, 0x432, +0x435, 0x440, 0x3b, 0x43c, 0x435, 0x445, 0x440, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, 0x434, 0x435, +0x439, 0x3b, 0x431, 0x430, 0x445, 0x43c, 0x430, 0x43d, 0x3b, 0x435, 0x441, 0x444, 0x430, 0x43d, 0x434, 0x3b, 0x444, 0x430, 0x440, 0x2e, +0x3b, 0x43e, 0x440, 0x434, 0x2e, 0x3b, 0x445, 0x43e, 0x440, 0x2e, 0x3b, 0x442, 0x456, 0x440, 0x3b, 0x43c, 0x43e, 0x440, 0x2e, 0x3b, +0x448, 0x430, 0x445, 0x2e, 0x3b, 0x43c, 0x435, 0x445, 0x2e, 0x3b, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x430, 0x437, 0x435, 0x440, 0x3b, +0x434, 0x435, 0x439, 0x3b, 0x431, 0x430, 0x445, 0x2e, 0x3b, 0x435, 0x441, 0x444, 0x2e, 0x3b, 0x641, 0x631, 0x648, 0x631, 0x62f, 0x646, +0x3b, 0x622, 0x631, 0x688, 0x628, 0x627, 0x626, 0x634, 0x3b, 0x62e, 0x62f, 0x627, 0x62f, 0x627, 0x62f, 0x3b, 0x62a, 0x6cc, 0x631, 0x3b, +0x645, 0x631, 0x62f, 0x627, 0x62f, 0x3b, 0x634, 0x6c1, 0x631, 0x6cc, 0x648, 0x627, 0x631, 0x3b, 0x645, 0x6c1, 0x631, 0x3b, 0x627, 0x628, +0x627, 0x646, 0x3b, 0x622, 0x632, 0x631, 0x3b, 0x688, 0x6d2, 0x3b, 0x628, 0x6c1, 0x645, 0x646, 0x3b, 0x627, 0x633, 0x641, 0x646, 0x62f, +0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, 0x74, 0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, 0x61, 0x6d, +0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, 0x64, 0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, 0x65, 0x6c, +0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, 0x64, 0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x64, 0x7a, +0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, 0x61, 0x66, 0x254, 0x66, 0x69, 0x1ebd, 0x3b, 0x64, 0x61, 0x6d, 0x25b, +0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, 0x6d, 0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, 0x69, 0x61, +0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, 0x6e, 0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, 0x61, 0x64, +0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x62e, 0x627, 0x6a9, 0x6d5, +0x644, 0x6ce, 0x648, 0x6d5, 0x3b, 0x628, 0x627, 0x646, 0x6d5, 0x645, 0x6d5, 0x695, 0x3b, 0x62c, 0x6c6, 0x632, 0x6d5, 0x631, 0x62f, 0x627, +0x646, 0x3b, 0x67e, 0x648, 0x648, 0x634, 0x67e, 0x6d5, 0x695, 0x3b, 0x6af, 0x6d5, 0x644, 0x627, 0x648, 0x6ce, 0x698, 0x3b, 0x62e, 0x6d5, +0x631, 0x645, 0x627, 0x646, 0x627, 0x646, 0x3b, 0x695, 0x6d5, 0x632, 0x628, 0x6d5, 0x631, 0x3b, 0x62e, 0x6d5, 0x632, 0x6d5, 0x6b5, 0x648, +0x6d5, 0x631, 0x3b, 0x633, 0x6d5, 0x631, 0x645, 0x627, 0x648, 0x6d5, 0x632, 0x3b, 0x628, 0x6d5, 0x641, 0x631, 0x627, 0x646, 0x628, 0x627, +0x631, 0x3b, 0x695, 0x6ce, 0x628, 0x6d5, 0x646, 0x62f, 0x627, 0x646, 0x3b, 0x631, 0x6d5, 0x634, 0x6d5, 0x645, 0x6ce, 0x3b +}; +// GENERATED PART ENDS HERE + +QT_END_NAMESPACE + +#endif diff --git a/src/corelib/time/qjalalicalendar_p.h b/src/corelib/time/qjalalicalendar_p.h new file mode 100644 index 0000000000..5b94dada9f --- /dev/null +++ b/src/corelib/time/qjalalicalendar_p.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QJALALI_CALENDAR_P_H +#define QJALALI_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qcalendarbackend_p.h" + +QT_REQUIRE_CONFIG(jalalicalendar); + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QJalaliCalendar : public QCalendarBackend +{ +public: + QJalaliCalendar(); + // Calendar properties: + QString name() const override; + QCalendar::System calendarSystem() const override; + // Date queries: + int daysInMonth(int month, int year = QCalendar::Unspecified) const override; + bool isLeapYear(int year) const override; + // Properties of the calendar + bool isLunar() const override; + bool isLuniSolar() const override; + bool isSolar() const override; + // Julian Day conversions: + bool dateToJulianDay(int year, int month, int day, qint64 *jd) const override; + QCalendar::YearMonthDay julianDayToDate(qint64 jd) const override; + +protected: + // locale support: + const QCalendarLocale *localeMonthIndexData() const override; + const ushort *localeMonthData() const override; +}; + +QT_END_NAMESPACE + +#endif // QJALALI_CALENDAR_P_H diff --git a/src/corelib/time/time.pri b/src/corelib/time/time.pri index 17462487f3..94bd614ea9 100644 --- a/src/corelib/time/time.pri +++ b/src/corelib/time/time.pri @@ -20,6 +20,14 @@ SOURCES += \ time/qmilankoviccalendar.cpp \ time/qromancalendar.cpp +qtConfig(jalalicalendar) { + SOURCES += \ + time/qjalalicalendar.cpp + HEADERS += \ + time/qjalalicalendar_p.h \ + time/qjalalicalendar_data_p.h +} + qtConfig(timezone) { HEADERS += \ time/qtimezone.h \ diff --git a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp index 625567747e..77f92427a2 100644 --- a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp +++ b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp @@ -175,6 +175,11 @@ void tst_QCalendar::specific_data() ADDROW(Milankovic, 1923, 3, 20, 1923, 3, 20); #endif +#if QT_CONFIG(jalalicalendar) + // Jalali year 1355 started on Gregorian 1976-3-21: + ADDROW(Jalali, 1355, 1, 1, 1976, 3, 21); +#endif // jalali + #undef ADDROW } diff --git a/util/locale_database/cldr2qlocalexml.py b/util/locale_database/cldr2qlocalexml.py index 4bc735976b..b611aa7eb7 100755 --- a/util/locale_database/cldr2qlocalexml.py +++ b/util/locale_database/cldr2qlocalexml.py @@ -64,7 +64,7 @@ from dateconverter import convert_date from localexml import Locale # TODO: make calendars a command-line option -calendars = ['gregorian'] # 'persian', 'islamic', 'hebrew' +calendars = ['gregorian', 'persian'] # 'islamic', 'hebrew' findEntryInFile = xpathlite._findEntryInFile def wrappedwarn(prefix, tokens): return sys.stderr.write( diff --git a/util/locale_database/localexml.py b/util/locale_database/localexml.py index c83f9cea21..72b1dc2acc 100644 --- a/util/locale_database/localexml.py +++ b/util/locale_database/localexml.py @@ -234,6 +234,11 @@ class Locale: (fullName, fullName), # long (firstThree, firstThree), # short (number, initial)), # narrow + 'persian': (('Farvardin', 'Ordibehesht', 'Khordad', 'Tir', 'Mordad', + 'Shahrivar', 'Mehr', 'Aban', 'Azar', 'Dey', 'Bahman', 'Esfand'), + (fullName, fullName), + (firstThree, firstThree), + (number, initial)), 'hebrew': (('Tishri', 'Heshvan', 'Kislev', 'Tevet', 'Shevat', 'Adar I', 'Adar', 'Nisan', 'Iyar', 'Sivan', 'Tamuz', 'Av'), (fullName, fullName), diff --git a/util/locale_database/qlocalexml2cpp.py b/util/locale_database/qlocalexml2cpp.py index 641a80baf5..130c2dca73 100755 --- a/util/locale_database/qlocalexml2cpp.py +++ b/util/locale_database/qlocalexml2cpp.py @@ -44,7 +44,7 @@ from localexml import Locale # TODO: Make calendars a command-line parameter # map { CLDR name: Qt file name } -calendars = {'gregorian': 'roman',} # 'persian': 'jalali', 'islamic': 'hijri', 'hebrew': 'hebrew', +calendars = {'gregorian': 'roman', 'persian': 'jalali',} # 'islamic': 'hijri', 'hebrew': 'hebrew', generated_template = """ /* -- cgit v1.2.3 From b455a863a1df61337f36f2e8b43101ca21514697 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 5 Apr 2019 14:20:06 +0200 Subject: Add screen() accessor to QWidget Base it on QWidgetPrivate::associatedScreen(), but make a larger effort to find a screen in case the widget is not shown yet. Rename QDesktopScreenWidget::screen() to something else to avoid clashes. Task-number: QTBUG-62094 Task-number: QTBUG-53022 Change-Id: I36ba5ef5f0645a4ac89da0b38a391f7057b2f49c Reviewed-by: Shawn Rutledge --- src/widgets/kernel/qdesktopwidget.cpp | 2 +- src/widgets/kernel/qdesktopwidget_p.h | 2 +- src/widgets/kernel/qwidget.cpp | 25 ++++++++++++++++++++++- src/widgets/kernel/qwidget.h | 2 ++ tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 1 + 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/widgets/kernel/qdesktopwidget.cpp b/src/widgets/kernel/qdesktopwidget.cpp index ac0cfcf2f5..4fbe6bba3f 100644 --- a/src/widgets/kernel/qdesktopwidget.cpp +++ b/src/widgets/kernel/qdesktopwidget.cpp @@ -111,7 +111,7 @@ const QRect QDesktopWidgetPrivate::availableGeometry(const QWidget *widget) QDesktopScreenWidget *QDesktopWidgetPrivate::widgetForScreen(QScreen *qScreen) const { foreach (QDesktopScreenWidget *widget, screens) { - if (widget->screen() == qScreen) + if (widget->assignedScreen() == qScreen) return widget; } return nullptr; diff --git a/src/widgets/kernel/qdesktopwidget_p.h b/src/widgets/kernel/qdesktopwidget_p.h index 69f87337b3..63949055aa 100644 --- a/src/widgets/kernel/qdesktopwidget_p.h +++ b/src/widgets/kernel/qdesktopwidget_p.h @@ -68,7 +68,7 @@ public: int screenNumber() const; void setScreenGeometry(const QRect &geometry); - QScreen *screen() const { return m_screen.data(); } + QScreen *assignedScreen() const { return m_screen.data(); } QRect screenGeometry() const { return m_geometry; } private: diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 0a7566614b..e286782d6f 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -2445,7 +2445,7 @@ WId QWidget::effectiveWinId() const \since 5.0 - \sa winId() + \sa winId(), screen() */ QWindow *QWidget::windowHandle() const { @@ -2453,6 +2453,29 @@ QWindow *QWidget::windowHandle() const return d->windowHandle(); } +/*! + Returns the screen the widget is on. + + \since 5.14 + + \sa windowHandle() +*/ +QScreen *QWidget::screen() const +{ + Q_D(const QWidget); + if (auto associatedScreen = d->associatedScreen()) + return associatedScreen; + if (auto topLevel = window()) { + if (auto topData = qt_widget_private(topLevel)->topData()) { + if (auto initialScreen = QGuiApplicationPrivate::screen_list.value(topData->initialScreenIndex)) + return initialScreen; + } + if (auto screenByPos = QGuiApplication::screenAt(topLevel->geometry().center())) + return screenByPos; + } + return QGuiApplication::primaryScreen(); +} + #ifndef QT_NO_STYLE_STYLESHEET /*! diff --git a/src/widgets/kernel/qwidget.h b/src/widgets/kernel/qwidget.h index f7ec7f9cf1..83a6e6d4b3 100644 --- a/src/widgets/kernel/qwidget.h +++ b/src/widgets/kernel/qwidget.h @@ -85,6 +85,7 @@ class QDragEnterEvent; class QDragMoveEvent; class QDragLeaveEvent; class QDropEvent; +class QScreen; class QShowEvent; class QHideEvent; class QIcon; @@ -601,6 +602,7 @@ public: QBackingStore *backingStore() const; QWindow *windowHandle() const; + QScreen *screen() const; static QWidget *createWindowContainer(QWindow *window, QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::WindowFlags()); diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 22bb488b3d..51049ecd81 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -1139,6 +1139,7 @@ void tst_QWidget::visible() QVERIFY( !childWidget->isVisible() ); testWidget->show(); + QVERIFY(testWidget->screen()); QVERIFY( testWidget->isVisible() ); QVERIFY( childWidget->isVisible() ); -- cgit v1.2.3 From 44fc2914be67055bbe609790fb7eaf1a643758e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 11:09:50 +0200 Subject: Goodbye showYellowThing The code hasn't been working for at least 5 years, and is just making the repaint manager more complex. We can always re-introduce the feature at a later point. Change-Id: Ib07c782c821f3e653f9452f6fbfe2f87effccc92 Fixes: QTBUG-36435 Reviewed-by: Paul Olav Tvete --- src/corelib/global/qglobal.h | 4 - src/widgets/configure.json | 6 - src/widgets/kernel/qwidget.cpp | 8 -- src/widgets/kernel/qwidgetrepaintmanager.cpp | 192 +-------------------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 13 +- 5 files changed, 7 insertions(+), 216 deletions(-) diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 303b240a54..1e26e9453a 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -850,10 +850,6 @@ Q_CORE_EXPORT void qt_assert(const char *assertion, const char *file, int line) # endif #endif -#if defined(QT_NO_DEBUG) && !defined(QT_PAINT_DEBUG) -#define QT_NO_PAINT_DEBUG -#endif - #ifndef Q_CC_MSVC Q_NORETURN #endif diff --git a/src/widgets/configure.json b/src/widgets/configure.json index e8aa4c6cf9..0a68f082a2 100644 --- a/src/widgets/configure.json +++ b/src/widgets/configure.json @@ -627,12 +627,6 @@ "condition": "features.listview", "output": [ "publicFeature", "feature" ] }, - "paint_debug": { - "label": "Painting Debug Utilities", - "purpose": "Enabled debugging painting with the environment variables QT_FLUSH_UPDATE and QT_FLUSH_PAINT.", - "section": "Painting", - "output": [ "publicFeature", "feature" ] - }, "completer": { "label": "QCompleter", "purpose": "Provides completions based on an item model.", diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index e286782d6f..00d91a13c9 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5303,9 +5303,6 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP q->setAttribute(Qt::WA_WState_InPaintEvent); //clip away the new area -#ifndef QT_NO_PAINT_DEBUG - bool flushed = QWidgetRepaintManager::flushPaint(q, toBePainted); -#endif QPaintEngine *paintEngine = pdev->paintEngine(); if (paintEngine) { setRedirected(pdev, -offset); @@ -5406,11 +5403,6 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP if (paintEngine && paintEngine->autoDestruct()) { delete paintEngine; } - -#ifndef QT_NO_PAINT_DEBUG - if (flushed) - QWidgetRepaintManager::unflushPaint(q, toBePainted); -#endif } else if (q->isWindow()) { QPaintEngine *engine = pdev->paintEngine(); if (engine) { diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 3389d36bd9..3cdb6d9efa 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -63,11 +63,6 @@ #include -#if defined(Q_OS_WIN) && !defined(QT_NO_PAINT_DEBUG) -# include -# include -#endif - #include QT_BEGIN_NAMESPACE @@ -98,11 +93,6 @@ void QWidgetRepaintManager::qt_flush(QWidget *widget, const QRegion ®ion, QBa Q_ASSERT(widget); Q_ASSERT(backingStore); Q_ASSERT(tlw); -#if !defined(QT_NO_PAINT_DEBUG) - static int flushUpdate = qEnvironmentVariableIntValue("QT_FLUSH_UPDATE"); - if (flushUpdate > 0) - QWidgetRepaintManager::showYellowThing(widget, region, flushUpdate * 10, false); -#endif if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen)) return; @@ -164,144 +154,6 @@ void QWidgetRepaintManager::qt_flush(QWidget *widget, const QRegion ®ion, QBa backingStore->flush(effectiveRegion, widget->windowHandle(), offset); } -#ifndef QT_NO_PAINT_DEBUG -#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - -static void showYellowThing_win(QWidget *widget, const QRegion ®ion, int msec) -{ - // We expect to be passed a native parent. - QWindow *nativeWindow = widget->windowHandle(); - if (!nativeWindow) - return; - void *hdcV = QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("getDC"), nativeWindow); - if (!hdcV) - return; - const HDC hdc = reinterpret_cast(hdcV); - - static const COLORREF colors[] = {RGB(255, 255, 0), RGB(255, 200, 55), RGB(200, 255, 55), RGB(200, 200, 0)}; - - static size_t i = 0; - const HBRUSH brush = CreateSolidBrush(colors[i]); - i = (i + 1) % (sizeof(colors) / sizeof(colors[0])); - - for (const QRect &rect : region) { - RECT winRect; - SetRect(&winRect, rect.left(), rect.top(), rect.right(), rect.bottom()); - FillRect(hdc, &winRect, brush); - } - DeleteObject(brush); - QGuiApplication::platformNativeInterface()->nativeResourceForWindow(QByteArrayLiteral("releaseDC"), nativeWindow); - ::Sleep(msec); -} -#endif // defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - -void QWidgetRepaintManager::showYellowThing(QWidget *widget, const QRegion &toBePainted, int msec, bool unclipped) -{ -#ifdef Q_OS_WINRT - Q_UNUSED(msec) -#endif - QRegion paintRegion = toBePainted; - QRect widgetRect = widget->rect(); - - if (!hasPlatformWindow(widget)) { - QWidget *nativeParent = widget->nativeParentWidget(); - const QPoint offset = widget->mapTo(nativeParent, QPoint(0, 0)); - paintRegion.translate(offset); - widgetRect.translate(offset); - widget = nativeParent; - } - -#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - Q_UNUSED(unclipped); - showYellowThing_win(widget, paintRegion, msec); -#else - //flags to fool painter - bool paintUnclipped = widget->testAttribute(Qt::WA_PaintUnclipped); - if (unclipped && !widget->d_func()->paintOnScreen()) - widget->setAttribute(Qt::WA_PaintUnclipped); - - const bool setFlag = !widget->testAttribute(Qt::WA_WState_InPaintEvent); - if (setFlag) - widget->setAttribute(Qt::WA_WState_InPaintEvent); - - //setup the engine - QPaintEngine *pe = widget->paintEngine(); - if (pe) { - pe->setSystemClip(paintRegion); - { - QPainter p(widget); - p.setClipRegion(paintRegion); - static int i = 0; - switch (i) { - case 0: - p.fillRect(widgetRect, QColor(255,255,0)); - break; - case 1: - p.fillRect(widgetRect, QColor(255,200,55)); - break; - case 2: - p.fillRect(widgetRect, QColor(200,255,55)); - break; - case 3: - p.fillRect(widgetRect, QColor(200,200,0)); - break; - } - i = (i+1) & 3; - p.end(); - } - } - - if (setFlag) - widget->setAttribute(Qt::WA_WState_InPaintEvent, false); - - //restore - widget->setAttribute(Qt::WA_PaintUnclipped, paintUnclipped); - - if (pe) - pe->setSystemClip(QRegion()); - -#if defined(Q_OS_UNIX) - ::usleep(1000 * msec); -#endif -#endif // !Q_OS_WIN -} - -bool QWidgetRepaintManager::flushPaint(QWidget *widget, const QRegion &rgn) -{ - if (!widget) - return false; - - int delay = 0; - if (widget->testAttribute(Qt::WA_WState_InPaintEvent)) { - static int flushPaintEvent = qEnvironmentVariableIntValue("QT_FLUSH_PAINT_EVENT"); - if (!flushPaintEvent) - return false; - delay = flushPaintEvent; - } else { - static int flushPaint = qEnvironmentVariableIntValue("QT_FLUSH_PAINT"); - if (!flushPaint) - return false; - delay = flushPaint; - } - - QWidgetRepaintManager::showYellowThing(widget, rgn, delay * 10, true); - return true; -} - -void QWidgetRepaintManager::unflushPaint(QWidget *widget, const QRegion &rgn) -{ - if (widget->d_func()->paintOnScreen() || rgn.isEmpty()) - return; - - QWidget *tlw = widget->window(); - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (!tlwExtra) - return; - - qt_flush(widget, rgn, tlwExtra->repaintManager->store, tlw, 0, tlw->d_func()->maybeRepaintManager()); -} -#endif // QT_NO_PAINT_DEBUG - /* Moves the whole rect by (dx, dy) in widget's coordinate system. Doesn't generate any updates. @@ -316,45 +168,21 @@ bool QWidgetRepaintManager::bltRect(const QRect &rect, int dx, int dy, QWidget * } /*! - Prepares the window surface to paint a\ toClean region of the \a widget and - updates the BeginPaintInfo struct accordingly. + Prepares the window surface to paint a\ toClean region of the \a widget. The \a toClean region might be clipped by the window surface. */ -void QWidgetRepaintManager::beginPaint(QRegion &toClean, QBackingStore *backingStore, BeginPaintInfo *returnInfo) +void QWidgetRepaintManager::beginPaint(QRegion &toClean, QBackingStore *backingStore) { // Always flush repainted areas. dirtyOnScreen += toClean; -#ifdef QT_NO_PAINT_DEBUG backingStore->beginPaint(toClean); -#else - returnInfo->wasFlushed = QWidgetRepaintManager::flushPaint(tlw, toClean); - // Avoid deadlock with QT_FLUSH_PAINT: the server will wait for - // the BackingStore lock, so if we hold that, the server will - // never release the Communication lock that we are waiting for in - // sendSynchronousCommand - if (!returnInfo->wasFlushed) - backingStore->beginPaint(toClean); -#endif - - Q_UNUSED(returnInfo); } -void QWidgetRepaintManager::endPaint(const QRegion &cleaned, QBackingStore *backingStore, - BeginPaintInfo *beginPaintInfo) +void QWidgetRepaintManager::endPaint(QBackingStore *backingStore) { -#ifndef QT_NO_PAINT_DEBUG - if (!beginPaintInfo->wasFlushed) - backingStore->endPaint(); - else - QWidgetRepaintManager::unflushPaint(tlw, cleaned); -#else - Q_UNUSED(beginPaintInfo); - Q_UNUSED(cleaned); backingStore->endPaint(); -#endif - flush(); } @@ -1298,8 +1126,7 @@ void QWidgetRepaintManager::doSync() } #endif - BeginPaintInfo beginPaintInfo; - beginPaint(toClean, store, &beginPaintInfo); + beginPaint(toClean, store); // Must do this before sending any paint events because // the size may change in the paint event. @@ -1335,7 +1162,7 @@ void QWidgetRepaintManager::doSync() tlw->d_func()->drawWidget(store->paintDevice(), dirtyCopy, QPoint(), flags, 0, this); } - endPaint(toClean, store, &beginPaintInfo); + endPaint(store); } /*! @@ -1545,17 +1372,8 @@ void QWidgetPrivate::repaint_sys(const QRegion &rgn) if (toBePainted.isEmpty()) return; // Nothing to repaint. -#ifndef QT_NO_PAINT_DEBUG - bool flushed = QWidgetRepaintManager::flushPaint(q, toBePainted); -#endif - drawWidget(q, toBePainted, QPoint(), QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawPaintOnScreen, 0); -#ifndef QT_NO_PAINT_DEBUG - if (flushed) - QWidgetRepaintManager::unflushPaint(q, toBePainted); -#endif - if (Q_UNLIKELY(q->paintingActive())) qWarning("QWidget::repaint: It is dangerous to leave painters active on a widget outside of the PaintEvent"); } diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 6608f39138..482cae4020 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -63,11 +63,6 @@ class QPlatformTextureList; class QPlatformTextureListWatcher; class QWidgetRepaintManager; -struct BeginPaintInfo { - inline BeginPaintInfo() : wasFlushed(0) {} - uint wasFlushed : 1; -}; - #ifndef QT_NO_OPENGL class QPlatformTextureListWatcher : public QObject { @@ -103,8 +98,6 @@ public: QWidgetRepaintManager(QWidget *t); ~QWidgetRepaintManager(); - static void showYellowThing(QWidget *widget, const QRegion &rgn, int msec, bool); - void sync(QWidget *exposedWidget, const QRegion &exposedRegion); void sync(); void flush(QWidget *widget = nullptr); @@ -138,8 +131,6 @@ private: void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); - static bool flushPaint(QWidget *widget, const QRegion &rgn); - static void unflushPaint(QWidget *widget, const QRegion &rgn); static void qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, QWidget *tlw, QPlatformTextureList *widgetTextures, @@ -148,8 +139,8 @@ private: void doSync(); bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); - void beginPaint(QRegion &toClean, QBackingStore *backingStore, BeginPaintInfo *returnInfo); - void endPaint(const QRegion &cleaned, QBackingStore *backingStore, BeginPaintInfo *beginPaintInfo); + void beginPaint(QRegion &toClean, QBackingStore *backingStore); + void endPaint(QBackingStore *backingStore); QRegion dirtyRegion(QWidget *widget = nullptr) const; QRegion staticContents(QWidget *widget = nullptr, const QRect &withinClipRect = QRect()) const; -- cgit v1.2.3 From c937f80fe5f8c13ef99882ba96b11fbea0cba156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 15:01:30 +0200 Subject: widgets: Simplify QWidgetRepaintManager::qt_flush No longer static, so we can access the members directly instead of passing them as arguments. Renamed to flush() while we're at it. Otherwise no changes to the code, just moved the function. Change-Id: Id491a8628c8cecf7cf3b33d3458e7427f5bcd22e Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 170 +++++++++++++-------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 5 +- 2 files changed, 85 insertions(+), 90 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 3cdb6d9efa..65c07c7648 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -76,84 +76,6 @@ static bool hasPlatformWindow(QWidget *widget) return widget && widget->windowHandle() && widget->windowHandle()->handle(); } -/** - * Flushes the contents of the \a backingStore into the screen area of \a widget. - * \a region is the region to be updated in \a widget coordinates. - */ -void QWidgetRepaintManager::qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, - QWidget *tlw, QPlatformTextureList *widgetTextures, - QWidgetRepaintManager *repaintManager) -{ -#ifdef QT_NO_OPENGL - Q_UNUSED(widgetTextures); - Q_ASSERT(!region.isEmpty()); -#else - Q_ASSERT(!region.isEmpty() || widgetTextures); -#endif - Q_ASSERT(widget); - Q_ASSERT(backingStore); - Q_ASSERT(tlw); - - if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen)) - return; - - // Foreign Windows do not have backing store content and must not be flushed - if (QWindow *widgetWindow = widget->windowHandle()) { - if (widgetWindow->type() == Qt::ForeignWindow) - return; - } - - static bool fpsDebug = qEnvironmentVariableIntValue("QT_DEBUG_FPS"); - if (fpsDebug) { - if (!repaintManager->perfFrames++) - repaintManager->perfTime.start(); - if (repaintManager->perfTime.elapsed() > 5000) { - double fps = double(repaintManager->perfFrames * 1000) / repaintManager->perfTime.restart(); - qDebug("FPS: %.1f\n", fps); - repaintManager->perfFrames = 0; - } - } - - QPoint offset; - if (widget != tlw) - offset += widget->mapTo(tlw, QPoint()); - - QRegion effectiveRegion = region; -#ifndef QT_NO_OPENGL - const bool compositionWasActive = widget->d_func()->renderToTextureComposeActive; - if (!widgetTextures) { - widget->d_func()->renderToTextureComposeActive = false; - // Detect the case of falling back to the normal flush path when no - // render-to-texture widgets are visible anymore. We will force one - // last flush to go through the OpenGL-based composition to prevent - // artifacts. The next flush after this one will use the normal path. - if (compositionWasActive) - widgetTextures = qt_dummy_platformTextureList; - } else { - widget->d_func()->renderToTextureComposeActive = true; - } - // When changing the composition status, make sure the dirty region covers - // the entire widget. Just having e.g. the shown/hidden render-to-texture - // widget's area marked as dirty is incorrect when changing flush paths. - if (compositionWasActive != widget->d_func()->renderToTextureComposeActive) - effectiveRegion = widget->rect(); - - // re-test since we may have been forced to this path via the dummy texture list above - if (widgetTextures) { - qt_window_private(tlw->windowHandle())->compositing = true; - widget->window()->d_func()->sendComposeStatus(widget->window(), false); - // A window may have alpha even when the app did not request - // WA_TranslucentBackground. Therefore the compositor needs to know whether the app intends - // to rely on translucency, in order to decide if it should clear to transparent or opaque. - const bool translucentBackground = widget->testAttribute(Qt::WA_TranslucentBackground); - backingStore->handle()->composeAndFlush(widget->windowHandle(), effectiveRegion, offset, - widgetTextures, translucentBackground); - widget->window()->d_func()->sendComposeStatus(widget->window(), true); - } else -#endif - backingStore->flush(effectiveRegion, widget->windowHandle(), offset); -} - /* Moves the whole rect by (dx, dy) in widget's coordinate system. Doesn't generate any updates. @@ -913,8 +835,8 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR // Nothing to repaint. if (!isDirty() && store->size().isValid()) { - QPlatformTextureList *tl = widgetTexturesFor(tlw, exposedWidget); - qt_flush(exposedWidget, tl ? QRegion() : exposedRegion, store, tlw, tl, this); + QPlatformTextureList *widgetTextures = widgetTexturesFor(tlw, exposedWidget); + flush(exposedWidget, widgetTextures ? QRegion() : exposedRegion, widgetTextures); return; } @@ -1054,7 +976,7 @@ void QWidgetRepaintManager::doSync() QTLWExtra *tlwExtra = tlw->d_func()->topData(); tlwExtra->widgetTextures.clear(); findAllTextureWidgetsRecursively(tlw, tlw); - qt_window_private(tlw->windowHandle())->compositing = false; // will get updated in qt_flush() + qt_window_private(tlw->windowHandle())->compositing = false; // will get updated in flush() #endif if (toClean.isEmpty()) { @@ -1177,7 +1099,7 @@ void QWidgetRepaintManager::flush(QWidget *widget) // Flush the region in dirtyOnScreen. if (!dirtyOnScreen.isEmpty()) { QWidget *target = widget ? widget : tlw; - qt_flush(target, dirtyOnScreen, store, tlw, widgetTexturesFor(tlw, tlw), this); + flush(target, dirtyOnScreen, widgetTexturesFor(tlw, tlw)); dirtyOnScreen = QRegion(); flushed = true; } @@ -1186,10 +1108,10 @@ void QWidgetRepaintManager::flush(QWidget *widget) if (!flushed && !hasDirtyOnScreenWidgets) { #ifndef QT_NO_OPENGL if (!tlw->d_func()->topData()->widgetTextures.empty()) { - QPlatformTextureList *tl = widgetTexturesFor(tlw, tlw); - if (tl) { + QPlatformTextureList *widgetTextures = widgetTexturesFor(tlw, tlw); + if (widgetTextures) { QWidget *target = widget ? widget : tlw; - qt_flush(target, QRegion(), store, tlw, tl, this); + flush(target, QRegion(), widgetTextures); } } #endif @@ -1202,11 +1124,87 @@ void QWidgetRepaintManager::flush(QWidget *widget) QWidgetPrivate *wd = w->d_func(); Q_ASSERT(wd->needsFlush); QPlatformTextureList *widgetTexturesForNative = wd->textureChildSeen ? widgetTexturesFor(tlw, w) : 0; - qt_flush(w, *wd->needsFlush, store, tlw, widgetTexturesForNative, this); + flush(w, *wd->needsFlush, widgetTexturesForNative); *wd->needsFlush = QRegion(); } } +/* + Flushes the contents of the backingstore into the screen area of \a widget. + + \a region is the region to be updated in \a widget coordinates. + */ +void QWidgetRepaintManager::flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures) +{ +#ifdef QT_NO_OPENGL + Q_UNUSED(widgetTextures); + Q_ASSERT(!region.isEmpty()); +#else + Q_ASSERT(!region.isEmpty() || widgetTextures); +#endif + Q_ASSERT(widget); + Q_ASSERT(tlw); + + if (tlw->testAttribute(Qt::WA_DontShowOnScreen) || widget->testAttribute(Qt::WA_DontShowOnScreen)) + return; + + // Foreign Windows do not have backing store content and must not be flushed + if (QWindow *widgetWindow = widget->windowHandle()) { + if (widgetWindow->type() == Qt::ForeignWindow) + return; + } + + static bool fpsDebug = qEnvironmentVariableIntValue("QT_DEBUG_FPS"); + if (fpsDebug) { + if (!perfFrames++) + perfTime.start(); + if (perfTime.elapsed() > 5000) { + double fps = double(perfFrames * 1000) / perfTime.restart(); + qDebug("FPS: %.1f\n", fps); + perfFrames = 0; + } + } + + QPoint offset; + if (widget != tlw) + offset += widget->mapTo(tlw, QPoint()); + + QRegion effectiveRegion = region; +#ifndef QT_NO_OPENGL + const bool compositionWasActive = widget->d_func()->renderToTextureComposeActive; + if (!widgetTextures) { + widget->d_func()->renderToTextureComposeActive = false; + // Detect the case of falling back to the normal flush path when no + // render-to-texture widgets are visible anymore. We will force one + // last flush to go through the OpenGL-based composition to prevent + // artifacts. The next flush after this one will use the normal path. + if (compositionWasActive) + widgetTextures = qt_dummy_platformTextureList; + } else { + widget->d_func()->renderToTextureComposeActive = true; + } + // When changing the composition status, make sure the dirty region covers + // the entire widget. Just having e.g. the shown/hidden render-to-texture + // widget's area marked as dirty is incorrect when changing flush paths. + if (compositionWasActive != widget->d_func()->renderToTextureComposeActive) + effectiveRegion = widget->rect(); + + // re-test since we may have been forced to this path via the dummy texture list above + if (widgetTextures) { + qt_window_private(tlw->windowHandle())->compositing = true; + widget->window()->d_func()->sendComposeStatus(widget->window(), false); + // A window may have alpha even when the app did not request + // WA_TranslucentBackground. Therefore the compositor needs to know whether the app intends + // to rely on translucency, in order to decide if it should clear to transparent or opaque. + const bool translucentBackground = widget->testAttribute(Qt::WA_TranslucentBackground); + store->handle()->composeAndFlush(widget->windowHandle(), effectiveRegion, offset, + widgetTextures, translucentBackground); + widget->window()->d_func()->sendComposeStatus(widget->window(), true); + } else +#endif + store->flush(effectiveRegion, widget->windowHandle(), offset); +} + /*! Invalidates the backing store when the widget is resized. Static areas are never invalidated unless absolutely needed. diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 482cae4020..0620ab99e2 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -131,10 +131,7 @@ private: void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); - static void qt_flush(QWidget *widget, const QRegion ®ion, QBackingStore *backingStore, - QWidget *tlw, - QPlatformTextureList *widgetTextures, - QWidgetRepaintManager *repaintManager); + void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); void doSync(); bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); -- cgit v1.2.3 From 68cc2c2779aa8f75c14415ecbd19a9c6fdee6ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 15:16:22 +0200 Subject: widgets: Don't rely on QWidget friending QWidgetRepaintManager Change-Id: Id9fc28eb62103d38eaa51261f61a2294db85e0d6 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 8 +-- src/widgets/kernel/qwidgetrepaintmanager_p.h | 103 +++++++++++++-------------- 2 files changed, 55 insertions(+), 56 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 00d91a13c9..d098d9cc04 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -11840,9 +11840,9 @@ void QWidget::setBackingStore(QBackingStore *store) return; if (isTopLevel()) { - if (repaintManager->store != oldStore && repaintManager->store != store) - delete repaintManager->store; - repaintManager->store = store; + if (repaintManager->backingStore() != oldStore && repaintManager->backingStore() != store) + delete repaintManager->backingStore(); + repaintManager->setBackingStore(store); } } @@ -11859,7 +11859,7 @@ QBackingStore *QWidget::backingStore() const return extra->backingStore; QWidgetRepaintManager *repaintManager = d->maybeRepaintManager(); - return repaintManager ? repaintManager->store : nullptr; + return repaintManager ? repaintManager->backingStore() : nullptr; } void QWidgetPrivate::getLayoutItemMargins(int *left, int *top, int *right, int *bottom) const diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 0620ab99e2..ac671c18c0 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -100,19 +100,58 @@ public: void sync(QWidget *exposedWidget, const QRegion &exposedRegion); void sync(); - void flush(QWidget *widget = nullptr); QBackingStore *backingStore() const { return store; } - - inline bool isDirty() const - { - return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); - } + void setBackingStore(QBackingStore *backingStore) { store = backingStore; } template void markDirty(const T &r, QWidget *widget, UpdateTime updateTime = UpdateLater, BufferState bufferState = BufferValid); + void removeDirtyWidget(QWidget *w); + + inline void addStaticWidget(QWidget *widget) + { + if (!widget) + return; + + Q_ASSERT(widget->testAttribute(Qt::WA_StaticContents)); + if (!staticWidgets.contains(widget)) + staticWidgets.append(widget); + } + + // Move the reparented widget and all its static children from this backing store + // to the new backing store if reparented into another top-level / backing store. + inline void moveStaticWidgets(QWidget *reparented) + { + Q_ASSERT(reparented); + QWidgetRepaintManager *newPaintManager = reparented->d_func()->maybeRepaintManager(); + if (newPaintManager == this) + return; + + int i = 0; + while (i < staticWidgets.size()) { + QWidget *w = staticWidgets.at(i); + if (reparented == w || reparented->isAncestorOf(w)) { + staticWidgets.removeAt(i); + if (newPaintManager) + newPaintManager->addStaticWidget(w); + } else { + ++i; + } + } + } + + inline void removeStaticWidget(QWidget *widget) + { + staticWidgets.removeAll(widget); + } + + QRegion staticContents(QWidget *widget = nullptr, const QRect &withinClipRect = QRect()) const; + + void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); + bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); + private: QWidget *tlw; QRegion dirtyOnScreen; // needsFlush @@ -131,20 +170,19 @@ private: void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); - void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); + inline bool isDirty() const + { + return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); + } void doSync(); - bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); + void flush(QWidget *widget = nullptr); + void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); void beginPaint(QRegion &toClean, QBackingStore *backingStore); void endPaint(QBackingStore *backingStore); QRegion dirtyRegion(QWidget *widget = nullptr) const; - QRegion staticContents(QWidget *widget = nullptr, const QRect &withinClipRect = QRect()) const; - - void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); - - void removeDirtyWidget(QWidget *w); void updateLists(QWidget *widget); @@ -175,41 +213,6 @@ private: } } - inline void addStaticWidget(QWidget *widget) - { - if (!widget) - return; - - Q_ASSERT(widget->testAttribute(Qt::WA_StaticContents)); - if (!staticWidgets.contains(widget)) - staticWidgets.append(widget); - } - - inline void removeStaticWidget(QWidget *widget) - { staticWidgets.removeAll(widget); } - - // Move the reparented widget and all its static children from this backing store - // to the new backing store if reparented into another top-level / backing store. - inline void moveStaticWidgets(QWidget *reparented) - { - Q_ASSERT(reparented); - QWidgetRepaintManager *newPaintManager = reparented->d_func()->maybeRepaintManager(); - if (newPaintManager == this) - return; - - int i = 0; - while (i < staticWidgets.size()) { - QWidget *w = staticWidgets.at(i); - if (reparented == w || reparented->isAncestorOf(w)) { - staticWidgets.removeAt(i); - if (newPaintManager) - newPaintManager->addStaticWidget(w); - } else { - ++i; - } - } - } - inline QRect topLevelRect() const { return tlw->data->crect; @@ -253,10 +256,6 @@ private: #endif } - friend class QWidgetPrivate; - friend class QWidget; - friend class QBackingStore; - Q_DISABLE_COPY_MOVE(QWidgetRepaintManager) }; -- cgit v1.2.3 From a0484b8277f142e8a8c06fd1e6c840694f88f7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 15:22:52 +0200 Subject: widgets: Rename QWidgetRepaintManager::doSync to paintAndFlush Change-Id: Ie41bb76d33d59f70eb418f845defc212396d3915 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 6 +++--- src/widgets/kernel/qwidgetrepaintmanager_p.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 65c07c7648..183337b693 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -846,7 +846,7 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR markDirtyOnScreen(exposedRegion, exposedWidget, QPoint()); if (syncAllowed()) - doSync(); + paintAndFlush(); } /*! @@ -871,10 +871,10 @@ void QWidgetRepaintManager::sync() } if (syncAllowed()) - doSync(); + paintAndFlush(); } -void QWidgetRepaintManager::doSync() +void QWidgetRepaintManager::paintAndFlush() { const bool updatesDisabled = !tlw->updatesEnabled(); bool repaintAllWidgets = false; diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index ac671c18c0..50f45afcd4 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -175,7 +175,8 @@ private: return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); } - void doSync(); + void paintAndFlush(); + void flush(QWidget *widget = nullptr); void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); -- cgit v1.2.3 From a8cc4cea92bfe4c251458722cbd2e60c49024a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 15:25:39 +0200 Subject: widgets: Merge QWidgetRepaintManager::begin/endPaint into callsite Change-Id: Iff5f78dcc8124bcecf53d42d920e74467937412a Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 28 +++++++--------------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 3 --- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 183337b693..96f440cd0f 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -89,25 +89,6 @@ bool QWidgetRepaintManager::bltRect(const QRect &rect, int dx, int dy, QWidget * return store->scroll(tlwRect, dx, dy); } -/*! - Prepares the window surface to paint a\ toClean region of the \a widget. - - The \a toClean region might be clipped by the window surface. -*/ -void QWidgetRepaintManager::beginPaint(QRegion &toClean, QBackingStore *backingStore) -{ - // Always flush repainted areas. - dirtyOnScreen += toClean; - - backingStore->beginPaint(toClean); -} - -void QWidgetRepaintManager::endPaint(QBackingStore *backingStore) -{ - backingStore->endPaint(); - flush(); -} - /*! Returns the region (in top-level coordinates) that needs repaint and/or flush. @@ -1048,7 +1029,10 @@ void QWidgetRepaintManager::paintAndFlush() } #endif - beginPaint(toClean, store); + // Always flush repainted areas + dirtyOnScreen += toClean; + + store->beginPaint(toClean); // Must do this before sending any paint events because // the size may change in the paint event. @@ -1084,7 +1068,9 @@ void QWidgetRepaintManager::paintAndFlush() tlw->d_func()->drawWidget(store->paintDevice(), dirtyCopy, QPoint(), flags, 0, this); } - endPaint(store); + store->endPaint(); + + flush(); } /*! diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 50f45afcd4..d0368b2232 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -180,9 +180,6 @@ private: void flush(QWidget *widget = nullptr); void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); - void beginPaint(QRegion &toClean, QBackingStore *backingStore); - void endPaint(QBackingStore *backingStore); - QRegion dirtyRegion(QWidget *widget = nullptr) const; void updateLists(QWidget *widget); -- cgit v1.2.3 From c8c724a3ce223724f0d164f38415ba1afaca53b8 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Tue, 13 Aug 2019 16:42:48 +0200 Subject: Cbor: Add overloads for QStringView Change-Id: I8d22d0741c4d3852b438b12099f81ed87244871d Reviewed-by: Thiago Macieira --- src/corelib/serialization/qcborvalue.cpp | 16 +++++++-- src/corelib/serialization/qcborvalue.h | 3 ++ src/corelib/serialization/qcborvalue_p.h | 56 ++++++++++++++++++++------------ 3 files changed, 52 insertions(+), 23 deletions(-) diff --git a/src/corelib/serialization/qcborvalue.cpp b/src/corelib/serialization/qcborvalue.cpp index ba616c0a7d..9053618014 100644 --- a/src/corelib/serialization/qcborvalue.cpp +++ b/src/corelib/serialization/qcborvalue.cpp @@ -915,7 +915,7 @@ void QCborContainerPrivate::replaceAt_complex(Element &e, const QCborValue &valu // in qstring.cpp void qt_to_latin1_unchecked(uchar *dst, const ushort *uc, qsizetype len); -Q_NEVER_INLINE void QCborContainerPrivate::appendAsciiString(const QString &s) +Q_NEVER_INLINE void QCborContainerPrivate::appendAsciiString(QStringView s) { qsizetype len = s.size(); QtCbor::Element e; @@ -926,7 +926,7 @@ Q_NEVER_INLINE void QCborContainerPrivate::appendAsciiString(const QString &s) char *ptr = data.data() + e.value + sizeof(ByteData); uchar *l = reinterpret_cast(ptr); - const ushort *uc = (const ushort *)s.unicode(); + const ushort *uc = (const ushort *)s.utf16(); qt_to_latin1_unchecked(l, uc, len); } @@ -1646,13 +1646,23 @@ QCborValue::QCborValue(const QByteArray &ba) container->ref.storeRelaxed(1); } +#if QT_STRINGVIEW_LEVEL < 2 /*! Creates a QCborValue with string value \a s. The value can later be retrieved using toString(). \sa toString(), isString(), isByteArray() */ -QCborValue::QCborValue(const QString &s) +QCborValue::QCborValue(const QString &s) : QCborValue(qToStringViewIgnoringNull(s)) {} +#endif + +/*! + Creates a QCborValue with string value \a s. The value can later be + retrieved using toString(). + + \sa toString(), isString(), isByteArray() +*/ +QCborValue::QCborValue(QStringView s) : n(0), container(new QCborContainerPrivate), t(String) { container->append(s); diff --git a/src/corelib/serialization/qcborvalue.h b/src/corelib/serialization/qcborvalue.h index f542e44c47..f79fc572c4 100644 --- a/src/corelib/serialization/qcborvalue.h +++ b/src/corelib/serialization/qcborvalue.h @@ -143,7 +143,10 @@ public: QCborValue(QCborSimpleType st) : t(type_helper(st)) {} QCborValue(const QByteArray &ba); +#if QT_STRINGVIEW_LEVEL < 2 QCborValue(const QString &s); +#endif + QCborValue(QStringView s); QCborValue(QLatin1String s); #ifndef QT_NO_CAST_FROM_ASCII QT_ASCII_CAST_WARN QCborValue(const char *s) : QCborValue(QString::fromUtf8(s)) {} diff --git a/src/corelib/serialization/qcborvalue_p.h b/src/corelib/serialization/qcborvalue_p.h index 4050d18fa9..590c2d6e05 100644 --- a/src/corelib/serialization/qcborvalue_p.h +++ b/src/corelib/serialization/qcborvalue_p.h @@ -245,13 +245,21 @@ public: appendByteData(s.latin1(), s.size(), QCborValue::String, QtCbor::Element::StringIsAscii); } - void appendAsciiString(const QString &s); + void appendAsciiString(QStringView s); + +#if QT_STRINGVIEW_LEVEL < 2 void append(const QString &s) + { + append(qToStringViewIgnoringNull(s)); + } +#endif + + void append(QStringView s) { if (QtPrivate::isAscii(s)) appendAsciiString(s); else - appendByteData(reinterpret_cast(s.constData()), s.size() * 2, + appendByteData(reinterpret_cast(s.utf16()), s.size() * 2, QCborValue::String, QtCbor::Element::StringIsUtf16); } void append(const QCborValue &v) @@ -345,33 +353,41 @@ public: return e; } - bool stringEqualsElement(qsizetype idx, QLatin1String s) const + static int compareUtf8(const QtCbor::ByteData *b, const QLatin1String &s) { - const auto &e = elements.at(idx); - if (e.type != QCborValue::String) - return false; - - const QtCbor::ByteData *b = byteData(idx); - if (!b) - return s.isEmpty(); + return QUtf8::compareUtf8(b->byte(), b->len, s); + } - if (e.flags & QtCbor::Element::StringIsUtf16) - return QtPrivate::compareStrings(b->asStringView(), s) == 0; - return QUtf8::compareUtf8(b->byte(), b->len, s) == 0; + static int compareUtf8(const QtCbor::ByteData *b, QStringView s) + { + return QUtf8::compareUtf8(b->byte(), b->len, s.data(), s.size()); } - bool stringEqualsElement(qsizetype idx, const QString &s) const + + template + int stringCompareElement(const QtCbor::Element &e, String s) const { - const auto &e = elements.at(idx); if (e.type != QCborValue::String) - return false; + return int(e.type) - int(QCborValue::String); - const QtCbor::ByteData *b = byteData(idx); + const QtCbor::ByteData *b = byteData(e); if (!b) - return s.isEmpty(); + return s.isEmpty() ? 0 : -1; if (e.flags & QtCbor::Element::StringIsUtf16) - return QtPrivate::compareStrings(b->asStringView(), s) == 0; - return QUtf8::compareUtf8(b->byte(), b->len, s.data(), s.size()) == 0; + return QtPrivate::compareStrings(b->asStringView(), s); + return compareUtf8(b, s); + } + + template + bool stringEqualsElement(const QtCbor::Element &e, String s) const + { + return stringCompareElement(e, s) == 0; + } + + template + bool stringEqualsElement(qsizetype idx, String s) const + { + return stringEqualsElement(elements.at(idx), s); } static int compareElement_helper(const QCborContainerPrivate *c1, QtCbor::Element e1, -- cgit v1.2.3 From 62015adadd17a46c32e350c657f244d8a7515863 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Sat, 17 Aug 2019 14:13:50 +0200 Subject: QFont: remove unused member QFontPrivate::screen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QFontPrivate::screen was not used anywhere so remove it. Change-Id: Ie9381d08b59b93c4e7bcaad58ebf1b389aa0a2e6 Reviewed-by: Thorbjørn Lund Martsum Reviewed-by: Konstantin Ritt Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/gui/text/qfont.cpp | 8 +++----- src/gui/text/qfont_p.h | 10 +++------- src/gui/text/qfontmetrics.cpp | 8 ++------ 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp index 97e73f0723..3c1a052f37 100644 --- a/src/gui/text/qfont.cpp +++ b/src/gui/text/qfont.cpp @@ -180,14 +180,14 @@ Q_GUI_EXPORT int qt_defaultDpi() } QFontPrivate::QFontPrivate() - : engineData(0), dpi(qt_defaultDpi()), screen(0), + : engineData(0), dpi(qt_defaultDpi()), underline(false), overline(false), strikeOut(false), kerning(true), capital(0), letterSpacingIsAbsolute(false), scFont(0) { } QFontPrivate::QFontPrivate(const QFontPrivate &other) - : request(other.request), engineData(0), dpi(other.dpi), screen(other.screen), + : request(other.request), engineData(0), dpi(other.dpi), underline(other.underline), overline(other.overline), strikeOut(other.strikeOut), kerning(other.kerning), capital(other.capital), letterSpacingIsAbsolute(other.letterSpacingIsAbsolute), @@ -581,11 +581,9 @@ QFont::QFont(const QFont &font, const QPaintDevice *pd) { Q_ASSERT(pd); const int dpi = pd->logicalDpiY(); - const int screen = 0; - if (font.d->dpi != dpi || font.d->screen != screen ) { + if (font.d->dpi != dpi) { d = new QFontPrivate(*font.d); d->dpi = dpi; - d->screen = screen; } else { d = font.d; } diff --git a/src/gui/text/qfont_p.h b/src/gui/text/qfont_p.h index 466e19e9cc..adbb7a0121 100644 --- a/src/gui/text/qfont_p.h +++ b/src/gui/text/qfont_p.h @@ -185,7 +185,6 @@ public: QFontDef request; mutable QFontEngineData *engineData; int dpi; - int screen; uint underline : 1; uint overline : 1; @@ -230,19 +229,17 @@ public: void clear(); struct Key { - Key() : script(0), multi(0), screen(0) { } - Key(const QFontDef &d, uchar c, bool m = 0, uchar s = 0) - : def(d), script(c), multi(m), screen(s) { } + Key() : script(0), multi(0) { } + Key(const QFontDef &d, uchar c, bool m = 0) + : def(d), script(c), multi(m) { } QFontDef def; uchar script; uchar multi: 1; - uchar screen: 7; inline bool operator<(const Key &other) const { if (script != other.script) return script < other.script; - if (screen != other.screen) return screen < other.screen; if (multi != other.multi) return multi < other.multi; if (multi && def.fallBackFamilies.size() != other.def.fallBackFamilies.size()) return def.fallBackFamilies.size() < other.def.fallBackFamilies.size(); @@ -251,7 +248,6 @@ public: inline bool operator==(const Key &other) const { return script == other.script - && screen == other.screen && multi == other.multi && (!multi || def.fallBackFamilies == other.def.fallBackFamilies) && def == other.def; diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index c8dc8d676e..7096bba160 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -185,11 +185,9 @@ QFontMetrics::QFontMetrics(const QFont &font, const QPaintDevice *paintdevice) #endif { const int dpi = paintdevice ? paintdevice->logicalDpiY() : qt_defaultDpi(); - const int screen = 0; - if (font.d->dpi != dpi || font.d->screen != screen ) { + if (font.d->dpi != dpi) { d = new QFontPrivate(*font.d); d->dpi = dpi; - d->screen = screen; } else { d = font.d; } @@ -1171,11 +1169,9 @@ QFontMetricsF::QFontMetricsF(const QFont &font, const QPaintDevice *paintdevice) #endif { int dpi = paintdevice ? paintdevice->logicalDpiY() : qt_defaultDpi(); - const int screen = 0; - if (font.d->dpi != dpi || font.d->screen != screen ) { + if (font.d->dpi != dpi) { d = new QFontPrivate(*font.d); d->dpi = dpi; - d->screen = screen; } else { d = font.d; } -- cgit v1.2.3 From d97009a9f147af7f9785afb53df49e874aadd969 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Sun, 11 Aug 2019 08:59:07 +0200 Subject: Remove obsolete API after qtdeclarative migrated This is a follow-up to commit b7d073e9905bf9812ba96cecdcf6871a95517d30, which refactored memory allocation of QMetaCallEvent. Change-Id: I363256c80ee941b545e6f9c659c65556fff5c907 Reviewed-by: Simon Hausmann --- src/corelib/kernel/qobject.cpp | 22 ---------------------- src/corelib/kernel/qobject_p.h | 6 ------ 2 files changed, 28 deletions(-) diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 4a26e9cdc0..9251a3c05f 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -524,28 +524,6 @@ inline void QMetaCallEvent::allocArgs() d.args_ = static_cast(memory); } -/*! - \internal - - Only used by QtDeclarative - to be removed when migrated. - */ -QMetaCallEvent::QMetaCallEvent(ushort method_offset, ushort method_relative, - QObjectPrivate::StaticMetaCallFunction callFunction, - const QObject *sender, int signalId, - int nargs, int *types_, void **args_) - : QAbstractMetaCallEvent(sender, signalId), - d({nullptr, nullptr, callFunction, nargs, method_offset, method_relative}), - prealloc_() -{ - allocArgs(); - for (int arg = 0; arg < nargs; ++arg) { - types()[arg] = types_[arg]; - args()[arg] = args_[arg]; - } - free(types_); - free(args_); -} - /*! \internal diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index 5d0b3a8399..feafcaf323 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -509,12 +509,6 @@ private: class Q_CORE_EXPORT QMetaCallEvent : public QAbstractMetaCallEvent { public: - // kept for compatibility until QtDeclarative has moved over - QMetaCallEvent(ushort method_offset, ushort method_relative, - QObjectPrivate::StaticMetaCallFunction callFunction, - const QObject *sender, int signalId, - int nargs, int *types, void **args); - // blocking queued with semaphore - args always owned by caller QMetaCallEvent(ushort method_offset, ushort method_relative, QObjectPrivate::StaticMetaCallFunction callFunction, -- cgit v1.2.3 From 6a2112c28c0dcc79a83607f87eec8fbd75440798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Wed, 14 Aug 2019 12:00:13 +0200 Subject: Remove use of QByteDataBuffer in QNetworkReplyHttpImpl It's temporarily storing QByteArrays before we copy them directly to QIODevice's internal buffer. We can save the extra work by just push them directly into the buffer. The signal compression is no longer useful performance-wise, but is kept as it will throttle the amount of readyRead emissions the users has to handle. Reorder some of the operations as a result to make it more natural. Change-Id: Ifc0481d56fec42545e95970125d883a5c68d647a Reviewed-by: Alex Trotsenko Reviewed-by: Timur Pocheptsov --- src/network/access/qnetworkreplyhttpimpl.cpp | 58 +++++++++------------------- src/network/access/qnetworkreplyhttpimpl_p.h | 2 - 2 files changed, 19 insertions(+), 41 deletions(-) diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index 12dfb1c269..b3dec282b0 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -1052,59 +1052,39 @@ void QNetworkReplyHttpImplPrivate::replyDownloadData(QByteArray d) if (!q->isOpen()) return; - int pendingSignals = (int)pendingDownloadDataEmissions->fetchAndAddAcquire(-1) - 1; + if (cacheEnabled && isCachingAllowed() && !cacheSaveDevice) + initCacheSaveDevice(); + + // This is going to look a little strange. When downloading data while a + // HTTP redirect is happening (and enabled), we write the redirect + // response to the cache. However, we do not append it to our internal + // buffer as that will contain the response data only for the final + // response + if (cacheSaveDevice) + cacheSaveDevice->write(d); + + if (!isHttpRedirectResponse()) { + buffer.append(d); + bytesDownloaded += d.size(); + } + bytesBuffered += d.size(); + int pendingSignals = pendingDownloadDataEmissions->fetchAndSubAcquire(1) - 1; if (pendingSignals > 0) { // Some more signal emissions to this slot are pending. // Instead of writing the downstream data, we wait // and do it in the next call we get // (signal comppression) - pendingDownloadData.append(d); return; } - pendingDownloadData.append(d); - d.clear(); - // We need to usa a copy for calling writeDownstreamData as we could - // possibly recurse into this this function when we call - // appendDownstreamDataSignalEmissions because the user might call - // processEvents() or spin an event loop when this occur. - QByteDataBuffer pendingDownloadDataCopy = pendingDownloadData; - pendingDownloadData.clear(); - - if (cacheEnabled && isCachingAllowed() && !cacheSaveDevice) { - initCacheSaveDevice(); - } - - qint64 bytesWritten = 0; - for (int i = 0; i < pendingDownloadDataCopy.bufferCount(); i++) { - QByteArray const &item = pendingDownloadDataCopy[i]; - - // This is going to look a little strange. When downloading data while a - // HTTP redirect is happening (and enabled), we write the redirect - // response to the cache. However, we do not append it to our internal - // buffer as that will contain the response data only for the final - // response - if (cacheSaveDevice) - cacheSaveDevice->write(item.constData(), item.size()); - - if (!isHttpRedirectResponse()) - buffer.append(item); - - bytesWritten += item.size(); - } - bytesBuffered += bytesWritten; - pendingDownloadDataCopy.clear(); + if (isHttpRedirectResponse()) + return; QVariant totalSize = cookedHeaders.value(QNetworkRequest::ContentLengthHeader); if (preMigrationDownloaded != Q_INT64_C(-1)) totalSize = totalSize.toLongLong() + preMigrationDownloaded; - if (isHttpRedirectResponse()) - return; - - bytesDownloaded += bytesWritten; - emit q->readyRead(); // emit readyRead before downloadProgress incase this will cause events to be // processed and we get into a recursive call (as in QProgressDialog). diff --git a/src/network/access/qnetworkreplyhttpimpl_p.h b/src/network/access/qnetworkreplyhttpimpl_p.h index f5f01d0811..ef69ce0653 100644 --- a/src/network/access/qnetworkreplyhttpimpl_p.h +++ b/src/network/access/qnetworkreplyhttpimpl_p.h @@ -63,7 +63,6 @@ #include #include -#include #include #include #include @@ -248,7 +247,6 @@ public: quint64 resumeOffset; qint64 preMigrationDownloaded; - QByteDataBuffer pendingDownloadData; // For signal compression qint64 bytesDownloaded; qint64 bytesBuffered; -- cgit v1.2.3 From 9db230efa92fec992132fcf7e4bb7fda9707b152 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 19 Aug 2019 09:17:24 +0200 Subject: Fix "conflicting targets" warning when generating VS projects The VS project generator never calls the Win32MakefileGenerator code that sets up DEST_TARGET which is used for checking for conflicting DESTDIR/TARGET combinations on Windows. Replicate the setup in VcprojGenerator::initProject(). This amends commit e75aed1a. Change-Id: I4238eb2f57615095c372cee9ada9fc961cc36133 Reviewed-by: Alexandru Croitor --- qmake/generators/win32/msvc_vcproj.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 06db24df22..b74448ce94 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -940,6 +940,15 @@ void VcprojGenerator::initProject() vcProject.SccProjectName = project->first("SCCPROJECTNAME").toQString(); vcProject.SccLocalPath = project->first("SCCLOCALPATH").toQString(); vcProject.flat_files = project->isActiveConfig("flat"); + + // Set up the full target path for target conflict checking. + const QChar slash = QLatin1Char('/'); + QString destdir = QDir::fromNativeSeparators(var("DESTDIR")); + if (!destdir.endsWith(slash)) + destdir.append(slash); + project->values("DEST_TARGET") = ProStringList(destdir + + project->first("TARGET") + + project->first("TARGET_EXT")); } void VcprojGenerator::initConfiguration() -- cgit v1.2.3 From 4300dccba56ed1904c3481a4b19fdc5475f6b3e1 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Thu, 22 Aug 2019 09:43:26 +0200 Subject: Fix a broken build QHttp2Configuration is using entities (read definitions) from http2, which is only conditionally included in the *.pri file (requires http). So as a result we had linker errors. Fixes: QTBUG-77759 Change-Id: I8b33b0a4802a295f67edad03da3743b24f7ce514 Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Paul Wicking --- src/network/access/access.pri | 12 ++++++------ src/network/access/qhttp2configuration.h | 4 ++++ src/network/access/qnetworkrequest.cpp | 17 +++++++++++++++-- src/network/access/qnetworkrequest.h | 3 ++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/network/access/access.pri b/src/network/access/access.pri index 87fb82b1a7..cfb20dcd71 100644 --- a/src/network/access/access.pri +++ b/src/network/access/access.pri @@ -24,8 +24,7 @@ HEADERS += \ access/qabstractnetworkcache.h \ access/qnetworkfile_p.h \ access/qhsts_p.h \ - access/qhstspolicy.h \ - access/qhttp2configuration.h + access/qhstspolicy.h SOURCES += \ access/qnetworkaccessauthenticationmanager.cpp \ @@ -45,8 +44,7 @@ SOURCES += \ access/qabstractnetworkcache.cpp \ access/qnetworkfile.cpp \ access/qhsts.cpp \ - access/qhstspolicy.cpp \ - access/qhttp2configuration.cpp + access/qhstspolicy.cpp qtConfig(ftp) { HEADERS += \ @@ -99,7 +97,8 @@ qtConfig(http) { access/qhttpnetworkrequest.cpp \ access/qhttpprotocolhandler.cpp \ access/qhttpthreaddelegate.cpp \ - access/qnetworkreplyhttpimpl.cpp + access/qnetworkreplyhttpimpl.cpp \ + access/qhttp2configuration.cpp HEADERS += \ access/qabstractprotocolhandler_p.h \ @@ -113,7 +112,8 @@ qtConfig(http) { access/qhttpnetworkrequest_p.h \ access/qhttpprotocolhandler_p.h \ access/qhttpthreaddelegate_p.h \ - access/qnetworkreplyhttpimpl_p.h + access/qnetworkreplyhttpimpl_p.h \ + access/qhttp2configuration.h qtConfig(ssl) { SOURCES += \ diff --git a/src/network/access/qhttp2configuration.h b/src/network/access/qhttp2configuration.h index 544e3a3d98..e5c235e2be 100644 --- a/src/network/access/qhttp2configuration.h +++ b/src/network/access/qhttp2configuration.h @@ -44,6 +44,10 @@ #include +#ifndef Q_CLANG_QDOC +QT_REQUIRE_CONFIG(http); +#endif + QT_BEGIN_NAMESPACE class QHttp2ConfigurationPrivate; diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp index e3976db642..118fb6b1fb 100644 --- a/src/network/access/qnetworkrequest.cpp +++ b/src/network/access/qnetworkrequest.cpp @@ -42,8 +42,10 @@ #include "qplatformdefs.h" #include "qnetworkcookie.h" #include "qsslconfiguration.h" +#if QT_CONFIG(http) || defined(Q_CLANG_QDOC) #include "qhttp2configuration.h" #include "private/http2protocol_p.h" +#endif #include "QtCore/qshareddata.h" #include "QtCore/qlocale.h" #include "QtCore/qdatetime.h" @@ -447,7 +449,9 @@ public: sslConfiguration = new QSslConfiguration(*other.sslConfiguration); #endif peerVerifyName = other.peerVerifyName; +#if QT_CONFIG(http) h2Configuration = other.h2Configuration; +#endif } inline bool operator==(const QNetworkRequestPrivate &other) const @@ -457,8 +461,11 @@ public: rawHeaders == other.rawHeaders && attributes == other.attributes && maxRedirectsAllowed == other.maxRedirectsAllowed && - peerVerifyName == other.peerVerifyName && - h2Configuration == other.h2Configuration; + peerVerifyName == other.peerVerifyName +#if QT_CONFIG(http) + && h2Configuration == other.h2Configuration +#endif + ; // don't compare cookedHeaders } @@ -469,7 +476,9 @@ public: #endif int maxRedirectsAllowed; QString peerVerifyName; +#if QT_CONFIG(http) QHttp2Configuration h2Configuration; +#endif }; /*! @@ -481,6 +490,7 @@ public: QNetworkRequest::QNetworkRequest() : d(new QNetworkRequestPrivate) { +#if QT_CONFIG(http) // Initial values proposed by RFC 7540 are quite draconian, // so unless an application will set its own parameters, we // make stream window size larger and increase (via WINDOW_UPDATE) @@ -488,6 +498,7 @@ QNetworkRequest::QNetworkRequest() d->h2Configuration.setStreamReceiveWindowSize(Http2::qtDefaultStreamReceiveWindowSize); d->h2Configuration.setSessionReceiveWindowSize(Http2::maxSessionReceiveWindowSize); d->h2Configuration.setServerPushEnabled(false); +#endif // QT_CONFIG(http) } /*! @@ -847,6 +858,7 @@ void QNetworkRequest::setPeerVerifyName(const QString &peerName) d->peerVerifyName = peerName; } +#if QT_CONFIG(http) || defined(Q_CLANG_QDOC) /*! \since 5.14 @@ -890,6 +902,7 @@ void QNetworkRequest::setHttp2Configuration(const QHttp2Configuration &configura { d->h2Configuration = configuration; } +#endif // QT_CONFIG(http) || defined(Q_CLANG_QDOC) static QByteArray headerName(QNetworkRequest::KnownHeaders header) { diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h index 463dabef83..e09ff8aaae 100644 --- a/src/network/access/qnetworkrequest.h +++ b/src/network/access/qnetworkrequest.h @@ -176,9 +176,10 @@ public: QString peerVerifyName() const; void setPeerVerifyName(const QString &peerName); - +#if QT_CONFIG(http) || defined(Q_CLANG_QDOC) QHttp2Configuration http2Configuration() const; void setHttp2Configuration(const QHttp2Configuration &configuration); +#endif // QT_CONFIG(http) || defined(Q_CLANG_QDOC) private: QSharedDataPointer d; friend class QNetworkRequestPrivate; -- cgit v1.2.3 From 529b27152068f02fc67dba6e4bb88be918220827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Arve=20S=C3=A6ther?= Date: Thu, 22 Aug 2019 10:18:53 +0200 Subject: Don't excessively check all output files for failures This is really just an optimization, but I suspect the author of the code assumed that the bitwise &= operator short-cicuits. (It doesn't). So this patch should then fix the code to have the intended behavior. We don't have to check for failures in the remaining output files once we've found one. pullFiles() returns just a bool indicating if one of the output files has a recorded fail, so checking the remaining output files after the first found failure is just a waste (and ideally they should contain the same failure (however, flaky tests might break this ideal)). Drive-by fix. Change-Id: I951e500a69198e7ed124be32199ac81bbddb9bf7 Reviewed-by: BogDan Vatra --- src/tools/androidtestrunner/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/androidtestrunner/main.cpp b/src/tools/androidtestrunner/main.cpp index a035e068bc..f61d407d4a 100644 --- a/src/tools/androidtestrunner/main.cpp +++ b/src/tools/androidtestrunner/main.cpp @@ -409,7 +409,7 @@ static bool pullFiles() return false; } auto checkerIt = g_options.checkFiles.find(it.key()); - ret &= checkerIt != g_options.checkFiles.end() && checkerIt.value()(output); + ret = ret && checkerIt != g_options.checkFiles.end() && checkerIt.value()(output); if (it.value() == QStringLiteral("-")){ fprintf(stdout, "%s", output.constData()); fflush(stdout); -- cgit v1.2.3 From 5b2dfbc649a7c20a93223cd4c274a4b0fe847df8 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 21:20:37 +0200 Subject: Long live QSize(F)::grownBy/shrunkBy() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These functions tighten the integration of QMargins(F) with the rest of the geometry classes by providing a way to apply margins to sizes (and later, rects). Apply them in a few obvious cases across QtWidgets. [ChangeLog][QtCore][QSize/QSizeF] Added grownBy(QMargin(F))/shrunkBy(QMargin(F)). Change-Id: I8a549436824cdb7fb6125a8cde89d5bf02826934 Reviewed-by: Mårten Nordheim Reviewed-by: Shawn Rutledge Reviewed-by: Edward Welbourne --- src/corelib/tools/qsize.cpp | 18 +++++++++++ src/corelib/tools/qsize.h | 11 +++++++ src/widgets/widgets/qdockarealayout.cpp | 21 ++++-------- src/widgets/widgets/qdockwidget.cpp | 7 ++-- tests/auto/corelib/tools/qsize/tst_qsize.cpp | 44 ++++++++++++++++++++++++++ tests/auto/corelib/tools/qsizef/tst_qsizef.cpp | 44 ++++++++++++++++++++++++++ 6 files changed, 126 insertions(+), 19 deletions(-) diff --git a/src/corelib/tools/qsize.cpp b/src/corelib/tools/qsize.cpp index fe508ad459..2cbaae117d 100644 --- a/src/corelib/tools/qsize.cpp +++ b/src/corelib/tools/qsize.cpp @@ -390,7 +390,25 @@ QSize QSize::scaled(const QSize &s, Qt::AspectRatioMode mode) const noexcept \sa expandedTo(), scale() */ +/*! + \fn QSize QSize::grownBy(QMargins margins) const + \fn QSizeF QSizeF::grownBy(QMarginsF margins) const + \since 5.14 + + Returns the size that results from growing this size by \a margins. + + \sa shrunkBy() +*/ +/*! + \fn QSize QSize::shrunkBy(QMargins margins) const + \fn QSizeF QSizeF::shrunkBy(QMarginsF margins) const + \since 5.14 + + Returns the size that results from shrinking this size by \a margins. + + \sa grownBy() +*/ /***************************************************************************** QSize stream functions diff --git a/src/corelib/tools/qsize.h b/src/corelib/tools/qsize.h index 4114609856..06de1cd63f 100644 --- a/src/corelib/tools/qsize.h +++ b/src/corelib/tools/qsize.h @@ -41,6 +41,7 @@ #define QSIZE_H #include +#include #if defined(Q_OS_DARWIN) || defined(Q_QDOC) struct CGSize; @@ -74,6 +75,11 @@ public: Q_REQUIRED_RESULT Q_DECL_CONSTEXPR inline QSize expandedTo(const QSize &) const noexcept; Q_REQUIRED_RESULT Q_DECL_CONSTEXPR inline QSize boundedTo(const QSize &) const noexcept; + Q_REQUIRED_RESULT Q_DECL_CONSTEXPR QSize grownBy(QMargins m) const noexcept + { return {width() + m.left() + m.right(), height() + m.top() + m.bottom()}; } + Q_REQUIRED_RESULT Q_DECL_CONSTEXPR QSize shrunkBy(QMargins m) const noexcept + { return {width() - m.left() - m.right(), height() - m.top() - m.bottom()}; } + Q_DECL_RELAXED_CONSTEXPR inline int &rwidth() noexcept; Q_DECL_RELAXED_CONSTEXPR inline int &rheight() noexcept; @@ -238,6 +244,11 @@ public: Q_REQUIRED_RESULT Q_DECL_CONSTEXPR inline QSizeF expandedTo(const QSizeF &) const noexcept; Q_REQUIRED_RESULT Q_DECL_CONSTEXPR inline QSizeF boundedTo(const QSizeF &) const noexcept; + Q_REQUIRED_RESULT Q_DECL_CONSTEXPR QSizeF grownBy(QMarginsF m) const noexcept + { return {width() + m.left() + m.right(), height() + m.top() + m.bottom()}; } + Q_REQUIRED_RESULT Q_DECL_CONSTEXPR QSizeF shrunkBy(QMarginsF m) const noexcept + { return {width() - m.left() - m.right(), height() - m.top() - m.bottom()}; } + Q_DECL_RELAXED_CONSTEXPR inline qreal &rwidth() noexcept; Q_DECL_RELAXED_CONSTEXPR inline qreal &rheight() noexcept; diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index 55ae42db04..8844a85987 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -138,11 +138,8 @@ bool QDockAreaLayoutItem::skip() const QSize QDockAreaLayoutItem::minimumSize() const { - if (widgetItem != 0) { - int left, top, right, bottom; - widgetItem->widget()->getContentsMargins(&left, &top, &right, &bottom); - return widgetItem->minimumSize() + QSize(left+right, top+bottom); - } + if (widgetItem) + return widgetItem->minimumSize().grownBy(widgetItem->widget()->contentsMargins()); if (subinfo != 0) return subinfo->minimumSize(); return QSize(0, 0); @@ -150,11 +147,8 @@ QSize QDockAreaLayoutItem::minimumSize() const QSize QDockAreaLayoutItem::maximumSize() const { - if (widgetItem != 0) { - int left, top, right, bottom; - widgetItem->widget()->getContentsMargins(&left, &top, &right, &bottom); - return widgetItem->maximumSize()+ QSize(left+right, top+bottom); - } + if (widgetItem) + return widgetItem->maximumSize().grownBy(widgetItem->widget()->contentsMargins()); if (subinfo != 0) return subinfo->maximumSize(); return QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX); @@ -180,11 +174,8 @@ QSize QDockAreaLayoutItem::sizeHint() const { if (placeHolderItem != 0) return QSize(0, 0); - if (widgetItem != 0) { - int left, top, right, bottom; - widgetItem->widget()->getContentsMargins(&left, &top, &right, &bottom); - return widgetItem->sizeHint() + QSize(left+right, top+bottom); - } + if (widgetItem) + return widgetItem->sizeHint().grownBy(widgetItem->widget()->contentsMargins()); if (subinfo != 0) return subinfo->sizeHint(); return QSize(-1, -1); diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index 28a7cee2a0..a7010f9260 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -381,11 +381,10 @@ QSize QDockWidgetLayout::sizeFromContent(const QSize &content, bool floating) co if (content.height() < 0) result.setHeight(-1); - int left, top, right, bottom; - w->getContentsMargins(&left, &top, &right, &bottom); + const QMargins margins = w->contentsMargins(); //we need to subtract the contents margin (it will be added by the caller) - QSize min = w->minimumSize() - QSize(left + right, top + bottom); - QSize max = w->maximumSize() - QSize(left + right, top + bottom); + QSize min = w->minimumSize().shrunkBy(margins); + QSize max = w->maximumSize().shrunkBy(margins); /* A floating dockwidget will automatically get its minimumSize set to the layout's minimum size + deco. We're *not* interested in this, we only take minimumSize() diff --git a/tests/auto/corelib/tools/qsize/tst_qsize.cpp b/tests/auto/corelib/tools/qsize/tst_qsize.cpp index 385ff18ce5..6824bad9c8 100644 --- a/tests/auto/corelib/tools/qsize/tst_qsize.cpp +++ b/tests/auto/corelib/tools/qsize/tst_qsize.cpp @@ -29,6 +29,7 @@ #include #include +Q_DECLARE_METATYPE(QMargins) class tst_QSize : public QObject { @@ -43,6 +44,9 @@ private slots: void boundedTo_data(); void boundedTo(); + void grownOrShrunkBy_data(); + void grownOrShrunkBy(); + void transpose_data(); void transpose(); }; @@ -186,6 +190,46 @@ void tst_QSize::boundedTo() QCOMPARE( input1.boundedTo(input2), expected); } +void tst_QSize::grownOrShrunkBy_data() +{ + QTest::addColumn("input"); + QTest::addColumn("margins"); + QTest::addColumn("grown"); + QTest::addColumn("shrunk"); + + auto row = [](QSize i, QMargins m, QSize g, QSize s) { + QTest::addRow("{%d,%d}/{%d,%d,%d,%d}", i.width(), i.height(), + m.left(), m.top(), m.right(), m.bottom()) + << i << m << g << s; + }; + + const QSize zero = {0, 0}; + const QSize some = {100, 200}; + const QMargins zeroMargins = {}; + const QMargins negative = {-1, -2, -3, -4}; + const QMargins positive = { 1, 2, 3, 4}; + + row(zero, zeroMargins, zero, zero); + row(zero, negative, {-4, -6}, { 4, 6}); + row(zero, positive, { 4, 6}, {-4, -6}); + row(some, zeroMargins, some, some); + row(some, negative, { 96, 194}, {104, 206}); + row(some, positive, {104, 206}, { 96, 194}); +} + +void tst_QSize::grownOrShrunkBy() +{ + QFETCH(const QSize, input); + QFETCH(const QMargins, margins); + QFETCH(const QSize, grown); + QFETCH(const QSize, shrunk); + + QCOMPARE(input.grownBy(margins), grown); + QCOMPARE(input.shrunkBy(margins), shrunk); + QCOMPARE(grown.shrunkBy(margins), input); + QCOMPARE(shrunk.grownBy(margins), input); +} + void tst_QSize::transpose_data() { QTest::addColumn("input1"); diff --git a/tests/auto/corelib/tools/qsizef/tst_qsizef.cpp b/tests/auto/corelib/tools/qsizef/tst_qsizef.cpp index 42801d63a9..bbffa74a62 100644 --- a/tests/auto/corelib/tools/qsizef/tst_qsizef.cpp +++ b/tests/auto/corelib/tools/qsizef/tst_qsizef.cpp @@ -29,6 +29,7 @@ #include #include +Q_DECLARE_METATYPE(QMarginsF) class tst_QSizeF : public QObject { @@ -45,6 +46,9 @@ private slots: void boundedTo_data(); void boundedTo(); + void grownOrShrunkBy_data(); + void grownOrShrunkBy(); + void transpose_data(); void transpose(); }; @@ -152,6 +156,46 @@ void tst_QSizeF::boundedTo() { QCOMPARE( input1.boundedTo(input2), expected); } +void tst_QSizeF::grownOrShrunkBy_data() +{ + QTest::addColumn("input"); + QTest::addColumn("margins"); + QTest::addColumn("grown"); + QTest::addColumn("shrunk"); + + auto row = [](QSizeF i, QMarginsF m, QSizeF g, QSizeF s) { + QTest::addRow("{%g,%g}/{%g,%g,%g,%g}", i.width(), i.height(), + m.left(), m.top(), m.right(), m.bottom()) + << i << m << g << s; + }; + + const QSizeF zero = {0, 0}; + const QSizeF some = {100, 200}; + const QMarginsF zeroMargins = {}; + const QMarginsF negative = {-1, -2, -3, -4}; + const QMarginsF positive = { 1, 2, 3, 4}; + + row(zero, zeroMargins, zero, zero); + row(zero, negative, {-4, -6}, { 4, 6}); + row(zero, positive, { 4, 6}, {-4, -6}); + row(some, zeroMargins, some, some); + row(some, negative, { 96, 194}, {104, 206}); + row(some, positive, {104, 206}, { 96, 194}); +} + +void tst_QSizeF::grownOrShrunkBy() +{ + QFETCH(const QSizeF, input); + QFETCH(const QMarginsF, margins); + QFETCH(const QSizeF, grown); + QFETCH(const QSizeF, shrunk); + + QCOMPARE(input.grownBy(margins), grown); + QCOMPARE(input.shrunkBy(margins), shrunk); + QCOMPARE(grown.shrunkBy(margins), input); + QCOMPARE(shrunk.grownBy(margins), input); +} + void tst_QSizeF::transpose_data() { QTest::addColumn("input1"); QTest::addColumn("expected"); -- cgit v1.2.3 From d1b099c3e3cfcbf86353b53e205c0ebf84cf5592 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 14 Aug 2019 09:41:18 +0200 Subject: QBezier: replace out parameters by return-by-value in split() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit At least QBezier itself is calling the old function with *this aliased to one of the arguments. Consequently, the implementation looks rather ... shuffled, to avoid writing into members that it will read once more later. Fix by returning a std::pair instead. This simplifies the code that doesn't actually pass existing objects in, and avoids aliasing problems cropping up under seemingly innocuous reorderings of statements in the implementation going forward. While I'm usually vehemently against use std::pair or std::tuple in APIs, preferring simple structs with aptly-named members instead, this is one case where the .first and .second actually fit, and pair allows us to use std::tie, which was handy in qbezier.cpp. This patch preserves the body of the function as much as possible. A follow-up patch will clean it up. Change-Id: I017dfee4a0e69a2e171ce21b89ba04654772c33d Reviewed-by: Edward Welbourne Reviewed-by: Mårten Nordheim --- src/gui/painting/qbezier.cpp | 16 ++++++++-------- src/gui/painting/qbezier_p.h | 11 +++++++---- src/gui/painting/qpainterpath.cpp | 21 +++++++++------------ 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/gui/painting/qbezier.cpp b/src/gui/painting/qbezier.cpp index daf19fffe1..9861fffff3 100644 --- a/src/gui/painting/qbezier.cpp +++ b/src/gui/painting/qbezier.cpp @@ -47,6 +47,8 @@ #include +#include // for std::tie() + QT_BEGIN_NAMESPACE //#define QDEBUG_BEZIER @@ -128,7 +130,7 @@ void QBezier::addToPolygon(QPolygonF *polygon, qreal bezier_flattening_threshold --lvl; } else { // split, second half of the polygon goes lower into the stack - b->split(b+1, b); + std::tie(b[1], b[0]) = b->split(); lvl[1] = --lvl[0]; ++b; ++lvl; @@ -166,7 +168,7 @@ void QBezier::addToPolygon(QDataBuffer &polygon, qreal bezier_flattenin --lvl; } else { // split, second half of the polygon goes lower into the stack - b->split(b+1, b); + std::tie(b[1], b[0]) = b->split(); lvl[1] = --lvl[0]; ++b; ++lvl; @@ -422,7 +424,7 @@ redo: o += 2; --b; } else { - b->split(b+1, b); + std::tie(b[1], b[0]) = b->split(); ++b; } } @@ -464,8 +466,6 @@ qreal QBezier::length(qreal error) const void QBezier::addIfClose(qreal *length, qreal error) const { - QBezier left, right; /* bez poly splits */ - qreal len = qreal(0.0); /* arc length */ qreal chord; /* chord length */ @@ -476,9 +476,9 @@ void QBezier::addIfClose(qreal *length, qreal error) const chord = QLineF(QPointF(x1, y1),QPointF(x4, y4)).length(); if((len-chord) > error) { - split(&left, &right); /* split in two */ - left.addIfClose(length, error); /* try left side */ - right.addIfClose(length, error); /* try right side */ + const auto halves = split(); /* split in two */ + halves.first.addIfClose(length, error); /* try left side */ + halves.second.addIfClose(length, error); /* try right side */ return; } diff --git a/src/gui/painting/qbezier_p.h b/src/gui/painting/qbezier_p.h index f88e3b35b3..02b29c5ba7 100644 --- a/src/gui/painting/qbezier_p.h +++ b/src/gui/painting/qbezier_p.h @@ -107,7 +107,7 @@ public: inline QLineF endTangent() const; inline void parameterSplitLeft(qreal t, QBezier *left); - inline void split(QBezier *firstHalf, QBezier *secondHalf) const; + inline std::pair split() const; int shifted(QBezier *curveSegments, int maxSegmets, qreal offset, float threshold) const; @@ -223,10 +223,11 @@ inline QPointF QBezier::secondDerivedAt(qreal t) const a * y1 + b * y2 + c * y3 + d * y4); } -inline void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const +std::pair QBezier::split() const { - Q_ASSERT(firstHalf); - Q_ASSERT(secondHalf); + std::pair r; + auto firstHalf = &r.first; + auto secondHalf = &r.second; qreal c = (x2 + x3)*.5; firstHalf->x2 = (x1 + x2)*.5; @@ -245,6 +246,8 @@ inline void QBezier::split(QBezier *firstHalf, QBezier *secondHalf) const firstHalf->y3 = (firstHalf->y2 + c)*.5; secondHalf->y2 = (secondHalf->y3 + c)*.5; firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2)*.5; + + return r; } inline void QBezier::parameterSplitLeft(qreal t, QBezier *left) diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp index b1d1f30800..1fb37ece56 100644 --- a/src/gui/painting/qpainterpath.cpp +++ b/src/gui/painting/qpainterpath.cpp @@ -1855,10 +1855,9 @@ static void qt_painterpath_isect_curve(const QBezier &bezier, const QPointF &pt, } // split curve and try again... - QBezier first_half, second_half; - bezier.split(&first_half, &second_half); - qt_painterpath_isect_curve(first_half, pt, winding, depth + 1); - qt_painterpath_isect_curve(second_half, pt, winding, depth + 1); + const auto halves = bezier.split(); + qt_painterpath_isect_curve(halves.first, pt, winding, depth + 1); + qt_painterpath_isect_curve(halves.second, pt, winding, depth + 1); } } @@ -2013,10 +2012,9 @@ static bool qt_isect_curve_horizontal(const QBezier &bezier, qreal y, qreal x1, if (depth == 32 || (bounds.width() < lower_bound && bounds.height() < lower_bound)) return true; - QBezier first_half, second_half; - bezier.split(&first_half, &second_half); - if (qt_isect_curve_horizontal(first_half, y, x1, x2, depth + 1) - || qt_isect_curve_horizontal(second_half, y, x1, x2, depth + 1)) + const auto halves = bezier.split(); + if (qt_isect_curve_horizontal(halves.first, y, x1, x2, depth + 1) + || qt_isect_curve_horizontal(halves.second, y, x1, x2, depth + 1)) return true; } return false; @@ -2032,10 +2030,9 @@ static bool qt_isect_curve_vertical(const QBezier &bezier, qreal x, qreal y1, qr if (depth == 32 || (bounds.width() < lower_bound && bounds.height() < lower_bound)) return true; - QBezier first_half, second_half; - bezier.split(&first_half, &second_half); - if (qt_isect_curve_vertical(first_half, x, y1, y2, depth + 1) - || qt_isect_curve_vertical(second_half, x, y1, y2, depth + 1)) + const auto halves = bezier.split(); + if (qt_isect_curve_vertical(halves.first, x, y1, y2, depth + 1) + || qt_isect_curve_vertical(halves.second, x, y1, y2, depth + 1)) return true; } return false; -- cgit v1.2.3 From a52a3b2aa43870e9b9b76cf628e5e666d7ecc457 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Mon, 5 Aug 2019 22:54:33 +0200 Subject: Micro-optimize QAbstractItemModel::setItemData If b becomes false, we won't call setData ever again. Just bail out the loop early and return in that case. Change-Id: I4b0ed7e21546d686bc3f785209a314a8bed08471 Reviewed-by: Volker Hilsheimer Reviewed-by: Marc Mutz --- src/corelib/itemmodels/qabstractitemmodel.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/corelib/itemmodels/qabstractitemmodel.cpp b/src/corelib/itemmodels/qabstractitemmodel.cpp index c5fb5b9fc5..6e97c2fd39 100644 --- a/src/corelib/itemmodels/qabstractitemmodel.cpp +++ b/src/corelib/itemmodels/qabstractitemmodel.cpp @@ -1898,10 +1898,17 @@ bool QAbstractItemModel::clearItemData(const QModelIndex &index) */ bool QAbstractItemModel::setItemData(const QModelIndex &index, const QMap &roles) { - bool b = true; - for (QMap::ConstIterator it = roles.begin(); it != roles.end(); ++it) - b = b && setData(index, it.value(), it.key()); - return b; + // ### Qt 6: Consider change the semantics of this function, + // or deprecating/removing it altogether. + // + // For instance, it should try setting *all* the data + // in \a roles, and not bail out at the first setData that returns + // false. It should also have a transactional approach. + for (auto it = roles.begin(), e = roles.end(); it != e; ++it) { + if (!setData(index, it.value(), it.key())) + return false; + } + return true; } /*! -- cgit v1.2.3 From a4d19654edec88b5ca0a2516c1b2038ad309ca6d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 15 Aug 2019 10:59:23 +0200 Subject: Simplify QBezier::split() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that result objects can't alias source ones anymore, the order of writes no longer matters, and we can clean this function up. The pattern of the algorithm now becomes visible. Before, it was just drowing in noise. Change-Id: I36c55ce09d6e13a994c7eda17d96cfe960e7fb95 Reviewed-by: Mårten Nordheim Reviewed-by: Eirik Aavitsland --- src/gui/painting/qbezier_p.h | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/src/gui/painting/qbezier_p.h b/src/gui/painting/qbezier_p.h index 02b29c5ba7..1c49f82416 100644 --- a/src/gui/painting/qbezier_p.h +++ b/src/gui/painting/qbezier_p.h @@ -225,29 +225,19 @@ inline QPointF QBezier::secondDerivedAt(qreal t) const std::pair QBezier::split() const { - std::pair r; - auto firstHalf = &r.first; - auto secondHalf = &r.second; - - qreal c = (x2 + x3)*.5; - firstHalf->x2 = (x1 + x2)*.5; - secondHalf->x3 = (x3 + x4)*.5; - firstHalf->x1 = x1; - secondHalf->x4 = x4; - firstHalf->x3 = (firstHalf->x2 + c)*.5; - secondHalf->x2 = (secondHalf->x3 + c)*.5; - firstHalf->x4 = secondHalf->x1 = (firstHalf->x3 + secondHalf->x2)*.5; - - c = (y2 + y3)/2; - firstHalf->y2 = (y1 + y2)*.5; - secondHalf->y3 = (y3 + y4)*.5; - firstHalf->y1 = y1; - secondHalf->y4 = y4; - firstHalf->y3 = (firstHalf->y2 + c)*.5; - secondHalf->y2 = (secondHalf->y3 + c)*.5; - firstHalf->y4 = secondHalf->y1 = (firstHalf->y3 + secondHalf->y2)*.5; - - return r; + const auto mid = [](QPointF lhs, QPointF rhs) { return (lhs + rhs) * .5; }; + + const QPointF mid_12 = mid(pt1(), pt2()); + const QPointF mid_23 = mid(pt2(), pt3()); + const QPointF mid_34 = mid(pt3(), pt4()); + const QPointF mid_12_23 = mid(mid_12, mid_23); + const QPointF mid_23_34 = mid(mid_23, mid_34); + const QPointF mid_12_23__23_34 = mid(mid_12_23, mid_23_34); + + return { + fromPoints(pt1(), mid_12, mid_12_23, mid_12_23__23_34), + fromPoints(mid_12_23__23_34, mid_23_34, mid_34, pt4()), + }; } inline void QBezier::parameterSplitLeft(qreal t, QBezier *left) -- cgit v1.2.3 From 702664571252e4f5705e39a8258fc81a3fbf37d4 Mon Sep 17 00:00:00 2001 From: Soroush Rabiei Date: Thu, 8 Aug 2019 20:35:13 +0200 Subject: Add support for the Islamic Civil calendar This has its own locale data, extracted from CLDR. This data may potentially be shared with other variants on the Islamic calendar, so is handled by a separate base-class, QHijriCalendar, on which such variants may base their implementations. [ChangeLog][QtCore][QCalendar] Added support for the Islamic Civil calendar, controlled by feature islamiccivilcalendar, with locale data that can be shared with other implementations, controlled by feature hijricalendar. Fixes: QTBUG-56675 Change-Id: Idf32d3da7034baa8ec5e66ef847e59a8a2f31cbd Reviewed-by: Volker Hilsheimer --- src/corelib/configure.json | 13 + src/corelib/global/qconfig-bootstrapped.h | 2 + src/corelib/time/qcalendar.cpp | 8 + src/corelib/time/qcalendar.h | 14 +- src/corelib/time/qhijricalendar.cpp | 125 +++ src/corelib/time/qhijricalendar_data_p.h | 1146 ++++++++++++++++++++ src/corelib/time/qhijricalendar_p.h | 83 ++ src/corelib/time/qislamiccivilcalendar.cpp | 125 +++ src/corelib/time/qislamiccivilcalendar_p.h | 76 ++ src/corelib/time/time.pri | 15 + .../auto/corelib/time/qcalendar/tst_qcalendar.cpp | 4 + util/locale_database/cldr2qlocalexml.py | 2 +- util/locale_database/localexml.py | 17 +- util/locale_database/qlocalexml2cpp.py | 2 +- 14 files changed, 1626 insertions(+), 6 deletions(-) create mode 100644 src/corelib/time/qhijricalendar.cpp create mode 100644 src/corelib/time/qhijricalendar_data_p.h create mode 100644 src/corelib/time/qhijricalendar_p.h create mode 100644 src/corelib/time/qislamiccivilcalendar.cpp create mode 100644 src/corelib/time/qislamiccivilcalendar_p.h diff --git a/src/corelib/configure.json b/src/corelib/configure.json index 2f3d30d5b2..3febb59480 100644 --- a/src/corelib/configure.json +++ b/src/corelib/configure.json @@ -1047,6 +1047,19 @@ "section": "Utilities", "output": [ "publicFeature" ] }, + "hijricalendar": { + "label": "QHijriCalendar", + "purpose": "Generic basis for Islamic calendars, providing shared locale data", + "section": "Utilities", + "output": [ "privateFeature" ] + }, + "islamiccivilcalendar": { + "label": "QIslamicCivilCalendar", + "purpose": "Support the Islamic Civil calendar", + "section": "Utilities", + "condition": "features.hijricalendar", + "output": [ "publicFeature" ] + }, "timezone": { "label": "QTimeZone", "purpose": "Provides support for time-zone handling.", diff --git a/src/corelib/global/qconfig-bootstrapped.h b/src/corelib/global/qconfig-bootstrapped.h index 58427364b6..2e58dabf5f 100644 --- a/src/corelib/global/qconfig-bootstrapped.h +++ b/src/corelib/global/qconfig-bootstrapped.h @@ -84,8 +84,10 @@ #define QT_FEATURE_getauxval (QT_HAS_INCLUDE() ? 1 : -1) #define QT_FEATURE_getentropy -1 #define QT_NO_GEOM_VARIANT +#define QT_FEATURE_hijricalendar -1 #define QT_FEATURE_iconv -1 #define QT_FEATURE_icu -1 +#define QT_FEATURE_islamiccivilcalendar -1 #define QT_FEATURE_jalalicalendar -1 #define QT_FEATURE_journald -1 #define QT_FEATURE_futimens -1 diff --git a/src/corelib/time/qcalendar.cpp b/src/corelib/time/qcalendar.cpp index a315c257de..f6bb242788 100644 --- a/src/corelib/time/qcalendar.cpp +++ b/src/corelib/time/qcalendar.cpp @@ -36,6 +36,9 @@ #if QT_CONFIG(jalalicalendar) #include "qjalalicalendar_p.h" #endif +#if QT_CONFIG(islamiccivilcalendar) +#include "qislamiccivilcalendar_p.h" +#endif #include "qdatetime.h" #include "qcalendarmath_p.h" @@ -624,6 +627,10 @@ const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) #if QT_CONFIG(jalalicalendar) case QCalendar::System::Jalali: return new QJalaliCalendar; +#endif +#if QT_CONFIG(islamiccivilcalendar) + case QCalendar::System::IslamicCivil: + return new QIslamicCivilCalendar; #else // When highest-numbered system isn't enabled, ensure we have a case for Last: case QCalendar::System::Last: #endif @@ -667,6 +674,7 @@ const QCalendarBackend *QCalendarBackend::fromEnum(QCalendar::System system) \value Julian An ancient Roman calendar with too few leap years. \value Milankovic A revised Julian calendar used by some Orthodox churches. \value Jalali The Solar Hijri calendar (also called Persian). + \value IslamicCivil The (tabular) Islamic Civil calendar. \sa QCalendar */ diff --git a/src/corelib/time/qcalendar.h b/src/corelib/time/qcalendar.h index 595b7397cd..b117f4d6a9 100644 --- a/src/corelib/time/qcalendar.h +++ b/src/corelib/time/qcalendar.h @@ -62,8 +62,10 @@ * Indian -- National * Islamic -- Based on astronomical observations, not predictions, so hard to implement. CLDR's data for type="islamic" apply, unless overridden, to the - other Islamic calendar variants. - * IslamicTabular -- tabular, astronomical epoch, CLDR type="islamic-tbla" + other Islamic calendar variants, i.e. IslamicCivil, above, and the three + following. See QHijriCalendar, a common base to provide that data. + * IslamicTabular -- tabular, astronomical epoch (same as IslamicCivil, except + for epoch), CLDR type="islamic-tbla" * Saudi -- Saudi Arabia, sighting; CLDR type="islamic-rgsa" * UmmAlQura -- Umm al-Qura, Saudi Arabia, calculated; CLDR type="islamic-umalqura" * Iso8601 -- as Gregorian, but treating ISO 8601 weeks as "months" @@ -115,8 +117,14 @@ public: #if QT_CONFIG(jalalicalendar) // type="persian" Jalali = 10, #endif +#if QT_CONFIG(islamiccivilcalendar) // type="islamic-civil", uses data from type="islamic" + IslamicCivil = 11, + // tabular, civil epoch + // 30 year cycle, leap on 2, 5, 7, 10, 13, 16, 18, 21, 24, 26 and 29 + // (Other variants: 2, 5, 8, (10|11), 13, 16, 19, 21, 24, 27 and 29.) +#endif - Last = 10, // Highest number of any above + Last = 11, // Highest number of any above User = -1 }; // New entries must be added to the \enum doc in qcalendar.cpp and diff --git a/src/corelib/time/qhijricalendar.cpp b/src/corelib/time/qhijricalendar.cpp new file mode 100644 index 0000000000..1a1155be6d --- /dev/null +++ b/src/corelib/time/qhijricalendar.cpp @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobal.h" +#include "qhijricalendar_p.h" +#include "qhijricalendar_data_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \since 5.14 + + \class QHijriCalendar + \inmodule QtCore + \brief The QHijriCalendar class supports Islamic (Hijri) calendar implementations. + + \section1 Islamic Calendar System + + The Islamic, Muslim, or Hijri calendar is a lunar calendar consisting of 12 + months in a year of 354 or 355 days. It is used (often alongside the + Gregorian calendar) to date events in many Muslim countries. It is also used + by Muslims to determine the proper days of Islamic holidays and rituals, + such as the annual period of fasting and the proper time for the pilgrimage + to Mecca. + + Source: \l {https://en.wikipedia.org/wiki/Islamic_calendar}{Wikipedia page on + Hijri Calendar} + + \section1 Support for variants + + This base class provides the common details shared by all variants on the + Islamic calendar. Each year comprises 12 months of 29 or 30 days each; most + years have as many of 29 as of 30, but leap years extend one 29-day month to + 30 days. In tabular versions of the calendar (where mathematical rules are + used to determine the details), odd-numbered months have 30 days, as does the + last (twelfth) month of a leap year; all other months have 29 days. Other + versions are based on actual astronomical observations of the moon's phase at + sunset, which vary from place to place. + + \sa QIslamicCivilCalendar, QCalendar +*/ + +bool QHijriCalendar::isLunar() const +{ + return true; +} + +bool QHijriCalendar::isLuniSolar() const +{ + return false; +} + +bool QHijriCalendar::isSolar() const +{ + return false; +} + +int QHijriCalendar::daysInMonth(int month, int year) const +{ + if (year == 0 || month < 1 || month > 12) + return 0; + + if (month == 12 && isLeapYear(year)) + return 30; + + return month % 2 == 0 ? 29 : 30; +} + +int QHijriCalendar::maxDaysInMonth() const +{ + return 30; +} + +int QHijriCalendar::daysInYear(int year) const +{ + return monthsInYear(year) ? isLeapYear(year) ? 355 : 354 : 0; +} + +const QCalendarLocale *QHijriCalendar::localeMonthIndexData() const +{ + return locale_data; +} + +const ushort *QHijriCalendar::localeMonthData() const +{ + return months_data; +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qhijricalendar_data_p.h b/src/corelib/time/qhijricalendar_data_p.h new file mode 100644 index 0000000000..3900e1a477 --- /dev/null +++ b/src/corelib/time/qhijricalendar_data_p.h @@ -0,0 +1,1146 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QHIJRI_CALENDAR_DATA_P_H +#define QHIJRI_CALENDAR_DATA_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp. This header +// file may change from version to version without notice, or even be removed. +// +// We mean it. +// + +#include +#include + +QT_BEGIN_NAMESPACE + +// GENERATED PART STARTS HERE + +/* + This part of the file was generated on 2019-05-27 from the + Common Locale Data Repository v35.1 + + http://www.unicode.org/cldr/ + + Do not edit this section: instead regenerate it using + cldr2qlocalexml.py and qlocalexml2cpp.py on updated (or + edited) CLDR data; see qtbase/util/locale_database/. +*/ + +static const QCalendarLocale locale_data[] = { + // lang script terr sShort sLong sNarrow short long narrow + { 1, 0, 0,{ 0,87 },{ 87,107 },{ 194,29 },{ 0,87 },{ 87,107 },{ 194,29 }}, // C/AnyScript/AnyCountry + { 3, 7, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Oromo/Latin/Ethiopia + { 3, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Oromo/Latin/Kenya + { 4, 7, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Afar/Latin/Ethiopia + { 5, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Afrikaans/Latin/South Africa + { 5, 7, 148,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Afrikaans/Latin/Namibia + { 6, 7, 2,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Albanian/Latin/Albania + { 6, 7, 127,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Albanian/Latin/Macedonia + { 6, 7, 257,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Albanian/Latin/Kosovo + { 7, 14, 69,{ 223,79 },{ 329,75 },{ 302,27 },{ 223,79 },{ 329,75 },{ 302,27 }}, // Amharic/Ethiopic/Ethiopia + { 8, 1, 64,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Egypt + { 8, 1, 3,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Algeria + { 8, 1, 17,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Bahrain + { 8, 1, 42,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Chad + { 8, 1, 48,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Comoros + { 8, 1, 59,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Djibouti + { 8, 1, 67,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Eritrea + { 8, 1, 103,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Iraq + { 8, 1, 105,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Israel + { 8, 1, 109,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Jordan + { 8, 1, 115,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Kuwait + { 8, 1, 119,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Lebanon + { 8, 1, 122,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Libya + { 8, 1, 136,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Mauritania + { 8, 1, 145,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Morocco + { 8, 1, 162,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Oman + { 8, 1, 165,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Palestinian Territories + { 8, 1, 175,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Qatar + { 8, 1, 186,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Saudi Arabia + { 8, 1, 194,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Somalia + { 8, 1, 201,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Sudan + { 8, 1, 207,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Syria + { 8, 1, 216,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Tunisia + { 8, 1, 223,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/United Arab Emirates + { 8, 1, 236,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Western Sahara + { 8, 1, 237,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/Yemen + { 8, 1, 254,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/South Sudan + { 8, 1, 260,{ 404,97 },{ 404,97 },{ 501,27 },{ 404,97 },{ 404,97 },{ 501,27 }}, // Arabic/Arabic/World + { 9, 10, 11,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Armenian/Armenian/Armenia + { 10, 11, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Assamese/Bengali/India + { 12, 7, 15,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Azerbaijani/Latin/Azerbaijan + { 12, 1, 102,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Azerbaijani/Arabic/Iran + { 12, 2, 15,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Azerbaijani/Cyrillic/Azerbaijan + { 13, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bashkir/Cyrillic/Russia + { 14, 7, 197,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Basque/Latin/Spain + { 15, 11, 18,{ 528,105 },{ 528,105 },{ 633,27 },{ 528,105 },{ 528,105 },{ 633,27 }}, // Bengali/Bengali/Bangladesh + { 15, 11, 100,{ 528,105 },{ 528,105 },{ 633,27 },{ 528,105 },{ 528,105 },{ 633,27 }}, // Bengali/Bengali/India + { 16, 31, 25,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Dzongkha/Tibetan/Bhutan + { 19, 7, 74,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Breton/Latin/France + { 20, 2, 33,{ 223,79 },{ 660,97 },{ 302,27 },{ 223,79 },{ 660,97 },{ 302,27 }}, // Bulgarian/Cyrillic/Bulgaria + { 21, 25, 147,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Burmese/Myanmar/Myanmar + { 22, 2, 20,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Belarusian/Cyrillic/Belarus + { 23, 20, 36,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Khmer/Khmer/Cambodia + { 24, 7, 197,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Catalan/Latin/Spain + { 24, 7, 5,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Catalan/Latin/Andorra + { 24, 7, 74,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Catalan/Latin/France + { 24, 7, 106,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Catalan/Latin/Italy + { 25, 5, 44,{ 757,39 },{ 796,38 },{ 302,27 },{ 757,39 },{ 796,38 },{ 302,27 }}, // Chinese/Simplified Han/China + { 25, 5, 97,{ 757,39 },{ 796,38 },{ 302,27 },{ 757,39 },{ 796,38 },{ 302,27 }}, // Chinese/Simplified Han/Hong Kong + { 25, 5, 126,{ 757,39 },{ 796,38 },{ 302,27 },{ 757,39 },{ 796,38 },{ 302,27 }}, // Chinese/Simplified Han/Macau + { 25, 5, 190,{ 757,39 },{ 796,38 },{ 302,27 },{ 757,39 },{ 796,38 },{ 302,27 }}, // Chinese/Simplified Han/Singapore + { 25, 6, 97,{ 834,72 },{ 834,72 },{ 302,27 },{ 834,72 },{ 834,72 },{ 302,27 }}, // Chinese/Traditional Han/Hong Kong + { 25, 6, 126,{ 834,72 },{ 834,72 },{ 302,27 },{ 834,72 },{ 834,72 },{ 302,27 }}, // Chinese/Traditional Han/Macau + { 25, 6, 208,{ 834,72 },{ 834,72 },{ 302,27 },{ 834,72 },{ 834,72 },{ 302,27 }}, // Chinese/Traditional Han/Taiwan + { 26, 7, 74,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Corsican/Latin/France + { 27, 7, 54,{ 223,79 },{ 87,107 },{ 906,39 },{ 223,79 },{ 87,107 },{ 906,39 }}, // Croatian/Latin/Croatia + { 27, 7, 27,{ 223,79 },{ 87,107 },{ 906,39 },{ 223,79 },{ 87,107 },{ 906,39 }}, // Croatian/Latin/Bosnia And Herzegowina + { 28, 7, 57,{ 945,77 },{ 1022,130 },{ 302,27 },{ 945,77 },{ 1022,130 },{ 302,27 }}, // Czech/Latin/Czech Republic + { 29, 7, 58,{ 223,79 },{ 1152,107 },{ 302,27 },{ 223,79 },{ 1152,107 },{ 302,27 }}, // Danish/Latin/Denmark + { 29, 7, 86,{ 223,79 },{ 1152,107 },{ 302,27 },{ 223,79 },{ 1152,107 },{ 302,27 }}, // Danish/Latin/Greenland + { 30, 7, 151,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Netherlands + { 30, 7, 12,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Aruba + { 30, 7, 21,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Belgium + { 30, 7, 152,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Cura Sao + { 30, 7, 202,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Suriname + { 30, 7, 255,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Bonaire + { 30, 7, 256,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Dutch/Latin/Sint Maarten + { 31, 7, 225,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/United States + { 31, 3, 225,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Deseret/United States + { 31, 7, 4,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/American Samoa + { 31, 7, 7,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Anguilla + { 31, 7, 9,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Antigua And Barbuda + { 31, 7, 13,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Australia + { 31, 7, 14,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Austria + { 31, 7, 16,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Bahamas + { 31, 7, 19,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Barbados + { 31, 7, 21,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Belgium + { 31, 7, 22,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Belize + { 31, 7, 24,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Bermuda + { 31, 7, 28,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Botswana + { 31, 7, 31,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/British Indian Ocean Territory + { 31, 7, 35,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Burundi + { 31, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Cameroon + { 31, 7, 38,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Canada + { 31, 7, 40,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Cayman Islands + { 31, 7, 45,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Christmas Island + { 31, 7, 46,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Cocos Islands + { 31, 7, 51,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Cook Islands + { 31, 7, 56,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Cyprus + { 31, 7, 58,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Denmark + { 31, 7, 60,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Dominica + { 31, 7, 67,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Eritrea + { 31, 7, 70,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Falkland Islands + { 31, 7, 72,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Fiji + { 31, 7, 73,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Finland + { 31, 7, 75,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Guernsey + { 31, 7, 80,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Gambia + { 31, 7, 82,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Germany + { 31, 7, 83,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Ghana + { 31, 7, 84,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Gibraltar + { 31, 7, 87,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Grenada + { 31, 7, 89,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Guam + { 31, 7, 93,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Guyana + { 31, 7, 97,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Hong Kong + { 31, 7, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/India + { 31, 7, 104,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Ireland + { 31, 7, 105,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Israel + { 31, 7, 107,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Jamaica + { 31, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Kenya + { 31, 7, 112,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Kiribati + { 31, 7, 120,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Lesotho + { 31, 7, 121,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Liberia + { 31, 7, 126,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Macau + { 31, 7, 128,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Madagascar + { 31, 7, 129,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Malawi + { 31, 7, 130,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Malaysia + { 31, 7, 133,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Malta + { 31, 7, 134,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Marshall Islands + { 31, 7, 137,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Mauritius + { 31, 7, 140,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Micronesia + { 31, 7, 144,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Montserrat + { 31, 7, 148,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Namibia + { 31, 7, 149,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Nauru + { 31, 7, 151,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Netherlands + { 31, 7, 154,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/New Zealand + { 31, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Nigeria + { 31, 7, 158,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Niue + { 31, 7, 159,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Norfolk Island + { 31, 7, 160,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Northern Mariana Islands + { 31, 7, 163,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Pakistan + { 31, 7, 164,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Palau + { 31, 7, 167,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Papua New Guinea + { 31, 7, 170,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Philippines + { 31, 7, 171,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Pitcairn + { 31, 7, 174,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Puerto Rico + { 31, 7, 179,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Rwanda + { 31, 7, 180,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Saint Kitts And Nevis + { 31, 7, 181,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Saint Lucia + { 31, 7, 182,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Saint Vincent And The Grenadines + { 31, 7, 183,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Samoa + { 31, 7, 188,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Seychelles + { 31, 7, 189,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Sierra Leone + { 31, 7, 190,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Singapore + { 31, 7, 192,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Slovenia + { 31, 7, 193,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Solomon Islands + { 31, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/South Africa + { 31, 7, 199,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Saint Helena + { 31, 7, 201,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Sudan + { 31, 7, 204,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Swaziland + { 31, 7, 205,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Sweden + { 31, 7, 206,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Switzerland + { 31, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Tanzania + { 31, 7, 213,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Tokelau + { 31, 7, 214,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Tonga + { 31, 7, 215,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Trinidad And Tobago + { 31, 7, 219,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Turks And Caicos Islands + { 31, 7, 220,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Tuvalu + { 31, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Uganda + { 31, 7, 223,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/United Arab Emirates + { 31, 7, 224,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/United Kingdom + { 31, 7, 226,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/United States Minor Outlying Islands + { 31, 7, 229,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Vanuatu + { 31, 7, 233,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/British Virgin Islands + { 31, 7, 234,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/United States Virgin Islands + { 31, 7, 239,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Zambia + { 31, 7, 240,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Zimbabwe + { 31, 7, 249,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Diego Garcia + { 31, 7, 251,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Isle Of Man + { 31, 7, 252,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Jersey + { 31, 7, 254,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/South Sudan + { 31, 7, 256,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Sint Maarten + { 31, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/World + { 31, 7, 261,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // English/Latin/Europe + { 32, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Esperanto/Latin/World + { 33, 7, 68,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Estonian/Latin/Estonia + { 34, 7, 71,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Faroese/Latin/Faroe Islands + { 34, 7, 58,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Faroese/Latin/Denmark + { 36, 7, 73,{ 223,79 },{ 1478,130 },{ 302,27 },{ 223,79 },{ 1478,130 },{ 302,27 }}, // Finnish/Latin/Finland + { 37, 7, 74,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/France + { 37, 7, 3,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Algeria + { 37, 7, 21,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Belgium + { 37, 7, 23,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Benin + { 37, 7, 34,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Burkina Faso + { 37, 7, 35,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Burundi + { 37, 7, 37,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Cameroon + { 37, 7, 38,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Canada + { 37, 7, 41,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Central African Republic + { 37, 7, 42,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Chad + { 37, 7, 48,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Comoros + { 37, 7, 49,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Congo Kinshasa + { 37, 7, 50,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Congo Brazzaville + { 37, 7, 53,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Ivory Coast + { 37, 7, 59,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Djibouti + { 37, 7, 66,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Equatorial Guinea + { 37, 7, 76,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/French Guiana + { 37, 7, 77,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/French Polynesia + { 37, 7, 79,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Gabon + { 37, 7, 88,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Guadeloupe + { 37, 7, 91,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Guinea + { 37, 7, 94,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Haiti + { 37, 7, 125,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Luxembourg + { 37, 7, 128,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Madagascar + { 37, 7, 132,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Mali + { 37, 7, 135,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Martinique + { 37, 7, 136,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Mauritania + { 37, 7, 137,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Mauritius + { 37, 7, 138,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Mayotte + { 37, 7, 142,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Monaco + { 37, 7, 145,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Morocco + { 37, 7, 153,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/New Caledonia + { 37, 7, 156,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Niger + { 37, 7, 176,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Reunion + { 37, 7, 179,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Rwanda + { 37, 7, 187,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Senegal + { 37, 7, 188,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Seychelles + { 37, 7, 200,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Saint Pierre And Miquelon + { 37, 7, 206,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Switzerland + { 37, 7, 207,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Syria + { 37, 7, 212,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Togo + { 37, 7, 216,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Tunisia + { 37, 7, 229,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Vanuatu + { 37, 7, 235,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Wallis And Futuna Islands + { 37, 7, 244,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Saint Barthelemy + { 37, 7, 245,{ 1608,91 },{ 1699,140 },{ 302,27 },{ 1839,91 },{ 1699,140 },{ 302,27 }}, // French/Latin/Saint Martin + { 38, 7, 151,{ 1259,84 },{ 1343,135 },{ 302,27 },{ 1259,84 },{ 1343,135 },{ 302,27 }}, // Western Frisian/Latin/Netherlands + { 39, 7, 224,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Gaelic/Latin/United Kingdom + { 40, 7, 197,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Galician/Latin/Spain + { 41, 15, 81,{ 1930,74 },{ 2004,125 },{ 302,27 },{ 1930,74 },{ 2004,125 },{ 302,27 }}, // Georgian/Georgian/Georgia + { 42, 7, 82,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Germany + { 42, 7, 14,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Austria + { 42, 7, 21,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Belgium + { 42, 7, 106,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Italy + { 42, 7, 123,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Liechtenstein + { 42, 7, 125,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Luxembourg + { 42, 7, 206,{ 223,79 },{ 2129,117 },{ 302,27 },{ 223,79 },{ 2129,117 },{ 302,27 }}, // German/Latin/Switzerland + { 43, 16, 85,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Greek/Greek/Greece + { 43, 16, 56,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Greek/Greek/Cyprus + { 44, 7, 86,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Greenlandic/Latin/Greenland + { 45, 7, 168,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Guarani/Latin/Paraguay + { 46, 17, 100,{ 2246,75 },{ 2321,99 },{ 302,27 },{ 2246,75 },{ 2321,99 },{ 302,27 }}, // Gujarati/Gujarati/India + { 47, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Hausa/Latin/Nigeria + { 47, 1, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Hausa/Arabic/Nigeria + { 47, 7, 83,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Hausa/Latin/Ghana + { 47, 7, 156,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Hausa/Latin/Niger + { 48, 18, 105,{ 2420,96 },{ 2516,117 },{ 302,27 },{ 2420,96 },{ 2633,117 },{ 302,27 }}, // Hebrew/Hebrew/Israel + { 49, 13, 100,{ 223,79 },{ 2750,109 },{ 302,27 },{ 223,79 },{ 2750,109 },{ 302,27 }}, // Hindi/Devanagari/India + { 50, 7, 98,{ 2859,77 },{ 2936,100 },{ 302,27 },{ 2859,77 },{ 3036,128 },{ 302,27 }}, // Hungarian/Latin/Hungary + { 51, 7, 99,{ 3164,79 },{ 1152,107 },{ 302,27 },{ 3164,79 },{ 1152,107 },{ 302,27 }}, // Icelandic/Latin/Iceland + { 52, 7, 101,{ 3243,79 },{ 3322,107 },{ 302,27 },{ 3243,79 },{ 3322,107 },{ 302,27 }}, // Indonesian/Latin/Indonesia + { 53, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Interlingua/Latin/World + { 55, 44, 38,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Inuktitut/Canadian Aboriginal/Canada + { 55, 7, 38,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Inuktitut/Latin/Canada + { 57, 7, 104,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Irish/Latin/Ireland + { 58, 7, 106,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Italian/Latin/Italy + { 58, 7, 184,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Italian/Latin/San Marino + { 58, 7, 206,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Italian/Latin/Switzerland + { 58, 7, 230,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Italian/Latin/Vatican City State + { 59, 19, 108,{ 3429,98 },{ 3429,98 },{ 302,27 },{ 3429,98 },{ 3429,98 },{ 302,27 }}, // Japanese/Japanese/Japan + { 60, 7, 101,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Javanese/Latin/Indonesia + { 61, 21, 100,{ 3527,80 },{ 3607,101 },{ 302,27 },{ 3527,80 },{ 3607,101 },{ 302,27 }}, // Kannada/Kannada/India + { 62, 1, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kashmiri/Arabic/India + { 63, 2, 110,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kazakh/Cyrillic/Kazakhstan + { 64, 7, 179,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kinyarwanda/Latin/Rwanda + { 65, 2, 116,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kirghiz/Cyrillic/Kyrgyzstan + { 66, 22, 114,{ 223,79 },{ 3708,70 },{ 302,27 },{ 223,79 },{ 3708,70 },{ 302,27 }}, // Korean/Korean/South Korea + { 66, 22, 113,{ 223,79 },{ 3708,70 },{ 302,27 },{ 223,79 },{ 3708,70 },{ 302,27 }}, // Korean/Korean/North Korea + { 67, 7, 217,{ 223,79 },{ 3778,110 },{ 302,27 },{ 223,79 },{ 3778,110 },{ 302,27 }}, // Kurdish/Latin/Turkey + { 68, 7, 35,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Rundi/Latin/Burundi + { 69, 23, 117,{ 3888,76 },{ 3964,96 },{ 302,27 },{ 4060,78 },{ 3964,96 },{ 302,27 }}, // Lao/Lao/Laos + { 71, 7, 118,{ 223,79 },{ 4138,109 },{ 302,27 },{ 223,79 },{ 4138,109 },{ 302,27 }}, // Latvian/Latin/Latvia + { 72, 7, 49,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lingala/Latin/Congo Kinshasa + { 72, 7, 6,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lingala/Latin/Angola + { 72, 7, 41,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lingala/Latin/Central African Republic + { 72, 7, 50,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lingala/Latin/Congo Brazzaville + { 73, 7, 124,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lithuanian/Latin/Lithuania + { 74, 2, 127,{ 4247,72 },{ 4319,90 },{ 302,27 },{ 4247,72 },{ 4319,90 },{ 302,27 }}, // Macedonian/Cyrillic/Macedonia + { 75, 7, 128,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Malagasy/Latin/Madagascar + { 76, 7, 130,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Malay/Latin/Malaysia + { 76, 1, 130,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Malay/Arabic/Malaysia + { 76, 7, 32,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Malay/Latin/Brunei + { 76, 7, 190,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Malay/Latin/Singapore + { 77, 24, 100,{ 4409,98 },{ 4507,103 },{ 4610,27 },{ 4409,98 },{ 4637,103 },{ 4610,27 }}, // Malayalam/Malayalam/India + { 78, 7, 133,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Maltese/Latin/Malta + { 79, 7, 154,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Maori/Latin/New Zealand + { 80, 13, 100,{ 4740,79 },{ 4819,88 },{ 4907,27 },{ 4740,79 },{ 4819,88 },{ 4907,27 }}, // Marathi/Devanagari/India + { 82, 2, 143,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Mongolian/Cyrillic/Mongolia + { 82, 8, 44,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Mongolian/Mongolian/China + { 84, 13, 150,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nepali/Devanagari/Nepal + { 84, 13, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nepali/Devanagari/India + { 85, 7, 161,{ 4934,79 },{ 5013,107 },{ 302,27 },{ 5120,79 },{ 5013,107 },{ 302,27 }}, // Norwegian Bokmal/Latin/Norway + { 85, 7, 203,{ 4934,79 },{ 5013,107 },{ 302,27 },{ 5120,79 },{ 5013,107 },{ 302,27 }}, // Norwegian Bokmal/Latin/Svalbard And Jan Mayen Islands + { 86, 7, 74,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Occitan/Latin/France + { 87, 26, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Oriya/Oriya/India + { 88, 1, 1,{ 5199,78 },{ 5277,82 },{ 302,27 },{ 5199,78 },{ 5277,82 },{ 302,27 }}, // Pashto/Arabic/Afghanistan + { 88, 1, 163,{ 5199,78 },{ 5359,82 },{ 302,27 },{ 5199,78 },{ 5359,82 },{ 302,27 }}, // Pashto/Arabic/Pakistan + { 89, 1, 102,{ 5441,91 },{ 5532,91 },{ 302,27 },{ 5623,93 },{ 5623,93 },{ 302,27 }}, // Persian/Arabic/Iran + { 89, 1, 1,{ 5441,91 },{ 5532,91 },{ 302,27 },{ 5623,93 },{ 5623,93 },{ 302,27 }}, // Persian/Arabic/Afghanistan + { 90, 7, 172,{ 5716,78 },{ 5794,108 },{ 302,27 },{ 5716,78 },{ 5794,108 },{ 302,27 }}, // Polish/Latin/Poland + { 91, 7, 30,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Brazil + { 91, 7, 6,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Angola + { 91, 7, 39,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Cape Verde + { 91, 7, 62,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/East Timor + { 91, 7, 66,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Equatorial Guinea + { 91, 7, 92,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Guinea Bissau + { 91, 7, 125,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Luxembourg + { 91, 7, 126,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Macau + { 91, 7, 146,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Mozambique + { 91, 7, 173,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Portugal + { 91, 7, 185,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Sao Tome And Principe + { 91, 7, 206,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Portuguese/Latin/Switzerland + { 92, 4, 100,{ 5902,78 },{ 5980,93 },{ 302,27 },{ 5902,78 },{ 6073,95 },{ 302,27 }}, // Punjabi/Gurmukhi/India + { 92, 1, 163,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Punjabi/Arabic/Pakistan + { 93, 7, 169,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Quechua/Latin/Peru + { 93, 7, 26,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Quechua/Latin/Bolivia + { 93, 7, 63,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Quechua/Latin/Ecuador + { 94, 7, 206,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Romansh/Latin/Switzerland + { 95, 7, 177,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Romanian/Latin/Romania + { 95, 7, 141,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Romanian/Latin/Moldova + { 96, 2, 178,{ 6168,80 },{ 6248,132 },{ 302,27 },{ 6168,80 },{ 6248,132 },{ 302,27 }}, // Russian/Cyrillic/Russia + { 96, 2, 20,{ 6168,80 },{ 6248,132 },{ 302,27 },{ 6168,80 },{ 6248,132 },{ 302,27 }}, // Russian/Cyrillic/Belarus + { 96, 2, 110,{ 6168,80 },{ 6248,132 },{ 302,27 },{ 6168,80 },{ 6248,132 },{ 302,27 }}, // Russian/Cyrillic/Kazakhstan + { 96, 2, 116,{ 6168,80 },{ 6248,132 },{ 302,27 },{ 6168,80 },{ 6248,132 },{ 302,27 }}, // Russian/Cyrillic/Kyrgyzstan + { 96, 2, 141,{ 6168,80 },{ 6248,132 },{ 302,27 },{ 6168,80 },{ 6248,132 },{ 302,27 }}, // Russian/Cyrillic/Moldova + { 96, 2, 222,{ 6168,80 },{ 6248,132 },{ 302,27 },{ 6168,80 },{ 6248,132 },{ 302,27 }}, // Russian/Cyrillic/Ukraine + { 98, 7, 41,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sango/Latin/Central African Republic + { 99, 13, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sanskrit/Devanagari/India + { 100, 2, 243,{ 6380,70 },{ 6450,91 },{ 302,27 },{ 6380,70 },{ 6541,98 },{ 302,27 }}, // Serbian/Cyrillic/Serbia + { 100, 7, 27,{ 6639,73 },{ 6712,95 },{ 302,27 },{ 6639,73 },{ 6807,98 },{ 302,27 }}, // Serbian/Latin/Bosnia And Herzegowina + { 100, 7, 242,{ 6639,73 },{ 6712,95 },{ 302,27 },{ 6639,73 },{ 6807,98 },{ 302,27 }}, // Serbian/Latin/Montenegro + { 100, 7, 243,{ 6639,73 },{ 6712,95 },{ 302,27 },{ 6639,73 },{ 6807,98 },{ 302,27 }}, // Serbian/Latin/Serbia + { 100, 2, 27,{ 6380,70 },{ 6450,91 },{ 302,27 },{ 6380,70 },{ 6541,98 },{ 302,27 }}, // Serbian/Cyrillic/Bosnia And Herzegowina + { 100, 2, 242,{ 6380,70 },{ 6450,91 },{ 302,27 },{ 6380,70 },{ 6541,98 },{ 302,27 }}, // Serbian/Cyrillic/Montenegro + { 100, 2, 257,{ 6380,70 },{ 6450,91 },{ 302,27 },{ 6380,70 },{ 6541,98 },{ 302,27 }}, // Serbian/Cyrillic/Kosovo + { 100, 7, 257,{ 6639,73 },{ 6712,95 },{ 302,27 },{ 6639,73 },{ 6807,98 },{ 302,27 }}, // Serbian/Latin/Kosovo + { 101, 2, 81,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ossetic/Cyrillic/Georgia + { 101, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ossetic/Cyrillic/Russia + { 102, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Southern Sotho/Latin/South Africa + { 103, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tswana/Latin/South Africa + { 104, 7, 240,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Shona/Latin/Zimbabwe + { 105, 1, 163,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sindhi/Arabic/Pakistan + { 106, 32, 198,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sinhala/Sinhala/Sri Lanka + { 107, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swati/Latin/South Africa + { 108, 7, 191,{ 6905,79 },{ 6984,136 },{ 302,27 },{ 6905,79 },{ 6984,136 },{ 302,27 }}, // Slovak/Latin/Slovakia + { 109, 7, 192,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Slovenian/Latin/Slovenia + { 110, 7, 194,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Somali/Latin/Somalia + { 110, 7, 59,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Somali/Latin/Djibouti + { 110, 7, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Somali/Latin/Ethiopia + { 110, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Somali/Latin/Kenya + { 111, 7, 197,{ 5120,79 },{ 7120,107 },{ 302,27 },{ 5120,79 },{ 7120,107 },{ 302,27 }}, // Spanish/Latin/Spain + { 111, 7, 10,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Argentina + { 111, 7, 22,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Belize + { 111, 7, 26,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Bolivia + { 111, 7, 30,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Brazil + { 111, 7, 43,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Chile + { 111, 7, 47,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Colombia + { 111, 7, 52,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Costa Rica + { 111, 7, 55,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Cuba + { 111, 7, 61,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Dominican Republic + { 111, 7, 63,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Ecuador + { 111, 7, 65,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/El Salvador + { 111, 7, 66,{ 5120,79 },{ 7120,107 },{ 302,27 },{ 5120,79 },{ 7120,107 },{ 302,27 }}, // Spanish/Latin/Equatorial Guinea + { 111, 7, 90,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Guatemala + { 111, 7, 96,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Honduras + { 111, 7, 139,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Mexico + { 111, 7, 155,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Nicaragua + { 111, 7, 166,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Panama + { 111, 7, 168,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Paraguay + { 111, 7, 169,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Peru + { 111, 7, 170,{ 5120,79 },{ 7120,107 },{ 302,27 },{ 5120,79 },{ 7120,107 },{ 302,27 }}, // Spanish/Latin/Philippines + { 111, 7, 174,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Puerto Rico + { 111, 7, 225,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/United States + { 111, 7, 227,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Uruguay + { 111, 7, 231,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Venezuela + { 111, 7, 238,{ 5120,79 },{ 7120,107 },{ 302,27 },{ 5120,79 },{ 7120,107 },{ 302,27 }}, // Spanish/Latin/Canary Islands + { 111, 7, 246,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Spanish/Latin/Latin America + { 111, 7, 250,{ 5120,79 },{ 7120,107 },{ 302,27 },{ 5120,79 },{ 7120,107 },{ 302,27 }}, // Spanish/Latin/Ceuta And Melilla + { 113, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swahili/Latin/Tanzania + { 113, 7, 49,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swahili/Latin/Congo Kinshasa + { 113, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swahili/Latin/Kenya + { 113, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swahili/Latin/Uganda + { 114, 7, 205,{ 223,79 },{ 7227,128 },{ 302,27 },{ 223,79 },{ 7355,128 },{ 302,27 }}, // Swedish/Latin/Sweden + { 114, 7, 73,{ 223,79 },{ 7227,128 },{ 302,27 },{ 223,79 },{ 7355,128 },{ 302,27 }}, // Swedish/Latin/Finland + { 114, 7, 248,{ 223,79 },{ 7227,128 },{ 302,27 },{ 223,79 },{ 7355,128 },{ 302,27 }}, // Swedish/Latin/Aland Islands + { 115, 7, 106,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sardinian/Latin/Italy + { 116, 2, 209,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tajik/Cyrillic/Tajikistan + { 117, 27, 100,{ 7483,73 },{ 7556,92 },{ 302,27 },{ 7483,73 },{ 7556,92 },{ 302,27 }}, // Tamil/Tamil/India + { 117, 27, 130,{ 7483,73 },{ 7556,92 },{ 302,27 },{ 7483,73 },{ 7556,92 },{ 302,27 }}, // Tamil/Tamil/Malaysia + { 117, 27, 190,{ 7483,73 },{ 7556,92 },{ 302,27 },{ 7483,73 },{ 7556,92 },{ 302,27 }}, // Tamil/Tamil/Singapore + { 117, 27, 198,{ 7483,73 },{ 7556,92 },{ 302,27 },{ 7483,73 },{ 7556,92 },{ 302,27 }}, // Tamil/Tamil/Sri Lanka + { 118, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tatar/Cyrillic/Russia + { 119, 28, 100,{ 7648,75 },{ 7723,96 },{ 302,27 },{ 7648,75 },{ 87,107 },{ 302,27 }}, // Telugu/Telugu/India + { 120, 30, 211,{ 7819,90 },{ 7909,103 },{ 302,27 },{ 7819,90 },{ 7909,103 },{ 302,27 }}, // Thai/Thai/Thailand + { 121, 31, 44,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tibetan/Tibetan/China + { 121, 31, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tibetan/Tibetan/India + { 122, 14, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tigrinya/Ethiopic/Ethiopia + { 122, 14, 67,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tigrinya/Ethiopic/Eritrea + { 123, 7, 214,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tongan/Latin/Tonga + { 124, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tsonga/Latin/South Africa + { 125, 7, 217,{ 8012,84 },{ 8096,111 },{ 302,27 },{ 8012,84 },{ 8096,111 },{ 302,27 }}, // Turkish/Latin/Turkey + { 125, 7, 56,{ 8012,84 },{ 8096,111 },{ 302,27 },{ 8012,84 },{ 8096,111 },{ 302,27 }}, // Turkish/Latin/Cyprus + { 126, 7, 218,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Turkmen/Latin/Turkmenistan + { 128, 1, 44,{ 8207,119 },{ 8207,119 },{ 302,27 },{ 8207,119 },{ 8207,119 },{ 302,27 }}, // Uighur/Arabic/China + { 129, 2, 222,{ 8326,72 },{ 8398,104 },{ 302,27 },{ 8502,82 },{ 8398,104 },{ 302,27 }}, // Ukrainian/Cyrillic/Ukraine + { 130, 1, 163,{ 8584,99 },{ 8683,97 },{ 302,27 },{ 8584,99 },{ 8683,97 },{ 302,27 }}, // Urdu/Arabic/Pakistan + { 130, 1, 100,{ 8584,99 },{ 8683,97 },{ 302,27 },{ 8584,99 },{ 8683,97 },{ 302,27 }}, // Urdu/Arabic/India + { 131, 7, 228,{ 223,79 },{ 8780,123 },{ 302,27 },{ 223,79 },{ 8780,123 },{ 302,27 }}, // Uzbek/Latin/Uzbekistan + { 131, 1, 1,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Uzbek/Arabic/Afghanistan + { 131, 2, 228,{ 223,79 },{ 8903,115 },{ 302,27 },{ 223,79 },{ 8903,115 },{ 302,27 }}, // Uzbek/Cyrillic/Uzbekistan + { 132, 7, 232,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Vietnamese/Latin/Vietnam + { 133, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Volapuk/Latin/World + { 134, 7, 224,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Welsh/Latin/United Kingdom + { 135, 7, 187,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Wolof/Latin/Senegal + { 136, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Xhosa/Latin/South Africa + { 137, 18, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Yiddish/Hebrew/World + { 138, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Yoruba/Latin/Nigeria + { 138, 7, 23,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Yoruba/Latin/Benin + { 140, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Zulu/Latin/South Africa + { 141, 7, 161,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Norwegian Nynorsk/Latin/Norway + { 142, 7, 27,{ 9018,75 },{ 9093,99 },{ 302,27 },{ 9018,75 },{ 9093,99 },{ 302,27 }}, // Bosnian/Latin/Bosnia And Herzegowina + { 142, 2, 27,{ 6380,70 },{ 6450,91 },{ 302,27 },{ 6380,70 },{ 6541,98 },{ 302,27 }}, // Bosnian/Cyrillic/Bosnia And Herzegowina + { 143, 29, 131,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Divehi/Thaana/Maldives + { 144, 7, 251,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Manx/Latin/Isle Of Man + { 145, 7, 224,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Cornish/Latin/United Kingdom + { 146, 7, 83,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Akan/Latin/Ghana + { 147, 13, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Konkani/Devanagari/India + { 148, 7, 83,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ga/Latin/Ghana + { 149, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Igbo/Latin/Nigeria + { 150, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kamba/Latin/Kenya + { 151, 33, 103,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Syriac/Syriac/Iraq + { 152, 14, 67,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Blin/Ethiopic/Eritrea + { 153, 14, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Geez/Ethiopic/Ethiopia + { 155, 7, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sidamo/Latin/Ethiopia + { 156, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Atsam/Latin/Nigeria + { 157, 14, 67,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tigre/Ethiopic/Eritrea + { 158, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Jju/Latin/Nigeria + { 159, 7, 106,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Friulian/Latin/Italy + { 160, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Venda/Latin/South Africa + { 161, 7, 83,{ 9192,48 },{ 9240,87 },{ 302,27 },{ 9192,48 },{ 9240,87 },{ 302,27 }}, // Ewe/Latin/Ghana + { 161, 7, 212,{ 9192,48 },{ 9240,87 },{ 302,27 },{ 9192,48 },{ 9240,87 },{ 302,27 }}, // Ewe/Latin/Togo + { 162, 14, 69,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Walamo/Ethiopic/Ethiopia + { 163, 7, 225,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Hawaiian/Latin/United States + { 164, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tyap/Latin/Nigeria + { 165, 7, 129,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nyanja/Latin/Malawi + { 166, 7, 170,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Filipino/Latin/Philippines + { 167, 7, 206,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swiss German/Latin/Switzerland + { 167, 7, 74,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swiss German/Latin/France + { 167, 7, 123,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Swiss German/Latin/Liechtenstein + { 168, 34, 44,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sichuan Yi/Yi/China + { 169, 7, 121,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kpelle/Latin/Liberia + { 170, 7, 82,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Low German/Latin/Germany + { 170, 7, 151,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Low German/Latin/Netherlands + { 171, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // South Ndebele/Latin/South Africa + { 172, 7, 195,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Northern Sotho/Latin/South Africa + { 173, 7, 161,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Northern Sami/Latin/Norway + { 173, 7, 73,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Northern Sami/Latin/Finland + { 173, 7, 205,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Northern Sami/Latin/Sweden + { 174, 7, 208,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Taroko/Latin/Taiwan + { 175, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Gusii/Latin/Kenya + { 176, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Taita/Latin/Kenya + { 177, 7, 187,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Senegal + { 177, 7, 34,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Burkina Faso + { 177, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Cameroon + { 177, 7, 80,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Gambia + { 177, 7, 83,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Ghana + { 177, 7, 91,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Guinea + { 177, 7, 92,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Guinea Bissau + { 177, 7, 121,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Liberia + { 177, 7, 136,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Mauritania + { 177, 7, 156,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Niger + { 177, 7, 157,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Nigeria + { 177, 7, 189,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Latin/Sierra Leone + { 177, 134, 91,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Fulah/Adlam/Guinea + { 178, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kikuyu/Latin/Kenya + { 179, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Samburu/Latin/Kenya + { 180, 7, 146,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sena/Latin/Mozambique + { 181, 7, 240,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // North Ndebele/Latin/Zimbabwe + { 182, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Rombo/Latin/Tanzania + { 183, 9, 145,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tachelhit/Tifinagh/Morocco + { 183, 7, 145,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tachelhit/Latin/Morocco + { 184, 7, 3,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kabyle/Latin/Algeria + { 185, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nyankole/Latin/Uganda + { 186, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bena/Latin/Tanzania + { 187, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Vunjo/Latin/Tanzania + { 188, 7, 132,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bambara/Latin/Mali + { 188, 75, 132,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bambara/Nko/Mali + { 189, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Embu/Latin/Kenya + { 190, 12, 225,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Cherokee/Cherokee/United States + { 191, 7, 137,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Morisyen/Latin/Mauritius + { 192, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Makonde/Latin/Tanzania + { 193, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Langi/Latin/Tanzania + { 194, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ganda/Latin/Uganda + { 195, 7, 239,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bemba/Latin/Zambia + { 196, 7, 39,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kabuverdianu/Latin/Cape Verde + { 197, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Meru/Latin/Kenya + { 198, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kalenjin/Latin/Kenya + { 199, 7, 148,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nama/Latin/Namibia + { 200, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Machame/Latin/Tanzania + { 201, 7, 82,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Colognian/Latin/Germany + { 202, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Masai/Latin/Kenya + { 202, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Masai/Latin/Tanzania + { 203, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Soga/Latin/Uganda + { 204, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Luyia/Latin/Kenya + { 205, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Asu/Latin/Tanzania + { 206, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Teso/Latin/Uganda + { 206, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Teso/Latin/Kenya + { 207, 7, 67,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Saho/Latin/Eritrea + { 208, 7, 132,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Koyra Chiini/Latin/Mali + { 209, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Rwa/Latin/Tanzania + { 210, 7, 111,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Luo/Latin/Kenya + { 211, 7, 221,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Chiga/Latin/Uganda + { 212, 7, 145,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Central Morocco Tamazight/Latin/Morocco + { 213, 7, 132,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Koyraboro Senni/Latin/Mali + { 214, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Shambala/Latin/Tanzania + { 215, 13, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bodo/Devanagari/India + { 218, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Chechen/Cyrillic/Russia + { 219, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Church/Cyrillic/Russia + { 220, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Chuvash/Cyrillic/Russia + { 230, 7, 49,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Luba Katanga/Latin/Congo Kinshasa + { 231, 7, 125,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Luxembourgish/Latin/Luxembourg + { 236, 7, 21,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Walloon/Latin/Belgium + { 237, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Aghem/Latin/Cameroon + { 238, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Basaa/Latin/Cameroon + { 239, 7, 156,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Zarma/Latin/Niger + { 240, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Duala/Latin/Cameroon + { 241, 7, 187,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Jola Fonyi/Latin/Senegal + { 242, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ewondo/Latin/Cameroon + { 243, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Bafia/Latin/Cameroon + { 244, 7, 146,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Makhuwa Meetto/Latin/Mozambique + { 245, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Mundang/Latin/Cameroon + { 246, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kwasio/Latin/Cameroon + { 247, 7, 254,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nuer/Latin/South Sudan + { 248, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sakha/Cyrillic/Russia + { 249, 7, 210,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sangu/Latin/Tanzania + { 251, 7, 156,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tasawaq/Latin/Niger + { 252, 35, 121,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Vai/Vai/Liberia + { 252, 7, 121,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Vai/Latin/Liberia + { 253, 7, 206,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Walser/Latin/Switzerland + { 254, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Yangben/Latin/Cameroon + { 256, 7, 197,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 9327,143 },{ 302,27 }}, // Asturian/Latin/Spain + { 257, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ngomba/Latin/Cameroon + { 258, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kako/Latin/Cameroon + { 259, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Meta/Latin/Cameroon + { 260, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ngiemboon/Latin/Cameroon + { 290, 11, 100,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Manipuri/Bengali/India + { 309, 100, 232,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Tai Dam/Tai Viet/Vietnam + { 312, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Akoose/Latin/Cameroon + { 313, 7, 225,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lakota/Latin/United States + { 314, 9, 145,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Standard Moroccan Tamazight/Tifinagh/Morocco + { 315, 7, 43,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Mapuche/Latin/Chile + { 316, 1, 103,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Central Kurdish/Arabic/Iraq + { 316, 1, 102,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Central Kurdish/Arabic/Iran + { 317, 7, 82,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lower Sorbian/Latin/Germany + { 318, 7, 82,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Upper Sorbian/Latin/Germany + { 319, 7, 37,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kenyang/Latin/Cameroon + { 320, 7, 38,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Mohawk/Latin/Canada + { 321, 75, 91,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Nko/Nko/Guinea + { 322, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Prussian/Latin/World + { 323, 7, 90,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Kiche/Latin/Guatemala + { 324, 7, 205,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Southern Sami/Latin/Sweden + { 325, 7, 205,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lule Sami/Latin/Sweden + { 326, 7, 73,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Inari Sami/Latin/Finland + { 327, 7, 73,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Skolt Sami/Latin/Finland + { 328, 7, 13,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Warlpiri/Latin/Australia + { 346, 1, 102,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Mazanderani/Arabic/Iran + { 349, 1, 102,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Northern Luri/Arabic/Iran + { 349, 1, 103,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Northern Luri/Arabic/Iraq + { 357, 6, 97,{ 834,72 },{ 834,72 },{ 302,27 },{ 834,72 },{ 834,72 },{ 302,27 }}, // Cantonese/Traditional Han/Hong Kong + { 357, 5, 44,{ 9470,72 },{ 9470,72 },{ 302,27 },{ 9470,72 },{ 9470,72 },{ 302,27 }}, // Cantonese/Simplified Han/China + { 360, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Ido/Latin/World + { 361, 7, 260,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Lojban/Latin/World + { 362, 7, 106,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Sicilian/Latin/Italy + { 363, 1, 102,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Southern Kurdish/Arabic/Iran + { 364, 1, 163,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Western Balochi/Arabic/Pakistan + { 365, 7, 170,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Cebuano/Latin/Philippines + { 366, 2, 178,{ 223,79 },{ 87,107 },{ 302,27 },{ 223,79 },{ 87,107 },{ 302,27 }}, // Erzya/Cyrillic/Russia + { 0, 0, 0,{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0},{ 0,0}}, // trailing zeros +}; + +static const ushort months_data[] = { +0x4d, 0x75, 0x68, 0x2e, 0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, +0x2e, 0x20, 0x49, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x49, 0x3b, +0x52, 0x61, 0x6a, 0x2e, 0x3b, 0x53, 0x68, 0x61, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x53, 0x68, 0x61, 0x77, 0x2e, +0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x69, 0x2bb, 0x64, 0x61, 0x68, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, +0x48, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, +0x72, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x4a, +0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x61, +0x6a, 0x61, 0x62, 0x3b, 0x53, 0x68, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, +0x53, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x69, 0x2bb, 0x64, 0x61, 0x68, +0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x48, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, 0x31, 0x3b, 0x32, 0x3b, 0x33, 0x3b, +0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, 0x3b, 0x39, 0x3b, 0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, +0x3b, 0x31, 0x33, 0x4d, 0x75, 0x68, 0x2e, 0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, +0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x2e, 0x20, +0x49, 0x49, 0x3b, 0x52, 0x61, 0x6a, 0x2e, 0x3b, 0x53, 0x68, 0x61, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x53, 0x68, +0x61, 0x77, 0x2e, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x2e, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x48, +0x2e, 0x3b, 0x31, 0x3b, 0x32, 0x3b, 0x33, 0x3b, 0x34, 0x3b, 0x35, 0x3b, 0x36, 0x3b, 0x37, 0x3b, 0x38, 0x3b, 0x39, 0x3b, +0x31, 0x30, 0x3b, 0x31, 0x31, 0x3b, 0x31, 0x32, 0x3b, 0x1219, 0x1200, 0x1228, 0x121d, 0x3b, 0x1233, 0x1348, 0x122d, 0x3b, 0x1228, 0x1262, +0x12d1, 0x120d, 0x20, 0x12a0, 0x12c8, 0x120d, 0x3b, 0x1228, 0x1262, 0x12d1, 0x120d, 0x20, 0x12a0, 0x12ba, 0x122d, 0x3b, 0x1300, 0x121b, 0x12f0, 0x120d, +0x20, 0x12a0, 0x12c8, 0x120d, 0x3b, 0x1300, 0x121b, 0x12f0, 0x120d, 0x20, 0x12a0, 0x12ba, 0x122d, 0x3b, 0x1228, 0x1300, 0x1265, 0x3b, 0x123b, 0x12a5, +0x1263, 0x1295, 0x3b, 0x1228, 0x1218, 0x12f3, 0x1295, 0x3b, 0x1238, 0x12cb, 0x120d, 0x3b, 0x12d9, 0x120d, 0x1242, 0x12f3, 0x1205, 0x3b, 0x12d9, 0x120d, +0x1202, 0x1303, 0x1205, 0x3b, 0x645, 0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, 0x3b, 0x631, 0x628, 0x64a, 0x639, 0x20, 0x627, 0x644, +0x623, 0x648, 0x644, 0x3b, 0x631, 0x628, 0x64a, 0x639, 0x20, 0x627, 0x644, 0x622, 0x62e, 0x631, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x649, +0x20, 0x627, 0x644, 0x623, 0x648, 0x644, 0x649, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x649, 0x20, 0x627, 0x644, 0x622, 0x62e, 0x631, 0x629, +0x3b, 0x631, 0x62c, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, 0x627, +0x644, 0x3b, 0x630, 0x648, 0x20, 0x627, 0x644, 0x642, 0x639, 0x62f, 0x629, 0x3b, 0x630, 0x648, 0x20, 0x627, 0x644, 0x62d, 0x62c, 0x629, +0x3b, 0x661, 0x3b, 0x662, 0x3b, 0x663, 0x3b, 0x664, 0x3b, 0x665, 0x3b, 0x666, 0x3b, 0x667, 0x3b, 0x668, 0x3b, 0x669, 0x3b, 0x661, +0x660, 0x3b, 0x661, 0x661, 0x3b, 0x661, 0x662, 0x3b, 0x9ae, 0x9b9, 0x9b0, 0x9b0, 0x9ae, 0x3b, 0x9b8, 0x9ab, 0x9b0, 0x3b, 0x9b0, 0x9ac, +0x9bf, 0x989, 0x9b2, 0x20, 0x986, 0x989, 0x9af, 0x9bc, 0x9be, 0x9b2, 0x3b, 0x9b0, 0x9ac, 0x9bf, 0x989, 0x9b8, 0x20, 0x9b8, 0x9be, 0x9a8, +0x9bf, 0x3b, 0x99c, 0x9ae, 0x9be, 0x9a6, 0x9bf, 0x989, 0x9b2, 0x20, 0x986, 0x989, 0x9af, 0x9bc, 0x9be, 0x9b2, 0x3b, 0x99c, 0x9ae, 0x9be, +0x9a6, 0x9bf, 0x989, 0x9b8, 0x20, 0x9b8, 0x9be, 0x9a8, 0x9bf, 0x3b, 0x9b0, 0x99c, 0x9ac, 0x3b, 0x9b6, 0x9be, 0x2018, 0x9ac, 0x9be, 0x9a8, +0x3b, 0x9b0, 0x9ae, 0x99c, 0x9be, 0x9a8, 0x3b, 0x9b6, 0x9be, 0x993, 0x9af, 0x9bc, 0x9be, 0x9b2, 0x3b, 0x99c, 0x9cd, 0x9ac, 0x9bf, 0x9b2, +0x995, 0x9a6, 0x3b, 0x99c, 0x9cd, 0x9ac, 0x9bf, 0x9b2, 0x9b9, 0x99c, 0x9cd, 0x99c, 0x3b, 0x9e7, 0x3b, 0x9e8, 0x3b, 0x9e9, 0x3b, 0x9ea, +0x3b, 0x9eb, 0x3b, 0x9ec, 0x3b, 0x9ed, 0x3b, 0x9ee, 0x3b, 0x9ef, 0x3b, 0x9e7, 0x9e6, 0x3b, 0x9e7, 0x9e7, 0x3b, 0x9e7, 0x9e8, 0x3b, +0x43c, 0x443, 0x445, 0x430, 0x440, 0x430, 0x43c, 0x3b, 0x441, 0x430, 0x444, 0x430, 0x440, 0x3b, 0x440, 0x430, 0x431, 0x438, 0x2d, 0x31, +0x3b, 0x440, 0x430, 0x431, 0x438, 0x2d, 0x32, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x430, 0x434, 0x430, 0x2d, 0x31, 0x3b, 0x434, 0x436, +0x443, 0x43c, 0x430, 0x434, 0x430, 0x2d, 0x32, 0x3b, 0x440, 0x430, 0x434, 0x436, 0x430, 0x431, 0x3b, 0x448, 0x430, 0x431, 0x430, 0x43d, +0x3b, 0x440, 0x430, 0x43c, 0x430, 0x437, 0x430, 0x43d, 0x3b, 0x428, 0x430, 0x432, 0x430, 0x43b, 0x3b, 0x414, 0x445, 0x443, 0x43b, 0x2d, +0x41a, 0x430, 0x430, 0x434, 0x430, 0x3b, 0x414, 0x445, 0x443, 0x43b, 0x2d, 0x445, 0x438, 0x434, 0x436, 0x430, 0x3b, 0x31, 0x6708, 0x3b, +0x32, 0x6708, 0x3b, 0x33, 0x6708, 0x3b, 0x34, 0x6708, 0x3b, 0x35, 0x6708, 0x3b, 0x36, 0x6708, 0x3b, 0x37, 0x6708, 0x3b, 0x38, 0x6708, +0x3b, 0x39, 0x6708, 0x3b, 0x31, 0x30, 0x6708, 0x3b, 0x31, 0x31, 0x6708, 0x3b, 0x31, 0x32, 0x6708, 0x3b, 0x4e00, 0x6708, 0x3b, 0x4e8c, +0x6708, 0x3b, 0x4e09, 0x6708, 0x3b, 0x56db, 0x6708, 0x3b, 0x4e94, 0x6708, 0x3b, 0x516d, 0x6708, 0x3b, 0x4e03, 0x6708, 0x3b, 0x516b, 0x6708, 0x3b, +0x4e5d, 0x6708, 0x3b, 0x5341, 0x6708, 0x3b, 0x5341, 0x4e00, 0x6708, 0x3b, 0x5341, 0x4e8c, 0x6708, 0x3b, 0x7a46, 0x54c8, 0x862d, 0x59c6, 0x6708, 0x3b, +0x8272, 0x6cd5, 0x723e, 0x6708, 0x3b, 0x8cf4, 0x6bd4, 0x6708, 0x20, 0x49, 0x3b, 0x8cf4, 0x6bd4, 0x6708, 0x20, 0x49, 0x49, 0x3b, 0x4e3b, 0x99ac, +0x9054, 0x6708, 0x20, 0x49, 0x3b, 0x4e3b, 0x99ac, 0x9054, 0x6708, 0x20, 0x49, 0x49, 0x3b, 0x8cf4, 0x54f2, 0x535c, 0x6708, 0x3b, 0x820d, 0x723e, +0x90a6, 0x6708, 0x3b, 0x8cf4, 0x8cb7, 0x4e39, 0x6708, 0x3b, 0x9583, 0x74e6, 0x9b6f, 0x6708, 0x3b, 0x90fd, 0x723e, 0x5580, 0x723e, 0x5fb7, 0x6708, 0x3b, +0x90fd, 0x723e, 0x9ed1, 0x54f2, 0x6708, 0x3b, 0x31, 0x2e, 0x3b, 0x32, 0x2e, 0x3b, 0x33, 0x2e, 0x3b, 0x34, 0x2e, 0x3b, 0x35, 0x2e, +0x3b, 0x36, 0x2e, 0x3b, 0x37, 0x2e, 0x3b, 0x38, 0x2e, 0x3b, 0x39, 0x2e, 0x3b, 0x31, 0x30, 0x2e, 0x3b, 0x31, 0x31, 0x2e, +0x3b, 0x31, 0x32, 0x2e, 0x3b, 0x6d, 0x75, 0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, 0x65, 0x62, 0x2e, 0x20, +0x49, 0x3b, 0x72, 0x65, 0x62, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x64, 0x17e, +0x75, 0x6d, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x72, 0x65, 0x64, 0x2e, 0x3b, 0x161, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, +0x3b, 0x161, 0x61, 0x77, 0x2e, 0x3b, 0x7a, 0xfa, 0x20, 0x6c, 0x2d, 0x6b, 0x2e, 0x3b, 0x7a, 0xfa, 0x20, 0x6c, 0x2d, 0x68, +0x2e, 0x3b, 0x6d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x65, 0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x65, 0x62, +0xed, 0x2019, 0x75, 0x20, 0x6c, 0x2d, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x72, 0x65, 0x62, 0xed, 0x2019, 0x75, 0x20, 0x73, +0x2d, 0x73, 0xe1, 0x6e, 0xed, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0xe1, 0x64, 0xe1, 0x20, 0x61, 0x6c, 0x2d, 0xfa, 0x6c, 0xe1, +0x3b, 0x64, 0x17e, 0x75, 0x6d, 0xe1, 0x64, 0xe1, 0x20, 0x61, 0x6c, 0x2d, 0xe1, 0x63, 0x68, 0x69, 0x72, 0x61, 0x3b, 0x72, +0x65, 0x64, 0x17e, 0x65, 0x62, 0x3b, 0x161, 0x61, 0x2019, 0x62, 0xe1, 0x6e, 0x3b, 0x72, 0x61, 0x6d, 0x61, 0x64, 0xe1, 0x6e, +0x3b, 0x161, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x7a, 0xfa, 0x20, 0x6c, 0x2d, 0x6b, 0x61, 0x2019, 0x64, 0x61, 0x3b, 0x7a, +0xfa, 0x20, 0x6c, 0x2d, 0x68, 0x69, 0x64, 0x17e, 0x64, 0x17e, 0x61, 0x3b, 0x6d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, +0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, +0x20, 0x49, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, +0x49, 0x49, 0x3b, 0x72, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x73, 0x68, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x72, 0x61, 0x6d, +0x61, 0x64, 0x61, 0x6e, 0x3b, 0x73, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, +0x69, 0x2bb, 0x64, 0x61, 0x68, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x48, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, 0x4d, +0x6f, 0x65, 0x68, 0x2e, 0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, +0x2e, 0x20, 0x49, 0x49, 0x3b, 0x4a, 0x6f, 0x65, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x4a, 0x6f, 0x65, 0x6d, 0x2e, 0x20, 0x49, +0x49, 0x3b, 0x52, 0x61, 0x6a, 0x2e, 0x3b, 0x53, 0x6a, 0x61, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x53, 0x6a, 0x61, +0x77, 0x2e, 0x3b, 0x44, 0x6f, 0x65, 0x20, 0x61, 0x6c, 0x20, 0x6b, 0x2e, 0x3b, 0x44, 0x6f, 0x65, 0x20, 0x61, 0x6c, 0x20, +0x68, 0x2e, 0x3b, 0x4d, 0x6f, 0x65, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x52, +0x61, 0x62, 0x69, 0x2bb, 0x61, 0x20, 0x61, 0x6c, 0x20, 0x61, 0x77, 0x61, 0x6c, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x61, +0x20, 0x61, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x69, 0x3b, 0x4a, 0x6f, 0x65, 0x6d, 0x61, 0x64, 0x2bb, 0x61, 0x6c, 0x20, +0x61, 0x77, 0x61, 0x6c, 0x3b, 0x4a, 0x6f, 0x65, 0x6d, 0x61, 0x64, 0x2bb, 0x61, 0x6c, 0x20, 0x74, 0x68, 0x61, 0x6e, 0x69, +0x3b, 0x52, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x53, 0x6a, 0x61, 0x2bb, 0x61, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, +0x64, 0x61, 0x6e, 0x3b, 0x53, 0x6a, 0x61, 0x77, 0x61, 0x6c, 0x3b, 0x44, 0x6f, 0x65, 0x20, 0x61, 0x6c, 0x20, 0x6b, 0x61, +0x2bb, 0x61, 0x62, 0x61, 0x3b, 0x44, 0x6f, 0x65, 0x20, 0x61, 0x6c, 0x20, 0x68, 0x69, 0x7a, 0x6a, 0x61, 0x3b, 0x6d, 0x75, +0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2019, 0x20, 0x61, +0x6c, 0x2d, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2019, 0x20, 0x61, 0x6c, 0x2d, 0x61, 0x6b, 0x68, +0x69, 0x72, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x2d, 0x6c, 0x2d, 0x75, 0x6c, 0x61, 0x3b, 0x64, 0x17e, 0x75, +0x6d, 0x61, 0x64, 0x61, 0x2d, 0x6c, 0x2d, 0x61, 0x6b, 0x68, 0x69, 0x72, 0x61, 0x3b, 0x72, 0x61, 0x64, 0x17e, 0x61, 0x62, +0x3b, 0x161, 0x61, 0x2019, 0x62, 0x61, 0x6e, 0x3b, 0x72, 0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x161, 0x61, 0x77, 0x77, +0x61, 0x6c, 0x3b, 0x64, 0x68, 0x75, 0x2d, 0x6c, 0x2d, 0x71, 0x61, 0x2019, 0x64, 0x61, 0x3b, 0x64, 0x68, 0x75, 0x2d, 0x6c, +0x2d, 0x68, 0x69, 0x64, 0x64, 0x17e, 0x61, 0x3b, 0x6d, 0x6f, 0x75, 0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, +0x61, 0x62, 0x2e, 0x20, 0x61, 0x77, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x74, 0x68, 0x2e, 0x3b, 0x6a, 0x6f, 0x75, +0x6d, 0x2e, 0x20, 0x6f, 0x75, 0x2e, 0x3b, 0x6a, 0x6f, 0x75, 0x6d, 0x2e, 0x20, 0x74, 0x68, 0x2e, 0x3b, 0x72, 0x61, 0x6a, +0x2e, 0x3b, 0x63, 0x68, 0x61, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, 0x3b, 0x63, 0x68, 0x61, 0x77, 0x2e, 0x3b, 0x64, +0x68, 0x6f, 0x75, 0x2e, 0x20, 0x71, 0x69, 0x2e, 0x3b, 0x64, 0x68, 0x6f, 0x75, 0x2e, 0x20, 0x68, 0x69, 0x2e, 0x3b, 0x6d, +0x6f, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x61, +0x20, 0x61, 0x6c, 0x20, 0x61, 0x77, 0x61, 0x6c, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x61, 0x20, 0x61, 0x74, 0x68, 0x2d, 0x74, +0x68, 0x61, 0x6e, 0x69, 0x3b, 0x6a, 0x6f, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x61, 0x6c, 0x20, 0x6f, 0x75, 0x6c, 0x61, +0x3b, 0x6a, 0x6f, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x61, 0x74, 0x68, 0x2d, 0x74, 0x68, 0x61, 0x6e, 0x69, 0x61, 0x3b, +0x72, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x63, 0x68, 0x61, 0x61, 0x62, 0x61, 0x6e, 0x65, 0x3b, 0x72, 0x61, 0x6d, 0x61, 0x64, +0x61, 0x6e, 0x3b, 0x63, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x64, 0x68, 0x6f, 0x75, 0x20, 0x61, 0x6c, 0x20, 0x71, +0x69, 0x60, 0x64, 0x61, 0x3b, 0x64, 0x68, 0x6f, 0x75, 0x20, 0x61, 0x6c, 0x2d, 0x68, 0x69, 0x6a, 0x6a, 0x61, 0x3b, 0x6d, +0x6f, 0x75, 0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x61, 0x77, 0x2e, 0x3b, 0x72, +0x61, 0x62, 0x2e, 0x20, 0x74, 0x68, 0x2e, 0x3b, 0x6a, 0x6f, 0x75, 0x6d, 0x2e, 0x20, 0x6f, 0x75, 0x6c, 0x2e, 0x3b, 0x6a, +0x6f, 0x75, 0x6d, 0x2e, 0x20, 0x74, 0x68, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6a, 0x2e, 0x3b, 0x63, 0x68, 0x61, 0x61, 0x2e, +0x3b, 0x72, 0x61, 0x6d, 0x2e, 0x3b, 0x63, 0x68, 0x61, 0x77, 0x2e, 0x3b, 0x64, 0x68, 0x6f, 0x75, 0x2e, 0x20, 0x71, 0x2e, +0x3b, 0x64, 0x68, 0x6f, 0x75, 0x2e, 0x20, 0x68, 0x2e, 0x3b, 0x10db, 0x10e3, 0x10f0, 0x2e, 0x3b, 0x10e1, 0x10d0, 0x10e4, 0x2e, 0x3b, +0x10e0, 0x10d0, 0x10d1, 0x2e, 0x20, 0x49, 0x3b, 0x10e0, 0x10d0, 0x10d1, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x10ef, 0x10e3, 0x10db, 0x2e, 0x20, +0x49, 0x3b, 0x10ef, 0x10e3, 0x10db, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x10e0, 0x10d0, 0x10ef, 0x2e, 0x3b, 0x10e8, 0x10d0, 0x10d1, 0x2e, 0x3b, +0x10e0, 0x10d0, 0x10db, 0x2e, 0x3b, 0x10e8, 0x10d0, 0x10d5, 0x2e, 0x3b, 0x10d6, 0x10e3, 0x10da, 0x2d, 0x10d9, 0x2e, 0x3b, 0x10d6, 0x10e3, 0x10da, +0x2d, 0x10f0, 0x2e, 0x3b, 0x10db, 0x10e3, 0x10f0, 0x10d0, 0x10e0, 0x10d0, 0x10db, 0x10d8, 0x3b, 0x10e1, 0x10d0, 0x10e4, 0x10d0, 0x10e0, 0x10d8, 0x3b, +0x10e0, 0x10d0, 0x10d1, 0x10d8, 0x20, 0x10e3, 0x10da, 0x2d, 0x10d0, 0x10d5, 0x10d0, 0x10da, 0x10d8, 0x3b, 0x10e0, 0x10d0, 0x10d1, 0x10d8, 0x20, 0x10e3, +0x10da, 0x2d, 0x10d0, 0x10ee, 0x10d8, 0x10e0, 0x10d8, 0x3b, 0x10ef, 0x10e3, 0x10db, 0x10d0, 0x10d3, 0x10d0, 0x20, 0x10e3, 0x10da, 0x2d, 0x10d0, 0x10d5, +0x10d0, 0x10da, 0x10d8, 0x3b, 0x10ef, 0x10e3, 0x10db, 0x10d0, 0x10d3, 0x10d0, 0x20, 0x10e3, 0x10da, 0x2d, 0x10d0, 0x10ee, 0x10d8, 0x10e0, 0x10d8, 0x3b, +0x10e0, 0x10d0, 0x10ef, 0x10d0, 0x10d1, 0x10d8, 0x3b, 0x10e8, 0x10d0, 0x10d1, 0x10d0, 0x10dc, 0x10d8, 0x3b, 0x10e0, 0x10d0, 0x10db, 0x10d0, 0x10d3, 0x10d0, +0x10dc, 0x10d8, 0x3b, 0x10e8, 0x10d0, 0x10d5, 0x10d0, 0x10da, 0x10d8, 0x3b, 0x10d6, 0x10e3, 0x10da, 0x2d, 0x10d9, 0x10d0, 0x10d0, 0x10d3, 0x10d0, 0x3b, +0x10d6, 0x10e3, 0x10da, 0x2d, 0x10f0, 0x10d8, 0x10ef, 0x10d0, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x53, 0x61, +0x66, 0x61, 0x72, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x49, +0x3b, 0x44, 0x73, 0x63, 0x68, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x3b, 0x44, 0x73, 0x63, 0x68, 0x75, 0x6d, 0x61, +0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x61, 0x64, 0x73, 0x63, 0x68, 0x61, 0x62, 0x3b, 0x53, 0x68, 0x61, 0x2bb, 0x62, +0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x53, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x44, +0x68, 0x75, 0x20, 0x6c, 0x2d, 0x71, 0x61, 0x2bf, 0x64, 0x61, 0x3b, 0x44, 0x68, 0x75, 0x20, 0x6c, 0x2d, 0x48, 0x69, 0x64, +0x64, 0x73, 0x63, 0x68, 0x61, 0x3b, 0xaae, 0xac1, 0xab9, 0x2e, 0x3b, 0xab8, 0xaab, 0x2e, 0x3b, 0xab0, 0xaac, 0x2e, 0x49, 0x3b, +0xab0, 0xaac, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0xa9c, 0xac1, 0xaae, 0x2e, 0x20, 0x49, 0x3b, 0xa9c, 0xac1, 0xaae, 0x2e, 0x20, 0x49, +0x49, 0x3b, 0xab0, 0xabe, 0xa9c, 0x2e, 0x3b, 0xab6, 0xabe, 0x2e, 0x3b, 0xab0, 0xabe, 0xaae, 0x2e, 0x3b, 0xab6, 0xabe, 0xab5, 0x2e, +0x3b, 0xaa7, 0xac1, 0x2bb, 0xab2, 0x2d, 0xa95, 0xacd, 0xaaf, 0xac1, 0x2e, 0x3b, 0xaa7, 0xac1, 0x2bb, 0xab2, 0x2d, 0xa8f, 0xa9a, 0x2e, +0x3b, 0xaae, 0xac1, 0xab9, 0xab0, 0xacd, 0xab0, 0xaae, 0x3b, 0xab8, 0xaab, 0xab0, 0x3b, 0xab0, 0xabe, 0xaac, 0xac0, 0x2bb, 0x20, 0x49, +0x3b, 0xab0, 0xabe, 0xaac, 0xac0, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0xa9c, 0xac1, 0xaae, 0xabe, 0xaa6, 0xabe, 0x20, 0x49, 0x3b, 0xa9c, +0xac1, 0xaae, 0xabe, 0xaa6, 0xabe, 0x20, 0x49, 0x49, 0x3b, 0xab0, 0xa9c, 0xaac, 0x3b, 0xab6, 0xabe, 0x2bb, 0xaac, 0xabe, 0xaa8, 0x3b, +0xab0, 0xaae, 0xaa6, 0xabe, 0xaa8, 0x3b, 0xab6, 0xabe, 0xab5, 0xacd, 0xab5, 0xab2, 0x3b, 0xaa7, 0xac1, 0x2bb, 0xab2, 0x2d, 0xa95, 0xacd, +0xab5, 0xac0, 0x2bb, 0xaa1, 0xabe, 0xab9, 0x3b, 0xaa7, 0xac1, 0x2bb, 0xab2, 0x2d, 0xab9, 0xabf, 0xa9c, 0xacd, 0xa9c, 0xabe, 0xab9, 0x3b, +0x5de, 0x5d5, 0x5d7, 0x5e8, 0x5dd, 0x3b, 0x5e6, 0x5e4, 0x5e8, 0x3b, 0x5e8, 0x5d1, 0x5d9, 0x5e2, 0x20, 0x5d0, 0x5f3, 0x3b, 0x5e8, 0x5d1, +0x5d9, 0x5e2, 0x20, 0x5d1, 0x5f3, 0x3b, 0x5d2, 0x5f3, 0x5d5, 0x5de, 0x5d0, 0x5d3, 0x5d0, 0x20, 0x5d0, 0x5f3, 0x3b, 0x5d2, 0x5f3, 0x5d5, +0x5de, 0x5d0, 0x5d3, 0x5d0, 0x20, 0x5d1, 0x5f3, 0x3b, 0x5e8, 0x5d2, 0x5f3, 0x5d1, 0x3b, 0x5e9, 0x5e2, 0x5d1, 0x5d0, 0x5df, 0x3b, 0x5e8, +0x5de, 0x5d3, 0x5d0, 0x5df, 0x3b, 0x5e9, 0x5d5, 0x5d5, 0x5d0, 0x5dc, 0x3b, 0x5d3, 0x5f3, 0x5d5, 0x20, 0x5d0, 0x5dc, 0x5be, 0x5e7, 0x5e2, +0x5d3, 0x5d4, 0x3b, 0x5d3, 0x5f3, 0x5d5, 0x20, 0x5d0, 0x5dc, 0x5be, 0x5d7, 0x5d9, 0x5d2, 0x5f3, 0x5d4, 0x3b, 0x5de, 0x5d5, 0x5d7, 0x5e8, +0x5dd, 0x3b, 0x5e6, 0x5e4, 0x5e8, 0x3b, 0x5e8, 0x5d1, 0x5d9, 0x5e2, 0x20, 0x5d0, 0x5dc, 0x5be, 0x5d0, 0x5d5, 0x5d5, 0x5dc, 0x3b, 0x5e8, +0x5d1, 0x5d9, 0x5e2, 0x20, 0x5d0, 0x5be, 0x5ea, 0x5f3, 0x5d0, 0x5e0, 0x5d9, 0x3b, 0x5d2, 0x5f3, 0x5d5, 0x5de, 0x5d0, 0x5d3, 0x5d0, 0x20, +0x5d0, 0x5dc, 0x5be, 0x5d0, 0x5d5, 0x5dc, 0x5d0, 0x3b, 0x5d2, 0x5f3, 0x5d5, 0x5de, 0x5d0, 0x5d3, 0x5d0, 0x20, 0x5d0, 0x5be, 0x5ea, 0x5f3, +0x5d0, 0x5e0, 0x5d9, 0x5d4, 0x3b, 0x5e8, 0x5d2, 0x5f3, 0x5d1, 0x3b, 0x5e9, 0x5e2, 0x5d1, 0x5d0, 0x5df, 0x3b, 0x5e8, 0x5de, 0x5d3, 0x5d0, +0x5df, 0x3b, 0x5e9, 0x5d5, 0x5d5, 0x5d0, 0x5dc, 0x3b, 0x5d3, 0x5f3, 0x5d5, 0x20, 0x5d0, 0x5dc, 0x5be, 0x5e7, 0x5e2, 0x5d3, 0x5d4, 0x3b, +0x5d3, 0x5f3, 0x5d5, 0x20, 0x5d0, 0x5dc, 0x5be, 0x5d7, 0x5d9, 0x5d2, 0x5f3, 0x5d4, 0x3b, 0x5de, 0x5d5, 0x5d7, 0x5e8, 0x5dd, 0x3b, 0x5e6, +0x5e4, 0x5e8, 0x3b, 0x5e8, 0x5d1, 0x5d9, 0x5e2, 0x20, 0x5d0, 0x5dc, 0x2d, 0x5d0, 0x5d5, 0x5d5, 0x5dc, 0x3b, 0x5e8, 0x5d1, 0x5d9, 0x5e2, +0x20, 0x5d0, 0x2d, 0x5ea, 0x5f3, 0x5d0, 0x5e0, 0x5d9, 0x3b, 0x5d2, 0x5f3, 0x5d5, 0x5de, 0x5d0, 0x5d3, 0x5d0, 0x20, 0x5d0, 0x5dc, 0x2d, +0x5d0, 0x5d5, 0x5dc, 0x5d0, 0x3b, 0x5d2, 0x5f3, 0x5d5, 0x5de, 0x5d0, 0x5d3, 0x5d0, 0x20, 0x5d0, 0x2d, 0x5ea, 0x5f3, 0x5d0, 0x5e0, 0x5d9, +0x5d4, 0x3b, 0x5e8, 0x5d2, 0x5f3, 0x5d1, 0x3b, 0x5e9, 0x5e2, 0x5d1, 0x5d0, 0x5df, 0x3b, 0x5e8, 0x5de, 0x5d3, 0x5d0, 0x5df, 0x3b, 0x5e9, +0x5d5, 0x5d5, 0x5d0, 0x5dc, 0x3b, 0x5d3, 0x5f3, 0x5d5, 0x20, 0x5d0, 0x5dc, 0x5be, 0x5e7, 0x5e2, 0x5d3, 0x5d4, 0x3b, 0x5d3, 0x5f3, 0x5d5, +0x20, 0x5d0, 0x5dc, 0x5be, 0x5d7, 0x5d9, 0x5d2, 0x5f3, 0x5d4, 0x3b, 0x92e, 0x941, 0x939, 0x930, 0x94d, 0x930, 0x92e, 0x3b, 0x938, 0x92b, +0x930, 0x3b, 0x930, 0x93e, 0x92c, 0x940, 0x20, 0x92a, 0x94d, 0x930, 0x925, 0x92e, 0x3b, 0x930, 0x93e, 0x92c, 0x940, 0x20, 0x926, 0x94d, +0x935, 0x93f, 0x924, 0x940, 0x92f, 0x3b, 0x91c, 0x941, 0x92e, 0x94d, 0x921, 0x93e, 0x20, 0x92a, 0x94d, 0x930, 0x925, 0x92e, 0x3b, 0x91c, +0x941, 0x92e, 0x94d, 0x921, 0x93e, 0x20, 0x926, 0x94d, 0x935, 0x93f, 0x924, 0x940, 0x92f, 0x3b, 0x930, 0x91c, 0x92c, 0x3b, 0x936, 0x93e, +0x935, 0x928, 0x3b, 0x930, 0x92e, 0x91c, 0x93e, 0x928, 0x3b, 0x936, 0x935, 0x94d, 0x935, 0x94d, 0x932, 0x3b, 0x91c, 0x93f, 0x932, 0x2d, +0x915, 0x94d, 0x926, 0x93e, 0x939, 0x3b, 0x91c, 0x93f, 0x932, 0x94d, 0x2d, 0x939, 0x93f, 0x91c, 0x94d, 0x91c, 0x93e, 0x939, 0x3b, 0x4d, +0x6f, 0x68, 0x2e, 0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0xe9, 0x62, 0x2e, 0x20, 0x31, 0x3b, 0x52, 0xe9, 0x62, 0x2e, +0x20, 0x32, 0x3b, 0x44, 0x73, 0x65, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x44, 0x73, 0x65, 0x6d, 0x2e, 0x20, 0x49, 0x49, 0x3b, +0x52, 0x65, 0x64, 0x2e, 0x3b, 0x53, 0x61, 0x62, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x53, 0x65, 0x76, 0x2e, 0x3b, +0x44, 0x73, 0xfc, 0x6c, 0x20, 0x6b, 0x2e, 0x3b, 0x44, 0x73, 0xfc, 0x6c, 0x20, 0x68, 0x2e, 0x3b, 0x4d, 0x6f, 0x68, 0x61, +0x72, 0x72, 0x65, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x52, 0xe9, 0x62, 0x69, 0x20, 0x49, 0x3b, 0x52, 0xe9, +0x62, 0x69, 0x20, 0x49, 0x49, 0x3b, 0x44, 0x73, 0x65, 0x6d, 0xe1, 0x64, 0x69, 0x20, 0x49, 0x3b, 0x44, 0x73, 0x65, 0x6d, +0xe1, 0x64, 0x69, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x65, 0x64, 0x73, 0x65, 0x62, 0x3b, 0x53, 0x61, 0x62, 0xe1, 0x6e, 0x3b, +0x52, 0x61, 0x6d, 0x61, 0x64, 0xe1, 0x6e, 0x3b, 0x53, 0x65, 0x76, 0x76, 0xe1, 0x6c, 0x3b, 0x44, 0x73, 0xfc, 0x6c, 0x20, +0x6b, 0x61, 0x64, 0x65, 0x3b, 0x44, 0x73, 0xfc, 0x6c, 0x20, 0x68, 0x65, 0x64, 0x73, 0x65, 0x3b, 0x4d, 0x6f, 0x68, 0x61, +0x72, 0x72, 0x65, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x52, 0xe9, 0x62, 0x69, 0x20, 0x65, 0x6c, 0x20, 0x61, +0x76, 0x76, 0x65, 0x6c, 0x3b, 0x52, 0xe9, 0x62, 0x69, 0x20, 0x65, 0x6c, 0x20, 0x61, 0x63, 0x63, 0x68, 0x65, 0x72, 0x3b, +0x44, 0x73, 0x65, 0x6d, 0xe1, 0x64, 0x69, 0x20, 0x65, 0x6c, 0x20, 0x61, 0x76, 0x76, 0x65, 0x6c, 0x3b, 0x44, 0x73, 0x65, +0x6d, 0xe1, 0x64, 0x69, 0x20, 0x65, 0x6c, 0x20, 0x61, 0x63, 0x63, 0x68, 0x65, 0x72, 0x3b, 0x52, 0x65, 0x64, 0x73, 0x65, +0x62, 0x3b, 0x53, 0x61, 0x62, 0xe1, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, 0xe1, 0x6e, 0x3b, 0x53, 0x65, 0x76, 0x76, +0xe1, 0x6c, 0x3b, 0x44, 0x73, 0xfc, 0x6c, 0x20, 0x6b, 0x61, 0x64, 0x65, 0x3b, 0x44, 0x73, 0xfc, 0x6c, 0x20, 0x68, 0x65, +0x64, 0x73, 0x65, 0x3b, 0x6d, 0x75, 0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x49, +0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x2e, +0x20, 0x49, 0x49, 0x3b, 0x72, 0x61, 0x6a, 0x2e, 0x3b, 0x73, 0x68, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, 0x3b, 0x73, +0x68, 0x61, 0x77, 0x2e, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x2e, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, +0x48, 0x2e, 0x3b, 0x4d, 0x75, 0x68, 0x2e, 0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, +0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x2e, 0x20, +0x49, 0x49, 0x3b, 0x52, 0x61, 0x6a, 0x2e, 0x3b, 0x53, 0x68, 0x61, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x53, 0x79, +0x61, 0x77, 0x2e, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x2e, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x48, +0x2e, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x52, 0x61, 0x62, +0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, +0x20, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x53, +0x79, 0x61, 0x2019, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, 0x68, 0x61, 0x6e, 0x3b, 0x53, 0x79, 0x61, 0x77, +0x61, 0x6c, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x69, 0x2bb, 0x64, 0x61, 0x68, 0x3b, 0x44, 0x68, 0x75, 0x2bb, +0x6c, 0x2d, 0x48, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, 0x30e0, 0x30cf, 0x30c3, 0x30e9, 0x30e0, 0x3b, 0x30b5, 0x30d5, 0x30a2, 0x30eb, 0x3b, +0x30e9, 0x30d3, 0x30fc, 0x30fb, 0x30a6, 0x30eb, 0x30fb, 0x30a2, 0x30a6, 0x30ef, 0x30eb, 0x3b, 0x30e9, 0x30d3, 0x30fc, 0x30fb, 0x30a6, 0x30c3, 0x30fb, 0x30b5, +0x30fc, 0x30cb, 0x30fc, 0x3b, 0x30b8, 0x30e5, 0x30de, 0x30fc, 0x30c0, 0x30eb, 0x30fb, 0x30a2, 0x30a6, 0x30ef, 0x30eb, 0x3b, 0x30b8, 0x30e5, 0x30de, 0x30fc, +0x30c0, 0x30c3, 0x30b5, 0x30fc, 0x30cb, 0x30fc, 0x3b, 0x30e9, 0x30b8, 0x30e3, 0x30d6, 0x3b, 0x30b7, 0x30e3, 0x30a2, 0x30d0, 0x30fc, 0x30f3, 0x3b, 0x30e9, +0x30de, 0x30c0, 0x30fc, 0x30f3, 0x3b, 0x30b7, 0x30e3, 0x30a6, 0x30ef, 0x30fc, 0x30eb, 0x3b, 0x30ba, 0x30eb, 0x30fb, 0x30ab, 0x30a4, 0x30c0, 0x3b, 0x30ba, +0x30eb, 0x30fb, 0x30d2, 0x30c3, 0x30b8, 0x30e3, 0x3b, 0xcae, 0xcc1, 0xcb9, 0xccd, 0x2e, 0x3b, 0xcb8, 0xcab, 0xcbe, 0x2e, 0x3b, 0xcb0, 0xcac, +0xcbf, 0x2018, 0x20, 0x49, 0x3b, 0xcb0, 0xcac, 0xcbf, 0x2018, 0x20, 0x49, 0x49, 0x3b, 0xc9c, 0xcc1, 0xcae, 0xccd, 0x2e, 0x20, 0x49, +0x3b, 0xc9c, 0xcc1, 0xcae, 0xccd, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0xcb0, 0xc9c, 0xccd, 0x2e, 0x3b, 0xcb6, 0x2e, 0x3b, 0xcb0, 0xcae, +0xccd, 0x2e, 0x3b, 0xcb6, 0xcb5, 0xccd, 0x2e, 0x3b, 0xca7, 0xcc1, 0x2018, 0xcb2, 0xccd, 0x2d, 0xc95, 0xcbf, 0x2e, 0x3b, 0xca7, 0xcc1, +0x2018, 0xcb2, 0xccd, 0x2d, 0xcb9, 0x2e, 0x3b, 0xcae, 0xcc1, 0xcb9, 0xcb0, 0xcae, 0xccd, 0x3b, 0xcb8, 0xcab, 0xcbe, 0xcb0, 0xccd, 0x3b, +0xcb0, 0xcac, 0xcbf, 0x2018, 0x20, 0x49, 0x3b, 0xcb0, 0xcac, 0xcbf, 0x2018, 0x20, 0x49, 0x49, 0x3b, 0xc9c, 0xcc1, 0xcae, 0xcbe, 0xca6, +0xcbe, 0x20, 0x49, 0x3b, 0xc9c, 0xcc1, 0xcae, 0xcbe, 0xca6, 0xcbe, 0x20, 0x49, 0x49, 0x3b, 0xcb0, 0xc9c, 0xcac, 0xccd, 0x3b, 0xcb6, +0x2019, 0xcac, 0xcbe, 0xca8, 0xccd, 0x3b, 0xcb0, 0xcae, 0xca6, 0xcbe, 0xca8, 0xccd, 0x3b, 0xcb6, 0xcb5, 0xccd, 0xcb5, 0xcbe, 0xcb2, 0xccd, +0x3b, 0xca7, 0xcc1, 0x2018, 0xcb2, 0xccd, 0x2d, 0xc95, 0xcbf, 0x2018, 0xca1, 0xcbe, 0xcb9, 0xccd, 0x3b, 0xca7, 0xcc1, 0x2018, 0xcb2, 0xccd, +0x2d, 0xcb9, 0xcbf, 0xc9c, 0xcbe, 0xcb9, 0xccd, 0x3b, 0xbb34, 0xd558, 0xb78c, 0x3b, 0xc0ac, 0xd30c, 0xb974, 0x3b, 0xb77c, 0xbe44, 0x20, 0xc54c, +0x20, 0xc544, 0xc648, 0x3b, 0xb77c, 0xbe44, 0x20, 0xc54c, 0x20, 0xc384, 0xb2c8, 0x3b, 0xc8fc, 0xb9c8, 0xb2e4, 0x20, 0xc54c, 0x20, 0xc544, 0xc648, +0x3b, 0xc8fc, 0xb9c8, 0xb2e4, 0x20, 0xc54c, 0x20, 0xc384, 0xb2c8, 0x3b, 0xb77c, 0xc7a1, 0x3b, 0xc250, 0xc544, 0xbc18, 0x3b, 0xb77c, 0xb9c8, 0xb2e8, +0x3b, 0xc250, 0xc648, 0x3b, 0xb4c0, 0x20, 0xc54c, 0x20, 0xae4c, 0xb2e4, 0x3b, 0xb4c0, 0x20, 0xc54c, 0x20, 0xd788, 0xc790, 0x3b, 0x6d, 0x75, +0x1e96, 0x65, 0x72, 0x65, 0x6d, 0x3b, 0x73, 0x65, 0x66, 0x65, 0x72, 0x3b, 0x72, 0x65, 0x62, 0xee, 0x2bf, 0x75, 0x6c, 0x65, +0x77, 0x65, 0x6c, 0x3b, 0x72, 0x65, 0x62, 0xee, 0x2bf, 0x75, 0x6c, 0x61, 0x78, 0x65, 0x72, 0x3b, 0x63, 0x65, 0x6d, 0x61, +0x7a, 0xee, 0x79, 0x65, 0x6c, 0x65, 0x77, 0x65, 0x6c, 0x3b, 0x63, 0x65, 0x6d, 0x61, 0x7a, 0xee, 0x79, 0x65, 0x6c, 0x61, +0x78, 0x65, 0x72, 0x3b, 0x72, 0x65, 0x63, 0x65, 0x62, 0x3b, 0x15f, 0x65, 0x2bf, 0x62, 0x61, 0x6e, 0x3b, 0x72, 0x65, 0x6d, +0x65, 0x7a, 0x61, 0x6e, 0x3b, 0x15f, 0x65, 0x77, 0x61, 0x6c, 0x3b, 0x7a, 0xee, 0x6c, 0x71, 0x65, 0x2bf, 0x64, 0x65, 0x3b, +0x7a, 0xee, 0x6c, 0x1e96, 0x65, 0x63, 0x65, 0x3b, 0xea1, 0xeb8, 0xeae, 0xeb1, 0xe94, 0x3b, 0xec0, 0xe84, 0xeb2, 0xeb0, 0x3b, 0xeae, +0xead, 0xe81, 0xe9a, 0xeb5, 0x20, 0x31, 0x3b, 0xeae, 0xead, 0xe81, 0xe9a, 0xeb5, 0x20, 0x32, 0x3b, 0xe99, 0xeb8, 0xea1, 0xeb2, 0x20, +0x31, 0x3b, 0xe99, 0xeb8, 0xea1, 0xeb2, 0x20, 0x32, 0x3b, 0xec0, 0xeae, 0xeb2, 0xeb0, 0x3b, 0xe8a, 0xeb2, 0x3b, 0xec0, 0xeae, 0xeb2, +0xeb0, 0xea1, 0xeb0, 0x3b, 0xec0, 0xe8a, 0xebb, 0xeb2, 0x3b, 0xe8a, 0xeb8, 0xea5, 0xe81, 0xeb4, 0xead, 0xeb8, 0x3b, 0xe8a, 0xeb8, 0xea5, +0xeab, 0xeb4, 0xe88, 0x3b, 0xea1, 0xeb8, 0xea3, 0xeb0, 0xeae, 0xead, 0xea1, 0x3b, 0xe8a, 0xeb2, 0xe9f, 0xeb2, 0xea3, 0x3b, 0xeae, 0xead, +0xe94, 0xe9a, 0xeb5, 0x20, 0x31, 0x3b, 0xeae, 0xead, 0xe94, 0xe9a, 0xeb5, 0x20, 0x32, 0x3b, 0xe88, 0xeb8, 0xea1, 0xeb2, 0xe94, 0xeb2, +0x20, 0x31, 0x3b, 0xe88, 0xeb8, 0xea1, 0xeb2, 0xe94, 0xeb2, 0x20, 0x32, 0x3b, 0xeae, 0xeb2, 0xe88, 0xeb1, 0xe9a, 0x3b, 0xe8a, 0xeb0, +0xe9a, 0xeb2, 0xe99, 0x3b, 0xeae, 0xeb2, 0xea1, 0xeb2, 0xe94, 0xead, 0xe99, 0x3b, 0xec0, 0xe8a, 0xebb, 0xeb2, 0xea7, 0xeb1, 0xe94, 0x3b, +0xe94, 0xeb8, 0xead, 0xeb1, 0xe94, 0xe81, 0xeb4, 0xe94, 0xeb0, 0x3b, 0xe94, 0xeb8, 0xead, 0xeb1, 0xe94, 0xe81, 0xeb4, 0xe88, 0xeb0, 0x3b, +0xea1, 0xeb8, 0xeae, 0xeb1, 0xe94, 0x3b, 0xec0, 0xe84, 0xeb2, 0xeb0, 0x3b, 0xeae, 0xead, 0xe94, 0xe9a, 0xeb5, 0x20, 0x31, 0x3b, 0xeae, +0xead, 0xe81, 0xe9a, 0xeb5, 0x20, 0x32, 0x3b, 0xe99, 0xeb8, 0xea1, 0xeb2, 0x20, 0x31, 0x3b, 0xe99, 0xeb8, 0xea1, 0xeb2, 0x20, 0x32, +0x3b, 0xec0, 0xeae, 0xeb2, 0xeb0, 0x3b, 0xe8a, 0xeb0, 0xead, 0xecc, 0x3b, 0xec0, 0xeae, 0xeb2, 0xeb0, 0xea1, 0xeb0, 0x3b, 0xec0, 0xe8a, +0xebb, 0xeb2, 0x3b, 0xe8a, 0xeb8, 0xea5, 0xe81, 0xeb4, 0xead, 0xeb8, 0x3b, 0xe8a, 0xeb8, 0xea5, 0xeab, 0xeb4, 0xe88, 0x3b, 0x6d, 0x75, +0x68, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x73, 0x3b, 0x31, 0x2e, 0x20, 0x72, 0x61, 0x62, +0x12b, 0x3b, 0x32, 0x2e, 0x20, 0x72, 0x61, 0x62, 0x12b, 0x3b, 0x31, 0x2e, 0x20, 0x64, 0x17e, 0x75, 0x6d, 0x101, 0x64, 0x101, +0x3b, 0x32, 0x2e, 0x20, 0x64, 0x17e, 0x75, 0x6d, 0x101, 0x64, 0x101, 0x3b, 0x72, 0x61, 0x64, 0x17e, 0x61, 0x62, 0x73, 0x3b, +0x161, 0x61, 0x62, 0x61, 0x6e, 0x73, 0x3b, 0x72, 0x61, 0x6d, 0x61, 0x64, 0x101, 0x6e, 0x73, 0x3b, 0x161, 0x61, 0x75, 0x76, +0x61, 0x6c, 0x73, 0x3b, 0x64, 0x75, 0x20, 0x61, 0x6c, 0x2d, 0x6b, 0x69, 0x64, 0x101, 0x3b, 0x64, 0x75, 0x20, 0x61, 0x6c, +0x2d, 0x68, 0x69, 0x64, 0x17e, 0x101, 0x3b, 0x43c, 0x443, 0x445, 0x2e, 0x3b, 0x441, 0x430, 0x444, 0x2e, 0x3b, 0x440, 0x430, 0x431, +0x2e, 0x20, 0x49, 0x3b, 0x440, 0x430, 0x431, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x45f, 0x443, 0x43c, 0x2e, 0x20, 0x49, 0x3b, 0x45f, +0x443, 0x43c, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x440, 0x430, 0x45f, 0x2e, 0x3b, 0x448, 0x430, 0x431, 0x2e, 0x3b, 0x440, 0x430, 0x43c, +0x2e, 0x3b, 0x448, 0x430, 0x432, 0x2e, 0x3b, 0x434, 0x443, 0x43b, 0x43a, 0x2e, 0x3b, 0x434, 0x443, 0x43b, 0x445, 0x2e, 0x3b, 0x43c, +0x443, 0x445, 0x430, 0x440, 0x435, 0x43c, 0x3b, 0x441, 0x430, 0x444, 0x430, 0x440, 0x3b, 0x440, 0x430, 0x431, 0x438, 0x20, 0x49, 0x3b, +0x440, 0x430, 0x431, 0x438, 0x20, 0x49, 0x49, 0x3b, 0x45f, 0x443, 0x43c, 0x430, 0x434, 0x430, 0x20, 0x49, 0x3b, 0x45f, 0x443, 0x43c, +0x430, 0x434, 0x430, 0x20, 0x49, 0x49, 0x3b, 0x440, 0x430, 0x45f, 0x430, 0x431, 0x3b, 0x448, 0x430, 0x431, 0x430, 0x43d, 0x3b, 0x440, +0x430, 0x43c, 0x430, 0x434, 0x430, 0x43d, 0x3b, 0x448, 0x430, 0x432, 0x430, 0x43b, 0x3b, 0x434, 0x443, 0x43b, 0x43a, 0x438, 0x434, 0x430, +0x3b, 0x434, 0x443, 0x43b, 0x445, 0x438, 0x45f, 0x430, 0x3b, 0xd2e, 0xd41, 0xd39, 0x2e, 0x3b, 0xd38, 0xd2b, 0x2e, 0x3b, 0xd31, 0xd2c, +0xd40, 0xd39, 0xd41, 0xd7d, 0x20, 0xd05, 0xd35, 0xd4d, 0xd35, 0x2e, 0x3b, 0xd31, 0xd2c, 0xd40, 0xd39, 0xd41, 0xd7d, 0x20, 0xd06, 0xd16, +0xd3f, 0x2e, 0x3b, 0xd1c, 0xd2e, 0xd3e, 0xd26, 0xd41, 0xd7d, 0x20, 0xd05, 0xd35, 0xd4d, 0xd35, 0x2e, 0x3b, 0xd1c, 0xd2e, 0xd3e, 0xd26, +0xd41, 0xd7d, 0x20, 0xd06, 0xd16, 0xd3f, 0x2e, 0x3b, 0xd31, 0xd1c, 0x2e, 0x3b, 0xd36, 0xd39, 0xd2c, 0xd3e, 0x2e, 0x3b, 0xd31, 0xd2e, +0xd26, 0xd3e, 0x2e, 0x3b, 0xd36, 0xd35, 0xd4d, 0xd35, 0xd3e, 0x2e, 0x3b, 0xd26, 0xd41, 0xd7d, 0x20, 0xd16, 0xd39, 0x2e, 0x3b, 0xd26, +0xd41, 0xd7d, 0x20, 0xd39, 0xd3f, 0x2e, 0x3b, 0xd2e, 0xd41, 0xd39, 0xd31, 0xd02, 0x3b, 0xd38, 0xd2b, 0xd7c, 0x3b, 0xd31, 0xd2c, 0xd40, +0xd39, 0xd41, 0xd7d, 0x20, 0xd05, 0xd35, 0xd4d, 0xd35, 0xd7d, 0x3b, 0xd31, 0xd2c, 0xd40, 0xd39, 0xd41, 0xd7d, 0x20, 0xd06, 0xd16, 0xd3f, +0xd7c, 0x3b, 0xd1c, 0xd2e, 0xd3e, 0xd26, 0xd41, 0xd7d, 0x20, 0xd05, 0xd35, 0xd4d, 0xd35, 0xd7d, 0x3b, 0xd1c, 0xd2e, 0xd3e, 0xd26, 0xd41, +0xd7d, 0x20, 0xd06, 0xd16, 0xd3f, 0xd7c, 0x3b, 0xd31, 0xd1c, 0xd2c, 0xd4d, 0x3b, 0xd36, 0xd39, 0xd2c, 0xd3e, 0xd7b, 0x3b, 0xd31, 0xd2e, +0xd26, 0xd3e, 0xd7b, 0x3b, 0xd36, 0xd35, 0xd4d, 0xd35, 0xd3e, 0xd7d, 0x3b, 0xd26, 0xd41, 0xd7d, 0x20, 0xd16, 0xd39, 0xd26, 0xd4d, 0x3b, +0xd26, 0xd41, 0xd7d, 0x20, 0xd39, 0xd3f, 0xd1c, 0xd4d, 0xd1c, 0x3b, 0xd2e, 0xd41, 0x3b, 0xd38, 0x3b, 0xd31, 0x3b, 0xd31, 0x3b, 0xd1c, +0x3b, 0xd1c, 0x3b, 0xd31, 0x3b, 0xd36, 0x3b, 0xd31, 0x3b, 0xd36, 0x3b, 0xd26, 0xd41, 0x3b, 0xd26, 0xd41, 0x3b, 0xd2e, 0xd41, 0xd39, +0xd31, 0xd02, 0x3b, 0xd38, 0xd2b, 0xd7c, 0x3b, 0xd31, 0xd2c, 0xd40, 0xd39, 0xd41, 0xd7d, 0x20, 0xd05, 0xd35, 0xd4d, 0xd35, 0xd7d, 0x3b, +0xd31, 0xd2c, 0xd40, 0xd39, 0xd41, 0xd7d, 0x20, 0xd06, 0xd16, 0xd3f, 0xd7c, 0x3b, 0xd1c, 0xd2e, 0xd3e, 0xd26, 0xd41, 0xd7d, 0x20, 0xd05, +0xd35, 0xd4d, 0xd35, 0xd7d, 0x3b, 0xd1c, 0xd2e, 0xd3e, 0xd26, 0xd41, 0xd7d, 0x20, 0xd06, 0xd16, 0xd3f, 0xd7c, 0x3b, 0xd31, 0xd1c, 0xd2c, +0xd4d, 0x3b, 0xd36, 0xd39, 0xd2c, 0xd3e, 0xd7b, 0x3b, 0xd31, 0xd2e, 0xd33, 0xd3e, 0xd7b, 0x3b, 0xd36, 0xd35, 0xd4d, 0xd35, 0xd3e, 0xd7d, +0x3b, 0xd26, 0xd41, 0xd7d, 0x20, 0xd16, 0xd39, 0xd26, 0xd4d, 0x3b, 0xd26, 0xd41, 0xd7d, 0x20, 0xd39, 0xd3f, 0xd1c, 0xd4d, 0xd1c, 0x3b, +0x92e, 0x94b, 0x939, 0x2e, 0x3b, 0x938, 0x92b, 0x2e, 0x3b, 0x930, 0x93e, 0x92c, 0x940, 0x20, 0x49, 0x3b, 0x930, 0x93e, 0x92c, 0x940, +0x20, 0x49, 0x49, 0x3b, 0x91c, 0x941, 0x92e, 0x93e, 0x2e, 0x20, 0x49, 0x3b, 0x91c, 0x941, 0x92e, 0x93e, 0x2e, 0x20, 0x49, 0x49, +0x3b, 0x930, 0x91d, 0x93e, 0x2e, 0x3b, 0x936, 0x93e, 0x92c, 0x93e, 0x2e, 0x3b, 0x930, 0x92e, 0x2e, 0x3b, 0x936, 0x935, 0x94d, 0x935, +0x93e, 0x2e, 0x3b, 0x927, 0x941, 0x932, 0x2d, 0x915, 0x940, 0x2e, 0x3b, 0x927, 0x941, 0x932, 0x2d, 0x939, 0x93f, 0x2e, 0x3b, 0x92e, +0x94b, 0x939, 0x930, 0x92e, 0x3b, 0x938, 0x92b, 0x930, 0x3b, 0x930, 0x93e, 0x92c, 0x940, 0x20, 0x49, 0x3b, 0x930, 0x93e, 0x92c, 0x940, +0x20, 0x49, 0x49, 0x3b, 0x91c, 0x941, 0x92e, 0x93e, 0x926, 0x93e, 0x20, 0x49, 0x3b, 0x91c, 0x941, 0x92e, 0x93e, 0x926, 0x93e, 0x20, +0x49, 0x49, 0x3b, 0x930, 0x91d, 0x93e, 0x92c, 0x3b, 0x936, 0x93e, 0x92c, 0x93e, 0x928, 0x3b, 0x930, 0x92e, 0x91c, 0x93e, 0x928, 0x3b, +0x936, 0x935, 0x94d, 0x935, 0x93e, 0x932, 0x3b, 0x927, 0x941, 0x932, 0x2d, 0x915, 0x940, 0x926, 0x93e, 0x939, 0x3b, 0x927, 0x941, 0x932, +0x2d, 0x939, 0x93f, 0x91c, 0x93e, 0x939, 0x3b, 0x967, 0x3b, 0x968, 0x3b, 0x969, 0x3b, 0x96a, 0x3b, 0x96b, 0x3b, 0x96c, 0x3b, 0x96d, +0x3b, 0x96e, 0x3b, 0x96f, 0x3b, 0x967, 0x966, 0x3b, 0x967, 0x967, 0x3b, 0x967, 0x968, 0x3b, 0x6d, 0x75, 0x68, 0x2e, 0x3b, 0x73, +0x61, 0x66, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x6a, +0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x72, 0x61, 0x6a, 0x2e, 0x3b, 0x73, +0x68, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, 0x3b, 0x73, 0x68, 0x61, 0x77, 0x2e, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, +0x2d, 0x71, 0x2e, 0x3b, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x48, 0x2e, 0x3b, 0x6d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, +0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x72, 0x61, 0x62, 0x69, +0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, +0x20, 0x49, 0x49, 0x3b, 0x72, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x73, 0x68, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x72, 0x61, +0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x73, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, +0x71, 0x69, 0x2bb, 0x64, 0x61, 0x68, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x68, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, +0x6d, 0x75, 0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, 0x72, 0x61, 0x62, +0x2e, 0x20, 0x49, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x49, 0x3b, +0x72, 0x61, 0x6a, 0x2e, 0x3b, 0x73, 0x68, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, 0x3b, 0x73, 0x68, 0x61, 0x77, 0x2e, +0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x71, 0x2e, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x68, 0x2e, 0x3b, 0x645, +0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, 0x647, 0x3b, 0x631, 0x628, 0x64a, 0x639, 0x3b, 0x631, 0x628, 0x64a, 0x639, 0x20, 0x49, +0x49, 0x3b, 0x62c, 0x645, 0x627, 0x639, 0x647, 0x3b, 0x62c, 0x645, 0x648, 0x645, 0x627, 0x20, 0x49, 0x49, 0x3b, 0x631, 0x627, 0x62c, +0x627, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, 0x627, 0x644, 0x3b, +0x62f, 0x627, 0x644, 0x642, 0x627, 0x639, 0x62f, 0x647, 0x3b, 0x62d, 0x644, 0x627, 0x644, 0x20, 0x62d, 0x62c, 0x3b, 0x645, 0x62d, 0x631, +0x645, 0x3b, 0x62f, 0x20, 0x635, 0x641, 0x631, 0x6d0, 0x20, 0x62f, 0x3b, 0x631, 0x628, 0x64a, 0x639, 0x3b, 0x631, 0x628, 0x64a, 0x639, +0x20, 0x49, 0x49, 0x3b, 0x62c, 0x645, 0x627, 0x639, 0x647, 0x3b, 0x62c, 0x645, 0x648, 0x645, 0x627, 0x20, 0x49, 0x49, 0x3b, 0x631, +0x627, 0x62c, 0x627, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, 0x627, +0x644, 0x3b, 0x62f, 0x627, 0x644, 0x642, 0x627, 0x639, 0x62f, 0x647, 0x3b, 0x62d, 0x644, 0x627, 0x644, 0x20, 0x62d, 0x62c, 0x3b, 0x645, +0x62d, 0x631, 0x645, 0x3b, 0x62f, 0x20, 0x635, 0x641, 0x631, 0x6d2, 0x20, 0x62f, 0x3b, 0x631, 0x628, 0x64a, 0x639, 0x3b, 0x631, 0x628, +0x64a, 0x639, 0x20, 0x49, 0x49, 0x3b, 0x62c, 0x645, 0x627, 0x639, 0x647, 0x3b, 0x62c, 0x645, 0x648, 0x645, 0x627, 0x20, 0x49, 0x49, +0x3b, 0x631, 0x627, 0x62c, 0x627, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, +0x648, 0x627, 0x644, 0x3b, 0x62f, 0x627, 0x644, 0x642, 0x627, 0x639, 0x62f, 0x647, 0x3b, 0x62d, 0x644, 0x627, 0x644, 0x20, 0x62d, 0x62c, +0x3b, 0x645, 0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, 0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x200c, 0x627, 0x644, 0x627, 0x648, 0x644, +0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x200c, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x6cc, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, 0x200c, 0x627, +0x644, 0x627, 0x648, 0x644, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, 0x200c, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x6cc, 0x3b, 0x631, 0x62c, +0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, 0x627, 0x644, 0x3b, 0x630, +0x6cc, 0x642, 0x639, 0x62f, 0x647, 0x3b, 0x630, 0x6cc, 0x62d, 0x62c, 0x647, 0x3b, 0x645, 0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, +0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x200c, 0x627, 0x644, 0x627, 0x648, 0x644, 0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x20, 0x627, 0x644, 0x62b, +0x627, 0x646, 0x6cc, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, 0x20, 0x627, 0x644, 0x627, 0x648, 0x644, 0x3b, 0x62c, 0x645, 0x627, 0x62f, +0x6cc, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x6cc, 0x3b, 0x631, 0x62c, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, +0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, 0x627, 0x644, 0x3b, 0x630, 0x6cc, 0x642, 0x639, 0x62f, 0x647, 0x3b, 0x630, 0x6cc, 0x62d, +0x62c, 0x647, 0x3b, 0x645, 0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, 0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x200c, 0x627, 0x644, 0x627, +0x648, 0x644, 0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x200c, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x6cc, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, +0x200c, 0x627, 0x644, 0x627, 0x648, 0x644, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, 0x200c, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x6cc, 0x3b, +0x631, 0x62c, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, 0x627, 0x644, +0x3b, 0x630, 0x6cc, 0x642, 0x639, 0x62f, 0x647, 0x654, 0x3b, 0x630, 0x6cc, 0x62d, 0x62c, 0x647, 0x654, 0x3b, 0x4d, 0x75, 0x68, 0x2e, +0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x49, +0x3b, 0x44, 0x17c, 0x75, 0x2e, 0x20, 0x49, 0x3b, 0x44, 0x17c, 0x75, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x61, 0x2e, 0x3b, +0x53, 0x7a, 0x61, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x53, 0x7a, 0x61, 0x77, 0x2e, 0x3b, 0x5a, 0x75, 0x20, 0x61, +0x6c, 0x2d, 0x6b, 0x2e, 0x3b, 0x5a, 0x75, 0x20, 0x61, 0x6c, 0x2d, 0x68, 0x2e, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, +0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, +0x69, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x44, 0x17c, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x3b, 0x44, 0x17c, 0x75, 0x6d, +0x61, 0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x61, 0x64, 0x17c, 0x61, 0x62, 0x3b, 0x53, 0x7a, 0x61, 0x62, 0x61, 0x6e, +0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x53, 0x7a, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x5a, 0x75, 0x20, +0x61, 0x6c, 0x2d, 0x6b, 0x61, 0x64, 0x61, 0x3b, 0x5a, 0x75, 0x20, 0x61, 0x6c, 0x2d, 0x68, 0x69, 0x64, 0x17c, 0x64, 0x17c, +0x61, 0x3b, 0xa2e, 0xa41, 0xa39, 0xa71, 0x2e, 0x3b, 0xa38, 0xa2b, 0x2e, 0x3b, 0xa30, 0xa2c, 0x2e, 0x20, 0x49, 0x3b, 0xa30, 0xa2c, +0x2e, 0x20, 0x49, 0x49, 0x3b, 0xa1c, 0xa41, 0xa2e, 0x2e, 0x20, 0x49, 0x3b, 0xa1c, 0xa41, 0xa2e, 0x2e, 0x20, 0x49, 0x49, 0x3b, +0xa30, 0xa3e, 0xa1c, 0x2e, 0x3b, 0xa38, 0xa3c, 0xa3e, 0x2e, 0x3b, 0xa30, 0xa3e, 0xa2e, 0x2e, 0x3b, 0xa38, 0xa3c, 0xa05, 0x2e, 0x3b, +0xa26, 0xa42, 0x2d, 0xa05, 0xa32, 0x2d, 0xa15, 0xa40, 0x2e, 0x3b, 0xa26, 0xa42, 0x2d, 0xa05, 0xa32, 0x2d, 0xa39, 0xa3f, 0x2e, 0x3b, +0xa2e, 0xa41, 0xa39, 0xa71, 0xa30, 0xa2e, 0x3b, 0xa38, 0xa2b, 0xa30, 0x3b, 0xa30, 0xa2c, 0xa40, 0x2bb, 0x20, 0x49, 0x3b, 0xa30, 0xa2c, +0xa40, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0xa1c, 0xa41, 0xa2e, 0xa3e, 0xa26, 0xa3e, 0x20, 0x49, 0x3b, 0xa1c, 0xa41, 0xa2e, 0xa3e, 0xa26, +0xa3e, 0x20, 0x49, 0x49, 0x3b, 0xa30, 0xa1c, 0xa2c, 0x3b, 0xa38, 0xa3c, 0xa2c, 0xa3e, 0xa28, 0x3b, 0xa30, 0xa2e, 0xa1c, 0xa3c, 0xa3e, +0xa28, 0x3b, 0xa38, 0xa3c, 0xa35, 0xa3e, 0xa32, 0x3b, 0xa26, 0xa42, 0x2d, 0xa05, 0xa32, 0x2d, 0xa15, 0xa40, 0xa26, 0xa3e, 0xa39, 0x3b, +0xa26, 0xa42, 0x2d, 0xa05, 0xa32, 0x2d, 0xa39, 0xa3f, 0xa1c, 0xa4d, 0xa39, 0xa3e, 0x3b, 0xa2e, 0xa41, 0xa39, 0xa71, 0xa30, 0xa2e, 0x3b, +0xa38, 0xa2b, 0xa30, 0x3b, 0xa30, 0xa2c, 0xa40, 0x20, 0x2bb, 0x20, 0x49, 0x3b, 0xa30, 0xa2c, 0xa40, 0x20, 0x2bb, 0x20, 0x49, 0x49, +0x3b, 0xa1c, 0xa41, 0xa2e, 0xa3e, 0xa26, 0xa3e, 0x20, 0x49, 0x3b, 0xa1c, 0xa41, 0xa2e, 0xa3e, 0xa26, 0xa3e, 0x20, 0x49, 0x49, 0x3b, +0xa30, 0xa1c, 0xa2c, 0x3b, 0xa38, 0xa3c, 0xa2c, 0xa3e, 0xa28, 0x3b, 0xa30, 0xa2e, 0xa1c, 0xa3c, 0xa3e, 0xa28, 0x3b, 0xa38, 0xa3c, 0xa35, +0xa3e, 0xa32, 0x3b, 0xa26, 0xa42, 0x2d, 0xa05, 0xa32, 0x2d, 0xa15, 0xa40, 0xa26, 0xa3e, 0xa39, 0x3b, 0xa26, 0xa42, 0x2d, 0xa05, 0xa32, +0x2d, 0xa39, 0xa3f, 0xa1c, 0xa4d, 0xa39, 0xa3e, 0x3b, 0x43c, 0x443, 0x445, 0x2e, 0x3b, 0x441, 0x430, 0x444, 0x2e, 0x3b, 0x440, 0x430, +0x431, 0x2e, 0x20, 0x49, 0x3b, 0x440, 0x430, 0x431, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x2e, 0x20, 0x49, +0x3b, 0x434, 0x436, 0x443, 0x43c, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x440, 0x430, 0x434, 0x436, 0x2e, 0x3b, 0x448, 0x430, 0x430, 0x431, +0x2e, 0x3b, 0x440, 0x430, 0x43c, 0x2e, 0x3b, 0x448, 0x430, 0x432, 0x2e, 0x3b, 0x437, 0x443, 0x43b, 0x44c, 0x2d, 0x43a, 0x2e, 0x3b, +0x437, 0x443, 0x43b, 0x44c, 0x2d, 0x445, 0x2e, 0x3b, 0x43c, 0x443, 0x445, 0x430, 0x440, 0x440, 0x430, 0x43c, 0x3b, 0x441, 0x430, 0x444, +0x430, 0x440, 0x3b, 0x440, 0x430, 0x431, 0x438, 0x2d, 0x443, 0x43b, 0x44c, 0x2d, 0x430, 0x432, 0x432, 0x430, 0x43b, 0x44c, 0x3b, 0x440, +0x430, 0x431, 0x438, 0x2d, 0x443, 0x43b, 0x44c, 0x2d, 0x430, 0x445, 0x438, 0x440, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x430, 0x434, 0x2d, +0x443, 0x43b, 0x44c, 0x2d, 0x430, 0x432, 0x432, 0x430, 0x43b, 0x44c, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x430, 0x434, 0x2d, 0x443, 0x43b, +0x44c, 0x2d, 0x430, 0x445, 0x438, 0x440, 0x3b, 0x440, 0x430, 0x434, 0x436, 0x430, 0x431, 0x3b, 0x448, 0x430, 0x430, 0x431, 0x430, 0x43d, +0x3b, 0x440, 0x430, 0x43c, 0x430, 0x434, 0x430, 0x43d, 0x3b, 0x448, 0x430, 0x432, 0x432, 0x430, 0x43b, 0x44c, 0x3b, 0x437, 0x443, 0x43b, +0x44c, 0x2d, 0x43a, 0x430, 0x430, 0x434, 0x430, 0x3b, 0x437, 0x443, 0x43b, 0x44c, 0x2d, 0x445, 0x438, 0x434, 0x436, 0x436, 0x430, 0x3b, +0x41c, 0x443, 0x445, 0x2e, 0x3b, 0x421, 0x430, 0x444, 0x2e, 0x3b, 0x420, 0x435, 0x431, 0x2e, 0x20, 0x31, 0x3b, 0x420, 0x435, 0x431, +0x2e, 0x20, 0x32, 0x3b, 0x40f, 0x443, 0x43c, 0x2e, 0x20, 0x31, 0x3b, 0x40f, 0x443, 0x43c, 0x2e, 0x20, 0x32, 0x3b, 0x420, 0x435, +0x45f, 0x2e, 0x3b, 0x428, 0x430, 0x2e, 0x3b, 0x420, 0x430, 0x43c, 0x2e, 0x3b, 0x428, 0x435, 0x2e, 0x3b, 0x417, 0x443, 0x43b, 0x2d, +0x43a, 0x2e, 0x3b, 0x417, 0x443, 0x43b, 0x2d, 0x445, 0x2e, 0x3b, 0x41c, 0x443, 0x445, 0x430, 0x440, 0x435, 0x43c, 0x3b, 0x421, 0x430, +0x444, 0x435, 0x440, 0x3b, 0x420, 0x435, 0x431, 0x438, 0x20, 0x31, 0x3b, 0x420, 0x435, 0x431, 0x438, 0x20, 0x32, 0x3b, 0x40f, 0x443, +0x43c, 0x430, 0x434, 0x435, 0x20, 0x31, 0x3b, 0x40f, 0x443, 0x43c, 0x430, 0x434, 0x435, 0x20, 0x32, 0x3b, 0x420, 0x435, 0x45f, 0x435, +0x431, 0x3b, 0x428, 0x430, 0x2bb, 0x431, 0x430, 0x43d, 0x3b, 0x420, 0x430, 0x43c, 0x430, 0x437, 0x430, 0x43d, 0x3b, 0x428, 0x435, 0x432, +0x430, 0x43b, 0x3b, 0x417, 0x443, 0x43b, 0x2d, 0x43a, 0x430, 0x434, 0x435, 0x3b, 0x417, 0x443, 0x43b, 0x2d, 0x445, 0x438, 0x45f, 0x435, +0x3b, 0x41c, 0x443, 0x440, 0x430, 0x445, 0x430, 0x43c, 0x3b, 0x421, 0x430, 0x444, 0x430, 0x440, 0x3b, 0x420, 0x430, 0x431, 0x438, 0x2bb, +0x20, 0x49, 0x3b, 0x420, 0x430, 0x431, 0x438, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x408, 0x443, 0x43c, 0x430, 0x434, 0x430, 0x20, 0x49, +0x3b, 0x408, 0x443, 0x43c, 0x430, 0x434, 0x430, 0x20, 0x49, 0x49, 0x3b, 0x420, 0x430, 0x452, 0x430, 0x431, 0x3b, 0x428, 0x430, 0x2bb, +0x431, 0x430, 0x43d, 0x3b, 0x420, 0x430, 0x43c, 0x430, 0x434, 0x430, 0x43d, 0x3b, 0x428, 0x430, 0x432, 0x430, 0x43b, 0x3b, 0x414, 0x443, +0x2bb, 0x43b, 0x2d, 0x41a, 0x438, 0x2bb, 0x434, 0x430, 0x3b, 0x414, 0x443, 0x2bb, 0x43b, 0x2d, 0x445, 0x438, 0x452, 0x430, 0x3b, 0x4d, +0x75, 0x68, 0x2e, 0x3b, 0x53, 0x61, 0x66, 0x2e, 0x3b, 0x52, 0x65, 0x62, 0x2e, 0x20, 0x31, 0x3b, 0x52, 0x65, 0x62, 0x2e, +0x20, 0x32, 0x3b, 0x44, 0x17e, 0x75, 0x6d, 0x2e, 0x20, 0x31, 0x3b, 0x44, 0x17e, 0x75, 0x6d, 0x2e, 0x20, 0x32, 0x3b, 0x52, +0x65, 0x64, 0x17e, 0x2e, 0x3b, 0x160, 0x61, 0x2e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x160, 0x65, 0x2e, 0x3b, 0x5a, 0x75, +0x6c, 0x2d, 0x6b, 0x2e, 0x3b, 0x5a, 0x75, 0x6c, 0x2d, 0x68, 0x2e, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x65, 0x6d, 0x3b, +0x53, 0x61, 0x66, 0x65, 0x72, 0x3b, 0x52, 0x65, 0x62, 0x69, 0x20, 0x31, 0x3b, 0x52, 0x65, 0x62, 0x69, 0x20, 0x32, 0x3b, +0x44, 0x17e, 0x75, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x31, 0x3b, 0x44, 0x17e, 0x75, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x32, 0x3b, +0x52, 0x65, 0x64, 0x17e, 0x65, 0x62, 0x3b, 0x160, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x7a, 0x61, +0x6e, 0x3b, 0x160, 0x65, 0x76, 0x61, 0x6c, 0x3b, 0x5a, 0x75, 0x6c, 0x2d, 0x6b, 0x61, 0x64, 0x65, 0x3b, 0x5a, 0x75, 0x6c, +0x2d, 0x68, 0x69, 0x64, 0x17e, 0x65, 0x3b, 0x4d, 0x75, 0x72, 0x61, 0x68, 0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, +0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x4a, 0x75, +0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x52, 0x61, 0x111, +0x61, 0x62, 0x3b, 0x160, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x160, 0x61, +0x76, 0x61, 0x6c, 0x3b, 0x44, 0x75, 0x2bb, 0x6c, 0x2d, 0x4b, 0x69, 0x2bb, 0x64, 0x61, 0x3b, 0x44, 0x75, 0x2bb, 0x6c, 0x2d, +0x68, 0x69, 0x111, 0x61, 0x3b, 0x6d, 0x75, 0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, +0x49, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x2e, 0x20, 0x49, 0x3b, 0x64, 0x17e, +0x75, 0x6d, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0x72, 0x61, 0x64, 0x2e, 0x3b, 0x161, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, +0x3b, 0x161, 0x61, 0x75, 0x2e, 0x3b, 0x64, 0x68, 0xfa, 0x20, 0x6c, 0x2d, 0x6b, 0x2e, 0x3b, 0x64, 0x68, 0xfa, 0x20, 0x6c, +0x2d, 0x68, 0x2e, 0x3b, 0x61, 0x6c, 0x2d, 0x6d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, +0x72, 0x3b, 0x72, 0x61, 0x62, 0xed, 0xb4, 0x20, 0x61, 0x6c, 0x2d, 0x61, 0x76, 0x76, 0x61, 0x6c, 0x3b, 0x72, 0x61, 0x62, +0xed, 0xb4, 0x61, 0x74, 0x68, 0x2d, 0x74, 0x68, 0xe1, 0x6e, 0xed, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0xe1, 0x64, 0xe1, 0x20, +0x6c, 0x2d, 0xfa, 0x6c, 0xe1, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0xe1, 0x64, 0xe1, 0x20, 0x6c, 0x2d, 0xe1, 0x63, 0x68, 0x69, +0x72, 0x61, 0x3b, 0x72, 0x61, 0x64, 0x17e, 0x61, 0x62, 0x3b, 0x161, 0x61, 0xb4, 0x20, 0x62, 0xe1, 0x6e, 0x3b, 0x72, 0x61, +0x6d, 0x61, 0x64, 0xe1, 0x6e, 0x3b, 0x161, 0x61, 0x75, 0x76, 0xe1, 0x6c, 0x3b, 0x64, 0x68, 0xfa, 0x20, 0x6c, 0x2d, 0x6b, +0x61, 0xb4, 0x20, 0x64, 0x61, 0x3b, 0x64, 0x68, 0xfa, 0x20, 0x6c, 0x2d, 0x68, 0x69, 0x64, 0x17e, 0x64, 0x17e, 0x61, 0x3b, +0x6d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, +0x20, 0x49, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, +0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x72, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x73, 0x68, 0x61, +0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x72, 0x61, 0x6d, 0x61, 0x64, 0xe1, 0x6e, 0x3b, 0x73, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, +0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x71, 0x69, 0x2bb, 0x64, 0x61, 0x68, 0x3b, 0x64, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, +0x68, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, +0x72, 0x3b, 0x52, 0x61, 0x62, 0x69, 0x2019, 0x20, 0x61, 0x6c, 0x2d, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x52, 0x61, 0x62, +0x69, 0x2019, 0x20, 0x61, 0x6c, 0x2d, 0x61, 0x6b, 0x68, 0x69, 0x72, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x2d, 0x6c, +0x2d, 0x75, 0x6c, 0x61, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x2d, 0x6c, 0x2d, 0x61, 0x6b, 0x68, 0x69, 0x72, 0x61, +0x3b, 0x52, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x53, 0x68, 0x61, 0x2019, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x64, +0x61, 0x6e, 0x3b, 0x53, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x44, 0x68, 0x75, 0x2d, 0x6c, 0x2d, 0x67, 0x61, 0x2019, +0x64, 0x61, 0x3b, 0x44, 0x68, 0x75, 0x2d, 0x6c, 0x2d, 0x68, 0x69, 0x6a, 0x6a, 0x61, 0x3b, 0x6d, 0x75, 0x68, 0x61, 0x72, +0x72, 0x61, 0x6d, 0x3b, 0x73, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2019, 0x20, 0x61, 0x6c, 0x2d, 0x61, +0x77, 0x77, 0x61, 0x6c, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2019, 0x20, 0x61, 0x6c, 0x2d, 0x61, 0x6b, 0x68, 0x69, 0x72, 0x3b, +0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x2d, 0x6c, 0x2d, 0x75, 0x6c, 0x61, 0x3b, 0x6a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x2d, +0x6c, 0x2d, 0x61, 0x6b, 0x68, 0x69, 0x72, 0x61, 0x3b, 0x72, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x73, 0x68, 0x61, 0x2019, 0x62, +0x61, 0x6e, 0x3b, 0x72, 0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x73, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x64, +0x68, 0x75, 0x2d, 0x6c, 0x2d, 0x67, 0x61, 0x2019, 0x64, 0x61, 0x3b, 0x64, 0x68, 0x75, 0x2d, 0x6c, 0x2d, 0x68, 0x69, 0x6a, +0x6a, 0x61, 0x3b, 0xbae, 0xbc1, 0xbb9, 0x2e, 0x3b, 0xb9a, 0xb83, 0xbaa, 0x2e, 0x3b, 0xbb0, 0xbaa, 0xbbf, 0x20, 0x31, 0x3b, 0xbb0, +0xbaa, 0xbbf, 0x20, 0x32, 0x3b, 0xb9c, 0xbc1, 0xbae, 0x2e, 0x20, 0x31, 0x3b, 0xb9c, 0xbc1, 0xbae, 0x2e, 0x20, 0x32, 0x3b, 0xbb0, +0xb9c, 0x2e, 0x3b, 0xbb7, 0xb83, 0x2e, 0x3b, 0xbb0, 0xbae, 0x2e, 0x3b, 0xbb7, 0xbb5, 0xbcd, 0x2e, 0x3b, 0xba4, 0xbc1, 0xbb2, 0xbcd, +0x20, 0xb95, 0xb83, 0x2e, 0x3b, 0xba4, 0xbc1, 0xbb2, 0xbcd, 0x20, 0xbb9, 0xbbf, 0xb9c, 0xbcd, 0x2e, 0x3b, 0xbae, 0xbc1, 0xbb9, 0xbb0, +0xbcd, 0xbb0, 0xbae, 0xbcd, 0x3b, 0xb9a, 0xb83, 0xbaa, 0xbb0, 0xbcd, 0x3b, 0xbb0, 0xbaa, 0xbbf, 0x20, 0x31, 0x3b, 0xbb0, 0xbaa, 0xbbf, +0x20, 0x32, 0x3b, 0xb9c, 0xbc1, 0xbae, 0xba4, 0xbbe, 0x20, 0x31, 0x3b, 0xb9c, 0xbc1, 0xbae, 0xba4, 0xbbe, 0x20, 0x32, 0x3b, 0xbb0, +0xb9c, 0xbaa, 0xbcd, 0x3b, 0xbb7, 0xb83, 0xbaa, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xbb0, 0xbae, 0xbb2, 0xbbe, 0xba9, 0xbcd, 0x3b, 0xbb7, 0xbb5, +0xbcd, 0xbb5, 0xbbe, 0xbb2, 0xbcd, 0x3b, 0xba4, 0xbc1, 0xbb2, 0xbcd, 0x20, 0xb95, 0xb83, 0xba4, 0xbbe, 0x3b, 0xba4, 0xbc1, 0xbb2, 0xbcd, +0x20, 0xbb9, 0xbbf, 0xb9c, 0xbcd, 0xb9c, 0xbbe, 0x3b, 0xc2e, 0xc41, 0xc39, 0x2e, 0x3b, 0xc38, 0xc2b, 0x2e, 0x3b, 0xc30, 0x2e, 0x20, +0x49, 0x3b, 0xc30, 0x2e, 0x20, 0x49, 0x49, 0x3b, 0xc1c, 0xc41, 0xc2e, 0x2e, 0x20, 0x49, 0x3b, 0xc1c, 0xc41, 0xc2e, 0x2e, 0x20, +0x49, 0x49, 0x3b, 0xc30, 0xc1c, 0x2e, 0x3b, 0xc37, 0xc2c, 0xc3e, 0x2e, 0x3b, 0xc30, 0xc02, 0xc1c, 0xc3e, 0x2e, 0x3b, 0xc37, 0xc35, +0xc4d, 0xc35, 0xc3e, 0x2e, 0x3b, 0xc27, 0xc41, 0xc32, 0xc4d, 0x2d, 0xc15, 0xc3f, 0x2e, 0x3b, 0xc27, 0xc41, 0xc32, 0xc4d, 0x2d, 0xc39, +0xc3f, 0x2e, 0x3b, 0xc2e, 0xc41, 0xc39, 0xc30, 0xc4d, 0xc30, 0xc02, 0x3b, 0xc38, 0xc2b, 0xc30, 0xc4d, 0x3b, 0xc30, 0xc2c, 0xc40, 0x20, +0x49, 0x3b, 0xc30, 0xc2c, 0xc40, 0x20, 0x49, 0x49, 0x3b, 0xc1c, 0xc41, 0xc2e, 0xc26, 0xc3e, 0x20, 0x49, 0x3b, 0xc1c, 0xc41, 0xc2e, +0xc26, 0xc3e, 0x20, 0x49, 0x49, 0x3b, 0xc30, 0xc1c, 0xc2c, 0xc4d, 0x3b, 0xc37, 0xc2c, 0xc3e, 0xc28, 0xc4d, 0x3b, 0xc30, 0xc02, 0xc1c, +0xc3e, 0xc28, 0xc4d, 0x3b, 0xc37, 0xc35, 0xc4d, 0xc35, 0xc3e, 0xc32, 0xc4d, 0x3b, 0xc27, 0xc41, 0xc32, 0xc4d, 0x2d, 0xc15, 0xc3f, 0x20, +0xc26, 0xc3e, 0xc39, 0xc4d, 0x3b, 0xc27, 0xc41, 0xc32, 0xc4d, 0x2d, 0xc39, 0xc3f, 0xc1c, 0xc4d, 0xc1c, 0xc3e, 0xc39, 0xc4d, 0x3b, 0xe21, +0xe38, 0xe2e, 0xe31, 0xe23, 0x2e, 0x3b, 0xe40, 0xe28, 0xe32, 0xe30, 0x2e, 0x3b, 0xe23, 0xe2d, 0xe1a, 0xe35, 0x20, 0x49, 0x3b, 0xe23, +0xe2d, 0xe1a, 0xe35, 0x20, 0x49, 0x49, 0x3b, 0xe08, 0xe38, 0xe21, 0xe32, 0xe14, 0xe32, 0x20, 0x49, 0x3b, 0xe08, 0xe38, 0xe21, 0xe32, +0xe14, 0xe32, 0x20, 0x49, 0x49, 0x3b, 0xe40, 0xe23, 0xe32, 0xe30, 0x2e, 0x3b, 0xe0a, 0xe30, 0xe2d, 0xe4c, 0x2e, 0x3b, 0xe40, 0xe23, +0xe32, 0xe30, 0xe21, 0xe30, 0x2e, 0x3b, 0xe40, 0xe0a, 0xe32, 0xe27, 0x2e, 0x3b, 0xe0b, 0xe38, 0xe25, 0xe01, 0xe34, 0xe2d, 0xe3a, 0x2e, +0x3b, 0xe0b, 0xe38, 0xe25, 0xe2b, 0xe34, 0xe08, 0x2e, 0x3b, 0xe21, 0xe38, 0xe2e, 0xe30, 0xe23, 0xe4c, 0xe23, 0xe2d, 0xe21, 0x3b, 0xe0b, +0xe2d, 0xe1f, 0xe32, 0xe23, 0xe4c, 0x3b, 0xe23, 0xe2d, 0xe1a, 0xe35, 0x20, 0x49, 0x3b, 0xe23, 0xe2d, 0xe1a, 0xe35, 0x20, 0x49, 0x49, +0x3b, 0xe08, 0xe38, 0xe21, 0xe32, 0xe14, 0xe32, 0x20, 0x49, 0x3b, 0xe08, 0xe38, 0xe21, 0xe32, 0xe14, 0xe32, 0x20, 0x49, 0x49, 0x3b, +0xe23, 0xe2d, 0xe08, 0xe31, 0xe1a, 0x3b, 0xe0a, 0xe30, 0xe2d, 0xe30, 0xe1a, 0xe32, 0xe19, 0x3b, 0xe23, 0xe2d, 0xe21, 0xe30, 0xe14, 0xe2d, +0xe19, 0x3b, 0xe40, 0xe0a, 0xe32, 0xe27, 0xe31, 0xe25, 0x3b, 0xe0b, 0xe38, 0xe25, 0xe01, 0xe34, 0xe2d, 0xe3a, 0xe14, 0xe30, 0xe2e, 0xe3a, +0x3b, 0xe0b, 0xe38, 0xe25, 0xe2b, 0xe34, 0xe08, 0xe0d, 0xe30, 0xe2e, 0xe3a, 0x3b, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x2e, 0x3b, 0x53, +0x61, 0x66, 0x65, 0x72, 0x3b, 0x52, 0x2e, 0x65, 0x76, 0x76, 0x65, 0x6c, 0x3b, 0x52, 0x2e, 0x61, 0x68, 0x69, 0x72, 0x3b, +0x43, 0x2e, 0x65, 0x76, 0x76, 0x65, 0x6c, 0x3b, 0x43, 0x2e, 0x61, 0x68, 0x69, 0x72, 0x3b, 0x52, 0x65, 0x63, 0x65, 0x70, +0x3b, 0x15e, 0x61, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x2e, 0x3b, 0x15e, 0x65, 0x76, 0x76, 0x61, 0x6c, 0x3b, 0x5a, +0x69, 0x6c, 0x6b, 0x61, 0x64, 0x65, 0x3b, 0x5a, 0x69, 0x6c, 0x68, 0x69, 0x63, 0x63, 0x65, 0x3b, 0x4d, 0x75, 0x68, 0x61, +0x72, 0x72, 0x65, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x65, 0x72, 0x3b, 0x52, 0x65, 0x62, 0x69, 0xfc, 0x6c, 0x65, 0x76, 0x76, +0x65, 0x6c, 0x3b, 0x52, 0x65, 0x62, 0x69, 0xfc, 0x6c, 0x61, 0x68, 0x69, 0x72, 0x3b, 0x43, 0x65, 0x6d, 0x61, 0x7a, 0x69, +0x79, 0x65, 0x6c, 0x65, 0x76, 0x76, 0x65, 0x6c, 0x3b, 0x43, 0x65, 0x6d, 0x61, 0x7a, 0x69, 0x79, 0x65, 0x6c, 0x61, 0x68, +0x69, 0x72, 0x3b, 0x52, 0x65, 0x63, 0x65, 0x70, 0x3b, 0x15e, 0x61, 0x62, 0x61, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x7a, +0x61, 0x6e, 0x3b, 0x15e, 0x65, 0x76, 0x76, 0x61, 0x6c, 0x3b, 0x5a, 0x69, 0x6c, 0x6b, 0x61, 0x64, 0x65, 0x3b, 0x5a, 0x69, +0x6c, 0x68, 0x69, 0x63, 0x63, 0x65, 0x3b, 0x645, 0x6c7, 0x6be, 0x6d5, 0x631, 0x631, 0x6d5, 0x645, 0x3b, 0x633, 0x6d5, 0x67e, 0x6d5, +0x631, 0x3b, 0x631, 0x6d5, 0x628, 0x649, 0x626, 0x6c7, 0x644, 0x626, 0x6d5, 0x6cb, 0x6cb, 0x6d5, 0x644, 0x3b, 0x631, 0x6d5, 0x628, 0x649, +0x626, 0x6c7, 0x644, 0x626, 0x627, 0x62e, 0x649, 0x631, 0x3b, 0x62c, 0x6d5, 0x645, 0x627, 0x62f, 0x649, 0x64a, 0x6d5, 0x644, 0x626, 0x6d5, +0x6cb, 0x6cb, 0x6d5, 0x644, 0x3b, 0x62c, 0x6d5, 0x645, 0x627, 0x62f, 0x649, 0x64a, 0x6d5, 0x644, 0x626, 0x627, 0x62e, 0x649, 0x631, 0x3b, +0x631, 0x6d5, 0x62c, 0x6d5, 0x628, 0x3b, 0x634, 0x6d5, 0x626, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x627, 0x645, 0x649, 0x632, 0x627, 0x646, +0x3b, 0x634, 0x6d5, 0x6cb, 0x6cb, 0x627, 0x644, 0x3b, 0x632, 0x6c7, 0x644, 0x642, 0x6d5, 0x626, 0x62f, 0x6d5, 0x3b, 0x632, 0x6c7, 0x644, +0x6be, 0x6d5, 0x62c, 0x62c, 0x6d5, 0x3b, 0x43c, 0x443, 0x445, 0x3b, 0x441, 0x430, 0x444, 0x3b, 0x440, 0x430, 0x431, 0x456, 0x20, 0x49, +0x3b, 0x440, 0x430, 0x431, 0x456, 0x20, 0x49, 0x49, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x20, 0x49, 0x3b, 0x434, 0x436, 0x443, 0x43c, +0x20, 0x49, 0x49, 0x3b, 0x440, 0x430, 0x434, 0x436, 0x3b, 0x448, 0x430, 0x430, 0x431, 0x3b, 0x440, 0x430, 0x43c, 0x3b, 0x434, 0x430, +0x432, 0x3b, 0x437, 0x443, 0x2d, 0x43b, 0x44c, 0x2d, 0x43a, 0x3b, 0x437, 0x443, 0x2d, 0x43b, 0x44c, 0x2d, 0x445, 0x3b, 0x43c, 0x443, +0x445, 0x430, 0x440, 0x440, 0x430, 0x43c, 0x3b, 0x441, 0x430, 0x444, 0x430, 0x440, 0x3b, 0x440, 0x430, 0x431, 0x456, 0x20, 0x49, 0x3b, +0x440, 0x430, 0x431, 0x456, 0x20, 0x49, 0x49, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x430, 0x434, 0x430, 0x20, 0x49, 0x3b, 0x434, 0x436, +0x443, 0x43c, 0x430, 0x434, 0x430, 0x20, 0x49, 0x49, 0x3b, 0x440, 0x430, 0x434, 0x436, 0x430, 0x431, 0x3b, 0x448, 0x430, 0x430, 0x431, +0x430, 0x43d, 0x3b, 0x440, 0x430, 0x43c, 0x430, 0x434, 0x430, 0x43d, 0x3b, 0x434, 0x430, 0x432, 0x432, 0x430, 0x43b, 0x3b, 0x437, 0x443, +0x2d, 0x43b, 0x44c, 0x2d, 0x43a, 0x430, 0x430, 0x434, 0x430, 0x3b, 0x437, 0x443, 0x2d, 0x43b, 0x44c, 0x2d, 0x445, 0x456, 0x434, 0x436, +0x430, 0x3b, 0x43c, 0x443, 0x445, 0x2e, 0x3b, 0x441, 0x430, 0x444, 0x2e, 0x3b, 0x440, 0x430, 0x431, 0x456, 0x20, 0x49, 0x3b, 0x440, +0x430, 0x431, 0x456, 0x20, 0x49, 0x49, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x2e, 0x20, 0x49, 0x3b, 0x434, 0x436, 0x443, 0x43c, 0x2e, +0x20, 0x49, 0x49, 0x3b, 0x440, 0x430, 0x434, 0x436, 0x2e, 0x3b, 0x448, 0x430, 0x430, 0x431, 0x2e, 0x3b, 0x440, 0x430, 0x43c, 0x2e, +0x3b, 0x434, 0x430, 0x432, 0x2e, 0x3b, 0x437, 0x443, 0x2d, 0x43b, 0x44c, 0x2d, 0x43a, 0x2e, 0x3b, 0x437, 0x443, 0x2d, 0x43b, 0x44c, +0x2d, 0x445, 0x2e, 0x3b, 0x645, 0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, 0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x20, 0x627, 0x644, +0x627, 0x648, 0x651, 0x644, 0x3b, 0x631, 0x628, 0x6cc, 0x639, 0x20, 0x627, 0x644, 0x62b, 0x651, 0x627, 0x646, 0x6cc, 0x3b, 0x62c, 0x645, +0x627, 0x62f, 0x6cc, 0x20, 0x627, 0x644, 0x627, 0x648, 0x651, 0x644, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, 0x20, 0x627, 0x644, 0x62b, +0x651, 0x627, 0x646, 0x6cc, 0x3b, 0x631, 0x62c, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, +0x3b, 0x634, 0x648, 0x627, 0x644, 0x3b, 0x630, 0x648, 0x627, 0x644, 0x642, 0x639, 0x62f, 0x6c3, 0x3b, 0x630, 0x648, 0x627, 0x644, 0x62d, +0x62c, 0x6c3, 0x3b, 0x645, 0x62d, 0x631, 0x645, 0x3b, 0x635, 0x641, 0x631, 0x3b, 0x631, 0x20, 0x628, 0x6cc, 0x639, 0x20, 0x627, 0x644, +0x627, 0x648, 0x644, 0x3b, 0x631, 0x20, 0x628, 0x6cc, 0x639, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, 0x6cc, 0x3b, 0x62c, 0x645, 0x627, +0x62f, 0x6cc, 0x20, 0x627, 0x644, 0x627, 0x648, 0x644, 0x3b, 0x62c, 0x645, 0x627, 0x62f, 0x6cc, 0x20, 0x627, 0x644, 0x62b, 0x627, 0x646, +0x6cc, 0x3b, 0x631, 0x62c, 0x628, 0x3b, 0x634, 0x639, 0x628, 0x627, 0x646, 0x3b, 0x631, 0x645, 0x636, 0x627, 0x646, 0x3b, 0x634, 0x648, +0x627, 0x644, 0x3b, 0x630, 0x648, 0x627, 0x644, 0x642, 0x639, 0x62f, 0x6c3, 0x3b, 0x630, 0x648, 0x627, 0x644, 0x62d, 0x62c, 0x6c3, 0x3b, +0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x52, 0x6f, 0x62, 0x69, 0x2bc, +0x20, 0x75, 0x6c, 0x2d, 0x61, 0x76, 0x76, 0x61, 0x6c, 0x3b, 0x52, 0x6f, 0x62, 0x69, 0x2bc, 0x20, 0x75, 0x6c, 0x2d, 0x6f, +0x78, 0x69, 0x72, 0x3b, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x20, 0x75, 0x6c, 0x2d, 0x61, 0x76, 0x76, 0x61, 0x6c, 0x3b, 0x4a, +0x75, 0x6d, 0x61, 0x64, 0x20, 0x75, 0x6c, 0x2d, 0x6f, 0x78, 0x69, 0x72, 0x3b, 0x52, 0x61, 0x6a, 0x61, 0x62, 0x3b, 0x53, +0x68, 0x61, 0x2bc, 0x62, 0x6f, 0x6e, 0x3b, 0x52, 0x61, 0x6d, 0x61, 0x7a, 0x6f, 0x6e, 0x3b, 0x53, 0x68, 0x61, 0x76, 0x76, +0x6f, 0x6c, 0x3b, 0x5a, 0x75, 0x6c, 0x2d, 0x71, 0x61, 0x2bc, 0x64, 0x61, 0x3b, 0x5a, 0x75, 0x6c, 0x2d, 0x68, 0x69, 0x6a, +0x6a, 0x61, 0x3b, 0x41c, 0x443, 0x4b3, 0x430, 0x440, 0x440, 0x430, 0x43c, 0x3b, 0x421, 0x430, 0x444, 0x430, 0x440, 0x3b, 0x420, 0x430, +0x431, 0x438, 0x443, 0x43b, 0x2d, 0x430, 0x432, 0x432, 0x430, 0x43b, 0x3b, 0x420, 0x430, 0x431, 0x438, 0x443, 0x43b, 0x2d, 0x43e, 0x445, +0x438, 0x440, 0x3b, 0x416, 0x443, 0x43c, 0x43e, 0x434, 0x438, 0x443, 0x43b, 0x2d, 0x443, 0x43b, 0x43e, 0x3b, 0x416, 0x443, 0x43c, 0x43e, +0x434, 0x438, 0x443, 0x43b, 0x2d, 0x443, 0x445, 0x440, 0x43e, 0x3b, 0x420, 0x430, 0x436, 0x430, 0x431, 0x3b, 0x428, 0x430, 0x44a, 0x431, +0x43e, 0x43d, 0x3b, 0x420, 0x430, 0x43c, 0x430, 0x437, 0x43e, 0x43d, 0x3b, 0x428, 0x430, 0x432, 0x432, 0x43e, 0x43b, 0x3b, 0x417, 0x438, +0x43b, 0x2d, 0x49b, 0x430, 0x44a, 0x434, 0x430, 0x3b, 0x417, 0x438, 0x43b, 0x2d, 0x4b3, 0x438, 0x436, 0x436, 0x430, 0x3b, 0x6d, 0x75, +0x68, 0x2e, 0x3b, 0x73, 0x61, 0x66, 0x2e, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, 0x69, 0x3b, 0x72, 0x61, 0x62, 0x2e, 0x20, +0x69, 0x69, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x2e, 0x20, 0x69, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x2e, 0x20, 0x69, 0x69, 0x3b, +0x72, 0x65, 0x64, 0x17e, 0x2e, 0x3b, 0x161, 0x61, 0x2e, 0x3b, 0x72, 0x61, 0x6d, 0x2e, 0x3b, 0x161, 0x65, 0x2e, 0x3b, 0x7a, +0x75, 0x6c, 0x2d, 0x6b, 0x2e, 0x3b, 0x7a, 0x75, 0x6c, 0x2d, 0x68, 0x2e, 0x3b, 0x6d, 0x75, 0x68, 0x61, 0x72, 0x65, 0x6d, +0x3b, 0x73, 0x61, 0x66, 0x65, 0x72, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x69, 0x3b, 0x72, 0x61, 0x62, 0x69, 0x2bb, +0x20, 0x69, 0x69, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x61, 0x64, 0x65, 0x20, 0x69, 0x3b, 0x64, 0x17e, 0x75, 0x6d, 0x61, 0x64, +0x65, 0x20, 0x69, 0x69, 0x3b, 0x72, 0x65, 0x64, 0x17e, 0x65, 0x62, 0x3b, 0x161, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x72, +0x61, 0x6d, 0x61, 0x7a, 0x61, 0x6e, 0x3b, 0x161, 0x65, 0x76, 0x61, 0x6c, 0x3b, 0x7a, 0x75, 0x6c, 0x2d, 0x6b, 0x61, 0x64, +0x65, 0x3b, 0x7a, 0x75, 0x6c, 0x2d, 0x68, 0x69, 0x64, 0x17e, 0x65, 0x3b, 0x64, 0x7a, 0x76, 0x3b, 0x64, 0x7a, 0x64, 0x3b, +0x74, 0x65, 0x64, 0x3b, 0x61, 0x66, 0x254, 0x3b, 0x64, 0x61, 0x6d, 0x3b, 0x6d, 0x61, 0x73, 0x3b, 0x73, 0x69, 0x61, 0x3b, +0x64, 0x65, 0x61, 0x3b, 0x61, 0x6e, 0x79, 0x3b, 0x6b, 0x65, 0x6c, 0x3b, 0x61, 0x64, 0x65, 0x3b, 0x64, 0x7a, 0x6d, 0x3b, +0x64, 0x7a, 0x6f, 0x76, 0x65, 0x3b, 0x64, 0x7a, 0x6f, 0x64, 0x7a, 0x65, 0x3b, 0x74, 0x65, 0x64, 0x6f, 0x78, 0x65, 0x3b, +0x61, 0x66, 0x254, 0x66, 0x69, 0x1ebd, 0x3b, 0x64, 0x61, 0x6d, 0x25b, 0x3b, 0x6d, 0x61, 0x73, 0x61, 0x3b, 0x73, 0x69, 0x61, +0x6d, 0x6c, 0x254, 0x6d, 0x3b, 0x64, 0x65, 0x61, 0x73, 0x69, 0x61, 0x6d, 0x69, 0x6d, 0x65, 0x3b, 0x61, 0x6e, 0x79, 0x254, +0x6e, 0x79, 0x254, 0x3b, 0x6b, 0x65, 0x6c, 0x65, 0x3b, 0x61, 0x64, 0x65, 0x25b, 0x6d, 0x65, 0x6b, 0x70, 0x254, 0x78, 0x65, +0x3b, 0x64, 0x7a, 0x6f, 0x6d, 0x65, 0x3b, 0x64, 0x65, 0x20, 0x4d, 0x75, 0x68, 0x61, 0x72, 0x72, 0x61, 0x6d, 0x3b, 0x64, +0x65, 0x20, 0x53, 0x61, 0x66, 0x61, 0x72, 0x3b, 0x64, 0x65, 0x20, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x3b, 0x64, +0x65, 0x20, 0x52, 0x61, 0x62, 0x69, 0x2bb, 0x20, 0x49, 0x49, 0x3b, 0x64, 0x65, 0x20, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, +0x20, 0x49, 0x3b, 0x64, 0x65, 0x20, 0x4a, 0x75, 0x6d, 0x61, 0x64, 0x61, 0x20, 0x49, 0x49, 0x3b, 0x64, 0x65, 0x20, 0x52, +0x61, 0x6a, 0x61, 0x62, 0x3b, 0x64, 0x65, 0x20, 0x53, 0x68, 0x61, 0x2bb, 0x62, 0x61, 0x6e, 0x3b, 0x64, 0x65, 0x20, 0x52, +0x61, 0x6d, 0x61, 0x64, 0x61, 0x6e, 0x3b, 0x64, 0x65, 0x20, 0x53, 0x68, 0x61, 0x77, 0x77, 0x61, 0x6c, 0x3b, 0x64, 0x65, +0x20, 0x44, 0x68, 0x75, 0x2bb, 0x6c, 0x2d, 0x51, 0x69, 0x2bb, 0x64, 0x61, 0x68, 0x3b, 0x64, 0x65, 0x20, 0x44, 0x68, 0x75, +0x2bb, 0x6c, 0x2d, 0x48, 0x69, 0x6a, 0x6a, 0x61, 0x68, 0x3b, 0x7a46, 0x54c8, 0x5170, 0x59c6, 0x6708, 0x3b, 0x8272, 0x6cd5, 0x5c14, 0x6708, +0x3b, 0x8d56, 0x6bd4, 0x6708, 0x20, 0x49, 0x3b, 0x8d56, 0x6bd4, 0x6708, 0x20, 0x49, 0x49, 0x3b, 0x4e3b, 0x9a6c, 0x8fbe, 0x6708, 0x20, 0x49, +0x3b, 0x4e3b, 0x9a6c, 0x8fbe, 0x6708, 0x20, 0x49, 0x49, 0x3b, 0x8d56, 0x54f2, 0x535c, 0x6708, 0x3b, 0x820d, 0x5c14, 0x90a6, 0x6708, 0x3b, 0x8d56, +0x4e70, 0x4e39, 0x6708, 0x3b, 0x95ea, 0x74e6, 0x9c81, 0x6708, 0x3b, 0x90fd, 0x5c14, 0x5580, 0x5c14, 0x5fb7, 0x6708, 0x3b, 0x90fd, 0x5c14, 0x9ed1, 0x54f2, +0x6708, 0x3b +}; +// GENERATED PART ENDS HERE + +QT_END_NAMESPACE + +#endif // QHIJRI_CALENDAR_DATA_P_H diff --git a/src/corelib/time/qhijricalendar_p.h b/src/corelib/time/qhijricalendar_p.h new file mode 100644 index 0000000000..8f15495d11 --- /dev/null +++ b/src/corelib/time/qhijricalendar_p.h @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QHIJRI_CALENDAR_P_H +#define QHIJRI_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include +#include "qcalendarbackend_p.h" + +QT_REQUIRE_CONFIG(hijricalendar); + +QT_BEGIN_NAMESPACE + +// Base for sharing with other variants on the Islamic calendar, as needed: +class Q_CORE_EXPORT QHijriCalendar : public QCalendarBackend +{ +public: + int daysInMonth(int month, int year = QCalendar::Unspecified) const override; + int maxDaysInMonth() const override; + int daysInYear(int year) const override; + + bool isLunar() const override; + bool isLuniSolar() const override; + bool isSolar() const override; + +protected: + const QCalendarLocale *localeMonthIndexData() const override; + const ushort *localeMonthData() const override; + // (The INTEGRITY compiler got upset at: using QCalendarBackend:QCalendarBackend;) + QHijriCalendar(const QString &name, QCalendar::System id = QCalendar::System::User) + : QCalendarBackend(name, id) {} +}; + +QT_END_NAMESPACE + +#endif // QHIJRI_CALENDAR_P_H diff --git a/src/corelib/time/qislamiccivilcalendar.cpp b/src/corelib/time/qislamiccivilcalendar.cpp new file mode 100644 index 0000000000..27c93f5c00 --- /dev/null +++ b/src/corelib/time/qislamiccivilcalendar.cpp @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qglobal.h" +#include "qislamiccivilcalendar_p.h" +#include "qcalendarmath_p.h" +#include + +QT_BEGIN_NAMESPACE + +using namespace QRoundingDown; + +/*! + \since 5.14 + + \class QIslamicCivilCalendar + \inmodule QtCore + \brief Implements a commonly-used computed version of the Islamic calendar. + + \section1 Civil Islamic Calendar + + QIslamicCivilCalendar implements a tabular version of the Hijri calendar which + is known as the Islamic Civil Calendar. It has the same numbering of years and + months, but the months are determined by arithmetical rules rather than by + observation or astronomical calculations. + + \section2 Calendar Organization + + The civil calendar follows the usual tabular scheme of odd-numbered months and + the last month of each leap year being 30 days long, the rest being 29 days + long. Its determination of leap years follows a 30-year cycle, in each of + which the years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26 and 29 are leap years. + + \sa QJijriCalendar, QCalendar +*/ + +QIslamicCivilCalendar::QIslamicCivilCalendar() + : QHijriCalendar(QStringLiteral("Islamic Civil"), QCalendar::System::IslamicCivil) +{ + registerAlias(QStringLiteral("islamic-civil")); // CLDR name + registerAlias(QStringLiteral("islamicc")); // old CLDR name, still (2018) used by Mozilla + // Until we have a oncrete implementation that knows all the needed ephemerides: + registerAlias(QStringLiteral("Islamic")); +} + +QString QIslamicCivilCalendar::name() const +{ + return QStringLiteral("Islamic Civil"); +} + +QCalendar::System QIslamicCivilCalendar::calendarSystem() const +{ + return QCalendar::System::IslamicCivil; +} + +bool QIslamicCivilCalendar::isLeapYear(int year) const +{ + if (year == QCalendar::Unspecified) + return false; + if (year < 0) + ++year; + return qMod(year * 11 + 14, 30) < 11; +} + +bool QIslamicCivilCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd) const +{ + Q_ASSERT(jd); + if (!isDateValid(year, month, day)) + return false; + if (year <= 0) + ++year; + *jd = qDiv(10631 * year - 10617, 30) + + qDiv(325 * month - 320, 11) + + day + 1948439; + return true; +} + +QCalendar::YearMonthDay QIslamicCivilCalendar::julianDayToDate(qint64 jd) const +{ + const qint64 epoch = 1948440; + const int32_t k2 = 30 * (jd - epoch) + 15; + const int32_t k1 = 11 * qDiv(qMod(k2, 10631), 30) + 5; + int y = qDiv(k2, 10631) + 1; + const int month = qDiv(k1, 325) + 1; + const int day = qDiv(qMod(k1, 325), 11) + 1; + return QCalendar::YearMonthDay(y > 0 ? y : y - 1, month, day); +} + +QT_END_NAMESPACE diff --git a/src/corelib/time/qislamiccivilcalendar_p.h b/src/corelib/time/qislamiccivilcalendar_p.h new file mode 100644 index 0000000000..01d0525f62 --- /dev/null +++ b/src/corelib/time/qislamiccivilcalendar_p.h @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2018 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QISLAMIC_CIVIL_CALENDAR_P_H +#define QISLAMIC_CIVIL_CALENDAR_P_H + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists for the convenience +// of calendar implementations. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +#include "qhijricalendar_p.h" + +QT_REQUIRE_CONFIG(islamiccivilcalendar); + +QT_BEGIN_NAMESPACE + +class Q_CORE_EXPORT QIslamicCivilCalendar : public QHijriCalendar +{ +public: + QIslamicCivilCalendar(); + // Calendar properties: + QString name() const override; + QCalendar::System calendarSystem() const override; + // Date queries: + bool isLeapYear(int year) const override; + // Julian Day conversions: + bool dateToJulianDay(int year, int month, int day, qint64 *jd) const override; + QCalendar::YearMonthDay julianDayToDate(qint64 jd) const override; +}; + +QT_END_NAMESPACE + +#endif // QISLAMIC_CIVIL_CALENDAR_P_H diff --git a/src/corelib/time/time.pri b/src/corelib/time/time.pri index 94bd614ea9..84efbfbfd2 100644 --- a/src/corelib/time/time.pri +++ b/src/corelib/time/time.pri @@ -20,6 +20,21 @@ SOURCES += \ time/qmilankoviccalendar.cpp \ time/qromancalendar.cpp +qtConfig(hijricalendar) { + SOURCES += \ + time/qhijricalendar.cpp + HEADERS += \ + time/qhijricalendar_p.h \ + time/qhijricalendar_data_p.h +} + +qtConfig(islamiccivilcalendar) { + SOURCES += \ + time/qislamiccivilcalendar.cpp + HEADERS += \ + time/qislamiccivilcalendar_p.h +} + qtConfig(jalalicalendar) { SOURCES += \ time/qjalalicalendar.cpp diff --git a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp index 77f92427a2..5cfdb6daf4 100644 --- a/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp +++ b/tests/auto/corelib/time/qcalendar/tst_qcalendar.cpp @@ -179,6 +179,10 @@ void tst_QCalendar::specific_data() // Jalali year 1355 started on Gregorian 1976-3-21: ADDROW(Jalali, 1355, 1, 1, 1976, 3, 21); #endif // jalali +#if QT_CONFIG(islamiccivilcalendar) + // TODO: confirm this is correct + ADDROW(IslamicCivil, 1, 1, 1, 622, 7, 19); +#endif #undef ADDROW } diff --git a/util/locale_database/cldr2qlocalexml.py b/util/locale_database/cldr2qlocalexml.py index b611aa7eb7..072ea9e4ed 100755 --- a/util/locale_database/cldr2qlocalexml.py +++ b/util/locale_database/cldr2qlocalexml.py @@ -64,7 +64,7 @@ from dateconverter import convert_date from localexml import Locale # TODO: make calendars a command-line option -calendars = ['gregorian', 'persian'] # 'islamic', 'hebrew' +calendars = ['gregorian', 'persian', 'islamic'] # 'hebrew' findEntryInFile = xpathlite._findEntryInFile def wrappedwarn(prefix, tokens): return sys.stderr.write( diff --git a/util/locale_database/localexml.py b/util/locale_database/localexml.py index 72b1dc2acc..9b353f5122 100644 --- a/util/locale_database/localexml.py +++ b/util/locale_database/localexml.py @@ -225,6 +225,15 @@ class Locale: def firstThree(i, name): return name[:3] def initial(i, name): return name[:1] def number(i, name): return str(i + 1) + def islamicShort(i, name): + if not name: return name + if name == 'Shawwal': return 'Shaw.' + words = name.split() + if words[0].startswith('Dhu'): + words[0] = words[0][:7] + '.' + elif len(words[0]) > 3: + words[0] = words[0][:3] + '.' + return ' '.join(words) @staticmethod def __monthNames(calendars, known={ # Map calendar to (names, extractors...): @@ -239,6 +248,12 @@ class Locale: (fullName, fullName), (firstThree, firstThree), (number, initial)), + 'islamic': ((u'Muharram', u'Safar', u'Rabiʻ I', u'Rabiʻ II', u'Jumada I', + u'Jumada II', u'Rajab', u'Shaʻban', u'Ramadan', u'Shawwal', + u'Dhuʻl-Qiʻdah', u'Dhuʻl-Hijjah'), + (fullName, fullName), + (islamicShort, islamicShort), + (number, number)), 'hebrew': (('Tishri', 'Heshvan', 'Kislev', 'Tevet', 'Shevat', 'Adar I', 'Adar', 'Nisan', 'Iyar', 'Sivan', 'Tamuz', 'Av'), (fullName, fullName), @@ -258,7 +273,7 @@ class Locale: ';'.join(get[n][0](i, x) for i, x in enumerate(names))) yield ('_'.join((camelCase(('standalone', size, 'months')), cal)), ';'.join(get[n][1](i, x) for i, x in enumerate(names))) - del fullName, firstThree, initial, number + del fullName, firstThree, initial, number, islamicShort @classmethod def C(cls, calendars=('gregorian',), diff --git a/util/locale_database/qlocalexml2cpp.py b/util/locale_database/qlocalexml2cpp.py index 130c2dca73..a5ff7ebbf4 100755 --- a/util/locale_database/qlocalexml2cpp.py +++ b/util/locale_database/qlocalexml2cpp.py @@ -44,7 +44,7 @@ from localexml import Locale # TODO: Make calendars a command-line parameter # map { CLDR name: Qt file name } -calendars = {'gregorian': 'roman', 'persian': 'jalali',} # 'islamic': 'hijri', 'hebrew': 'hebrew', +calendars = {'gregorian': 'roman', 'persian': 'jalali', 'islamic': 'hijri',} # 'hebrew': 'hebrew', generated_template = """ /* -- cgit v1.2.3 From 2dee00621632ab8acd0b3d59bdba264afe2f32c1 Mon Sep 17 00:00:00 2001 From: Soroush Rabiei Date: Thu, 8 Aug 2019 15:19:18 +0200 Subject: Adapt QCalendarWidget and QDateTimeEdit to support choice of calendar [ChangeLog][QtWidgets][QCalendarWidget] Allow choice of calendar, with Gregorian remaining the default. [ChangeLog][QtWidgets][QDateTimeEdit] Allow choice of calendar, with Gregorian remaining the default. Change-Id: Ia11dd895032393543aee534b177324e643dcfb20 Done-with: Edward Welbourne Reviewed-by: Volker Hilsheimer --- src/widgets/widgets/qcalendarwidget.cpp | 333 +++++++++++++++++++------------- src/widgets/widgets/qcalendarwidget.h | 5 +- src/widgets/widgets/qdatetimeedit.cpp | 50 +++-- src/widgets/widgets/qdatetimeedit.h | 4 + src/widgets/widgets/qdatetimeedit_p.h | 8 +- 5 files changed, 242 insertions(+), 158 deletions(-) diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp index 81cc0b833a..296a15f94b 100644 --- a/src/widgets/widgets/qcalendarwidget.cpp +++ b/src/widgets/widgets/qcalendarwidget.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -57,6 +57,7 @@ #include #include #include +#include #include @@ -90,16 +91,15 @@ public: QCalendarDateSectionValidator() {} virtual ~QCalendarDateSectionValidator() {} virtual Section handleKey(int key) = 0; - virtual QDate applyToDate(const QDate &date) const = 0; - virtual void setDate(const QDate &date) = 0; + virtual QDate applyToDate(const QDate &date, QCalendar cal = QCalendar()) const = 0; + virtual void setDate(const QDate &date, QCalendar cal = QCalendar()) = 0; virtual QString text() const = 0; - virtual QString text(const QDate &date, int repeat) const = 0; + virtual QString text(const QDate &date, QCalendar cal, int repeat) const = 0; QLocale m_locale; protected: static QString highlightString(const QString &str, int pos); -private: }; QString QCalendarDateSectionValidator::highlightString(const QString &str, int pos) @@ -117,10 +117,10 @@ class QCalendarDayValidator : public QCalendarDateSectionValidator public: QCalendarDayValidator(); virtual Section handleKey(int key) override; - virtual QDate applyToDate(const QDate &date) const override; - virtual void setDate(const QDate &date) override; + virtual QDate applyToDate(const QDate &date, QCalendar cal) const override; + virtual void setDate(const QDate &date, QCalendar cal) override; virtual QString text() const override; - virtual QString text(const QDate &date, int repeat) const override; + virtual QString text(const QDate &date, QCalendar cal, int repeat) const override; private: int m_pos; int m_day; @@ -181,21 +181,18 @@ QCalendarDateSectionValidator::Section QCalendarDayValidator::handleKey(int key) return QCalendarDateSectionValidator::ThisSection; } -QDate QCalendarDayValidator::applyToDate(const QDate &date) const +QDate QCalendarDayValidator::applyToDate(const QDate &date, QCalendar cal) const { - int day = m_day; - if (day < 1) - day = 1; - else if (day > 31) - day = 31; - if (day > date.daysInMonth()) - day = date.daysInMonth(); - return QDate(date.year(), date.month(), day); + auto parts = cal.partsFromDate(date); + if (!parts.isValid()) + return QDate(); + parts.day = qMin(qMax(1, m_day), cal.daysInMonth(parts.year, parts.month)); + return cal.dateFromParts(parts); } -void QCalendarDayValidator::setDate(const QDate &date) +void QCalendarDayValidator::setDate(const QDate &date, QCalendar cal) { - m_day = m_oldDay = date.day(); + m_day = m_oldDay = date.day(cal); m_pos = 0; } @@ -204,16 +201,16 @@ QString QCalendarDayValidator::text() const return highlightString(formatNumber(m_day, 2), m_pos); } -QString QCalendarDayValidator::text(const QDate &date, int repeat) const +QString QCalendarDayValidator::text(const QDate &date, QCalendar cal, int repeat) const { if (repeat <= 1) { - return QString::number(date.day()); + return QString::number(date.day(cal)); } else if (repeat == 2) { - return formatNumber(date.day(), 2); + return formatNumber(date.day(cal), 2); } else if (repeat == 3) { - return m_locale.dayName(date.dayOfWeek(), QLocale::ShortFormat); + return m_locale.dayName(date.dayOfWeek(cal), QLocale::ShortFormat); } else /* repeat >= 4 */ { - return m_locale.dayName(date.dayOfWeek(), QLocale::LongFormat); + return m_locale.dayName(date.dayOfWeek(cal), QLocale::LongFormat); } } @@ -225,10 +222,10 @@ class QCalendarMonthValidator : public QCalendarDateSectionValidator public: QCalendarMonthValidator(); virtual Section handleKey(int key) override; - virtual QDate applyToDate(const QDate &date) const override; - virtual void setDate(const QDate &date) override; + virtual QDate applyToDate(const QDate &date, QCalendar cal) const override; + virtual void setDate(const QDate &date, QCalendar cal) override; virtual QString text() const override; - virtual QString text(const QDate &date, int repeat) const override; + virtual QString text(const QDate &date, QCalendar cal, int repeat) const override; private: int m_pos; int m_month; @@ -289,23 +286,19 @@ QCalendarDateSectionValidator::Section QCalendarMonthValidator::handleKey(int ke return QCalendarDateSectionValidator::ThisSection; } -QDate QCalendarMonthValidator::applyToDate(const QDate &date) const +QDate QCalendarMonthValidator::applyToDate(const QDate &date, QCalendar cal) const { - int month = m_month; - if (month < 1) - month = 1; - else if (month > 12) - month = 12; - QDate newDate(date.year(), m_month, 1); - int day = date.day(); - if (day > newDate.daysInMonth()) - day = newDate.daysInMonth(); - return QDate(date.year(), month, day); + auto parts = cal.partsFromDate(date); + if (!parts.isValid()) + return QDate(); + parts.month = qMin(qMax(1, m_month), cal.monthsInYear(parts.year)); + parts.day = qMin(parts.day, cal.daysInMonth(parts.year, m_month)); // m_month or parts.month ? + return cal.dateFromParts(parts); } -void QCalendarMonthValidator::setDate(const QDate &date) +void QCalendarMonthValidator::setDate(const QDate &date, QCalendar cal) { - m_month = m_oldMonth = date.month(); + m_month = m_oldMonth = date.month(cal); m_pos = 0; } @@ -314,16 +307,16 @@ QString QCalendarMonthValidator::text() const return highlightString(formatNumber(m_month, 2), m_pos); } -QString QCalendarMonthValidator::text(const QDate &date, int repeat) const +QString QCalendarMonthValidator::text(const QDate &date, QCalendar cal, int repeat) const { if (repeat <= 1) { - return QString::number(date.month()); + return QString::number(date.month(cal)); } else if (repeat == 2) { - return formatNumber(date.month(), 2); + return formatNumber(date.month(cal), 2); } else if (repeat == 3) { - return m_locale.standaloneMonthName(date.month(), QLocale::ShortFormat); + return cal.standaloneMonthName(m_locale, date.month(cal), QLocale::ShortFormat); } else /*if (repeat >= 4)*/ { - return m_locale.standaloneMonthName(date.month(), QLocale::LongFormat); + return cal.standaloneMonthName(m_locale, date.month(cal), QLocale::LongFormat); } } @@ -335,10 +328,10 @@ class QCalendarYearValidator : public QCalendarDateSectionValidator public: QCalendarYearValidator(); virtual Section handleKey(int key) override; - virtual QDate applyToDate(const QDate &date) const override; - virtual void setDate(const QDate &date) override; + virtual QDate applyToDate(const QDate &date, QCalendar cal) const override; + virtual void setDate(const QDate &date, QCalendar cal) override; virtual QString text() const override; - virtual QString text(const QDate &date, int repeat) const override; + virtual QString text(const QDate &date, QCalendar cal, int repeat) const override; private: int pow10(int n); int m_pos; @@ -349,6 +342,8 @@ private: QCalendarYearValidator::QCalendarYearValidator() : QCalendarDateSectionValidator(), m_pos(0), m_year(2000), m_oldYear(2000) { + // TODO: What to use (for non-Gregorian calendars) as default year? + // Maybe 1360 for Jalali, 1420 for Islamic, etc. } int QCalendarYearValidator::pow10(int n) @@ -397,21 +392,20 @@ QCalendarDateSectionValidator::Section QCalendarYearValidator::handleKey(int key return QCalendarDateSectionValidator::ThisSection; } -QDate QCalendarYearValidator::applyToDate(const QDate &date) const +QDate QCalendarYearValidator::applyToDate(const QDate &date, QCalendar cal) const { - int year = m_year; - if (year < 1) - year = 1; - QDate newDate(year, date.month(), 1); - int day = date.day(); - if (day > newDate.daysInMonth()) - day = newDate.daysInMonth(); - return QDate(year, date.month(), day); + auto parts = cal.partsFromDate(date); + if (!parts.isValid()) + return QDate(); + // This widget does not support negative years (some calendars may support) + parts.year = qMax(1, m_year); + parts.day = qMin(parts.day, cal.daysInMonth(parts.year, parts.month)); + return cal.dateFromParts(parts); } -void QCalendarYearValidator::setDate(const QDate &date) +void QCalendarYearValidator::setDate(const QDate &date, QCalendar cal) { - m_year = m_oldYear = date.year(); + m_year = m_oldYear = date.year(cal); m_pos = 0; } @@ -420,11 +414,11 @@ QString QCalendarYearValidator::text() const return highlightString(formatNumber(m_year, 4), m_pos); } -QString QCalendarYearValidator::text(const QDate &date, int repeat) const +QString QCalendarYearValidator::text(const QDate &date, QCalendar cal, int repeat) const { if (repeat < 4) - return formatNumber(date.year() % 100, 2); - return QString::number(date.year()); + return formatNumber(date.year(cal) % 100, 2); + return QString::number(date.year(cal)); } /////////////////////////////////// @@ -446,18 +440,18 @@ public: QCalendarDateValidator(); ~QCalendarDateValidator(); - void handleKeyEvent(QKeyEvent *keyEvent); - QString currentText() const; + void handleKeyEvent(QKeyEvent *keyEvent, QCalendar cal); + QString currentText(QCalendar cal) const; QDate currentDate() const { return m_currentDate; } void setFormat(const QString &format); - void setInitialDate(const QDate &date); + void setInitialDate(const QDate &date, QCalendar cal); void setLocale(const QLocale &locale); private: void toNextToken(); void toPreviousToken(); - void applyToDate(); + void applyToDate(QCalendar cal); int countRepeat(const QString &str, int index) const; void clear(); @@ -507,17 +501,17 @@ int QCalendarDateValidator::countRepeat(const QString &str, int index) const return count; } -void QCalendarDateValidator::setInitialDate(const QDate &date) +void QCalendarDateValidator::setInitialDate(const QDate &date, QCalendar cal) { - m_yearValidator.setDate(date); - m_monthValidator.setDate(date); - m_dayValidator.setDate(date); + m_yearValidator.setDate(date, cal); + m_monthValidator.setDate(date, cal); + m_dayValidator.setDate(date, cal); m_initialDate = date; m_currentDate = date; m_lastSectionMove = QCalendarDateSectionValidator::ThisSection; } -QString QCalendarDateValidator::currentText() const +QString QCalendarDateValidator::currentText(QCalendar cal) const { QString str; const int numSeps = m_separators.size(); @@ -529,7 +523,7 @@ QString QCalendarDateValidator::currentText() const if (i == m_currentToken) str += token.validator->text(); else - str += token.validator->text(m_currentDate, token.repeat); + str += token.validator->text(m_currentDate, cal, token.repeat); } } return str; @@ -591,11 +585,11 @@ void QCalendarDateValidator::setFormat(const QString &format) m_separators += separator; } -void QCalendarDateValidator::applyToDate() +void QCalendarDateValidator::applyToDate(QCalendar cal) { - m_currentDate = m_yearValidator.applyToDate(m_currentDate); - m_currentDate = m_monthValidator.applyToDate(m_currentDate); - m_currentDate = m_dayValidator.applyToDate(m_currentDate); + m_currentDate = m_yearValidator.applyToDate(m_currentDate, cal); + m_currentDate = m_monthValidator.applyToDate(m_currentDate, cal); + m_currentDate = m_dayValidator.applyToDate(m_currentDate, cal); } void QCalendarDateValidator::toNextToken() @@ -614,7 +608,7 @@ void QCalendarDateValidator::toPreviousToken() m_currentToken %= m_tokens.size(); } -void QCalendarDateValidator::handleKeyEvent(QKeyEvent *keyEvent) +void QCalendarDateValidator::handleKeyEvent(QKeyEvent *keyEvent,QCalendar cal) { if (m_currentToken < 0) return; @@ -631,7 +625,7 @@ void QCalendarDateValidator::handleKeyEvent(QKeyEvent *keyEvent) m_lastSectionMove = m_tokens[m_currentToken].validator->handleKey(key); - applyToDate(); + applyToDate(cal); if (m_lastSectionMove == QCalendarDateSectionValidator::NextSection) toNextToken(); else if (m_lastSectionMove == QCalendarDateSectionValidator::PrevSection) @@ -645,7 +639,8 @@ class QCalendarTextNavigator: public QObject Q_OBJECT public: QCalendarTextNavigator(QObject *parent = 0) - : QObject(parent), m_dateText(0), m_dateFrame(0), m_dateValidator(0), m_widget(0), m_editDelay(1500), m_date(QDate::currentDate()) { } + : QObject(parent), m_dateText(0), m_dateFrame(0), m_dateValidator(0), + m_widget(0), m_editDelay(1500), m_date(QDate::currentDate()) {} QWidget *widget() const; void setWidget(QWidget *widget); @@ -676,6 +671,7 @@ private: int m_editDelay; QDate m_date; + const QCalendar m_calendar; }; QWidget *QCalendarTextNavigator::widget() const @@ -700,7 +696,7 @@ void QCalendarTextNavigator::updateDateLabel() m_acceptTimer.start(m_editDelay, this); - m_dateText->setText(m_dateValidator->currentText()); + m_dateText->setText(m_dateValidator->currentText(m_calendar)); QSize s = m_dateFrame->sizeHint(); QRect r = m_widget->geometry(); // later, just the table section @@ -740,7 +736,7 @@ void QCalendarTextNavigator::createDateLabel() m_dateValidator = new QCalendarDateValidator(); m_dateValidator->setLocale(m_widget->locale()); m_dateValidator->setFormat(m_widget->locale().dateFormat(QLocale::ShortFormat)); - m_dateValidator->setInitialDate(m_date); + m_dateValidator->setInitialDate(m_date, m_calendar); m_dateFrame->setAutoFillBackground(true); m_dateFrame->setBackgroundRole(QPalette::Window); @@ -775,7 +771,7 @@ bool QCalendarTextNavigator::eventFilter(QObject *o, QEvent *e) #endif } else if (e->type() == QEvent::KeyPress) { createDateLabel(); - m_dateValidator->handleKeyEvent(ke); + m_dateValidator->handleKeyEvent(ke, m_calendar); updateDateLabel(); } ke->accept(); @@ -897,6 +893,9 @@ public: void showMonth(int year, int month); void setDate(const QDate &d); + void setCalendar(QCalendar c); + QCalendar calendar() const; + void setMinimumDate(const QDate &date); void setMaximumDate(const QDate &date); @@ -926,6 +925,7 @@ public: int m_firstColumn; int m_firstRow; + QCalendar m_calendar; QDate m_date; QDate m_minimumDate; QDate m_maximumDate; @@ -984,8 +984,8 @@ QCalendarModel::QCalendarModel(QObject *parent) m_date(QDate::currentDate()), m_minimumDate(QDate::fromJulianDay(1)), m_maximumDate(9999, 12, 31), - m_shownYear(m_date.year()), - m_shownMonth(m_date.month()), + m_shownYear(m_date.year(m_calendar)), + m_shownMonth(m_date.month(m_calendar)), m_firstDay(QLocale().firstDayOfWeek()), m_horizontalHeaderFormat(QCalendarWidget::ShortDayNames), m_weekNumbersShown(true), @@ -1028,9 +1028,10 @@ will be rendered in 2nd or 3rd row, showing more dates from previous month. */ QDate QCalendarModel::referenceDate() const { + // TODO: Check this int refDay = 1; while (refDay <= 31) { - QDate refDate(m_shownYear, m_shownMonth, refDay); + QDate refDate(m_shownYear, m_shownMonth, refDay, m_calendar); if (refDate.isValid()) return refDate; refDay += 1; @@ -1040,7 +1041,8 @@ QDate QCalendarModel::referenceDate() const int QCalendarModel::columnForFirstOfMonth(const QDate &date) const { - return (columnForDayOfWeek(static_cast(date.dayOfWeek())) - (date.day() % 7) + 8) % 7; + return (columnForDayOfWeek(static_cast(m_calendar.dayOfWeek(date))) + - (date.day(m_calendar) % 7) + 8) % 7; } QDate QCalendarModel::dateForCell(int row, int column) const @@ -1056,7 +1058,8 @@ QDate QCalendarModel::dateForCell(int row, int column) const if (columnForFirstOfShownMonth - m_firstColumn < MinimumDayOffset) row -= 1; - const int requestedDay = 7 * (row - m_firstRow) + column - columnForFirstOfShownMonth - refDate.day() + 1; + const int requestedDay = + 7 * (row - m_firstRow) + column - columnForFirstOfShownMonth - refDate.day(m_calendar) + 1; return refDate.addDays(requestedDay); } @@ -1075,7 +1078,8 @@ void QCalendarModel::cellForDate(const QDate &date, int *row, int *column) const return; const int columnForFirstOfShownMonth = columnForFirstOfMonth(refDate); - const int requestedPosition = refDate.daysTo(date) - m_firstColumn + columnForFirstOfShownMonth + refDate.day() - 1; + const int requestedPosition = (refDate.daysTo(date) - m_firstColumn + + columnForFirstOfShownMonth + refDate.day(m_calendar) - 1); int c = requestedPosition % 7; int r = requestedPosition / 7; @@ -1148,7 +1152,7 @@ QTextCharFormat QCalendarModel::formatForCell(int row, int col) const format.merge(m_dateFormats.value(date)); if(date < m_minimumDate || date > m_maximumDate) format.setBackground(pal.brush(cg, QPalette::Window)); - if (m_shownMonth != date.month()) + if (m_shownMonth != date.month(m_calendar)) format.setForeground(pal.brush(QPalette::Disabled, QPalette::Text)); } return format; @@ -1174,7 +1178,7 @@ QVariant QCalendarModel::data(const QModelIndex &index, int role) const return dayName(dayOfWeekForColumn(column)); QDate date = dateForCell(row, column); if (date.isValid()) - return date.day(); + return date.day(m_calendar); return QString(); } @@ -1211,6 +1215,20 @@ void QCalendarModel::setDate(const QDate &d) m_date = m_maximumDate; } +void QCalendarModel::setCalendar(QCalendar c) +{ + m_calendar = c; + m_shownYear = m_date.year(c); + m_shownMonth = m_date.month(c); + internalUpdate(); + m_view->internalUpdate(); +} + +QCalendar QCalendarModel::calendar() const +{ + return m_calendar; +} + void QCalendarModel::showMonth(int year, int month) { if (m_shownYear == year && m_shownMonth == month) @@ -1341,6 +1359,8 @@ QModelIndex QCalendarView::moveCursor(CursorAction cursorAction, Qt::KeyboardMod if (!calendarModel) return QTableView::moveCursor(cursorAction, modifiers); + QCalendar cal = calendarModel->calendar(); + if (readOnly) return currentIndex(); @@ -1359,17 +1379,27 @@ QModelIndex QCalendarView::moveCursor(CursorAction cursorAction, Qt::KeyboardMod case QAbstractItemView::MoveRight: currentDate = currentDate.addDays(isRightToLeft() ? -1 : 1); break; - case QAbstractItemView::MoveHome: - currentDate = QDate(currentDate.year(), currentDate.month(), 1); + case QAbstractItemView::MoveHome: { + auto parts = cal.partsFromDate(currentDate); + if (parts.isValid()) { + parts.day = 1; + currentDate = cal.dateFromParts(parts); + } + } break; - case QAbstractItemView::MoveEnd: - currentDate = QDate(currentDate.year(), currentDate.month(), currentDate.daysInMonth()); + case QAbstractItemView::MoveEnd: { + auto parts = cal.partsFromDate(currentDate); + if (parts.isValid()) { + parts.day = cal.daysInMonth(parts.year, parts.month); + currentDate = cal.dateFromParts(parts); + } + } break; case QAbstractItemView::MovePageUp: - currentDate = currentDate.addMonths(-1); + currentDate = currentDate.addMonths(-1, cal); break; case QAbstractItemView::MovePageDown: - currentDate = currentDate.addMonths(1); + currentDate = currentDate.addMonths(1, cal); break; case QAbstractItemView::MoveNext: case QAbstractItemView::MovePrevious: @@ -1422,8 +1452,9 @@ void QCalendarView::wheelEvent(QWheelEvent *event) const int numDegrees = event->angleDelta().y() / 8; const int numSteps = numDegrees / 15; const QModelIndex index = currentIndex(); - QDate currentDate = static_cast(model())->dateForCell(index.row(), index.column()); - currentDate = currentDate.addMonths(-numSteps); + QCalendarModel *calendarModel = static_cast(model()); + QDate currentDate = calendarModel->dateForCell(index.row(), index.column()); + currentDate = currentDate.addMonths(-numSteps, calendarModel->calendar()); emit showDate(currentDate); } #endif @@ -1756,7 +1787,7 @@ void QCalendarWidgetPrivate::createNavigationBar(QWidget *widget) monthButton->setPopupMode(QToolButton::InstantPopup); monthMenu = new QMenu(monthButton); for (int i = 1; i <= 12; i++) { - QString monthName(q->locale().standaloneMonthName(i, QLocale::LongFormat)); + QString monthName(m_model->m_calendar.standaloneMonthName(q->locale(), i, QLocale::LongFormat)); QAction *act = monthMenu->addAction(monthName); act->setData(i); monthToAction[i] = act; @@ -1772,8 +1803,8 @@ void QCalendarWidgetPrivate::createNavigationBar(QWidget *widget) monthButton->setFont(font); yearButton->setFont(font); yearEdit->setFrame(false); - yearEdit->setMinimum(m_model->m_minimumDate.year()); - yearEdit->setMaximum(m_model->m_maximumDate.year()); + yearEdit->setMinimum(m_model->m_minimumDate.year(m_model->m_calendar)); + yearEdit->setMaximum(m_model->m_maximumDate.year(m_model->m_calendar)); yearEdit->hide(); spaceHolder = new QSpacerItem(0,0); @@ -1803,7 +1834,7 @@ void QCalendarWidgetPrivate::createNavigationBar(QWidget *widget) yearEdit->setObjectName(QLatin1String("qt_calendar_yearedit")); updateMonthMenu(); - showMonth(m_model->m_date.year(), m_model->m_date.month()); + showMonth(m_model->m_date.year(m_model->m_calendar), m_model->m_date.month(m_model->m_calendar)); } void QCalendarWidgetPrivate::updateButtonIcons() @@ -1815,22 +1846,24 @@ void QCalendarWidgetPrivate::updateButtonIcons() void QCalendarWidgetPrivate::updateMonthMenu() { - int beg = 1, end = 12; + int maxMonths = m_model->m_calendar.monthsInYear(m_model->m_shownYear); + int beg = 1, end = maxMonths; bool prevEnabled = true; bool nextEnabled = true; - if (m_model->m_shownYear == m_model->m_minimumDate.year()) { - beg = m_model->m_minimumDate.month(); - if (m_model->m_shownMonth == m_model->m_minimumDate.month()) + QCalendar cal = m_model->calendar(); + if (m_model->m_shownYear == m_model->m_minimumDate.year(cal)) { + beg = m_model->m_minimumDate.month(cal); + if (m_model->m_shownMonth == m_model->m_minimumDate.month(cal)) prevEnabled = false; } - if (m_model->m_shownYear == m_model->m_maximumDate.year()) { - end = m_model->m_maximumDate.month(); - if (m_model->m_shownMonth == m_model->m_maximumDate.month()) + if (m_model->m_shownYear == m_model->m_maximumDate.year(cal)) { + end = m_model->m_maximumDate.month(cal); + if (m_model->m_shownMonth == m_model->m_maximumDate.month(cal)) nextEnabled = false; } prevMonth->setEnabled(prevEnabled); nextMonth->setEnabled(nextEnabled); - for (int i = 1; i <= 12; i++) { + for (int i = 1; i <= maxMonths; i++) { bool monthEnabled = true; if (i < beg || i > end) monthEnabled = false; @@ -1843,7 +1876,7 @@ void QCalendarWidgetPrivate::updateMonthMenuNames() Q_Q(QCalendarWidget); for (int i = 1; i <= 12; i++) { - QString monthName(q->locale().standaloneMonthName(i, QLocale::LongFormat)); + QString monthName(m_model->m_calendar.standaloneMonthName(q->locale(), i, QLocale::LongFormat)); monthToAction[i]->setText(monthName); } } @@ -1851,6 +1884,7 @@ void QCalendarWidgetPrivate::updateMonthMenuNames() void QCalendarWidgetPrivate::updateCurrentPage(const QDate &date) { Q_Q(QCalendarWidget); + QCalendar cal = m_model->calendar(); QDate newDate = date; QDate minDate = q->minimumDate(); @@ -1859,7 +1893,7 @@ void QCalendarWidgetPrivate::updateCurrentPage(const QDate &date) newDate = minDate; if (maxDate.isValid()&& maxDate.daysTo(newDate) > 0) newDate = maxDate; - showMonth(newDate.year(), newDate.month()); + showMonth(newDate.year(cal), newDate.month(cal)); int row = -1, col = -1; m_model->cellForDate(newDate, &row, &col); if (row != -1 && col != -1) @@ -1873,7 +1907,7 @@ void QCalendarWidgetPrivate::_q_monthChanged(QAction *act) { monthButton->setText(act->text()); QDate currentDate = getCurrentDate(); - QDate newDate = currentDate.addMonths(act->data().toInt()-currentDate.month()); + QDate newDate = currentDate.addMonths(act->data().toInt() - currentDate.month(m_model->m_calendar), m_model->m_calendar); updateCurrentPage(newDate); } @@ -1885,27 +1919,28 @@ QDate QCalendarWidgetPrivate::getCurrentDate() void QCalendarWidgetPrivate::_q_prevMonthClicked() { - QDate currentDate = getCurrentDate().addMonths(-1); + QDate currentDate = getCurrentDate().addMonths(-1, m_model->m_calendar); updateCurrentPage(currentDate); } void QCalendarWidgetPrivate::_q_nextMonthClicked() { - QDate currentDate = getCurrentDate().addMonths(1); + QDate currentDate = getCurrentDate().addMonths(1, m_model->m_calendar); updateCurrentPage(currentDate); } void QCalendarWidgetPrivate::_q_yearEditingFinished() { Q_Q(QCalendarWidget); - yearButton->setText(yearEdit->text()); + yearButton->setText(q->locale().toString(yearEdit->value())); yearEdit->hide(); q->setFocusPolicy(oldFocusPolicy); qApp->removeEventFilter(q); spaceHolder->changeSize(0, 0); yearButton->show(); QDate currentDate = getCurrentDate(); - currentDate = currentDate.addYears(yearEdit->text().toInt() - currentDate.year()); + int newYear = q->locale().toInt(yearEdit->text()); + currentDate = currentDate.addYears(newYear - currentDate.year(m_model->m_calendar), m_model->m_calendar); updateCurrentPage(currentDate); } @@ -1944,7 +1979,7 @@ void QCalendarWidgetPrivate::updateNavigationBar() { Q_Q(QCalendarWidget); - QString monthName = q->locale().standaloneMonthName(m_model->m_shownMonth, QLocale::LongFormat); + QString monthName = m_model->m_calendar.standaloneMonthName(q->locale(), m_model->m_shownMonth, QLocale::LongFormat); monthButton->setText(monthName); yearEdit->setValue(m_model->m_shownYear); @@ -1986,7 +2021,7 @@ void QCalendarWidgetPrivate::_q_slotChangeDate(const QDate &date, bool changeMon m_model->setDate(date); QDate newDate = m_model->m_date; if (changeMonth) - showMonth(newDate.year(), newDate.month()); + showMonth(newDate.year(m_model->m_calendar), newDate.month(m_model->m_calendar)); if (oldDate != newDate) { update(); Q_Q(QCalendarWidget); @@ -2242,7 +2277,7 @@ QSize QCalendarWidget::minimumSizeHint() const QFontMetrics fm = d->monthButton->fontMetrics(); int monthW = 0; for (int i = 1; i < 12; i++) { - QString monthName = locale().standaloneMonthName(i, QLocale::LongFormat); + QString monthName = d->m_model->m_calendar.standaloneMonthName(locale(), i, QLocale::LongFormat); monthW = qMax(monthW, fm.boundingRect(monthName).width()); } const int buttonDecoMargin = d->monthButton->sizeHint().width() - fm.boundingRect(d->monthButton->text()).width(); @@ -2302,7 +2337,8 @@ void QCalendarWidget::setSelectedDate(const QDate &date) d->m_model->setDate(date); d->update(); QDate newDate = d->m_model->m_date; - d->showMonth(newDate.year(), newDate.month()); + QCalendar cal = d->m_model->m_calendar; + d->showMonth(newDate.year(cal), newDate.month(cal)); emit selectionChanged(); } @@ -2348,14 +2384,15 @@ void QCalendarWidget::setCurrentPage(int year, int month) { Q_D(QCalendarWidget); QDate currentDate = d->getCurrentDate(); - int day = currentDate.day(); - int daysInMonths = QDate(year, month, 1).daysInMonth(); + QCalendar cal = d->m_model->m_calendar; + int day = currentDate.day(cal); + int daysInMonths = cal.daysInMonth(year, month); if (day > daysInMonths) day = daysInMonths; d->showMonth(year, month); - QDate newDate(year, month, day); + QDate newDate(year, month, day, d->m_model->m_calendar); int row = -1, col = -1; d->m_model->cellForDate(newDate, &row, &col); if (row != -1 && col != -1) { @@ -2373,9 +2410,10 @@ void QCalendarWidget::setCurrentPage(int year, int month) void QCalendarWidget::showNextMonth() { + Q_D(const QCalendarWidget); int year = yearShown(); int month = monthShown(); - if (month == 12) { + if (month == d->m_model->m_calendar.maxMonthsInYear()) { ++year; month = 1; } else { @@ -2393,11 +2431,13 @@ void QCalendarWidget::showNextMonth() void QCalendarWidget::showPreviousMonth() { + Q_D(const QCalendarWidget); + int year = yearShown(); int month = monthShown(); if (month == 1) { --year; - month = 12; + month = d->m_model->m_calendar.maxMonthsInYear(); } else { --month; } @@ -2443,8 +2483,10 @@ void QCalendarWidget::showPreviousYear() */ void QCalendarWidget::showSelectedDate() { + Q_D(const QCalendarWidget); + QDate currentDate = selectedDate(); - setCurrentPage(currentDate.year(), currentDate.month()); + setCurrentPage(currentDate.year(d->m_model->m_calendar), currentDate.month(d->m_model->m_calendar)); } /*! @@ -2454,8 +2496,10 @@ void QCalendarWidget::showSelectedDate() */ void QCalendarWidget::showToday() { + Q_D(const QCalendarWidget); + QDate currentDate = QDate::currentDate(); - setCurrentPage(currentDate.year(), currentDate.month()); + setCurrentPage(currentDate.year(d->m_model->m_calendar), currentDate.month(d->m_model->m_calendar)); } /*! @@ -2498,12 +2542,12 @@ void QCalendarWidget::setMinimumDate(const QDate &date) QDate oldDate = d->m_model->m_date; d->m_model->setMinimumDate(date); - d->yearEdit->setMinimum(d->m_model->m_minimumDate.year()); + d->yearEdit->setMinimum(d->m_model->m_minimumDate.year(d->m_model->m_calendar)); d->updateMonthMenu(); QDate newDate = d->m_model->m_date; if (oldDate != newDate) { d->update(); - d->showMonth(newDate.year(), newDate.month()); + d->showMonth(newDate.year(d->m_model->m_calendar), newDate.month(d->m_model->m_calendar)); d->m_navigator->setDate(newDate); emit selectionChanged(); } @@ -2549,12 +2593,12 @@ void QCalendarWidget::setMaximumDate(const QDate &date) QDate oldDate = d->m_model->m_date; d->m_model->setMaximumDate(date); - d->yearEdit->setMaximum(d->m_model->m_maximumDate.year()); + d->yearEdit->setMaximum(d->m_model->m_maximumDate.year(d->m_model->m_calendar)); d->updateMonthMenu(); QDate newDate = d->m_model->m_date; if (oldDate != newDate) { d->update(); - d->showMonth(newDate.year(), newDate.month()); + d->showMonth(newDate.year(d->m_model->m_calendar), newDate.month(d->m_model->m_calendar)); d->m_navigator->setDate(newDate); emit selectionChanged(); } @@ -2589,13 +2633,13 @@ void QCalendarWidget::setDateRange(const QDate &min, const QDate &max) QDate oldDate = d->m_model->m_date; d->m_model->setRange(min, max); - d->yearEdit->setMinimum(d->m_model->m_minimumDate.year()); - d->yearEdit->setMaximum(d->m_model->m_maximumDate.year()); + d->yearEdit->setMinimum(d->m_model->m_minimumDate.year(d->m_model->m_calendar)); + d->yearEdit->setMaximum(d->m_model->m_maximumDate.year(d->m_model->m_calendar)); d->updateMonthMenu(); QDate newDate = d->m_model->m_date; if (oldDate != newDate) { d->update(); - d->showMonth(newDate.year(), newDate.month()); + d->showMonth(newDate.year(d->m_model->m_calendar), newDate.month(d->m_model->m_calendar)); d->m_navigator->setDate(newDate); emit selectionChanged(); } @@ -2702,6 +2746,22 @@ bool QCalendarWidget::isGridVisible() const return d->m_view->showGrid(); } +QCalendar QCalendarWidget::calendar() const +{ + Q_D(const QCalendarWidget); + return d->m_model->m_calendar; +} + +void QCalendarWidget::setCalendar(QCalendar c) +{ + Q_D(QCalendarWidget); + d->m_model->setCalendar(c); + d->updateMonthMenuNames(); + d->yearEdit->setMinimum(d->m_model->m_minimumDate.year(d->m_model->m_calendar)); + d->yearEdit->setMaximum(d->m_model->m_maximumDate.year(d->m_model->m_calendar)); + d->updateNavigationBar(); +} + void QCalendarWidget::setGridVisible(bool show) { Q_D(QCalendarWidget); @@ -3042,6 +3102,9 @@ bool QCalendarWidget::event(QEvent *event) d->updateMonthMenuNames(); d->updateNavigationBar(); d->m_view->updateGeometry(); + // TODO: fix this known bug of calendaring API: + // Changing locale before calendar works, but reverse order causes + // invalid month names (in C Locale apparently). break; case QEvent::FontChange: case QEvent::ApplicationFontChange: diff --git a/src/widgets/widgets/qcalendarwidget.h b/src/widgets/widgets/qcalendarwidget.h index 44ba340289..08825a0ff3 100644 --- a/src/widgets/widgets/qcalendarwidget.h +++ b/src/widgets/widgets/qcalendarwidget.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -112,6 +112,9 @@ public: bool isNavigationBarVisible() const; bool isGridVisible() const; + QCalendar calendar() const; + void setCalendar(QCalendar calendar); + SelectionMode selectionMode() const; void setSelectionMode(SelectionMode mode); diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp index 17dc94bba1..31607d77e7 100644 --- a/src/widgets/widgets/qdatetimeedit.cpp +++ b/src/widgets/widgets/qdatetimeedit.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -312,6 +312,22 @@ void QDateTimeEdit::setTime(const QTime &time) } +QCalendar QDateTimeEdit::calendar() const +{ + Q_D(const QDateTimeEdit); + return d->calendar; +} + +void QDateTimeEdit::setCalendar(QCalendar calendar) +{ + Q_D(QDateTimeEdit); + // Set invalid date time to prevent runtime crashes on calendar change + QDateTime previousValue = d->value.toDateTime(); + setDateTime(QDateTime()); + d->setCalendar(calendar); + setDateTime(previousValue); +} + /*! \property QDateTimeEdit::minimumDateTime \since 4.4 @@ -1344,7 +1360,7 @@ void QDateTimeEdit::stepBy(int steps) QString QDateTimeEdit::textFromDateTime(const QDateTime &dateTime) const { Q_D(const QDateTimeEdit); - return locale().toString(dateTime, d->displayFormat); + return locale().toString(dateTime, d->displayFormat, d->calendar); } @@ -1636,7 +1652,7 @@ QDateEdit::~QDateEdit() QDateTimeEditPrivate::QDateTimeEditPrivate() - : QDateTimeParser(QVariant::DateTime, QDateTimeParser::DateTimeEdit) + : QDateTimeParser(QVariant::DateTime, QDateTimeParser::DateTimeEdit, QCalendar()) { hasHadFocus = false; formatExplicitlySet = false; @@ -1661,10 +1677,6 @@ QDateTimeEditPrivate::QDateTimeEditPrivate() #endif } -QDateTimeEditPrivate::~QDateTimeEditPrivate() -{ -} - void QDateTimeEditPrivate::updateTimeSpec() { minimum = minimum.toDateTime().toTimeSpec(spec); @@ -2008,8 +2020,7 @@ QDateTime QDateTimeEditPrivate::stepBy(int sectionIndex, int steps, bool test) c val = (wrapping ? min + val - max - 1 : max); } - - const int oldDay = v.date().day(); + const int oldDay = v.date().day(calendar); setDigit(v, sectionIndex, val); // if this sets year or month it will make @@ -2028,10 +2039,10 @@ QDateTime QDateTimeEditPrivate::stepBy(int sectionIndex, int steps, bool test) c if (steps > 0) { setDigit(v, sectionIndex, min); if (!(sn.type & DaySectionMask) && sections & DateSectionMask) { - const int daysInMonth = v.date().daysInMonth(); - if (v.date().day() < oldDay && v.date().day() < daysInMonth) { + const int daysInMonth = v.date().daysInMonth(calendar); + if (v.date().day(calendar) < oldDay && v.date().day(calendar) < daysInMonth) { const int adds = qMin(oldDay, daysInMonth); - v = v.addDays(adds - v.date().day()); + v = v.addDays(adds - v.date().day(calendar)); } } @@ -2043,10 +2054,10 @@ QDateTime QDateTimeEditPrivate::stepBy(int sectionIndex, int steps, bool test) c } else { setDigit(v, sectionIndex, max); if (!(sn.type & DaySectionMask) && sections & DateSectionMask) { - const int daysInMonth = v.date().daysInMonth(); - if (v.date().day() < oldDay && v.date().day() < daysInMonth) { + const int daysInMonth = v.date().daysInMonth(calendar); + if (v.date().day(calendar) < oldDay && v.date().day(calendar) < daysInMonth) { const int adds = qMin(oldDay, daysInMonth); - v = v.addDays(adds - v.date().day()); + v = v.addDays(adds - v.date().day(calendar)); } } @@ -2060,7 +2071,7 @@ QDateTime QDateTimeEditPrivate::stepBy(int sectionIndex, int steps, bool test) c setDigit(v, sectionIndex, (steps > 0 ? localmax : localmin)); } } - if (!test && oldDay != v.date().day() && !(sn.type & DaySectionMask)) { + if (!test && oldDay != v.date().day(calendar) && !(sn.type & DaySectionMask)) { // this should not happen when called from stepEnabled cachedDay = qMax(oldDay, cachedDay); } @@ -2513,7 +2524,7 @@ void QDateTimeEditPrivate::initCalendarPopup(QCalendarWidget *cw) { Q_Q(QDateTimeEdit); if (!monthCalendar) { - monthCalendar = new QCalendarPopup(q, cw); + monthCalendar = new QCalendarPopup(q, cw, calendar); monthCalendar->setObjectName(QLatin1String("qt_datetimedit_calendar")); QObject::connect(monthCalendar, SIGNAL(newDateSelected(QDate)), q, SLOT(setDate(QDate))); QObject::connect(monthCalendar, SIGNAL(hidingCalendar(QDate)), q, SLOT(setDate(QDate))); @@ -2574,8 +2585,8 @@ void QDateTimeEditPrivate::syncCalendarWidget() } } -QCalendarPopup::QCalendarPopup(QWidget * parent, QCalendarWidget *cw) - : QWidget(parent, Qt::Popup) +QCalendarPopup::QCalendarPopup(QWidget *parent, QCalendarWidget *cw, QCalendar ca) + : QWidget(parent, Qt::Popup), calendarSystem(ca) { setAttribute(Qt::WA_WindowPropagation); @@ -2591,6 +2602,7 @@ QCalendarWidget *QCalendarPopup::verifyCalendarInstance() { if (calendar.isNull()) { QCalendarWidget *cw = new QCalendarWidget(this); + cw->setCalendar(calendarSystem); cw->setVerticalHeaderFormat(QCalendarWidget::NoVerticalHeader); #ifdef QT_KEYPAD_NAVIGATION if (QApplicationPrivate::keypadNavigationEnabled()) diff --git a/src/widgets/widgets/qdatetimeedit.h b/src/widgets/widgets/qdatetimeedit.h index b6fb35fc71..03994675ae 100644 --- a/src/widgets/widgets/qdatetimeedit.h +++ b/src/widgets/widgets/qdatetimeedit.h @@ -42,6 +42,7 @@ #include #include +#include #include #include @@ -102,6 +103,9 @@ public: QDate date() const; QTime time() const; + QCalendar calendar() const; + void setCalendar(QCalendar calendar); + QDateTime minimumDateTime() const; void clearMinimumDateTime(); void setMinimumDateTime(const QDateTime &dt); diff --git a/src/widgets/widgets/qdatetimeedit_p.h b/src/widgets/widgets/qdatetimeedit_p.h index c05e7d9b48..453ac36d15 100644 --- a/src/widgets/widgets/qdatetimeedit_p.h +++ b/src/widgets/widgets/qdatetimeedit_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2018 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -52,6 +52,7 @@ // #include +#include #include "QtWidgets/qcalendarwidget.h" #include "QtWidgets/qspinbox.h" #include "QtWidgets/qtoolbutton.h" @@ -70,7 +71,6 @@ class Q_AUTOTEST_EXPORT QDateTimeEditPrivate : public QAbstractSpinBoxPrivate, p Q_DECLARE_PUBLIC(QDateTimeEdit) public: QDateTimeEditPrivate(); - ~QDateTimeEditPrivate(); void init(const QVariant &var); void readLocaleSettings(); @@ -145,7 +145,8 @@ class QCalendarPopup : public QWidget { Q_OBJECT public: - explicit QCalendarPopup(QWidget *parent = nullptr, QCalendarWidget *cw = nullptr); + explicit QCalendarPopup(QWidget *parent = nullptr, QCalendarWidget *cw = nullptr, + QCalendar ca = QCalendar()); QDate selectedDate() { return verifyCalendarInstance()->selectedDate(); } void setDate(const QDate &date); void setDateRange(const QDate &min, const QDate &max); @@ -174,6 +175,7 @@ private: QPointer calendar; QDate oldDate; bool dateChanged; + QCalendar calendarSystem; }; QT_END_NAMESPACE -- cgit v1.2.3 From 36cf237ea1ca1522e37c3d4e66f08dc00bc3295d Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 15 Aug 2019 14:00:25 +0200 Subject: QWidget: two small fixes - Use QPointer::data() instead of a C-style cast - Remove an abuse of Q_UNLIKELY. Q_UNLIKELY is for error code. Using it for conditions that have a good chance of being true in normal operations just caused all the error handling code to be paged in needlessly. Change-Id: I542a5b938b032ca84f2cf1f78fbc45049a12ad1a Reviewed-by: Friedemann Kleint --- src/widgets/kernel/qwidget.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index d098d9cc04..049ddb0213 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -6181,7 +6181,7 @@ void QWidget::setFocusProxy(QWidget * w) QWidget *QWidget::focusProxy() const { Q_D(const QWidget); - return d->extra ? (QWidget *)d->extra->focus_proxy : nullptr; + return d->extra ? d->extra->focus_proxy.data() : nullptr; } @@ -11932,7 +11932,7 @@ QOpenGLContext *QWidgetPrivate::shareContext() const #ifdef QT_NO_OPENGL return 0; #else - if (Q_UNLIKELY(!extra || !extra->topextra || !extra->topextra->window)) + if (!extra || !extra->topextra || !extra->topextra->window) return 0; if (!extra->topextra->shareContext) { -- cgit v1.2.3 From 16868bd6a247d419d7c15ae10ff2c667e6110b43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 17:29:39 +0200 Subject: widgets: Clean up and reorder QWidgetRepaintManager implementation Group functions by related areas and order them roughly by their flow in a normal app repaint cycle. Change-Id: I7a963f612134b3fdbaf748e0432606825b8db64e Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 36 ++ src/widgets/kernel/qwidgetrepaintmanager.cpp | 712 +++++++++++++++------------ src/widgets/kernel/qwidgetrepaintmanager_p.h | 158 ++---- 3 files changed, 464 insertions(+), 442 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 049ddb0213..c2caf7a421 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1775,6 +1775,42 @@ void QWidgetPrivate::syncBackingStore(const QRegion ®ion) } } +void QWidgetPrivate::repaint_sys(const QRegion &rgn) +{ + if (data.in_destructor) + return; + + if (shouldDiscardSyncRequest()) + return; + + Q_Q(QWidget); + if (q->testAttribute(Qt::WA_StaticContents)) { + if (!extra) + createExtra(); + extra->staticContentsSize = data.crect.size(); + } + + QPaintEngine *engine = q->paintEngine(); + + // QGLWidget does not support partial updates if: + // 1) The context is double buffered + // 2) The context is single buffered and auto-fill background is enabled. + const bool noPartialUpdateSupport = (engine && (engine->type() == QPaintEngine::OpenGL + || engine->type() == QPaintEngine::OpenGL2)) + && (usesDoubleBufferedGLContext || q->autoFillBackground()); + QRegion toBePainted(noPartialUpdateSupport ? q->rect() : rgn); + + toBePainted &= clipRect(); + clipToEffectiveMask(toBePainted); + if (toBePainted.isEmpty()) + return; // Nothing to repaint. + + drawWidget(q, toBePainted, QPoint(), QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawPaintOnScreen, 0); + + if (Q_UNLIKELY(q->paintingActive())) + qWarning("QWidget::repaint: It is dangerous to leave painters active on a widget outside of the PaintEvent"); +} + void QWidgetPrivate::setUpdatesEnabled_helper(bool enable) { Q_Q(QWidget); diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 96f440cd0f..b70ce39159 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -71,164 +71,89 @@ QT_BEGIN_NAMESPACE Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) #endif -static bool hasPlatformWindow(QWidget *widget) -{ - return widget && widget->windowHandle() && widget->windowHandle()->handle(); -} +// --------------------------------------------------------------------------- -/* - Moves the whole rect by (dx, dy) in widget's coordinate system. - Doesn't generate any updates. -*/ -bool QWidgetRepaintManager::bltRect(const QRect &rect, int dx, int dy, QWidget *widget) +QWidgetRepaintManager::QWidgetRepaintManager(QWidget *topLevel) + : tlw(topLevel), + updateRequestSent(0), + textureListWatcher(0), + perfFrames(0) { - const QPoint pos(widget->mapTo(tlw, rect.topLeft())); - const QRect tlwRect(QRect(pos, rect.size())); - if (dirty.intersects(tlwRect)) - return false; // We don't want to scroll junk. - return store->scroll(tlwRect, dx, dy); -} + store = tlw->backingStore(); + Q_ASSERT(store); -/*! - Returns the region (in top-level coordinates) that needs repaint and/or flush. + // Ensure all existing subsurfaces and static widgets are added to their respective lists. + updateLists(topLevel); +} - If the widget is non-zero, only the dirty region for the widget is returned - and the region will be in widget coordinates. -*/ -QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const +void QWidgetRepaintManager::updateLists(QWidget *cur) { - const bool widgetDirty = widget && widget != tlw; - const QRect tlwRect(topLevelRect()); - const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); - if (surfaceGeometry != tlwRect && surfaceGeometry.size() != tlwRect.size()) { - if (widgetDirty) { - const QRect dirtyTlwRect = QRect(QPoint(), tlwRect.size()); - const QPoint offset(widget->mapTo(tlw, QPoint())); - const QRect dirtyWidgetRect(dirtyTlwRect & widget->rect().translated(offset)); - return dirtyWidgetRect.translated(-offset); - } - return QRect(QPoint(), tlwRect.size()); - } + if (!cur) + return; - // Calculate the region that needs repaint. - QRegion r(dirty); - for (int i = 0; i < dirtyWidgets.size(); ++i) { - QWidget *w = dirtyWidgets.at(i); - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) + QList children = cur->children(); + for (int i = 0; i < children.size(); ++i) { + QWidget *child = qobject_cast(children.at(i)); + if (!child || child->isWindow()) continue; - r += w->d_func()->dirty.translated(w->mapTo(tlw, QPoint())); - } - - // Append the region that needs flush. - r += dirtyOnScreen; - for (QWidget *w : dirtyOnScreenWidgets) { - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) - continue; - QWidgetPrivate *wd = w->d_func(); - Q_ASSERT(wd->needsFlush); - r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); + updateLists(child); } - if (widgetDirty) { - // Intersect with the widget geometry and translate to its coordinates. - const QPoint offset(widget->mapTo(tlw, QPoint())); - r &= widget->rect().translated(offset); - r.translate(-offset); - } - return r; + if (cur->testAttribute(Qt::WA_StaticContents)) + addStaticWidget(cur); +} + +QWidgetRepaintManager::~QWidgetRepaintManager() +{ + for (int c = 0; c < dirtyWidgets.size(); ++c) + resetWidget(dirtyWidgets.at(c)); + for (int c = 0; c < dirtyRenderToTextureWidgets.size(); ++c) + resetWidget(dirtyRenderToTextureWidgets.at(c)); } /*! - Returns the static content inside the \a parent if non-zero; otherwise the static content - for the entire backing store is returned. The content will be clipped to \a withinClipRect - if non-empty. + Invalidates the \a r (in widget's coordinates) of the backing store, i.e. + all widgets intersecting with the region will be repainted when the backing + store is synced. */ -QRegion QWidgetRepaintManager::staticContents(QWidget *parent, const QRect &withinClipRect) const +template +void QWidgetPrivate::invalidateBackingStore(const T &r) { - if (!parent && tlw->testAttribute(Qt::WA_StaticContents)) { - const QSize surfaceGeometry(store->size()); - QRect surfaceRect(0, 0, surfaceGeometry.width(), surfaceGeometry.height()); - if (!withinClipRect.isEmpty()) - surfaceRect &= withinClipRect; - return QRegion(surfaceRect); - } - - QRegion region; - if (parent && parent->d_func()->children.isEmpty()) - return region; - - const bool clipToRect = !withinClipRect.isEmpty(); - const int count = staticWidgets.count(); - for (int i = 0; i < count; ++i) { - QWidget *w = staticWidgets.at(i); - QWidgetPrivate *wd = w->d_func(); - if (!wd->isOpaque || !wd->extra || wd->extra->staticContentsSize.isEmpty() - || !w->isVisible() || (parent && !parent->isAncestorOf(w))) { - continue; - } - - QRect rect(0, 0, wd->extra->staticContentsSize.width(), wd->extra->staticContentsSize.height()); - const QPoint offset = w->mapTo(parent ? parent : tlw, QPoint()); - if (clipToRect) - rect &= withinClipRect.translated(-offset); - if (rect.isEmpty()) - continue; - - rect &= wd->clipRect(); - if (rect.isEmpty()) - continue; + if (r.isEmpty()) + return; - QRegion visible(rect); - wd->clipToEffectiveMask(visible); - if (visible.isEmpty()) - continue; - wd->subtractOpaqueSiblings(visible, 0, /*alsoNonOpaque=*/true); + if (QCoreApplication::closingDown()) + return; - visible.translate(offset); - region += visible; - } + Q_Q(QWidget); + if (!q->isVisible() || !q->updatesEnabled()) + return; - return region; -} + QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); + if (!tlwExtra || tlwExtra->inTopLevelResize || !tlwExtra->backingStore) + return; -void QWidgetRepaintManager::sendUpdateRequest(QWidget *widget, UpdateTime updateTime) -{ - if (!widget) + T clipped(r); + clipped &= clipRect(); + if (clipped.isEmpty()) return; -#ifndef QT_NO_OPENGL - // Having every repaint() leading to a sync/flush is bad as it causes - // compositing and waiting for vsync each and every time. Change to - // UpdateLater, except for approx. once per frame to prevent starvation in - // case the control does not get back to the event loop. - QWidget *w = widget->window(); - if (updateTime == UpdateNow && w && w->windowHandle() && QWindowPrivate::get(w->windowHandle())->compositing) { - int refresh = 60; - QScreen *ws = w->windowHandle()->screen(); - if (ws) - refresh = ws->refreshRate(); - QWindowPrivate *wd = QWindowPrivate::get(w->windowHandle()); - if (wd->lastComposeTime.isValid()) { - const qint64 elapsed = wd->lastComposeTime.elapsed(); - if (elapsed <= qint64(1000.0f / refresh)) - updateTime = UpdateLater; - } - } -#endif + if (!graphicsEffect && extra && extra->hasMask) { + QRegion masked(extra->mask); + masked &= clipped; + if (masked.isEmpty()) + return; - switch (updateTime) { - case UpdateLater: - updateRequestSent = true; - QCoreApplication::postEvent(widget, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority); - break; - case UpdateNow: { - QEvent event(QEvent::UpdateRequest); - QCoreApplication::sendEvent(widget, &event); - break; - } + tlwExtra->repaintManager->markDirty(masked, q, + QWidgetRepaintManager::UpdateLater, QWidgetRepaintManager::BufferInvalid); + } else { + tlwExtra->repaintManager->markDirty(clipped, q, + QWidgetRepaintManager::UpdateLater, QWidgetRepaintManager::BufferInvalid); } } +// Needed by tst_QWidget +template Q_AUTOTEST_EXPORT void QWidgetPrivate::invalidateBackingStore(const QRect &r); static inline QRect widgetRectFor(QWidget *, const QRect &r) { return r; } static inline QRect widgetRectFor(QWidget *widget, const QRegion &) { return widget->rect(); } @@ -352,49 +277,19 @@ void QWidgetRepaintManager::markDirty(const T &r, QWidget *widget, UpdateTime up template void QWidgetRepaintManager::markDirty(const QRect &, QWidget *, UpdateTime, BufferState); template void QWidgetRepaintManager::markDirty(const QRegion &, QWidget *, UpdateTime, BufferState); -/*! - Marks the \a region of the \a widget as dirty on screen. The \a region will be copied from - the backing store to the \a widget's native parent next time flush() is called. - - Paint on screen widgets are ignored. -*/ -void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *widget, const QPoint &topLevelOffset) +void QWidgetRepaintManager::addDirtyWidget(QWidget *widget, const QRegion &rgn) { - if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) - return; - - // Top-level. - if (widget == tlw) { - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region; - return; - } - - // Alien widgets. - if (!hasPlatformWindow(widget) && !widget->isWindow()) { - QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). - if (nativeParent == tlw) { - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region.translated(topLevelOffset); - return; - } - - // Alien widgets with native parent != tlw. - QWidgetPrivate *nativeParentPrivate = nativeParent->d_func(); - if (!nativeParentPrivate->needsFlush) - nativeParentPrivate->needsFlush = new QRegion; - const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); - *nativeParentPrivate->needsFlush += region.translated(nativeParentOffset); - appendDirtyOnScreenWidget(nativeParent); - return; + if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { + QWidgetPrivate *widgetPrivate = widget->d_func(); +#if QT_CONFIG(graphicseffect) + if (widgetPrivate->graphicsEffect) + widgetPrivate->dirty = widgetPrivate->effectiveRectFor(rgn.boundingRect()); + else +#endif // QT_CONFIG(graphicseffect) + widgetPrivate->dirty = rgn; + dirtyWidgets.append(widget); + widgetPrivate->inDirtyList = true; } - - // Native child widgets. - QWidgetPrivate *widgetPrivate = widget->d_func(); - if (!widgetPrivate->needsFlush) - widgetPrivate->needsFlush = new QRegion; - *widgetPrivate->needsFlush += region; - appendDirtyOnScreenWidget(widget); } void QWidgetRepaintManager::removeDirtyWidget(QWidget *w) @@ -415,43 +310,69 @@ void QWidgetRepaintManager::removeDirtyWidget(QWidget *w) } } -void QWidgetRepaintManager::updateLists(QWidget *cur) +void QWidgetRepaintManager::resetWidget(QWidget *widget) { - if (!cur) - return; - - QList children = cur->children(); - for (int i = 0; i < children.size(); ++i) { - QWidget *child = qobject_cast(children.at(i)); - if (!child || child->isWindow()) - continue; - - updateLists(child); + if (widget) { + widget->d_func()->inDirtyList = false; + widget->d_func()->isScrolled = false; + widget->d_func()->isMoved = false; + widget->d_func()->dirty = QRegion(); } +} - if (cur->testAttribute(Qt::WA_StaticContents)) - addStaticWidget(cur); +void QWidgetRepaintManager::addDirtyRenderToTextureWidget(QWidget *widget) +{ + if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { + QWidgetPrivate *widgetPrivate = widget->d_func(); + Q_ASSERT(widgetPrivate->renderToTexture); + dirtyRenderToTextureWidgets.append(widget); + widgetPrivate->inDirtyList = true; + } } -QWidgetRepaintManager::QWidgetRepaintManager(QWidget *topLevel) - : tlw(topLevel), - updateRequestSent(0), - textureListWatcher(0), - perfFrames(0) +void QWidgetRepaintManager::sendUpdateRequest(QWidget *widget, UpdateTime updateTime) { - store = tlw->backingStore(); - Q_ASSERT(store); + if (!widget) + return; - // Ensure all existing subsurfaces and static widgets are added to their respective lists. - updateLists(topLevel); +#ifndef QT_NO_OPENGL + // Having every repaint() leading to a sync/flush is bad as it causes + // compositing and waiting for vsync each and every time. Change to + // UpdateLater, except for approx. once per frame to prevent starvation in + // case the control does not get back to the event loop. + QWidget *w = widget->window(); + if (updateTime == UpdateNow && w && w->windowHandle() && QWindowPrivate::get(w->windowHandle())->compositing) { + int refresh = 60; + QScreen *ws = w->windowHandle()->screen(); + if (ws) + refresh = ws->refreshRate(); + QWindowPrivate *wd = QWindowPrivate::get(w->windowHandle()); + if (wd->lastComposeTime.isValid()) { + const qint64 elapsed = wd->lastComposeTime.elapsed(); + if (elapsed <= qint64(1000.0f / refresh)) + updateTime = UpdateLater; + } + } +#endif + + switch (updateTime) { + case UpdateLater: + updateRequestSent = true; + QCoreApplication::postEvent(widget, new QEvent(QEvent::UpdateRequest), Qt::LowEventPriority); + break; + case UpdateNow: { + QEvent event(QEvent::UpdateRequest); + QCoreApplication::sendEvent(widget, &event); + break; + } + } } -QWidgetRepaintManager::~QWidgetRepaintManager() +// --------------------------------------------------------------------------- + +static bool hasPlatformWindow(QWidget *widget) { - for (int c = 0; c < dirtyWidgets.size(); ++c) - resetWidget(dirtyWidgets.at(c)); - for (int c = 0; c < dirtyRenderToTextureWidgets.size(); ++c) - resetWidget(dirtyRenderToTextureWidgets.at(c)); + return widget && widget->windowHandle() && widget->windowHandle()->handle(); } static QVector getSortedRectsToScroll(const QRegion ®ion, int dx, int dy) @@ -653,6 +574,21 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) } } +/* + Moves the whole rect by (dx, dy) in widget's coordinate system. + Doesn't generate any updates. +*/ +bool QWidgetRepaintManager::bltRect(const QRect &rect, int dx, int dy, QWidget *widget) +{ + const QPoint pos(widget->mapTo(tlw, rect.topLeft())); + const QRect tlwRect(QRect(pos, rect.size())); + if (dirty.intersects(tlwRect)) + return false; // We don't want to scroll junk. + return store->scroll(tlwRect, dx, dy); +} + +// --------------------------------------------------------------------------- + #ifndef QT_NO_OPENGL static void findTextureWidgetsRecursively(QWidget *tlw, QWidget *widget, QPlatformTextureList *widgetTextures, QVector *nativeChildren) { @@ -764,36 +700,7 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) #endif // QT_NO_OPENGL -bool QWidgetPrivate::shouldDiscardSyncRequest() const -{ - Q_Q(const QWidget); - return !maybeTopData() || !q->testAttribute(Qt::WA_Mapped) || !q->isVisible(); -} - -bool QWidgetRepaintManager::syncAllowed() -{ -#ifndef QT_NO_OPENGL - QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); - if (textureListWatcher && !textureListWatcher->isLocked()) { - textureListWatcher->deleteLater(); - textureListWatcher = 0; - } else if (!tlwExtra->widgetTextures.empty()) { - bool skipSync = false; - for (const auto &tl : tlwExtra->widgetTextures) { - if (tl->isLocked()) { - if (!textureListWatcher) - textureListWatcher = new QPlatformTextureListWatcher(this); - if (!textureListWatcher->isLocked()) - textureListWatcher->watch(tl.get()); - skipSync = true; - } - } - if (skipSync) // cannot compose due to widget textures being in use - return false; - } -#endif - return true; -} +// --------------------------------------------------------------------------- /*! Synchronizes the \a exposedRegion of the \a exposedWidget with the backing store. @@ -848,11 +755,42 @@ void QWidgetRepaintManager::sync() resetWidget(dirtyWidgets.at(i)); dirtyWidgets.clear(); } - return; + return; + } + + if (syncAllowed()) + paintAndFlush(); +} + +bool QWidgetPrivate::shouldDiscardSyncRequest() const +{ + Q_Q(const QWidget); + return !maybeTopData() || !q->testAttribute(Qt::WA_Mapped) || !q->isVisible(); +} + +bool QWidgetRepaintManager::syncAllowed() +{ +#ifndef QT_NO_OPENGL + QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); + if (textureListWatcher && !textureListWatcher->isLocked()) { + textureListWatcher->deleteLater(); + textureListWatcher = 0; + } else if (!tlwExtra->widgetTextures.empty()) { + bool skipSync = false; + for (const auto &tl : tlwExtra->widgetTextures) { + if (tl->isLocked()) { + if (!textureListWatcher) + textureListWatcher = new QPlatformTextureListWatcher(this); + if (!textureListWatcher->isLocked()) + textureListWatcher->watch(tl.get()); + skipSync = true; + } + } + if (skipSync) // cannot compose due to widget textures being in use + return false; } - - if (syncAllowed()) - paintAndFlush(); +#endif + return true; } void QWidgetRepaintManager::paintAndFlush() @@ -1073,6 +1011,60 @@ void QWidgetRepaintManager::paintAndFlush() flush(); } +/*! + Marks the \a region of the \a widget as dirty on screen. The \a region will be copied from + the backing store to the \a widget's native parent next time flush() is called. + + Paint on screen widgets are ignored. +*/ +void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *widget, const QPoint &topLevelOffset) +{ + if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) + return; + + // Top-level. + if (widget == tlw) { + if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) + dirtyOnScreen += region; + return; + } + + // Alien widgets. + if (!hasPlatformWindow(widget) && !widget->isWindow()) { + QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). + if (nativeParent == tlw) { + if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) + dirtyOnScreen += region.translated(topLevelOffset); + return; + } + + // Alien widgets with native parent != tlw. + QWidgetPrivate *nativeParentPrivate = nativeParent->d_func(); + if (!nativeParentPrivate->needsFlush) + nativeParentPrivate->needsFlush = new QRegion; + const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); + *nativeParentPrivate->needsFlush += region.translated(nativeParentOffset); + appendDirtyOnScreenWidget(nativeParent); + return; + } + + // Native child widgets. + QWidgetPrivate *widgetPrivate = widget->d_func(); + if (!widgetPrivate->needsFlush) + widgetPrivate->needsFlush = new QRegion; + *widgetPrivate->needsFlush += region; + appendDirtyOnScreenWidget(widget); +} + +void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget) +{ + if (!widget) + return; + + if (!dirtyOnScreenWidgets.contains(widget)) + dirtyOnScreenWidgets.append(widget); +} + /*! Flushes the contents of the backing store into the top-level widget. If the \a widget is non-zero, the content is flushed to the \a widget. @@ -1191,6 +1183,174 @@ void QWidgetRepaintManager::flush(QWidget *widget, const QRegion ®ion, QPlatf store->flush(effectiveRegion, widget->windowHandle(), offset); } +// --------------------------------------------------------------------------- + +void QWidgetRepaintManager::addStaticWidget(QWidget *widget) +{ + if (!widget) + return; + + Q_ASSERT(widget->testAttribute(Qt::WA_StaticContents)); + if (!staticWidgets.contains(widget)) + staticWidgets.append(widget); +} + +// Move the reparented widget and all its static children from this backing store +// to the new backing store if reparented into another top-level / backing store. +void QWidgetRepaintManager::moveStaticWidgets(QWidget *reparented) +{ + Q_ASSERT(reparented); + QWidgetRepaintManager *newPaintManager = reparented->d_func()->maybeRepaintManager(); + if (newPaintManager == this) + return; + + int i = 0; + while (i < staticWidgets.size()) { + QWidget *w = staticWidgets.at(i); + if (reparented == w || reparented->isAncestorOf(w)) { + staticWidgets.removeAt(i); + if (newPaintManager) + newPaintManager->addStaticWidget(w); + } else { + ++i; + } + } +} + +void QWidgetRepaintManager::removeStaticWidget(QWidget *widget) +{ + staticWidgets.removeAll(widget); +} + +bool QWidgetRepaintManager::hasStaticContents() const +{ +#if defined(Q_OS_WIN) + return !staticWidgets.isEmpty(); +#else + return !staticWidgets.isEmpty() && false; +#endif +} + +/*! + Returns the static content inside the \a parent if non-zero; otherwise the static content + for the entire backing store is returned. The content will be clipped to \a withinClipRect + if non-empty. +*/ +QRegion QWidgetRepaintManager::staticContents(QWidget *parent, const QRect &withinClipRect) const +{ + if (!parent && tlw->testAttribute(Qt::WA_StaticContents)) { + const QSize surfaceGeometry(store->size()); + QRect surfaceRect(0, 0, surfaceGeometry.width(), surfaceGeometry.height()); + if (!withinClipRect.isEmpty()) + surfaceRect &= withinClipRect; + return QRegion(surfaceRect); + } + + QRegion region; + if (parent && parent->d_func()->children.isEmpty()) + return region; + + const bool clipToRect = !withinClipRect.isEmpty(); + const int count = staticWidgets.count(); + for (int i = 0; i < count; ++i) { + QWidget *w = staticWidgets.at(i); + QWidgetPrivate *wd = w->d_func(); + if (!wd->isOpaque || !wd->extra || wd->extra->staticContentsSize.isEmpty() + || !w->isVisible() || (parent && !parent->isAncestorOf(w))) { + continue; + } + + QRect rect(0, 0, wd->extra->staticContentsSize.width(), wd->extra->staticContentsSize.height()); + const QPoint offset = w->mapTo(parent ? parent : tlw, QPoint()); + if (clipToRect) + rect &= withinClipRect.translated(-offset); + if (rect.isEmpty()) + continue; + + rect &= wd->clipRect(); + if (rect.isEmpty()) + continue; + + QRegion visible(rect); + wd->clipToEffectiveMask(visible); + if (visible.isEmpty()) + continue; + wd->subtractOpaqueSiblings(visible, 0, /*alsoNonOpaque=*/true); + + visible.translate(offset); + region += visible; + } + + return region; +} + +void QWidgetRepaintManager::updateStaticContentsSize() +{ + for (int i = 0; i < staticWidgets.size(); ++i) { + QWidgetPrivate *wd = staticWidgets.at(i)->d_func(); + if (!wd->extra) + wd->createExtra(); + wd->extra->staticContentsSize = wd->data.crect.size(); + } +} + +// --------------------------------------------------------------------------- + +bool QWidgetRepaintManager::isDirty() const +{ + return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); +} + +/*! + Returns the region (in top-level coordinates) that needs repaint and/or flush. + + If the widget is non-zero, only the dirty region for the widget is returned + and the region will be in widget coordinates. +*/ +QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const +{ + const bool widgetDirty = widget && widget != tlw; + const QRect tlwRect(topLevelRect()); + const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); + if (surfaceGeometry != tlwRect && surfaceGeometry.size() != tlwRect.size()) { + if (widgetDirty) { + const QRect dirtyTlwRect = QRect(QPoint(), tlwRect.size()); + const QPoint offset(widget->mapTo(tlw, QPoint())); + const QRect dirtyWidgetRect(dirtyTlwRect & widget->rect().translated(offset)); + return dirtyWidgetRect.translated(-offset); + } + return QRect(QPoint(), tlwRect.size()); + } + + // Calculate the region that needs repaint. + QRegion r(dirty); + for (int i = 0; i < dirtyWidgets.size(); ++i) { + QWidget *w = dirtyWidgets.at(i); + if (widgetDirty && w != widget && !widget->isAncestorOf(w)) + continue; + r += w->d_func()->dirty.translated(w->mapTo(tlw, QPoint())); + } + + // Append the region that needs flush. + r += dirtyOnScreen; + + for (QWidget *w : dirtyOnScreenWidgets) { + if (widgetDirty && w != widget && !widget->isAncestorOf(w)) + continue; + QWidgetPrivate *wd = w->d_func(); + Q_ASSERT(wd->needsFlush); + r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); + } + + if (widgetDirty) { + // Intersect with the widget geometry and translate to its coordinates. + const QPoint offset(widget->mapTo(tlw, QPoint())); + r &= widget->rect().translated(offset); + r.translate(-offset); + } + return r; +} + /*! Invalidates the backing store when the widget is resized. Static areas are never invalidated unless absolutely needed. @@ -1283,86 +1443,6 @@ void QWidgetPrivate::invalidateBackingStore_resizeHelper(const QPoint &oldPos, c } } -/*! - Invalidates the \a r (in widget's coordinates) of the backing store, i.e. - all widgets intersecting with the region will be repainted when the backing - store is synced. -*/ -template -void QWidgetPrivate::invalidateBackingStore(const T &r) -{ - if (r.isEmpty()) - return; - - if (QCoreApplication::closingDown()) - return; - - Q_Q(QWidget); - if (!q->isVisible() || !q->updatesEnabled()) - return; - - QTLWExtra *tlwExtra = q->window()->d_func()->maybeTopData(); - if (!tlwExtra || tlwExtra->inTopLevelResize || !tlwExtra->backingStore) - return; - - T clipped(r); - clipped &= clipRect(); - if (clipped.isEmpty()) - return; - - if (!graphicsEffect && extra && extra->hasMask) { - QRegion masked(extra->mask); - masked &= clipped; - if (masked.isEmpty()) - return; - - tlwExtra->repaintManager->markDirty(masked, q, - QWidgetRepaintManager::UpdateLater, QWidgetRepaintManager::BufferInvalid); - } else { - tlwExtra->repaintManager->markDirty(clipped, q, - QWidgetRepaintManager::UpdateLater, QWidgetRepaintManager::BufferInvalid); - } -} -// Needed by tst_QWidget -template Q_AUTOTEST_EXPORT void QWidgetPrivate::invalidateBackingStore(const QRect &r); - -void QWidgetPrivate::repaint_sys(const QRegion &rgn) -{ - if (data.in_destructor) - return; - - if (shouldDiscardSyncRequest()) - return; - - Q_Q(QWidget); - if (q->testAttribute(Qt::WA_StaticContents)) { - if (!extra) - createExtra(); - extra->staticContentsSize = data.crect.size(); - } - - QPaintEngine *engine = q->paintEngine(); - - // QGLWidget does not support partial updates if: - // 1) The context is double buffered - // 2) The context is single buffered and auto-fill background is enabled. - const bool noPartialUpdateSupport = (engine && (engine->type() == QPaintEngine::OpenGL - || engine->type() == QPaintEngine::OpenGL2)) - && (usesDoubleBufferedGLContext || q->autoFillBackground()); - QRegion toBePainted(noPartialUpdateSupport ? q->rect() : rgn); - - toBePainted &= clipRect(); - clipToEffectiveMask(toBePainted); - if (toBePainted.isEmpty()) - return; // Nothing to repaint. - - drawWidget(q, toBePainted, QPoint(), QWidgetPrivate::DrawAsRoot | QWidgetPrivate::DrawPaintOnScreen, 0); - - if (Q_UNLIKELY(q->paintingActive())) - qWarning("QWidget::repaint: It is dangerous to leave painters active on a widget outside of the PaintEvent"); -} - - QT_END_NAMESPACE #include "moc_qwidgetrepaintmanager_p.cpp" diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index d0368b2232..5686457dfb 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -98,9 +98,6 @@ public: QWidgetRepaintManager(QWidget *t); ~QWidgetRepaintManager(); - void sync(QWidget *exposedWidget, const QRegion &exposedRegion); - void sync(); - QBackingStore *backingStore() const { return store; } void setBackingStore(QBackingStore *backingStore) { store = backingStore; } @@ -110,49 +107,44 @@ public: void removeDirtyWidget(QWidget *w); - inline void addStaticWidget(QWidget *widget) - { - if (!widget) - return; - - Q_ASSERT(widget->testAttribute(Qt::WA_StaticContents)); - if (!staticWidgets.contains(widget)) - staticWidgets.append(widget); - } - - // Move the reparented widget and all its static children from this backing store - // to the new backing store if reparented into another top-level / backing store. - inline void moveStaticWidgets(QWidget *reparented) - { - Q_ASSERT(reparented); - QWidgetRepaintManager *newPaintManager = reparented->d_func()->maybeRepaintManager(); - if (newPaintManager == this) - return; - - int i = 0; - while (i < staticWidgets.size()) { - QWidget *w = staticWidgets.at(i); - if (reparented == w || reparented->isAncestorOf(w)) { - staticWidgets.removeAt(i); - if (newPaintManager) - newPaintManager->addStaticWidget(w); - } else { - ++i; - } - } - } - - inline void removeStaticWidget(QWidget *widget) - { - staticWidgets.removeAll(widget); - } + void sync(QWidget *exposedWidget, const QRegion &exposedRegion); + void sync(); + void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); + + void addStaticWidget(QWidget *widget); + void moveStaticWidgets(QWidget *reparented); + void removeStaticWidget(QWidget *widget); QRegion staticContents(QWidget *widget = nullptr, const QRect &withinClipRect = QRect()) const; - void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); bool bltRect(const QRect &rect, int dx, int dy, QWidget *widget); private: + void updateLists(QWidget *widget); + + void addDirtyWidget(QWidget *widget, const QRegion &rgn); + void resetWidget(QWidget *widget); + + void addDirtyRenderToTextureWidget(QWidget *widget); + + void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); + + bool syncAllowed(); + void paintAndFlush(); + + void appendDirtyOnScreenWidget(QWidget *widget); + + void flush(QWidget *widget = nullptr); + void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); + + bool isDirty() const; + QRegion dirtyRegion(QWidget *widget = nullptr) const; + + bool hasStaticContents() const; + void updateStaticContentsSize(); + + QRect topLevelRect() const { return tlw->data->crect; } + QWidget *tlw; QRegion dirtyOnScreen; // needsFlush QRegion dirty; // needsRepaint @@ -168,92 +160,6 @@ private: QElapsedTimer perfTime; int perfFrames; - void sendUpdateRequest(QWidget *widget, UpdateTime updateTime); - - inline bool isDirty() const - { - return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); - } - - void paintAndFlush(); - - void flush(QWidget *widget = nullptr); - void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); - - QRegion dirtyRegion(QWidget *widget = nullptr) const; - - void updateLists(QWidget *widget); - - bool syncAllowed(); - - inline void addDirtyWidget(QWidget *widget, const QRegion &rgn) - { - if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { - QWidgetPrivate *widgetPrivate = widget->d_func(); -#if QT_CONFIG(graphicseffect) - if (widgetPrivate->graphicsEffect) - widgetPrivate->dirty = widgetPrivate->effectiveRectFor(rgn.boundingRect()); - else -#endif // QT_CONFIG(graphicseffect) - widgetPrivate->dirty = rgn; - dirtyWidgets.append(widget); - widgetPrivate->inDirtyList = true; - } - } - - inline void addDirtyRenderToTextureWidget(QWidget *widget) - { - if (widget && !widget->d_func()->inDirtyList && !widget->data->in_destructor) { - QWidgetPrivate *widgetPrivate = widget->d_func(); - Q_ASSERT(widgetPrivate->renderToTexture); - dirtyRenderToTextureWidgets.append(widget); - widgetPrivate->inDirtyList = true; - } - } - - inline QRect topLevelRect() const - { - return tlw->data->crect; - } - - inline void appendDirtyOnScreenWidget(QWidget *widget) - { - if (!widget) - return; - - if (!dirtyOnScreenWidgets.contains(widget)) - dirtyOnScreenWidgets.append(widget); - } - - inline void resetWidget(QWidget *widget) - { - if (widget) { - widget->d_func()->inDirtyList = false; - widget->d_func()->isScrolled = false; - widget->d_func()->isMoved = false; - widget->d_func()->dirty = QRegion(); - } - } - - inline void updateStaticContentsSize() - { - for (int i = 0; i < staticWidgets.size(); ++i) { - QWidgetPrivate *wd = staticWidgets.at(i)->d_func(); - if (!wd->extra) - wd->createExtra(); - wd->extra->staticContentsSize = wd->data.crect.size(); - } - } - - inline bool hasStaticContents() const - { -#if defined(Q_OS_WIN) - return !staticWidgets.isEmpty(); -#else - return !staticWidgets.isEmpty() && false; -#endif - } - Q_DISABLE_COPY_MOVE(QWidgetRepaintManager) }; -- cgit v1.2.3 From 9b14950ff600a4ce5a8698b67ab38907c50417f1 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 9 Jul 2019 10:34:31 +0300 Subject: Android: Update clang mkspecs Follow Google's BuildSystemMaintainers doc to simplify (a lot) the clang support It is needed to support future NDK releases painlessly. Also remove old workarounds. [ChangeLog][Android] Android depends on NDK r20+ Change-Id: Ib4c07fc71e0f5a264d804b0b3baa18ff79d07630 Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/android-clang/qmake.conf | 36 ++++++++++++++--------------------- mkspecs/android-g++/qmake.conf | 5 +++++ mkspecs/common/android-base-head.conf | 1 - mkspecs/common/android-base-tail.conf | 16 ++++------------ src/corelib/text/qstring.h | 9 --------- src/gui/text/qcssparser.cpp | 4 ---- 6 files changed, 23 insertions(+), 48 deletions(-) diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index 8569c08348..84ad884710 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -14,37 +14,29 @@ NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST QMAKE_CC = $$NDK_LLVM_PATH/bin/clang QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++ +# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md + equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ - QMAKE_CFLAGS += -target armv7-none-linux-androideabi -else: equals(ANDROID_TARGET_ARCH, armeabi): \ - QMAKE_CFLAGS += -target armv5te-none-linux-androideabi + QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "") else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \ - QMAKE_CFLAGS += -target aarch64-none-linux-android + QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "") else: equals(ANDROID_TARGET_ARCH, x86): \ - QMAKE_CFLAGS += -target i686-none-linux-android -mstackrealign + QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign else: equals(ANDROID_TARGET_ARCH, x86_64): \ - QMAKE_CFLAGS += -target x86_64-none-linux-android - -QMAKE_CFLAGS += -gcc-toolchain $$NDK_TOOLCHAIN_PATH -fno-limit-debug-info - -QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ -equals(ANDROID_TARGET_ARCH, armeabi-v7a): QMAKE_LINK += -Wl,--exclude-libs,libunwind.a + QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -QMAKE_CFLAGS += -DANDROID_HAS_WSTRING --sysroot=$$NDK_ROOT/sysroot \ - -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX \ - -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++/include \ - -isystem $$NDK_ROOT/sources/android/support/include \ - -isystem $$NDK_ROOT/sources/cxx-stl/llvm-libc++abi/include +QMAKE_CFLAGS += -fno-limit-debug-info -ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/llvm-libc++/libs/$$ANDROID_TARGET_ARCH +QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS -ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++_shared.so +ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/$$NDK_TOOLS_PREFIX/libc++_shared.so ANDROID_USE_LLVM = true -exists($$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so): \ - ANDROID_CXX_STL_LIBS = -lc++ -else: \ - ANDROID_CXX_STL_LIBS = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libc++.so.$$replace(ANDROID_PLATFORM, "android-", "") +QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz +QMAKE_LIBDIR_POST = +QMAKE_LFLAGS = +QMAKE_LIBS_PRIVATE = +ANDROID_CXX_STL_LIBS = include(../common/android-base-tail.conf) diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf index 0cb3558f96..451e12bc75 100644 --- a/mkspecs/android-g++/qmake.conf +++ b/mkspecs/android-g++/qmake.conf @@ -12,6 +12,7 @@ include(../common/android-base-head.conf) QMAKE_CC = $${CROSS_COMPILE}gcc QMAKE_CXX = $${CROSS_COMPILE}g++ QMAKE_LINK = $$QMAKE_CXX +QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "") ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/$$NDK_TOOLCHAIN_VERSION/libs/$$ANDROID_TARGET_ARCH ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libgnustl_shared.so @@ -32,4 +33,8 @@ else: \ LIBGCC_PATH_FULL = $$system("$$QMAKE_CXX -print-libgcc-file-name") ANDROID_SOURCES_CXX_STL_LIBDIR += $$dirname(LIBGCC_PATH_FULL) +QMAKE_LIBDIR_POST = $$ANDROID_SOURCES_CXX_STL_LIBDIR +QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH +equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64 + include(../common/android-base-tail.conf) diff --git a/mkspecs/common/android-base-head.conf b/mkspecs/common/android-base-head.conf index ba90ad5f17..7335b7f4cb 100644 --- a/mkspecs/common/android-base-head.conf +++ b/mkspecs/common/android-base-head.conf @@ -58,7 +58,6 @@ isEmpty(ANDROID_SDK_BUILD_TOOLS_REVISION) { } CONFIG += $$ANDROID_PLATFORM -QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "") ANDROID_PLATFORM_ROOT_PATH = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/ diff --git a/mkspecs/common/android-base-tail.conf b/mkspecs/common/android-base-tail.conf index edc255d08e..c970379f28 100644 --- a/mkspecs/common/android-base-tail.conf +++ b/mkspecs/common/android-base-tail.conf @@ -6,22 +6,17 @@ isEmpty(DEFAULT_ANDROID_NDK_ROOT): return() QMAKE_CFLAGS += -fstack-protector-strong -DANDROID equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ - QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove + QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp else: equals(ANDROID_TARGET_ARCH, armeabi): \ - QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float -fno-builtin-memmove -# -fno-builtin-memmove is used to workaround https://code.google.com/p/android/issues/detail?id=81692 + QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float QMAKE_CFLAGS_WARN_ON = -Wall -W QMAKE_CFLAGS_WARN_OFF = equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) { CONFIG += optimize_size QMAKE_CFLAGS_DEBUG = -g -marm -O0 - equals(ANDROID_TARGET_ARCH, armeabi):if(equals(NDK_TOOLCHAIN_VERSION, 4.8)|equals(NDK_TOOLCHAIN_VERSION, 4.9)) { - DEFINES += QT_OS_ANDROID_GCC_48_WORKAROUND - } else { - QMAKE_CFLAGS_RELEASE += -mthumb - QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb - } + QMAKE_CFLAGS_RELEASE += -mthumb + QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb } QMAKE_CFLAGS_SHLIB = -fPIC @@ -61,15 +56,12 @@ QMAKE_STRIP = QMAKE_RANLIB = $${CROSS_COMPILE}ranlib QMAKE_INCDIR_POST = -QMAKE_LIBDIR_POST = $$ANDROID_SOURCES_CXX_STL_LIBDIR QMAKE_INCDIR_X11 = QMAKE_LIBDIR_X11 = QMAKE_INCDIR_OPENGL = QMAKE_LIBDIR_OPENGL = QMAKE_LINK_SHLIB = $$QMAKE_LINK -QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64 QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 88286b902a..7b1351666d 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -57,15 +57,6 @@ #include #include -#if defined(Q_OS_ANDROID) && !defined(ANDROID_HAS_WSTRING) -// std::wstring is disabled on android's glibc, as bionic lacks certain features -// that libstdc++ checks for (like mbcslen). -namespace std -{ - typedef basic_string wstring; -} -#endif - #include #ifdef truncate diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index 0b2dedf5dc..ce7c7610c1 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -612,11 +612,7 @@ bool ValueExtractor::extractBorder(int *borders, QBrush *colors, BorderStyle *st case BorderRightStyle: styles[RightEdge] = decl.styleValue(); break; case BorderStyles: decl.styleValues(styles); break; -#ifndef QT_OS_ANDROID_GCC_48_WORKAROUND case BorderTopLeftRadius: radii[0] = sizeValue(decl); break; -#else - case BorderTopLeftRadius: new(radii)QSize(sizeValue(decl)); break; -#endif case BorderTopRightRadius: radii[1] = sizeValue(decl); break; case BorderBottomLeftRadius: radii[2] = sizeValue(decl); break; case BorderBottomRightRadius: radii[3] = sizeValue(decl); break; -- cgit v1.2.3 From d55712153a357cc5cc975bf599470619b7c77faa Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Wed, 21 Aug 2019 18:53:41 +0300 Subject: tst_NoQtEventLoop: destroy hidden windows Otherwise, we get a warning: QWARN : tst_NoQtEventLoop::consumeSocketEvents() QWindowsContext::windowsProc: No Qt Window found for event 0x2a3 (WM_MOUSELEAVE), hwnd=0x0x9b80646. in the event loop which is running by another test. So, add missing 'delete' call. Change-Id: Ib9b24155bdd6e78062a5234c317c9f878906e413 Reviewed-by: Friedemann Kleint --- tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp b/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp index 4fca9a07fc..19c5c8a4a0 100644 --- a/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp +++ b/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp @@ -258,8 +258,8 @@ void tst_NoQtEventLoop::consumeMouseEvents() ::SetWindowPos(mainWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); - Window *childWindow = new Window; - childWindow->setParent(QWindow::fromWinId((WId)mainWnd)); + QWindow *mainWindow = QWindow::fromWinId(reinterpret_cast(mainWnd)); + Window *childWindow = new Window(mainWindow); childWindow->setGeometry(margin, topVerticalMargin, width - 2 * margin, height - margin - topVerticalMargin); childWindow->show(); @@ -276,6 +276,7 @@ void tst_NoQtEventLoop::consumeMouseEvents() if (g_exit) break; } + delete mainWindow; QCOMPARE(testThread->passed(), true); -- cgit v1.2.3 From 8d302aea33d54d7930fc700ab44a55e058d7bfcc Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Tue, 20 Aug 2019 12:09:42 +0200 Subject: HTTP/2: use a non-default MAX_FRAME_SIZE And send it in our 'SETTINGS' frame. Add an auto-test for this and (as a bonus) - fix a bug accidentally introduced by the previous change. Task-number: QTBUG-77412 Change-Id: I4277ff47e8d8d3b6b8666fbcd7dc73c827f349c0 Reviewed-by: Volker Hilsheimer --- src/network/access/http2/http2protocol.cpp | 10 ++-- tests/auto/network/access/http2/http2srv.cpp | 6 ++- tests/auto/network/access/http2/http2srv.h | 1 + tests/auto/network/access/http2/tst_http2.cpp | 70 +++++++++++++++++++++++++++ 4 files changed, 83 insertions(+), 4 deletions(-) diff --git a/src/network/access/http2/http2protocol.cpp b/src/network/access/http2/http2protocol.cpp index 0290f9ac00..31da6fd616 100644 --- a/src/network/access/http2/http2protocol.cpp +++ b/src/network/access/http2/http2protocol.cpp @@ -75,9 +75,13 @@ Frame configurationToSettingsFrame(const QHttp2Configuration &config) builder.append(Settings::INITIAL_WINDOW_SIZE_ID); builder.append(config.streamReceiveWindowSize()); - // TODO: Max frame size; in future, if the need - // is proven, we can also set decoding table size - // and header list size. For now, defaults suffice. + if (config.maxFrameSize() != minPayloadLimit) { + builder.append(Settings::MAX_FRAME_SIZE_ID); + builder.append(config.maxFrameSize()); + } + // TODO: In future, if the need is proven, we can + // also send decoding table size and header list size. + // For now, defaults suffice. return builder.outboundFrame(); } diff --git a/tests/auto/network/access/http2/http2srv.cpp b/tests/auto/network/access/http2/http2srv.cpp index 1ddb6aa77d..a8eebf5a24 100644 --- a/tests/auto/network/access/http2/http2srv.cpp +++ b/tests/auto/network/access/http2/http2srv.cpp @@ -218,7 +218,7 @@ void Http2Server::sendDATA(quint32 streamID, quint32 windowSize) quint32 bytesToSend = std::min(windowSize, responseBody.size() - offset); quint32 bytesSent = 0; - const quint32 frameSizeLimit(clientSetting(Settings::MAX_FRAME_SIZE_ID, Http2::maxPayloadSize)); + const quint32 frameSizeLimit(clientSetting(Settings::MAX_FRAME_SIZE_ID, Http2::minPayloadLimit)); const uchar *src = reinterpret_cast(responseBody.constData() + offset); const bool last = offset + bytesToSend == quint32(responseBody.size()); @@ -236,6 +236,10 @@ void Http2Server::sendDATA(quint32 streamID, quint32 windowSize) src += chunkSize; bytesToSend -= chunkSize; bytesSent += chunkSize; + if (frameSizeLimit != Http2::minPayloadLimit) { + // Our test is probably interested in how many DATA frames were sent. + emit sendingData(); + } } if (interrupted.loadAcquire()) diff --git a/tests/auto/network/access/http2/http2srv.h b/tests/auto/network/access/http2/http2srv.h index 9cb846b0b3..3105684d59 100644 --- a/tests/auto/network/access/http2/http2srv.h +++ b/tests/auto/network/access/http2/http2srv.h @@ -128,6 +128,7 @@ Q_SIGNALS: void receivedRequest(quint32 streamID); void receivedData(quint32 streamID); void windowUpdate(quint32 streamID); + void sendingData(); private slots: void connectionEstablished(); diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 6a0dc6db02..e24a06bc34 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -82,6 +82,8 @@ RawSettings qt_H2ConfigurationToSettings(const QHttp2Configuration &config = qt_ RawSettings settings; settings[Http2::Settings::ENABLE_PUSH_ID] = config.serverPushEnabled(); settings[Http2::Settings::INITIAL_WINDOW_SIZE_ID] = config.streamReceiveWindowSize(); + if (config.maxFrameSize() != Http2::minPayloadLimit) + settings[Http2::Settings::MAX_FRAME_SIZE_ID] = config.maxFrameSize(); return settings; } @@ -107,6 +109,7 @@ private slots: void earlyResponse(); void connectToHost_data(); void connectToHost(); + void maxFrameSize(); protected slots: // Slots to listen to our in-process server: @@ -696,6 +699,73 @@ void tst_Http2::connectToHost() QVERIFY(reply->isFinished()); } +void tst_Http2::maxFrameSize() +{ +#if !QT_CONFIG(ssl) + QSKIP("TLS support is needed for this test"); +#endif // QT_CONFIG(ssl) + + // Here we test we send 'MAX_FRAME_SIZE' setting in our + // 'SETTINGS'. If done properly, our server will not chunk + // the payload into several DATA frames. + +#if QT_CONFIG(securetransport) + // Normally on macOS we use plain text only for SecureTransport + // does not support ALPN on the server side. With 'direct encrytped' + // we have to use TLS sockets (== private key) and thus suppress a + // keychain UI asking for permission to use a private key. + // Our CI has this, but somebody testing locally - will have a problem. + qputenv("QT_SSL_USE_TEMPORARY_KEYCHAIN", QByteArray("1")); + auto envRollback = qScopeGuard([](){ + qunsetenv("QT_SSL_USE_TEMPORARY_KEYCHAIN"); + }); +#endif // QT_CONFIG(securetransport) + + auto connectionType = H2Type::h2Alpn; + auto attribute = QNetworkRequest::HTTP2AllowedAttribute; + if (clearTextHTTP2) { + connectionType = H2Type::h2Direct; + attribute = QNetworkRequest::Http2DirectAttribute; + } + + auto h2Config = qt_defaultH2Configuration(); + h2Config.setMaxFrameSize(Http2::minPayloadLimit * 3); + + serverPort = 0; + nRequests = 1; + + ServerPtr srv(newServer(defaultServerSettings, connectionType, + qt_H2ConfigurationToSettings(h2Config))); + srv->setResponseBody(QByteArray(Http2::minPayloadLimit * 2, 'q')); + QMetaObject::invokeMethod(srv.data(), "startServer", Qt::QueuedConnection); + runEventLoop(); + QVERIFY(serverPort != 0); + + const QSignalSpy frameCounter(srv.data(), &Http2Server::sendingData); + auto url = requestUrl(connectionType); + url.setPath(QString("/stream1.html")); + + QNetworkRequest request(url); + request.setAttribute(attribute, QVariant(true)); + request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain")); + request.setHttp2Configuration(h2Config); + + QNetworkReply *reply = manager->get(request); + reply->ignoreSslErrors(); + connect(reply, &QNetworkReply::finished, this, &tst_Http2::replyFinished); + + runEventLoop(); + STOP_ON_FAILURE + + // Normally, with a 16kb limit, our server would split such + // a response into 3 'DATA' frames (16kb + 16kb + 0|END_STREAM). + QCOMPARE(frameCounter.count(), 1); + + QVERIFY(nRequests == 0); + QVERIFY(prefaceOK); + QVERIFY(serverGotSettingsACK); +} + void tst_Http2::serverStarted(quint16 port) { serverPort = port; -- cgit v1.2.3 From 181e5382e741c290d72010da9d6d74908e7b2d8f Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Tue, 20 Aug 2019 10:12:53 +0200 Subject: eglfs/kms: Add drm atomic blend_op property handling Add support for specifying the blend operation used when alpha- blending KMS planes. Only available with atomic modesetting. Set the environment variable QT_QPA_EGLFS_KMS_BLEND_OP to the enum value of the 'blend_op' property. Task-number: QTBUG-75659 Change-Id: If0ef5ba314b88adb530113b608d20fc9c027c5ec Reviewed-by: Laszlo Agocs --- src/platformsupport/kmsconvenience/qkmsdevice.cpp | 2 ++ src/platformsupport/kmsconvenience/qkmsdevice_p.h | 1 + .../platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp | 3 +++ 3 files changed, 6 insertions(+) diff --git a/src/platformsupport/kmsconvenience/qkmsdevice.cpp b/src/platformsupport/kmsconvenience/qkmsdevice.cpp index 07ef60c5ff..d9d76c1146 100644 --- a/src/platformsupport/kmsconvenience/qkmsdevice.cpp +++ b/src/platformsupport/kmsconvenience/qkmsdevice.cpp @@ -854,6 +854,8 @@ void QKmsDevice::discoverPlanes() plane.crtcYPropertyId = prop->prop_id; } else if (!strcasecmp(prop->name, "zpos")) { plane.zposPropertyId = prop->prop_id; + } else if (!strcasecmp(prop->name, "blend_op")) { + plane.blendOpPropertyId = prop->prop_id; } }); diff --git a/src/platformsupport/kmsconvenience/qkmsdevice_p.h b/src/platformsupport/kmsconvenience/qkmsdevice_p.h index 403972fbb8..77070c293d 100644 --- a/src/platformsupport/kmsconvenience/qkmsdevice_p.h +++ b/src/platformsupport/kmsconvenience/qkmsdevice_p.h @@ -178,6 +178,7 @@ struct QKmsPlane uint32_t crtcwidthPropertyId = 0; uint32_t crtcheightPropertyId = 0; uint32_t zposPropertyId = 0; + uint32_t blendOpPropertyId = 0; }; Q_DECLARE_OPERATORS_FOR_FLAGS(QKmsPlane::Rotations) diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp index 09a10bcc9c..2034632fb3 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp @@ -331,6 +331,9 @@ void QEglFSKmsGbmScreen::flip() static int zpos = qEnvironmentVariableIntValue("QT_QPA_EGLFS_KMS_ZPOS"); if (zpos) drmModeAtomicAddProperty(request, op.eglfs_plane->id, op.eglfs_plane->zposPropertyId, zpos); + static uint blendOp = uint(qEnvironmentVariableIntValue("QT_QPA_EGLFS_KMS_BLEND_OP")); + if (blendOp) + drmModeAtomicAddProperty(request, op.eglfs_plane->id, op.eglfs_plane->blendOpPropertyId, blendOp); } #endif } else { -- cgit v1.2.3 From f65cfadd041078b80389c178d4f8be055163bdae Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 22 Aug 2019 10:52:52 +0200 Subject: Improve readability of commands in VS project files The commands are separated by "if errorlevel 1 goto VCEnd" lines to make sure we abort on the first failure. However, we also insert magic comments starting with "Rem" for IncrediBuild. These do not need error checking. Also, the last command does not need error checking. The XML line ending entities are also unneeded. By using proper line endings we ensure that commands appear on separate lines in Visual Studio's property editor. Change-Id: Ifbf7525281e892c820034fafc64b555fff3dc756 Reviewed-by: Miguel Costa --- qmake/generators/win32/msbuild_objectmodel.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 3116238aa0..0515c7404f 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -300,14 +300,17 @@ inline XmlOutput::xml_output valueTagT( const triState v) return valueTag(v == _True ? "true" : "false"); } -static QString vcxCommandSeparator() +static QString commandLinesForOutput(QStringList commands) { // MSBuild puts the contents of the custom commands into a batch file and calls it. // As we want every sub-command to be error-checked (as is done by makefile-based // backends), we insert the checks ourselves, using the undocumented jump target. - static QString cmdSep = - QLatin1String(" if errorlevel 1 goto VCEnd "); - return cmdSep; + static QString errchk = QStringLiteral("if errorlevel 1 goto VCEnd"); + for (int i = commands.count() - 2; i >= 0; --i) { + if (!commands.at(i).startsWith("rem", Qt::CaseInsensitive)) + commands.insert(i + 1, errchk); + } + return commands.join('\n'); } static QString unquote(const QString &value) @@ -1658,7 +1661,7 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCCustomBuildTool &tool) { xml << tag("Command") << attrTag("Condition", condition) - << valueTag(tool.CommandLine.join(vcxCommandSeparator())); + << valueTag(commandLinesForOutput(tool.CommandLine)); } if ( !tool.Description.isEmpty() ) @@ -1712,7 +1715,7 @@ void VCXProjectWriter::write(XmlOutput &xml, const VCEventTool &tool) { xml << tag(tool.EventName) - << tag(_Command) << valueTag(tool.CommandLine.join(vcxCommandSeparator())) + << tag(_Command) << valueTag(commandLinesForOutput(tool.CommandLine)) << tag(_Message) << valueTag(tool.Description) << closetag(tool.EventName); } -- cgit v1.2.3 From 45f681e8183fc876f5943495edb18edf78f29158 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 22 Aug 2019 10:11:26 +0200 Subject: tst_QStyle: Remove unused baseline images (Windows Vista/macOS) The test contained outdated baseline images for 1) Windows Vista: They were only used for OS version Vista and do not match any more. 2) macOS: They were apparently were not in use any more Remove the testing and image comparison code. Task-number: QTBUG-76493 Change-Id: I91cec5113db8d1845b43f97ad2987e63d9f86ac7 Reviewed-by: Christian Ehrlicher --- .../widgets/styles/qstyle/images/mac/button.png | Bin 1785 -> 0 bytes .../widgets/styles/qstyle/images/mac/combobox.png | Bin 1808 -> 0 bytes .../widgets/styles/qstyle/images/mac/lineedit.png | Bin 953 -> 0 bytes .../auto/widgets/styles/qstyle/images/mac/mdi.png | Bin 3092 -> 0 bytes .../auto/widgets/styles/qstyle/images/mac/menu.png | Bin 1139 -> 0 bytes .../styles/qstyle/images/mac/radiobutton.png | Bin 1498 -> 0 bytes .../widgets/styles/qstyle/images/mac/slider.png | Bin 1074 -> 0 bytes .../widgets/styles/qstyle/images/mac/spinbox.png | Bin 1299 -> 0 bytes .../widgets/styles/qstyle/images/vista/button.png | Bin 722 -> 0 bytes .../styles/qstyle/images/vista/combobox.png | Bin 809 -> 0 bytes .../styles/qstyle/images/vista/lineedit.png | Bin 530 -> 0 bytes .../widgets/styles/qstyle/images/vista/menu.png | Bin 646 -> 0 bytes .../styles/qstyle/images/vista/radiobutton.png | Bin 844 -> 0 bytes .../widgets/styles/qstyle/images/vista/slider.png | Bin 575 -> 0 bytes .../widgets/styles/qstyle/images/vista/spinbox.png | Bin 583 -> 0 bytes tests/auto/widgets/styles/qstyle/qstyle.pro | 5 - tests/auto/widgets/styles/qstyle/testdata.qrc | 19 --- tests/auto/widgets/styles/qstyle/tst_qstyle.cpp | 127 --------------------- 18 files changed, 151 deletions(-) delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/button.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/combobox.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/lineedit.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/mdi.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/menu.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/radiobutton.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/slider.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/mac/spinbox.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/button.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/combobox.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/lineedit.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/menu.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/radiobutton.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/slider.png delete mode 100644 tests/auto/widgets/styles/qstyle/images/vista/spinbox.png delete mode 100644 tests/auto/widgets/styles/qstyle/testdata.qrc diff --git a/tests/auto/widgets/styles/qstyle/images/mac/button.png b/tests/auto/widgets/styles/qstyle/images/mac/button.png deleted file mode 100644 index 7b11325e87..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/button.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/combobox.png b/tests/auto/widgets/styles/qstyle/images/mac/combobox.png deleted file mode 100644 index ded0b11f29..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/combobox.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/lineedit.png b/tests/auto/widgets/styles/qstyle/images/mac/lineedit.png deleted file mode 100644 index 8d2861b65b..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/lineedit.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/mdi.png b/tests/auto/widgets/styles/qstyle/images/mac/mdi.png deleted file mode 100644 index 8c09ae4338..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/mdi.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/menu.png b/tests/auto/widgets/styles/qstyle/images/mac/menu.png deleted file mode 100644 index 5dd9111d69..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/menu.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/radiobutton.png b/tests/auto/widgets/styles/qstyle/images/mac/radiobutton.png deleted file mode 100644 index 8828e220a2..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/radiobutton.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/slider.png b/tests/auto/widgets/styles/qstyle/images/mac/slider.png deleted file mode 100644 index fc65035631..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/slider.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/mac/spinbox.png b/tests/auto/widgets/styles/qstyle/images/mac/spinbox.png deleted file mode 100644 index ee88441ecb..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/mac/spinbox.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/button.png b/tests/auto/widgets/styles/qstyle/images/vista/button.png deleted file mode 100644 index a6c45276ca..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/button.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/combobox.png b/tests/auto/widgets/styles/qstyle/images/vista/combobox.png deleted file mode 100644 index 9b82f64d32..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/combobox.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/lineedit.png b/tests/auto/widgets/styles/qstyle/images/vista/lineedit.png deleted file mode 100644 index b2c6ac1ae4..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/lineedit.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/menu.png b/tests/auto/widgets/styles/qstyle/images/vista/menu.png deleted file mode 100644 index b114099cc3..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/menu.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/radiobutton.png b/tests/auto/widgets/styles/qstyle/images/vista/radiobutton.png deleted file mode 100644 index c8aa7864df..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/radiobutton.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/slider.png b/tests/auto/widgets/styles/qstyle/images/vista/slider.png deleted file mode 100644 index 7c156ded9d..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/slider.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/images/vista/spinbox.png b/tests/auto/widgets/styles/qstyle/images/vista/spinbox.png deleted file mode 100644 index b8d0823ab2..0000000000 Binary files a/tests/auto/widgets/styles/qstyle/images/vista/spinbox.png and /dev/null differ diff --git a/tests/auto/widgets/styles/qstyle/qstyle.pro b/tests/auto/widgets/styles/qstyle/qstyle.pro index 9ad0940245..4dc0525c49 100644 --- a/tests/auto/widgets/styles/qstyle/qstyle.pro +++ b/tests/auto/widgets/styles/qstyle/qstyle.pro @@ -2,8 +2,3 @@ CONFIG += testcase TARGET = tst_qstyle QT += widgets testlib testlib-private SOURCES += tst_qstyle.cpp - -android:!android-embedded { - RESOURCES += \ - testdata.qrc -} diff --git a/tests/auto/widgets/styles/qstyle/testdata.qrc b/tests/auto/widgets/styles/qstyle/testdata.qrc deleted file mode 100644 index 29bb46726e..0000000000 --- a/tests/auto/widgets/styles/qstyle/testdata.qrc +++ /dev/null @@ -1,19 +0,0 @@ - - - images/mac/button.png - images/mac/combobox.png - images/mac/lineedit.png - images/mac/mdi.png - images/mac/menu.png - images/mac/radiobutton.png - images/mac/slider.png - images/mac/spinbox.png - images/vista/button.png - images/vista/combobox.png - images/vista/lineedit.png - images/vista/menu.png - images/vista/radiobutton.png - images/vista/slider.png - images/vista/spinbox.png - - diff --git a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp index 68e672e16d..ae084310b1 100644 --- a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp +++ b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp @@ -73,7 +73,6 @@ public: private: bool testAllFunctions(QStyle *); bool testScrollBarSubControls(); - void testPainting(QStyle *style, const QString &platform); private slots: void drawItemPixmap(); void init(); @@ -333,141 +332,15 @@ void tst_QStyle::testWindowsStyle() delete wstyle; } -void writeImage(const QString &fileName, QImage image) -{ - QImageWriter imageWriter(fileName); - imageWriter.setFormat("png"); - qDebug() << "result " << imageWriter.write(image); -} - -QImage readImage(const QString &fileName) -{ - QImageReader reader(fileName); - return reader.read(); -} - - #if defined(Q_OS_WIN) && !defined(QT_NO_STYLE_WINDOWSVISTA) && !defined(Q_OS_WINRT) void tst_QStyle::testWindowsVistaStyle() { QStyle *vistastyle = QStyleFactory::create("WindowsVista"); QVERIFY(testAllFunctions(vistastyle)); - - if (QOperatingSystemVersion::current().majorVersion() - == QOperatingSystemVersion::WindowsVista.majorVersion() - && QOperatingSystemVersion::current().minorVersion() - == QOperatingSystemVersion::WindowsVista.minorVersion()) - testPainting(vistastyle, "vista"); delete vistastyle; } #endif -void comparePixmap(const QString &filename, const QPixmap &pixmap) -{ - QImage oldFile = readImage(filename); - QPixmap oldPixmap = QPixmap::fromImage(oldFile); - if (!oldFile.isNull()) - QCOMPARE(pixmap, oldPixmap); - else - writeImage(filename, pixmap.toImage()); -} - -void tst_QStyle::testPainting(QStyle *style, const QString &platform) -{ -qDebug("TEST PAINTING"); - //Test Menu - QString fileName = "images/" + platform + "/menu.png"; - QMenu menu; - menu.setStyle(style); - menu.show(); - menu.addAction(new QAction("Test 1", &menu)); - menu.addAction(new QAction("Test 2", &menu)); - QPixmap pixmap = menu.grab(); - comparePixmap(fileName, pixmap); - - //Push button - fileName = "images/" + platform + "/button.png"; - QPushButton button("OK"); - button.setStyle(style); - button.show(); - pixmap = button.grab(); - button.hide(); - comparePixmap(fileName, pixmap); - - //Push button - fileName = "images/" + platform + "/radiobutton.png"; - QRadioButton radiobutton("Check"); - radiobutton.setStyle(style); - radiobutton.show(); - pixmap = radiobutton.grab(); - radiobutton.hide(); - comparePixmap(fileName, pixmap); - - //Combo box - fileName = "images/" + platform + "/combobox.png"; - QComboBox combobox; - combobox.setStyle(style); - combobox.addItem("Test 1"); - combobox.addItem("Test 2"); - combobox.show(); - pixmap = combobox.grab(); - combobox.hide(); - comparePixmap(fileName, pixmap); - - //Spin box - fileName = "images/" + platform + "/spinbox.png"; - QDoubleSpinBox spinbox; - spinbox.setLocale(QLocale(QLocale::English, QLocale::UnitedStates)); - spinbox.setStyle(style); - spinbox.show(); - pixmap = spinbox.grab(); - spinbox.hide(); - comparePixmap(fileName, pixmap); - QLocale::setDefault(QLocale::system()); - - //Slider - fileName = "images/" + platform + "/slider.png"; - QSlider slider; - slider.setStyle(style); - slider.show(); - pixmap = slider.grab(); - slider.hide(); - comparePixmap(fileName, pixmap); - - //Line edit - fileName = "images/" + platform + "/lineedit.png"; - QLineEdit lineedit("Test text"); - lineedit.setStyle(style); - lineedit.show(); - pixmap = lineedit.grab(); - lineedit.hide(); - comparePixmap(fileName, pixmap); - - //MDI - fileName = "images/" + platform + "/mdi.png"; - QMdiArea mdiArea; - mdiArea.addSubWindow(new QWidget(&mdiArea)); - mdiArea.resize(200, 200); - mdiArea.setStyle(style); - mdiArea.show(); - pixmap = mdiArea.grab(); - mdiArea.hide(); - comparePixmap(fileName, pixmap); - - // QToolButton - fileName = "images/" + platform + "/toolbutton.png"; - QToolButton tb; - tb.setToolButtonStyle(Qt::ToolButtonTextUnderIcon); - tb.setText("AaQqPpXx"); - tb.setIcon(style->standardPixmap(QStyle::SP_DirHomeIcon)); - tb.setStyle(style); - tb.show(); - pixmap = tb.grab(); - tb.hide(); - comparePixmap(fileName, pixmap); - -} - #ifdef Q_OS_MAC void tst_QStyle::testMacStyle() { -- cgit v1.2.3 From dd9da0441b18d1946a7b3d28e4e8819b1921de6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Mon, 25 Apr 2016 09:27:48 +0200 Subject: Compute logical DPI on a per-screen basis The logical DPI reported to applications is the platform screen logical DPI divided by the platform screen scale factor. Use the screen in question when calculating the DPI instead of the values from the main screen. QHighDpiScaling::logicalDpi now takes a QScreen pointer. Done-with: Friedemann Kleint Task-number: QTBUG-53022 Change-Id: I0f62b5878c37e3488e9a8cc48aef183ff822d0c4 Reviewed-by: Friedemann Kleint --- src/gui/kernel/qhighdpiscaling.cpp | 20 +++++++++----------- src/gui/kernel/qhighdpiscaling_p.h | 2 +- src/gui/kernel/qscreen.cpp | 6 +++--- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 64f1397771..95790b96a9 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -226,7 +226,6 @@ bool QHighDpiScaling::m_usePixelDensity = false; // use scale factor from platfo bool QHighDpiScaling::m_pixelDensityScalingActive = false; // pixel density scale factor > 1 bool QHighDpiScaling::m_globalScalingActive = false; // global scale factor is active bool QHighDpiScaling::m_screenFactorSet = false; // QHighDpiScaling::setScreenFactor has been used -QDpi QHighDpiScaling::m_logicalDpi = QDpi(-1,-1); // The scaled logical DPI of the primary screen /* Initializes the QHighDpiScaling global variables. Called before the @@ -314,14 +313,6 @@ void QHighDpiScaling::updateHighDpiScaling() } } m_active = m_globalScalingActive || m_screenFactorSet || m_pixelDensityScalingActive; - - QScreen *primaryScreen = QGuiApplication::primaryScreen(); - if (!primaryScreen) - return; - QPlatformScreen *platformScreen = primaryScreen->handle(); - qreal sf = screenSubfactor(platformScreen); - QDpi primaryDpi = platformScreen->logicalDpi(); - m_logicalDpi = QDpi(primaryDpi.first / sf, primaryDpi.second / sf); } /* @@ -447,9 +438,16 @@ qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen) return factor; } -QDpi QHighDpiScaling::logicalDpi() +QDpi QHighDpiScaling::logicalDpi(const QScreen *screen) { - return m_logicalDpi; + // (Note: m_active test is performed at call site.) + if (!screen) + return QDpi(96, 96); + + qreal platformScreenfactor = screenSubfactor(screen->handle()); + QDpi platformScreenDpi = screen->handle()->logicalDpi(); + return QDpi(platformScreenDpi.first / platformScreenfactor, + platformScreenDpi.second / platformScreenfactor); } QHighDpiScaling::ScaleAndOrigin QHighDpiScaling::scaleAndOrigin(const QPlatformScreen *platformScreen, QPoint *nativePosition) diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index 674b737808..e578625305 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -98,7 +98,7 @@ public: static QPoint mapPositionToNative(const QPoint &pos, const QPlatformScreen *platformScreen); static QPoint mapPositionToGlobal(const QPoint &pos, const QPoint &windowGlobalPosition, const QWindow *window); static QPoint mapPositionFromGlobal(const QPoint &pos, const QPoint &windowGlobalPosition, const QWindow *window); - static QDpi logicalDpi(); + static QDpi logicalDpi(const QScreen *screen); private: static qreal screenSubfactor(const QPlatformScreen *screen); diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp index c79f597414..e437678221 100644 --- a/src/gui/kernel/qscreen.cpp +++ b/src/gui/kernel/qscreen.cpp @@ -285,7 +285,7 @@ qreal QScreen::logicalDotsPerInchX() const { Q_D(const QScreen); if (QHighDpiScaling::isActive()) - return QHighDpiScaling::logicalDpi().first; + return QHighDpiScaling::logicalDpi(this).first; return d->logicalDpi.first; } @@ -301,7 +301,7 @@ qreal QScreen::logicalDotsPerInchY() const { Q_D(const QScreen); if (QHighDpiScaling::isActive()) - return QHighDpiScaling::logicalDpi().second; + return QHighDpiScaling::logicalDpi(this).second; return d->logicalDpi.second; } @@ -320,7 +320,7 @@ qreal QScreen::logicalDotsPerInchY() const qreal QScreen::logicalDotsPerInch() const { Q_D(const QScreen); - QDpi dpi = QHighDpiScaling::isActive() ? QHighDpiScaling::logicalDpi() : d->logicalDpi; + QDpi dpi = QHighDpiScaling::isActive() ? QHighDpiScaling::logicalDpi(this) : d->logicalDpi; return (dpi.first + dpi.second) * qreal(0.5); } -- cgit v1.2.3 From 900f2cb6f7070b4d426f3b83787ac489b8a2e827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Mon, 25 Apr 2016 11:31:34 +0200 Subject: Update Dpi and scale factor computation Remove pixelScale() in favor of logicalBaseDpi(). Compute scale factor based on logical DPI and logical base DPI, or optionally based on the physical DPI. Add policies for running the scale factor and adjusting the logical DPI reported to the application. The policies are set via environment variables: QT_SCALE_FACTOR_ROUNDING_POLICY=Round|Ceil|Floor|RoundPreferFloor|PassThrough QT_DPI_ADJUSTMENT_POLICY=AdjustDpi|DontAdjustDpi|AdjustUpOnly QT_USE_PHYSICAL_DPI=0|1 Done-with: Friedemann Kleint Task-number: QTBUG-53022 Change-Id: I4846f223186df665eb0a9c827eaef0a96d1f458f Reviewed-by: Friedemann Kleint --- src/gui/kernel/qhighdpiscaling.cpp | 234 ++++++++++++++++++--- src/gui/kernel/qhighdpiscaling_p.h | 29 +++ src/gui/kernel/qplatformscreen.cpp | 14 ++ src/gui/kernel/qplatformscreen.h | 1 + .../platforms/android/qandroidplatformscreen.cpp | 8 +- .../platforms/android/qandroidplatformscreen.h | 2 +- src/plugins/platforms/cocoa/qcocoascreen.h | 1 + src/plugins/platforms/windows/qwindowsscreen.cpp | 9 - src/plugins/platforms/windows/qwindowsscreen.h | 2 +- src/plugins/platforms/xcb/qxcbscreen.cpp | 13 -- src/plugins/platforms/xcb/qxcbscreen.h | 3 +- tests/manual/highdpi/highdpi.pro | 1 + 12 files changed, 264 insertions(+), 53 deletions(-) diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 95790b96a9..7ffbfbe1e5 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -46,6 +46,9 @@ #include #include +#include + +#include QT_BEGIN_NAMESPACE @@ -56,6 +59,18 @@ static const char legacyDevicePixelEnvVar[] = "QT_DEVICE_PIXEL_RATIO"; static const char scaleFactorEnvVar[] = "QT_SCALE_FACTOR"; static const char autoScreenEnvVar[] = "QT_AUTO_SCREEN_SCALE_FACTOR"; static const char screenFactorsEnvVar[] = "QT_SCREEN_SCALE_FACTORS"; +static const char scaleFactorRoundingPolicyEnvVar[] = "QT_SCALE_FACTOR_ROUNDING_POLICY"; +static const char dpiAdjustmentPolicyEnvVar[] = "QT_DPI_ADJUSTMENT_POLICY"; +static const char usePhysicalDpiEnvVar[] = "QT_USE_PHYSICAL_DPI"; + +// Reads and interprets the given environment variable as a bool, +// returns the default value if not set. +static bool qEnvironmentVariableAsBool(const char *name, bool defaultValue) +{ + bool ok = false; + int value = qEnvironmentVariableIntValue(name, &ok); + return ok ? value > 0 : defaultValue; +} static inline qreal initialGlobalScaleFactor() { @@ -249,6 +264,191 @@ static inline bool usePixelDensity() qgetenv(legacyDevicePixelEnvVar).compare("auto", Qt::CaseInsensitive) == 0); } +qreal QHighDpiScaling::rawScaleFactor(const QPlatformScreen *screen) +{ + // Determine if physical DPI should be used + static const bool usePhysicalDpi = qEnvironmentVariableAsBool(usePhysicalDpiEnvVar, false); + + // Calculate scale factor beased on platform screen DPI values + qreal factor; + QDpi platformBaseDpi = screen->logicalBaseDpi(); + if (usePhysicalDpi) { + qreal platformPhysicalDpi = screen->screen()->physicalDotsPerInch(); + factor = qreal(platformPhysicalDpi) / qreal(platformBaseDpi.first); + } else { + QDpi platformLogicalDpi = screen->logicalDpi(); + factor = qreal(platformLogicalDpi.first) / qreal(platformBaseDpi.first); + } + + return factor; +} + +template +struct EnumLookup +{ + const char *name; + EnumType value; +}; + +template +static bool operator==(const EnumLookup &e1, const EnumLookup &e2) +{ + return qstricmp(e1.name, e2.name) == 0; +} + +template +static QByteArray joinEnumValues(const EnumLookup *i1, const EnumLookup *i2) +{ + QByteArray result; + for (; i1 < i2; ++i1) { + if (!result.isEmpty()) + result += QByteArrayLiteral(", "); + result += i1->name; + } + return result; +} + +using ScaleFactorRoundingPolicyLookup = EnumLookup; + +static const ScaleFactorRoundingPolicyLookup scaleFactorRoundingPolicyLookup[] = +{ + {"Round", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Round}, + {"Ceil", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Ceil}, + {"Floor", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Floor}, + {"RoundPreferFloor", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor}, + {"PassThrough", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::PassThrough} +}; + +static QHighDpiScaling::HighDpiScaleFactorRoundingPolicy + lookupScaleFactorRoundingPolicy(const QByteArray &v) +{ + auto end = std::end(scaleFactorRoundingPolicyLookup); + auto it = std::find(std::begin(scaleFactorRoundingPolicyLookup), end, + ScaleFactorRoundingPolicyLookup{v.constData(), QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Unset}); + return it != end ? it->value : QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Unset; +} + +using DpiAdjustmentPolicyLookup = EnumLookup; + +static const DpiAdjustmentPolicyLookup dpiAdjustmentPolicyLookup[] = +{ + {"AdjustDpi", QHighDpiScaling::DpiAdjustmentPolicy::Enabled}, + {"DontAdjustDpi", QHighDpiScaling::DpiAdjustmentPolicy::Disabled}, + {"AdjustUpOnly", QHighDpiScaling::DpiAdjustmentPolicy::UpOnly} +}; + +static QHighDpiScaling::DpiAdjustmentPolicy + lookupDpiAdjustmentPolicy(const QByteArray &v) +{ + auto end = std::end(dpiAdjustmentPolicyLookup); + auto it = std::find(std::begin(dpiAdjustmentPolicyLookup), end, + DpiAdjustmentPolicyLookup{v.constData(), QHighDpiScaling::DpiAdjustmentPolicy::Unset}); + return it != end ? it->value : QHighDpiScaling::DpiAdjustmentPolicy::Unset; +} + +qreal QHighDpiScaling::roundScaleFactor(qreal rawFactor) +{ + // Apply scale factor rounding policy. Using mathematically correct rounding + // may not give the most desirable visual results, especially for + // critical fractions like .5. In general, rounding down results in visual + // sizes that are smaller than the ideal size, and opposite for rounding up. + // Rounding down is then preferable since "small UI" is a more acceptable + // high-DPI experience than "large UI". + static auto scaleFactorRoundingPolicy = HighDpiScaleFactorRoundingPolicy::Unset; + + // Determine rounding policy + if (scaleFactorRoundingPolicy == HighDpiScaleFactorRoundingPolicy::Unset) { + // Check environment + if (qEnvironmentVariableIsSet(scaleFactorRoundingPolicyEnvVar)) { + QByteArray policyText = qgetenv(scaleFactorRoundingPolicyEnvVar); + auto policyEnumValue = lookupScaleFactorRoundingPolicy(policyText); + if (policyEnumValue != HighDpiScaleFactorRoundingPolicy::Unset) { + scaleFactorRoundingPolicy = policyEnumValue; + } else { + auto values = joinEnumValues(std::begin(scaleFactorRoundingPolicyLookup), + std::end(scaleFactorRoundingPolicyLookup)); + qWarning("Unknown scale factor rounding policy: %s. Supported values are: %s.", + policyText.constData(), values.constData()); + } + } else { + // Set default policy if no environment variable is set. + scaleFactorRoundingPolicy = HighDpiScaleFactorRoundingPolicy::RoundPreferFloor; + } + } + + // Apply rounding policy. + qreal roundedFactor = rawFactor; + switch (scaleFactorRoundingPolicy) { + case HighDpiScaleFactorRoundingPolicy::Round: + roundedFactor = qRound(rawFactor); + break; + case HighDpiScaleFactorRoundingPolicy::Ceil: + roundedFactor = qCeil(rawFactor); + break; + case HighDpiScaleFactorRoundingPolicy::Floor: + roundedFactor = qFloor(rawFactor); + break; + case HighDpiScaleFactorRoundingPolicy::RoundPreferFloor: + // Round up for .75 and higher. This favors "small UI" over "large UI". + roundedFactor = rawFactor - qFloor(rawFactor) < 0.75 + ? qFloor(rawFactor) : qCeil(rawFactor); + break; + case HighDpiScaleFactorRoundingPolicy::PassThrough: + case HighDpiScaleFactorRoundingPolicy::Unset: + break; + } + + // Don't round down to to zero; clamp the minimum (rounded) factor to 1. + // This is not a common case but can happen if a display reports a very + // low DPI. + if (scaleFactorRoundingPolicy != HighDpiScaleFactorRoundingPolicy::PassThrough) + roundedFactor = qMax(roundedFactor, qreal(1)); + + return roundedFactor; +} + +QDpi QHighDpiScaling::effectiveLogicalDpi(const QPlatformScreen *screen, qreal rawFactor, qreal roundedFactor) +{ + // Apply DPI adjustment policy, if needed. If enabled this will change the + // reported logical DPI to account for the difference between the rounded + // scale factor and the actual scale factor. The effect is that text size + // will be correct for the screen dpi, but may be (slightly) out of sync + // with the rest of the UI. The amount of out-of-synch-ness depends on how + // well user code handles a non-standard DPI values, but since the + // adjustment is small (typically +/- 48 max) this might be OK. + static auto dpiAdjustmentPolicy = DpiAdjustmentPolicy::Unset; + + // Determine adjustment policy. + if (dpiAdjustmentPolicy == DpiAdjustmentPolicy::Unset) { + if (qEnvironmentVariableIsSet(dpiAdjustmentPolicyEnvVar)) { + QByteArray policyText = qgetenv(dpiAdjustmentPolicyEnvVar); + auto policyEnumValue = lookupDpiAdjustmentPolicy(policyText); + if (policyEnumValue != DpiAdjustmentPolicy::Unset) { + dpiAdjustmentPolicy = policyEnumValue; + } else { + auto values = joinEnumValues(std::begin(dpiAdjustmentPolicyLookup), + std::end(dpiAdjustmentPolicyLookup)); + qWarning("Unknown DPI adjustment policy: %s. Supported values are: %s.", + policyText.constData(), values.constData()); + } + } + if (dpiAdjustmentPolicy == DpiAdjustmentPolicy::Unset) + dpiAdjustmentPolicy = DpiAdjustmentPolicy::UpOnly; + } + + // Apply adjustment policy. + const QDpi baseDpi = screen->logicalBaseDpi(); + const qreal dpiAdjustmentFactor = rawFactor / roundedFactor; + + // Return the base DPI for cases where there is no adjustment + if (dpiAdjustmentPolicy == DpiAdjustmentPolicy::Disabled) + return baseDpi; + if (dpiAdjustmentPolicy == DpiAdjustmentPolicy::UpOnly && dpiAdjustmentFactor < 1) + return baseDpi; + + return QDpi(baseDpi.first * dpiAdjustmentFactor, baseDpi.second * dpiAdjustmentFactor); +} + void QHighDpiScaling::initHighDpiScaling() { // Determine if there is a global scale factor set. @@ -259,8 +459,6 @@ void QHighDpiScaling::initHighDpiScaling() m_pixelDensityScalingActive = false; //set in updateHighDpiScaling below - // we update m_active in updateHighDpiScaling, but while we create the - // screens, we have to assume that m_usePixelDensity implies scaling m_active = m_globalScalingActive || m_usePixelDensity; } @@ -312,7 +510,7 @@ void QHighDpiScaling::updateHighDpiScaling() ++i; } } - m_active = m_globalScalingActive || m_screenFactorSet || m_pixelDensityScalingActive; + m_active = m_globalScalingActive || m_usePixelDensity; } /* @@ -413,22 +611,8 @@ qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen) { qreal factor = qreal(1.0); if (screen) { - if (m_usePixelDensity) { - qreal pixelDensity = screen->pixelDensity(); - - // Pixel density reported by the screen is sometimes not precise enough, - // so recalculate it: divide px (physical pixels) by dp (device-independent pixels) - // for both width and height, and then use the average if it is different from - // the one initially reported by the screen - QRect screenGeometry = screen->geometry(); - qreal wFactor = qreal(screenGeometry.width()) / qRound(screenGeometry.width() / pixelDensity); - qreal hFactor = qreal(screenGeometry.height()) / qRound(screenGeometry.height() / pixelDensity); - qreal averageDensity = (wFactor + hFactor) / 2; - if (!qFuzzyCompare(pixelDensity, averageDensity)) - pixelDensity = averageDensity; - - factor *= pixelDensity; - } + if (m_usePixelDensity) + factor *= roundScaleFactor(rawScaleFactor(screen)); if (m_screenFactorSet) { QVariant screenFactor = screen->screen()->property(scaleFactorProperty); if (screenFactor.isValid()) @@ -441,13 +625,15 @@ qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen) QDpi QHighDpiScaling::logicalDpi(const QScreen *screen) { // (Note: m_active test is performed at call site.) - if (!screen) + if (!screen || !screen->handle()) return QDpi(96, 96); - qreal platformScreenfactor = screenSubfactor(screen->handle()); - QDpi platformScreenDpi = screen->handle()->logicalDpi(); - return QDpi(platformScreenDpi.first / platformScreenfactor, - platformScreenDpi.second / platformScreenfactor); + if (!m_usePixelDensity) + return screen->handle()->logicalDpi(); + + const qreal scaleFactor = rawScaleFactor(screen->handle()); + const qreal roundedScaleFactor = roundScaleFactor(scaleFactor); + return effectiveLogicalDpi(screen->handle(), scaleFactor, roundedScaleFactor); } QHighDpiScaling::ScaleAndOrigin QHighDpiScaling::scaleAndOrigin(const QPlatformScreen *platformScreen, QPoint *nativePosition) diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index e578625305..e24628a69a 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -72,7 +72,33 @@ typedef QPair QDpi; #ifndef QT_NO_HIGHDPISCALING class Q_GUI_EXPORT QHighDpiScaling { + Q_GADGET public: + enum class HighDpiScaleFactorRoundingPolicy { + Unset, + Round, + Ceil, + Floor, + RoundPreferFloor, + PassThrough + }; + Q_ENUM(HighDpiScaleFactorRoundingPolicy) + + enum class DpiAdjustmentPolicy { + Unset, + Enabled, + Disabled, + UpOnly + }; + Q_ENUM(DpiAdjustmentPolicy) + + QHighDpiScaling() = delete; + ~QHighDpiScaling() = delete; + QHighDpiScaling(const QHighDpiScaling &) = delete; + QHighDpiScaling &operator=(const QHighDpiScaling &) = delete; + QHighDpiScaling(QHighDpiScaling &&) = delete; + QHighDpiScaling &operator=(QHighDpiScaling &&) = delete; + static void initHighDpiScaling(); static void updateHighDpiScaling(); static void setGlobalFactor(qreal factor); @@ -101,6 +127,9 @@ public: static QDpi logicalDpi(const QScreen *screen); private: + static qreal rawScaleFactor(const QPlatformScreen *screen); + static qreal roundScaleFactor(qreal rawFactor); + static QDpi effectiveLogicalDpi(const QPlatformScreen *screen, qreal rawFactor, qreal roundedFactor); static qreal screenSubfactor(const QPlatformScreen *screen); static qreal m_factor; diff --git a/src/gui/kernel/qplatformscreen.cpp b/src/gui/kernel/qplatformscreen.cpp index 9c5876550a..fc405dee00 100644 --- a/src/gui/kernel/qplatformscreen.cpp +++ b/src/gui/kernel/qplatformscreen.cpp @@ -193,6 +193,20 @@ QDpi QPlatformScreen::logicalDpi() const 25.4 * s.height() / ps.height()); } +/*! + Reimplement to return the base logical DPI for the platform. This + DPI value should correspond to a standard-DPI (1x) display. The + default implementation returns 96. + + QtGui will use this value (together with logicalDpi) to compute + the scale factor when high-DPI scaling is enabled: + factor = logicalDPI / baseDPI +*/ +QDpi QPlatformScreen::logicalBaseDpi() const +{ + return QDpi(96, 96); +} + /*! Reimplement this function in subclass to return the device pixel ratio for the screen. This is the ratio between physical pixels and the diff --git a/src/gui/kernel/qplatformscreen.h b/src/gui/kernel/qplatformscreen.h index b9ecc80320..1012d97324 100644 --- a/src/gui/kernel/qplatformscreen.h +++ b/src/gui/kernel/qplatformscreen.h @@ -115,6 +115,7 @@ public: virtual QSizeF physicalSize() const; virtual QDpi logicalDpi() const; + virtual QDpi logicalBaseDpi() const; virtual qreal devicePixelRatio() const; virtual qreal pixelDensity() const; diff --git a/src/plugins/platforms/android/qandroidplatformscreen.cpp b/src/plugins/platforms/android/qandroidplatformscreen.cpp index 7dc8bb8080..80757c2135 100644 --- a/src/plugins/platforms/android/qandroidplatformscreen.cpp +++ b/src/plugins/platforms/android/qandroidplatformscreen.cpp @@ -401,15 +401,17 @@ void QAndroidPlatformScreen::doRedraw() m_dirtyRect = QRect(); } +static const int androidLogicalDpi = 72; + QDpi QAndroidPlatformScreen::logicalDpi() const { - qreal lDpi = QtAndroid::scaledDensity() * 72; + qreal lDpi = QtAndroid::scaledDensity() * androidLogicalDpi; return QDpi(lDpi, lDpi); } -qreal QAndroidPlatformScreen::pixelDensity() const +QDpi QAndroidPlatformScreen::logicalBaseDpi() const { - return QtAndroid::pixelDensity(); + return QDpi(androidLogicalDpi, androidLogicalDpi); } Qt::ScreenOrientation QAndroidPlatformScreen::orientation() const diff --git a/src/plugins/platforms/android/qandroidplatformscreen.h b/src/plugins/platforms/android/qandroidplatformscreen.h index f15aeae3fd..5dc158e351 100644 --- a/src/plugins/platforms/android/qandroidplatformscreen.h +++ b/src/plugins/platforms/android/qandroidplatformscreen.h @@ -103,7 +103,7 @@ protected: private: QDpi logicalDpi() const override; - qreal pixelDensity() const override; + QDpi logicalBaseDpi() const override; Qt::ScreenOrientation orientation() const override; Qt::ScreenOrientation nativeOrientation() const override; void surfaceChanged(JNIEnv *env, jobject surface, int w, int h) override; diff --git a/src/plugins/platforms/cocoa/qcocoascreen.h b/src/plugins/platforms/cocoa/qcocoascreen.h index 491af2fe9c..60243b79be 100644 --- a/src/plugins/platforms/cocoa/qcocoascreen.h +++ b/src/plugins/platforms/cocoa/qcocoascreen.h @@ -68,6 +68,7 @@ public: qreal devicePixelRatio() const override { return m_devicePixelRatio; } QSizeF physicalSize() const override { return m_physicalSize; } QDpi logicalDpi() const override { return m_logicalDpi; } + QDpi logicalBaseDpi() const override { return m_logicalDpi; } qreal refreshRate() const override { return m_refreshRate; } QString name() const override { return m_name; } QPlatformCursor *cursor() const override { return m_cursor; } diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp index 282c0b107e..8cd09a34eb 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.cpp +++ b/src/plugins/platforms/windows/qwindowsscreen.cpp @@ -256,15 +256,6 @@ QWindow *QWindowsScreen::windowAt(const QPoint &screenPoint, unsigned flags) return result; } -qreal QWindowsScreen::pixelDensity() const -{ - // QTBUG-49195: Use logical DPI instead of physical DPI to calculate - // the pixel density since it is reflects the Windows UI scaling. - // High DPI auto scaling should be disabled when the user chooses - // small fonts on a High DPI monitor, resulting in lower logical DPI. - return qMax(1, qRound(logicalDpi().first / 96)); -} - /*! \brief Determine siblings in a virtual desktop system. diff --git a/src/plugins/platforms/windows/qwindowsscreen.h b/src/plugins/platforms/windows/qwindowsscreen.h index 0ccebf6d71..2fd56f53cf 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.h +++ b/src/plugins/platforms/windows/qwindowsscreen.h @@ -87,7 +87,7 @@ public: QImage::Format format() const override { return m_data.format; } QSizeF physicalSize() const override { return m_data.physicalSizeMM; } QDpi logicalDpi() const override { return m_data.dpi; } - qreal pixelDensity() const override; + QDpi logicalBaseDpi() const override { return QDpi(96, 96); }; qreal devicePixelRatio() const override { return 1.0; } qreal refreshRate() const override { return m_data.refreshRateHz; } QString name() const override { return m_data.name; } diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp index 8c34bd9c91..145f40ce80 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.cpp +++ b/src/plugins/platforms/xcb/qxcbscreen.cpp @@ -679,11 +679,6 @@ QDpi QXcbScreen::logicalDpi() const return m_virtualDesktop->dpi(); } -qreal QXcbScreen::pixelDensity() const -{ - return m_pixelDensity; -} - QPlatformCursor *QXcbScreen::cursor() const { return m_cursor; @@ -747,14 +742,6 @@ void QXcbScreen::updateGeometry(const QRect &geometry, uint8_t rotation) if (m_sizeMillimeters.isEmpty()) m_sizeMillimeters = sizeInMillimeters(geometry.size(), m_virtualDesktop->dpi()); - qreal dpi = forcedDpi(); - if (dpi <= 0) - dpi = geometry.width() / physicalSize().width() * qreal(25.4); - - // Use 128 as a reference DPI on small screens. This favors "small UI" over "large UI". - qreal referenceDpi = physicalSize().width() <= 320 ? 128 : 96; - - m_pixelDensity = qMax(1, qRound(dpi/referenceDpi)); m_geometry = geometry; m_availableGeometry = geometry & m_virtualDesktop->workArea(); QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry); diff --git a/src/plugins/platforms/xcb/qxcbscreen.h b/src/plugins/platforms/xcb/qxcbscreen.h index ec3b07bfb7..62931d2500 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.h +++ b/src/plugins/platforms/xcb/qxcbscreen.h @@ -161,7 +161,7 @@ public: QImage::Format format() const override; QSizeF physicalSize() const override { return m_sizeMillimeters; } QDpi logicalDpi() const override; - qreal pixelDensity() const override; + QDpi logicalBaseDpi() const override { return QDpi(96, 96); }; QPlatformCursor *cursor() const override; qreal refreshRate() const override { return m_refreshRate; } Qt::ScreenOrientation orientation() const override { return m_orientation; } @@ -227,7 +227,6 @@ private: Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation; QXcbCursor *m_cursor; int m_refreshRate = 60; - int m_pixelDensity = 1; QEdidParser m_edid; }; diff --git a/tests/manual/highdpi/highdpi.pro b/tests/manual/highdpi/highdpi.pro index 9db083cd82..2de8ed3bb5 100644 --- a/tests/manual/highdpi/highdpi.pro +++ b/tests/manual/highdpi/highdpi.pro @@ -15,3 +15,4 @@ HEADERS += \ RESOURCES += \ highdpi.qrc +DEFINES += HAVE_SCREEN_BASE_DPI -- cgit v1.2.3 From 3e5362bfa123cfc0b56c77d5e34ad63ea6e9f89a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 27 Apr 2016 01:15:48 +0200 Subject: =?UTF-8?q?HighDPI:=20Add=20=E2=80=9Cmetrics=E2=80=9D=20manual=20t?= =?UTF-8?q?est?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This test displays a summary of relevant DPI and scale factor/devicePixelRatio values: - DPI and DPR as seen by the application - Input from QPlatformScreen - Input from environment variables. Task-number: QTBUG-53022 Change-Id: I340391624b202e342f22902ffbd7228fe7fbe94b Reviewed-by: Friedemann Kleint --- tests/manual/highdpi/main.cpp | 89 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/tests/manual/highdpi/main.cpp b/tests/manual/highdpi/main.cpp index 7225587ac0..8884c5feed 100644 --- a/tests/manual/highdpi/main.cpp +++ b/tests/manual/highdpi/main.cpp @@ -37,10 +37,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include #include @@ -55,9 +57,16 @@ #include #include #include +#include #include "dragwidget.h" +static QTextStream &operator<<(QTextStream &str, const QRect &r) +{ + str << r.width() << 'x' << r.height() << forcesign << r.x() << r.y() << noforcesign; + return str; +} + class DemoContainerBase { public: @@ -1176,6 +1185,85 @@ public: } }; +class MetricsTest : public QWidget +{ + QPlainTextEdit *m_textEdit; + +public: + MetricsTest() + { + qDebug() << R"( +MetricsTest +Relevant environment variables are: +QT_FONT_DPI=N +QT_SCALE_FACTOR=n +QT_ENABLE_HIGHDPI_SCALING=0|1 +QT_USE_PHYSICAL_DPI=0|1 +QT_SCREEN_SCALE_FACTORS=N;N;N or QT_SCREEN_SCALE_FACTORS=name:N +QT_SCALE_FACTOR_ROUNDING_POLICY=Round|Ceil|Floor|RoundPreferFloor|PassThrough +QT_DPI_ADJUSTMENT_POLICY=AdjustDpi|DontAdjustDpi|AdjustUpOnly)"; + + resize(480, 360); + + QVBoxLayout *layout = new QVBoxLayout(); + setLayout(layout); + + m_textEdit = new QPlainTextEdit; + m_textEdit->setReadOnly(true); + layout->addWidget(m_textEdit); + } + + void updateMetrics() + { + QString text; + QTextStream str(&text); + + auto currentScreen = windowHandle()->screen(); + const auto screens = QGuiApplication::screens(); + for (int i = 0, size = screens.size(); i < size; ++i) { + auto screen = screens.at(i); + auto platformScreen = screen->handle(); + str << "Screen #" << i << " \"" << screen->name() << '"'; + if (screen == currentScreen) + str << " [current]"; + if (screen == QGuiApplication::primaryScreen()) + str << " [primary]"; + str << "\n screen geometry: " << screen->geometry() + << "\n platform screen geometry: " << platformScreen->geometry() + << "\n platform screen logicalDpi: " << platformScreen->logicalDpi().first; + +#ifdef HAVE_SCREEN_BASE_DPI + str << "\n platform screen logicalBaseDpi: " << platformScreen->logicalBaseDpi().first; +#endif + str << "\n platform screen devicePixelRatio: " <devicePixelRatio() + << "\n platform screen physicalDpi: " << screen->physicalDotsPerInch() + << "\n\n"; + } + + str << "widget devicePixelRatio: " << this->devicePixelRatioF() + << "\nwidget logicalDpi: " << this->logicalDpiX() + << "\n\nQT_FONT_DPI: " << qgetenv("QT_FONT_DPI") + << "\nQT_SCALE_FACTOR: " << qgetenv("QT_SCALE_FACTOR") + << "\nQT_ENABLE_HIGHDPI_SCALING: " << qgetenv("QT_ENABLE_HIGHDPI_SCALING") + << "\nQT_SCREEN_SCALE_FACTORS: " << qgetenv("QT_SCREEN_SCALE_FACTORS") + << "\nQT_USE_PHYSICAL_DPI: " << qgetenv("QT_USE_PHYSICAL_DPI") + << "\nQT_SCALE_FACTOR_ROUNDING_POLICY: " << qgetenv("QT_SCALE_FACTOR_ROUNDING_POLICY") + << "\nQT_DPI_ADJUSTMENT_POLICY: " << qgetenv("QT_DPI_ADJUSTMENT_POLICY") + << '\n'; + + m_textEdit->setPlainText(text); + } + + void paintEvent(QPaintEvent *ev) + { + // We get a paint event on screen change, so this is a convenient place + // to update the metrics, at the possible risk of doing something else + // than painting in a paint event. + updateMetrics(); + QWidget::paintEvent(ev); + } +}; + int main(int argc, char **argv) { QApplication app(argc, argv); @@ -1212,6 +1300,7 @@ int main(int argc, char **argv) demoList << new DemoContainer("screens", "Test screen and window positioning"); demoList << new DemoContainer("physicalsize", "Test manual highdpi support using physicalDotsPerInch"); demoList << new DemoContainer("graphicsview", "Test QGraphicsView caching"); + demoList << new DemoContainer("metrics", "Show display metrics"); foreach (DemoContainerBase *demo, demoList) parser.addOption(demo->option()); -- cgit v1.2.3 From 70a893e9bee7c1b8994a1218038a302e406d0aa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Thu, 2 Jun 2016 09:52:21 +0200 Subject: Move QT_FONT_DPI to cross-platform code This makes it possible to test the effects of setting Qt::AA_HighDpiScaling/QT_AUTO_SCREEN_SCALE_FACTOR, with different DPI values on all platforms. This also makes it possible to access the actual DPI values reported by the OS/WS via the QPlatformScreen API. A drawback is that there is no single place to check the environment variable; currently done in three places. This may be further simplified later on. Done-with: Friedemann Kleint Task-number: QTBUG-53022 Change-Id: Idd6463219d3ae58fe0ab72c17686cce2eb9dbadd Reviewed-by: Friedemann Kleint --- src/gui/kernel/qhighdpiscaling.cpp | 4 ++-- src/gui/kernel/qplatformscreen.cpp | 8 ++++++++ src/gui/kernel/qplatformscreen.h | 2 ++ src/gui/kernel/qscreen.cpp | 7 +++++-- src/gui/kernel/qwindowsysteminterface.cpp | 4 ++-- src/plugins/platforms/xcb/qxcbscreen.cpp | 4 ---- 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 7ffbfbe1e5..c8a2634929 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -276,7 +276,7 @@ qreal QHighDpiScaling::rawScaleFactor(const QPlatformScreen *screen) qreal platformPhysicalDpi = screen->screen()->physicalDotsPerInch(); factor = qreal(platformPhysicalDpi) / qreal(platformBaseDpi.first); } else { - QDpi platformLogicalDpi = screen->logicalDpi(); + const QDpi platformLogicalDpi = QPlatformScreen::overrideDpi(screen->logicalDpi()); factor = qreal(platformLogicalDpi.first) / qreal(platformBaseDpi.first); } @@ -629,7 +629,7 @@ QDpi QHighDpiScaling::logicalDpi(const QScreen *screen) return QDpi(96, 96); if (!m_usePixelDensity) - return screen->handle()->logicalDpi(); + return QPlatformScreen::overrideDpi(screen->handle()->logicalDpi()); const qreal scaleFactor = rawScaleFactor(screen->handle()); const qreal roundedScaleFactor = roundScaleFactor(scaleFactor); diff --git a/src/gui/kernel/qplatformscreen.cpp b/src/gui/kernel/qplatformscreen.cpp index fc405dee00..f3213bf5ea 100644 --- a/src/gui/kernel/qplatformscreen.cpp +++ b/src/gui/kernel/qplatformscreen.cpp @@ -193,6 +193,14 @@ QDpi QPlatformScreen::logicalDpi() const 25.4 * s.height() / ps.height()); } +// Helper function for accessing the platform screen logical dpi +// which accounts for QT_FONT_DPI. +QPair QPlatformScreen::overrideDpi(const QPair &in) +{ + static const int overrideDpi = qEnvironmentVariableIntValue("QT_FONT_DPI"); + return overrideDpi > 0 ? QDpi(overrideDpi, overrideDpi) : in; +} + /*! Reimplement to return the base logical DPI for the platform. This DPI value should correspond to a standard-DPI (1x) display. The diff --git a/src/gui/kernel/qplatformscreen.h b/src/gui/kernel/qplatformscreen.h index 1012d97324..d7378aed51 100644 --- a/src/gui/kernel/qplatformscreen.h +++ b/src/gui/kernel/qplatformscreen.h @@ -161,6 +161,8 @@ public: // The platform screen's geometry in device independent coordinates QRect deviceIndependentGeometry() const; + static QDpi overrideDpi(const QDpi &in); + protected: void resizeMaximizedWindows(); diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp index e437678221..7adf3db1b8 100644 --- a/src/gui/kernel/qscreen.cpp +++ b/src/gui/kernel/qscreen.cpp @@ -84,8 +84,11 @@ void QScreenPrivate::setPlatformScreen(QPlatformScreen *screen) platformScreen->d_func()->screen = q; orientation = platformScreen->orientation(); geometry = platformScreen->deviceIndependentGeometry(); - availableGeometry = QHighDpi::fromNative(platformScreen->availableGeometry(), QHighDpiScaling::factor(platformScreen), geometry.topLeft()); - logicalDpi = platformScreen->logicalDpi(); + availableGeometry = QHighDpi::fromNative(platformScreen->availableGeometry(), + QHighDpiScaling::factor(platformScreen), geometry.topLeft()); + + logicalDpi = QPlatformScreen::overrideDpi(platformScreen->logicalDpi()); + refreshRate = platformScreen->refreshRate(); // safeguard ourselves against buggy platform behavior... if (refreshRate < 1.0) diff --git a/src/gui/kernel/qwindowsysteminterface.cpp b/src/gui/kernel/qwindowsysteminterface.cpp index 4b8cb3646a..40a298226a 100644 --- a/src/gui/kernel/qwindowsysteminterface.cpp +++ b/src/gui/kernel/qwindowsysteminterface.cpp @@ -857,8 +857,8 @@ void QWindowSystemInterface::handleScreenGeometryChange(QScreen *screen, const Q void QWindowSystemInterface::handleScreenLogicalDotsPerInchChange(QScreen *screen, qreal dpiX, qreal dpiY) { - QWindowSystemInterfacePrivate::ScreenLogicalDotsPerInchEvent *e = - new QWindowSystemInterfacePrivate::ScreenLogicalDotsPerInchEvent(screen, dpiX, dpiY); // ### tja + const QDpi effectiveDpi = QPlatformScreen::overrideDpi(QDpi{dpiX, dpiY}); + auto e = new QWindowSystemInterfacePrivate::ScreenLogicalDotsPerInchEvent(screen, effectiveDpi.first, effectiveDpi.second); QWindowSystemInterfacePrivate::handleWindowSystemEvent(e); } diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp index 145f40ce80..0fe22bd318 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.cpp +++ b/src/plugins/platforms/xcb/qxcbscreen.cpp @@ -660,10 +660,6 @@ QImage::Format QXcbScreen::format() const int QXcbScreen::forcedDpi() const { - static const int overrideDpi = qEnvironmentVariableIntValue("QT_FONT_DPI"); - if (overrideDpi) - return overrideDpi; - const int forcedDpi = m_virtualDesktop->forcedDpi(); if (forcedDpi > 0) return forcedDpi; -- cgit v1.2.3 From 35da4eeba263db411d929fd278a4617dd7cf5c22 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 27 Feb 2019 08:46:47 +0100 Subject: Update QT_SCREEN_SCALE_FACTORS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Store name->factor associations in a global QHash instead of on the QScreen object, making them survive QScreen object deletion, for example on disconnect/ connect cycles. Make factors set with QT_SCREEN_SCALE_FACTORS override the screen factors computed from platform plugin DPI values. This matches the use case for QT_SCREEN_SCALE_FACTORS (but not the general scale factors combine by multiplication”principle) Done-with: Friedemann Kleint Task-number: QTBUG-53022 Change-Id: I12771249314ab0c073e609d62f57ac0d18d3b6ce Reviewed-by: Friedemann Kleint --- src/gui/kernel/qhighdpiscaling.cpp | 61 ++++++++++++++++++++++++++++---------- src/gui/kernel/qhighdpiscaling_p.h | 2 +- 2 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index c8a2634929..3de67d5cfa 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -63,6 +63,12 @@ static const char scaleFactorRoundingPolicyEnvVar[] = "QT_SCALE_FACTOR_ROUNDING_ static const char dpiAdjustmentPolicyEnvVar[] = "QT_DPI_ADJUSTMENT_POLICY"; static const char usePhysicalDpiEnvVar[] = "QT_USE_PHYSICAL_DPI"; +// Per-screen scale factors for named screens set with QT_SCREEN_SCALE_FACTORS +// are stored here. Use a global hash to keep the factor across screen +// disconnect/connect cycles where the screen object may be deleted. +typedef QHash QScreenScaleFactorHash; +Q_GLOBAL_STATIC(QScreenScaleFactorHash, qNamedScreenScaleFactors); + // Reads and interprets the given environment variable as a bool, // returns the default value if not set. static bool qEnvironmentVariableAsBool(const char *name, bool defaultValue) @@ -480,20 +486,19 @@ void QHighDpiScaling::updateHighDpiScaling() int i = 0; const auto specs = qgetenv(screenFactorsEnvVar).split(';'); for (const QByteArray &spec : specs) { - QScreen *screen = 0; int equalsPos = spec.lastIndexOf('='); - double factor = 0; + qreal factor = 0; if (equalsPos > 0) { // support "name=factor" QByteArray name = spec.mid(0, equalsPos); QByteArray f = spec.mid(equalsPos + 1); bool ok; factor = f.toDouble(&ok); - if (ok) { + if (ok && factor > 0 ) { const auto screens = QGuiApplication::screens(); for (QScreen *s : screens) { if (s->name() == QString::fromLocal8Bit(name)) { - screen = s; + setScreenFactor(s, factor); break; } } @@ -502,11 +507,11 @@ void QHighDpiScaling::updateHighDpiScaling() // listing screens in order bool ok; factor = spec.toDouble(&ok); - if (ok && i < QGuiApplication::screens().count()) - screen = QGuiApplication::screens().at(i); + if (ok && factor > 0 && i < QGuiApplication::screens().count()) { + QScreen *screen = QGuiApplication::screens().at(i); + setScreenFactor(screen, factor); + } } - if (screen) - setScreenFactor(screen, factor); ++i; } } @@ -542,7 +547,14 @@ void QHighDpiScaling::setScreenFactor(QScreen *screen, qreal factor) m_screenFactorSet = true; m_active = true; } - screen->setProperty(scaleFactorProperty, QVariant(factor)); + + // Prefer associating the factor with screen name over the object + // since the screen object may be deleted on screen disconnects. + const QString name = screen->name(); + if (name.isEmpty()) + screen->setProperty(scaleFactorProperty, QVariant(factor)); + else + qNamedScreenScaleFactors()->insert(name, factor); // hack to force re-evaluation of screen geometry if (screen->handle()) @@ -610,15 +622,32 @@ QPoint QHighDpiScaling::mapPositionFromGlobal(const QPoint &pos, const QPoint &w qreal QHighDpiScaling::screenSubfactor(const QPlatformScreen *screen) { qreal factor = qreal(1.0); - if (screen) { - if (m_usePixelDensity) - factor *= roundScaleFactor(rawScaleFactor(screen)); - if (m_screenFactorSet) { - QVariant screenFactor = screen->screen()->property(scaleFactorProperty); - if (screenFactor.isValid()) - factor *= screenFactor.toReal(); + if (!screen) + return factor; + + // Unlike the other code where factors are combined by multiplication, + // factors from QT_SCREEN_SCALE_FACTORS takes precedence over the factor + // computed from platform plugin DPI. The rationale is that the user is + // setting the factor to override erroneous DPI values. + bool screenPropertyUsed = false; + if (m_screenFactorSet) { + // Check if there is a factor set on the screen object or associated + // with the screen name. These are mutually exclusive, so checking + // order is not significant. + QVariant byIndex = screen->screen()->property(scaleFactorProperty); + auto byNameIt = qNamedScreenScaleFactors()->constFind(screen->name()); + if (byIndex.isValid()) { + screenPropertyUsed = true; + factor = byIndex.toReal(); + } else if (byNameIt != qNamedScreenScaleFactors()->cend()) { + screenPropertyUsed = true; + factor = *byNameIt; } } + + if (!screenPropertyUsed && m_usePixelDensity) + factor = roundScaleFactor(rawScaleFactor(screen)); + return factor; } diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index e24628a69a..9c24fa506d 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -102,7 +102,7 @@ public: static void initHighDpiScaling(); static void updateHighDpiScaling(); static void setGlobalFactor(qreal factor); - static void setScreenFactor(QScreen *window, qreal factor); + static void setScreenFactor(QScreen *screen, qreal factor); static bool isActive() { return m_active; } -- cgit v1.2.3 From 1de8b01d2b6db8a4fe2eddd0c595d9e680964db5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Thu, 10 Nov 2016 14:17:53 +0100 Subject: Deprecate QT_AUTO_SCREEN_SCALE_FACTOR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace by QT_ENABLE_HIGHDPI_SCALING. QT_AUTO_SCREEN_SCALE_FACTOR has the usability problem that it mixes enabling the high-DPI scaling mode with the method of getting screen scale factors (“auto”). Due to this, it ends up with a slightly strange name. QT_ENABLE_HIGHDPI_SCALING matches the C++ option (Qt::AA_EnableHighDPiScaling), and leaves the scale factor acquisition method unspecified, possibly to be set by some other means (like QT_SCREEN_SCALE_FACTORS). Done-with: Friedemann Kleint Task-number: QTBUG-53022 Change-Id: I30033d91175a00db7837efc9c48c33396f5f0449 Reviewed-by: Friedemann Kleint --- src/gui/kernel/qhighdpiscaling.cpp | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 3de67d5cfa..4a9c9a9934 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -56,8 +56,10 @@ Q_LOGGING_CATEGORY(lcScaling, "qt.scaling"); #ifndef QT_NO_HIGHDPISCALING static const char legacyDevicePixelEnvVar[] = "QT_DEVICE_PIXEL_RATIO"; +static const char legacyAutoScreenEnvVar[] = "QT_AUTO_SCREEN_SCALE_FACTOR"; + +static const char enableHighDpiScalingEnvVar[] = "QT_ENABLE_HIGHDPI_SCALING"; static const char scaleFactorEnvVar[] = "QT_SCALE_FACTOR"; -static const char autoScreenEnvVar[] = "QT_AUTO_SCREEN_SCALE_FACTOR"; static const char screenFactorsEnvVar[] = "QT_SCREEN_SCALE_FACTORS"; static const char scaleFactorRoundingPolicyEnvVar[] = "QT_SCALE_FACTOR_ROUNDING_POLICY"; static const char dpiAdjustmentPolicyEnvVar[] = "QT_DPI_ADJUSTMENT_POLICY"; @@ -90,17 +92,24 @@ static inline qreal initialGlobalScaleFactor() result = f; } } else { + // Check for deprecated environment variables. if (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar)) { qWarning("Warning: %s is deprecated. Instead use:\n" " %s to enable platform plugin controlled per-screen factors.\n" - " %s to set per-screen factors.\n" + " %s to set per-screen DPI.\n" " %s to set the application global scale factor.", - legacyDevicePixelEnvVar, autoScreenEnvVar, screenFactorsEnvVar, scaleFactorEnvVar); + legacyDevicePixelEnvVar, legacyAutoScreenEnvVar, screenFactorsEnvVar, scaleFactorEnvVar); int dpr = qEnvironmentVariableIntValue(legacyDevicePixelEnvVar); if (dpr > 0) result = dpr; } + + if (qEnvironmentVariableIsSet(legacyAutoScreenEnvVar)) { + qWarning("Warning: %s is deprecated. Instead use:\n" + " %s to enable platform plugin controlled per-screen factors.", + legacyAutoScreenEnvVar, enableHighDpiScalingEnvVar); + } } return result; } @@ -258,16 +267,24 @@ static inline bool usePixelDensity() // Determine if we should set a scale factor based on the pixel density // reported by the platform plugin. There are several enablers and several // disablers. A single disable may veto all other enablers. + + // First, check of there is an explicit disable. if (QCoreApplication::testAttribute(Qt::AA_DisableHighDpiScaling)) return false; bool screenEnvValueOk; - const int screenEnvValue = qEnvironmentVariableIntValue(autoScreenEnvVar, &screenEnvValueOk); + const int screenEnvValue = qEnvironmentVariableIntValue(legacyAutoScreenEnvVar, &screenEnvValueOk); if (screenEnvValueOk && screenEnvValue < 1) return false; + bool enableEnvValueOk; + const int enableEnvValue = qEnvironmentVariableIntValue(enableHighDpiScalingEnvVar, &enableEnvValueOk); + if (enableEnvValueOk && enableEnvValue < 1) + return false; + + // Then return if there was an enable. return QCoreApplication::testAttribute(Qt::AA_EnableHighDpiScaling) || (screenEnvValueOk && screenEnvValue > 0) - || (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar) && - qgetenv(legacyDevicePixelEnvVar).compare("auto", Qt::CaseInsensitive) == 0); + || (enableEnvValueOk && enableEnvValue > 0) + || (qEnvironmentVariableIsSet(legacyDevicePixelEnvVar) && qgetenv(legacyDevicePixelEnvVar).toLower() == "auto"); } qreal QHighDpiScaling::rawScaleFactor(const QPlatformScreen *screen) -- cgit v1.2.3 From f1e40dd6d6968c59885231f61f94787abd4cf783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Sat, 7 Oct 2017 01:35:29 +0200 Subject: Add high-DPI scale factor rounding policy C++ API This API enables tuning of how Qt rounds fractional scale factors, and corresponds to the QT_SCALE_FACTOR_ROUNDING_POLICY environment variable New API: Qt::HighDPiScaleFactorRoundingPolicy QGuiApplication::setHighDpiScaleFactorRoundingPolicy() QGuiApplication::highDpiScaleFactorRoundingPolicy() Done-with: Friedemann Kleint Task-number: QTBUG-53022 Change-Id: Ic360f26a173caa757e4ebde35ce08a6b74290b7d Reviewed-by: Friedemann Kleint --- src/corelib/global/qnamespace.h | 10 ++++++++ src/corelib/global/qnamespace.qdoc | 22 ++++++++++++++++++ src/gui/kernel/qguiapplication.cpp | 44 +++++++++++++++++++++++++++++++++++ src/gui/kernel/qguiapplication.h | 3 +++ src/gui/kernel/qguiapplication_p.h | 1 + src/gui/kernel/qhighdpiscaling.cpp | 47 +++++++++++++++++++++----------------- src/gui/kernel/qhighdpiscaling_p.h | 10 -------- 7 files changed, 106 insertions(+), 31 deletions(-) diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h index f5f7176670..810c55709c 100644 --- a/src/corelib/global/qnamespace.h +++ b/src/corelib/global/qnamespace.h @@ -1754,6 +1754,15 @@ public: ChecksumItuV41 }; + enum class HighDpiScaleFactorRoundingPolicy { + Unset, + Round, + Ceil, + Floor, + RoundPreferFloor, + PassThrough + }; + #ifndef Q_QDOC // NOTE: Generally, do not add QT_Q_ENUM if a corresponding Q_Q_FLAG exists. QT_Q_ENUM(ScrollBarPolicy) @@ -1840,6 +1849,7 @@ public: QT_Q_ENUM(MouseEventSource) QT_Q_FLAG(MouseEventFlag) QT_Q_ENUM(ChecksumType) + QT_Q_ENUM(HighDpiScaleFactorRoundingPolicy) QT_Q_ENUM(TabFocusBehavior) #endif // Q_DOC diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc index 0ff6be2049..886aedb4f3 100644 --- a/src/corelib/global/qnamespace.qdoc +++ b/src/corelib/global/qnamespace.qdoc @@ -3275,3 +3275,25 @@ \value ChecksumItuV41 Checksum calculation based on ITU-V.41. */ + +/*! + \enum Qt::HighDpiScaleFactorRoundingPolicy + \since 5.14 + + This enum describes the possible High-DPI scale factor rounding policies, which + decide how non-integer scale factors (such as Windows 150%) are handled. + + The active policy is set by calling QGuiApplication::setHighDdpiScaleFactorRoundingPolicy() before + the application object is created, or by setting the QT_SCALE_FACTOR_ROUNDING_POLICY + environment variable. + + \sa QGuiApplication::setHighDdpiScaleFactorRoundingPolicy() + \sa AA_EnableHighDpiScaling. + + \omitvalue Unset + \value Round Round up for .5 and above. + \value Ceil Always round up. + \value Floor Always round down. + \value RoundPreferFloor Round up for .75 and above. + \value PassThrough Don't round. +*/ diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 426f2aeece..ddd6726299 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -146,6 +146,8 @@ QString QGuiApplicationPrivate::styleOverride; Qt::ApplicationState QGuiApplicationPrivate::applicationState = Qt::ApplicationInactive; +Qt::HighDpiScaleFactorRoundingPolicy QGuiApplicationPrivate::highDpiScaleFactorRoundingPolicy = + Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor; bool QGuiApplicationPrivate::highDpiScalingUpdated = false; QPointer QGuiApplicationPrivate::currentDragWindow; @@ -687,6 +689,8 @@ QGuiApplication::~QGuiApplication() QGuiApplicationPrivate::lastCursorPosition = {qInf(), qInf()}; QGuiApplicationPrivate::currentMousePressWindow = QGuiApplicationPrivate::currentMouseWindow = nullptr; QGuiApplicationPrivate::applicationState = Qt::ApplicationInactive; + QGuiApplicationPrivate::highDpiScaleFactorRoundingPolicy = + Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor; QGuiApplicationPrivate::highDpiScalingUpdated = false; QGuiApplicationPrivate::currentDragWindow = nullptr; QGuiApplicationPrivate::tabletDevicePoints.clear(); @@ -3490,6 +3494,46 @@ Qt::ApplicationState QGuiApplication::applicationState() return QGuiApplicationPrivate::applicationState; } +/*! + \since 5.14 + + Sets the high-DPI scale factor rounding policy for the application. The + policy decides how non-integer scale factors (such as Windows 150%) are + handled, for applications that have AA_EnableHighDpiScaling enabled. + + The two principal options are whether fractional scale factors should + be rounded to an integer or not. Keeping the scale factor as-is will + make the user interface size match the OS setting exactly, but may cause + painting errors, for example with the Windows style. + + If rounding is wanted, then which type of rounding should be decided + next. Mathematically correct rounding is supported but may not give + the best visual results: Consider if you want to render 1.5x as 1x + ("small UI") or as 2x ("large UI"). See the Qt::HighDpiScaleFactorRoundingPolicy + enum for a complete list of all options. + + This function must be called before creating the application object, + and can be overridden by setting the QT_SCALE_FACTOR_ROUNDING_POLICY + environment variable. The QGuiApplication::highDpiScaleFactorRoundingPolicy() + accessor will reflect the environment, if set. + + The default value is Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor. +*/ +void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy) +{ + QGuiApplicationPrivate::highDpiScaleFactorRoundingPolicy = policy; +} + +/*! + \since 5.14 + + Returns the high-DPI scale factor rounding policy. +*/ +Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy() +{ + return QGuiApplicationPrivate::highDpiScaleFactorRoundingPolicy; +} + /*! \since 5.2 \fn void QGuiApplication::applicationStateChanged(Qt::ApplicationState state) diff --git a/src/gui/kernel/qguiapplication.h b/src/gui/kernel/qguiapplication.h index 5ea72fa0f6..fc74c5299a 100644 --- a/src/gui/kernel/qguiapplication.h +++ b/src/gui/kernel/qguiapplication.h @@ -156,6 +156,9 @@ public: static Qt::ApplicationState applicationState(); + static void setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy); + static Qt::HighDpiScaleFactorRoundingPolicy highDpiScaleFactorRoundingPolicy(); + static int exec(); bool notify(QObject *, QEvent *) override; diff --git a/src/gui/kernel/qguiapplication_p.h b/src/gui/kernel/qguiapplication_p.h index afca7579ea..e28607bad6 100644 --- a/src/gui/kernel/qguiapplication_p.h +++ b/src/gui/kernel/qguiapplication_p.h @@ -223,6 +223,7 @@ public: static QWindow *currentMouseWindow; static QWindow *currentMousePressWindow; static Qt::ApplicationState applicationState; + static Qt::HighDpiScaleFactorRoundingPolicy highDpiScaleFactorRoundingPolicy; static bool highDpiScalingUpdated; static QPointer currentDragWindow; diff --git a/src/gui/kernel/qhighdpiscaling.cpp b/src/gui/kernel/qhighdpiscaling.cpp index 4a9c9a9934..c031885d5d 100644 --- a/src/gui/kernel/qhighdpiscaling.cpp +++ b/src/gui/kernel/qhighdpiscaling.cpp @@ -331,24 +331,24 @@ static QByteArray joinEnumValues(const EnumLookup *i1, const EnumLooku return result; } -using ScaleFactorRoundingPolicyLookup = EnumLookup; +using ScaleFactorRoundingPolicyLookup = EnumLookup; static const ScaleFactorRoundingPolicyLookup scaleFactorRoundingPolicyLookup[] = { - {"Round", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Round}, - {"Ceil", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Ceil}, - {"Floor", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Floor}, - {"RoundPreferFloor", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor}, - {"PassThrough", QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::PassThrough} + {"Round", Qt::HighDpiScaleFactorRoundingPolicy::Round}, + {"Ceil", Qt::HighDpiScaleFactorRoundingPolicy::Ceil}, + {"Floor", Qt::HighDpiScaleFactorRoundingPolicy::Floor}, + {"RoundPreferFloor", Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor}, + {"PassThrough", Qt::HighDpiScaleFactorRoundingPolicy::PassThrough} }; -static QHighDpiScaling::HighDpiScaleFactorRoundingPolicy +static Qt::HighDpiScaleFactorRoundingPolicy lookupScaleFactorRoundingPolicy(const QByteArray &v) { auto end = std::end(scaleFactorRoundingPolicyLookup); auto it = std::find(std::begin(scaleFactorRoundingPolicyLookup), end, - ScaleFactorRoundingPolicyLookup{v.constData(), QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Unset}); - return it != end ? it->value : QHighDpiScaling::HighDpiScaleFactorRoundingPolicy::Unset; + ScaleFactorRoundingPolicyLookup{v.constData(), Qt::HighDpiScaleFactorRoundingPolicy::Unset}); + return it != end ? it->value : Qt::HighDpiScaleFactorRoundingPolicy::Unset; } using DpiAdjustmentPolicyLookup = EnumLookup; @@ -377,15 +377,15 @@ qreal QHighDpiScaling::roundScaleFactor(qreal rawFactor) // sizes that are smaller than the ideal size, and opposite for rounding up. // Rounding down is then preferable since "small UI" is a more acceptable // high-DPI experience than "large UI". - static auto scaleFactorRoundingPolicy = HighDpiScaleFactorRoundingPolicy::Unset; + static auto scaleFactorRoundingPolicy = Qt::HighDpiScaleFactorRoundingPolicy::Unset; // Determine rounding policy - if (scaleFactorRoundingPolicy == HighDpiScaleFactorRoundingPolicy::Unset) { + if (scaleFactorRoundingPolicy == Qt::HighDpiScaleFactorRoundingPolicy::Unset) { // Check environment if (qEnvironmentVariableIsSet(scaleFactorRoundingPolicyEnvVar)) { QByteArray policyText = qgetenv(scaleFactorRoundingPolicyEnvVar); auto policyEnumValue = lookupScaleFactorRoundingPolicy(policyText); - if (policyEnumValue != HighDpiScaleFactorRoundingPolicy::Unset) { + if (policyEnumValue != Qt::HighDpiScaleFactorRoundingPolicy::Unset) { scaleFactorRoundingPolicy = policyEnumValue; } else { auto values = joinEnumValues(std::begin(scaleFactorRoundingPolicyLookup), @@ -393,38 +393,43 @@ qreal QHighDpiScaling::roundScaleFactor(qreal rawFactor) qWarning("Unknown scale factor rounding policy: %s. Supported values are: %s.", policyText.constData(), values.constData()); } + } + + // Check application object if no environment value was set. + if (scaleFactorRoundingPolicy == Qt::HighDpiScaleFactorRoundingPolicy::Unset) { + scaleFactorRoundingPolicy = QGuiApplication::highDpiScaleFactorRoundingPolicy(); } else { - // Set default policy if no environment variable is set. - scaleFactorRoundingPolicy = HighDpiScaleFactorRoundingPolicy::RoundPreferFloor; + // Make application setting reflect environment + QGuiApplication::setHighDpiScaleFactorRoundingPolicy(scaleFactorRoundingPolicy); } } // Apply rounding policy. qreal roundedFactor = rawFactor; switch (scaleFactorRoundingPolicy) { - case HighDpiScaleFactorRoundingPolicy::Round: + case Qt::HighDpiScaleFactorRoundingPolicy::Round: roundedFactor = qRound(rawFactor); break; - case HighDpiScaleFactorRoundingPolicy::Ceil: + case Qt::HighDpiScaleFactorRoundingPolicy::Ceil: roundedFactor = qCeil(rawFactor); break; - case HighDpiScaleFactorRoundingPolicy::Floor: + case Qt::HighDpiScaleFactorRoundingPolicy::Floor: roundedFactor = qFloor(rawFactor); break; - case HighDpiScaleFactorRoundingPolicy::RoundPreferFloor: + case Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFloor: // Round up for .75 and higher. This favors "small UI" over "large UI". roundedFactor = rawFactor - qFloor(rawFactor) < 0.75 ? qFloor(rawFactor) : qCeil(rawFactor); break; - case HighDpiScaleFactorRoundingPolicy::PassThrough: - case HighDpiScaleFactorRoundingPolicy::Unset: + case Qt::HighDpiScaleFactorRoundingPolicy::PassThrough: + case Qt::HighDpiScaleFactorRoundingPolicy::Unset: break; } // Don't round down to to zero; clamp the minimum (rounded) factor to 1. // This is not a common case but can happen if a display reports a very // low DPI. - if (scaleFactorRoundingPolicy != HighDpiScaleFactorRoundingPolicy::PassThrough) + if (scaleFactorRoundingPolicy != Qt::HighDpiScaleFactorRoundingPolicy::PassThrough) roundedFactor = qMax(roundedFactor, qreal(1)); return roundedFactor; diff --git a/src/gui/kernel/qhighdpiscaling_p.h b/src/gui/kernel/qhighdpiscaling_p.h index 9c24fa506d..f58944a7d2 100644 --- a/src/gui/kernel/qhighdpiscaling_p.h +++ b/src/gui/kernel/qhighdpiscaling_p.h @@ -74,16 +74,6 @@ typedef QPair QDpi; class Q_GUI_EXPORT QHighDpiScaling { Q_GADGET public: - enum class HighDpiScaleFactorRoundingPolicy { - Unset, - Round, - Ceil, - Floor, - RoundPreferFloor, - PassThrough - }; - Q_ENUM(HighDpiScaleFactorRoundingPolicy) - enum class DpiAdjustmentPolicy { Unset, Enabled, -- cgit v1.2.3 From d603ee689f0e3fdcfa3230b3d75cdce6c5af05c1 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 4 Apr 2019 13:53:19 +0200 Subject: Widget style: Use per-screen DPI in QStyleHelper::dpiScaled() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pass the style option to dpiScaled() in order to get the correct screen DPI. The style option contains the font, which again contains the current DPI value. Add QFontMetrics::fontDpi() accessors to get the DPI from the QFont. This DPI will/should be updated on screen change. Replace hardcoded Q_OS_MAC DPI with hardcoded base DPI. This makes per-screen DPI testable on macOS, too. Task-number: QTBUG-45055 Change-Id: I75f8b37d45eb50c3334b46b8469a546d29712f1b Reviewed-by: Morten Johan Sørvig --- src/gui/text/qfontmetrics.cpp | 19 +++- src/gui/text/qfontmetrics.h | 4 + src/plugins/styles/mac/qmacstyle_mac.mm | 4 +- .../styles/windowsvista/qwindowsvistastyle.cpp | 8 +- .../styles/windowsvista/qwindowsxpstyle.cpp | 32 +++--- src/widgets/dialogs/qwizard.cpp | 10 +- src/widgets/dialogs/qwizard_win.cpp | 36 +++---- src/widgets/dialogs/qwizard_win_p.h | 16 +-- src/widgets/styles/qcommonstyle.cpp | 115 +++++++++++---------- src/widgets/styles/qfusionstyle.cpp | 43 ++++---- src/widgets/styles/qstylehelper.cpp | 43 ++++++-- src/widgets/styles/qstylehelper_p.h | 9 +- src/widgets/styles/qwindowsstyle.cpp | 14 +-- 13 files changed, 213 insertions(+), 140 deletions(-) diff --git a/src/gui/text/qfontmetrics.cpp b/src/gui/text/qfontmetrics.cpp index c8dc8d676e..c85dd4e1e3 100644 --- a/src/gui/text/qfontmetrics.cpp +++ b/src/gui/text/qfontmetrics.cpp @@ -1036,8 +1036,15 @@ int QFontMetrics::lineWidth() const return qRound(engine->lineThickness()); } +/*! + \since 5.14 - + Returns the font DPI. +*/ +qreal QFontMetrics::fontDpi() const +{ + return d->dpi; +} /***************************************************************************** QFontMetricsF member functions @@ -1913,4 +1920,14 @@ qreal QFontMetricsF::lineWidth() const return engine->lineThickness().toReal(); } +/*! + \since 5.14 + + Returns the font DPI. +*/ +qreal QFontMetricsF::fontDpi() const +{ + return d->dpi; +} + QT_END_NAMESPACE diff --git a/src/gui/text/qfontmetrics.h b/src/gui/text/qfontmetrics.h index 02ff335e68..e92a1514a1 100644 --- a/src/gui/text/qfontmetrics.h +++ b/src/gui/text/qfontmetrics.h @@ -135,6 +135,8 @@ public: int strikeOutPos() const; int lineWidth() const; + qreal fontDpi() const; + bool operator==(const QFontMetrics &other) const; inline bool operator !=(const QFontMetrics &other) const { return !operator==(other); } @@ -216,6 +218,8 @@ public: qreal strikeOutPos() const; qreal lineWidth() const; + qreal fontDpi() const; + bool operator==(const QFontMetricsF &other) const; inline bool operator !=(const QFontMetricsF &other) const { return !operator==(other); } diff --git a/src/plugins/styles/mac/qmacstyle_mac.mm b/src/plugins/styles/mac/qmacstyle_mac.mm index a994aea12d..ec3bb91ebf 100644 --- a/src/plugins/styles/mac/qmacstyle_mac.mm +++ b/src/plugins/styles/mac/qmacstyle_mac.mm @@ -2294,11 +2294,11 @@ int QMacStyle::pixelMetric(PixelMetric metric, const QStyleOption *opt, const QW } break; case PM_SmallIconSize: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16., opt)); break; case PM_LargeIconSize: - ret = int(QStyleHelper::dpiScaled(32.)); + ret = int(QStyleHelper::dpiScaled(32., opt)); break; case PM_IconViewIconSize: diff --git a/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp b/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp index 6881ea8f16..c4ada66ca9 100644 --- a/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp +++ b/src/plugins/styles/windowsvista/qwindowsvistastyle.cpp @@ -987,7 +987,7 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption XPThemeData theme(widget, 0, QWindowsXPStylePrivate::ToolBarTheme, TP_DROPDOWNBUTTON); if (theme.isValid()) { - const QSizeF size = theme.size() * QStyleHelper::dpiScaled(1); + const QSizeF size = theme.size() * QStyleHelper::dpiScaled(1, option); if (!size.isEmpty()) { mbiw = qRound(size.width()); mbih = qRound(size.height()); @@ -2145,7 +2145,7 @@ QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOpt const int x = cb->rect.x(), y = cb->rect.y(), wi = cb->rect.width(), he = cb->rect.height(); const int margin = cb->frame ? 3 : 0; const int bmarg = cb->frame ? 2 : 0; - const int arrowWidth = qRound(QStyleHelper::dpiScaled(16)); + const int arrowWidth = qRound(QStyleHelper::dpiScaled(16, option)); const int arrowButtonWidth = bmarg + arrowWidth; const int xpos = x + wi - arrowButtonWidth; @@ -2179,7 +2179,7 @@ QRect QWindowsVistaStyle::subControlRect(ComplexControl control, const QStyleOpt const int height = tb->rect.height(); const int width = tb->rect.width(); const int buttonWidth = - qRound(qreal(GetSystemMetrics(SM_CXSIZE)) * factor - QStyleHelper::dpiScaled(4)); + qRound(qreal(GetSystemMetrics(SM_CXSIZE)) * factor - QStyleHelper::dpiScaled(4, option)); const int frameWidth = proxy()->pixelMetric(PM_MdiSubWindowFrameWidth, option, widget); const bool sysmenuHint = (tb->titleBarFlags & Qt::WindowSystemMenuHint) != 0; @@ -2280,7 +2280,7 @@ int QWindowsVistaStyle::pixelMetric(PixelMetric metric, const QStyleOption *opti int ret = QWindowsVistaStylePrivate::fixedPixelMetric(metric); if (ret != QWindowsStylePrivate::InvalidMetric) - return int(QStyleHelper::dpiScaled(ret)); + return int(QStyleHelper::dpiScaled(ret, option)); return QWindowsXPStyle::pixelMetric(metric, option, widget); } diff --git a/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp b/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp index a331b2ee87..e2c5bdc924 100644 --- a/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp +++ b/src/plugins/styles/windowsvista/qwindowsxpstyle.cpp @@ -1486,8 +1486,9 @@ case PE_Frame: // Inner white border p->setPen(QPen(option->palette.base().color(), 0)); - const auto topLevelAdjustment = QStyleHelper::dpiScaled(0.5); - const auto bottomRightAdjustment = QStyleHelper::dpiScaled(-1); + const qreal dpi = QStyleHelper::dpi(option); + const auto topLevelAdjustment = QStyleHelper::dpiScaled(0.5, dpi); + const auto bottomRightAdjustment = QStyleHelper::dpiScaled(-1, dpi); p->drawRect(QRectF(option->rect).adjusted(topLevelAdjustment, topLevelAdjustment, bottomRightAdjustment, bottomRightAdjustment)); // Outer dark border @@ -3313,7 +3314,8 @@ int QWindowsXPStyle::pixelMetric(PixelMetric pm, const QStyleOption *option, con break; case PM_SplitterWidth: - res = qMax(int(QStyleHelper::dpiScaled(5.)), QApplication::globalStrut().width()); + res = qMax(int(QStyleHelper::dpiScaled(5., option)), + QApplication::globalStrut().width()); break; case PM_MdiSubWindowMinimizedWidth: @@ -3322,13 +3324,13 @@ int QWindowsXPStyle::pixelMetric(PixelMetric pm, const QStyleOption *option, con #if QT_CONFIG(toolbar) case PM_ToolBarHandleExtent: - res = int(QStyleHelper::dpiScaled(8.)); + res = int(QStyleHelper::dpiScaled(8., option)); break; #endif // QT_CONFIG(toolbar) case PM_DockWidgetSeparatorExtent: case PM_DockWidgetTitleMargin: - res = int(QStyleHelper::dpiScaled(4.)); + res = int(QStyleHelper::dpiScaled(4., option)); break; case PM_ButtonShiftHorizontal: @@ -3413,7 +3415,7 @@ QRect QWindowsXPStyle::subControlRect(ComplexControl cc, const QStyleOptionCompl const bool isToolTitle = false; const int height = tb->rect.height(); const int width = tb->rect.width(); - const int buttonMargin = int(QStyleHelper::dpiScaled(4)); + const int buttonMargin = int(QStyleHelper::dpiScaled(4, option)); const qreal factor = QWindowsStylePrivate::nativeMetricScaleFactor(widget); int buttonHeight = qRound(qreal(GetSystemMetrics(SM_CYSIZE)) * factor) - buttonMargin; @@ -3524,23 +3526,27 @@ QRect QWindowsXPStyle::subControlRect(ComplexControl cc, const QStyleOptionCompl case CC_ComboBox: if (const QStyleOptionComboBox *cmb = qstyleoption_cast(option)) { const int x = cmb->rect.x(), y = cmb->rect.y(), wi = cmb->rect.width(), he = cmb->rect.height(); - const int xpos = x + wi - qRound(QStyleHelper::dpiScaled(1 + 16)); + const int xpos = x + wi - qRound(QStyleHelper::dpiScaled(1 + 16, option)); switch (subControl) { case SC_ComboBoxFrame: rect = cmb->rect; break; - case SC_ComboBoxArrow: - rect = QRect(xpos, y + qRound(QStyleHelper::dpiScaled(1)), - qRound(QStyleHelper::dpiScaled(16)), he - qRound(QStyleHelper::dpiScaled(2))); + case SC_ComboBoxArrow: { + const qreal dpi = QStyleHelper::dpi(option); + rect = QRect(xpos, y + qRound(QStyleHelper::dpiScaled(1, dpi)), + qRound(QStyleHelper::dpiScaled(16, dpi)), + he - qRound(QStyleHelper::dpiScaled(2, dpi))); + } break; case SC_ComboBoxEditField: { - const int frame = qRound(QStyleHelper::dpiScaled(2)); + const qreal dpi = QStyleHelper::dpi(option); + const int frame = qRound(QStyleHelper::dpiScaled(2, dpi)); rect = QRect(x + frame, y + frame, - wi - qRound(QStyleHelper::dpiScaled(3 + 16)), - he - qRound(QStyleHelper::dpiScaled(4))); + wi - qRound(QStyleHelper::dpiScaled(3 + 16, dpi)), + he - qRound(QStyleHelper::dpiScaled(4, dpi))); } break; diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp index 40db586f0e..7558054da5 100644 --- a/src/widgets/dialogs/qwizard.cpp +++ b/src/widgets/dialogs/qwizard.cpp @@ -1336,7 +1336,7 @@ void QWizardPrivate::updateMinMaxSizes(const QWizardLayoutInfo &info) int extraHeight = 0; #if QT_CONFIG(style_windowsvista) if (isVistaThemeEnabled()) - extraHeight = vistaHelper->titleBarSize() + vistaHelper->topOffset(); + extraHeight = vistaHelper->titleBarSize() + vistaHelper->topOffset(q); #endif QSize minimumSize = mainLayout->totalMinimumSize() + QSize(0, extraHeight); QSize maximumSize = mainLayout->totalMaximumSize(); @@ -1595,8 +1595,8 @@ bool QWizardPrivate::handleAeroStyleChange() bool vistaMargins = false; if (isVistaThemeEnabled()) { - const int topOffset = vistaHelper->topOffset(); - const int topPadding = vistaHelper->topPadding(); + const int topOffset = vistaHelper->topOffset(q); + const int topPadding = vistaHelper->topPadding(q); if (isVistaThemeEnabled(QVistaHelper::VistaAero)) { if (isWindow) { vistaHelper->setDWMTitleBar(QVistaHelper::ExtendedTitleBar); @@ -3214,7 +3214,7 @@ void QWizard::resizeEvent(QResizeEvent *event) int heightOffset = 0; #if QT_CONFIG(style_windowsvista) if (d->isVistaThemeEnabled()) { - heightOffset = d->vistaHelper->topOffset(); + heightOffset = d->vistaHelper->topOffset(this); if (d->isVistaThemeEnabled(QVistaHelper::VistaAero)) heightOffset += d->vistaHelper->titleBarSize(); } @@ -3246,7 +3246,7 @@ void QWizard::paintEvent(QPaintEvent * event) if (d->isVistaThemeEnabled(QVistaHelper::VistaBasic)) { QPainter painter(this); QColor color = d->vistaHelper->basicWindowFrameColor(); - painter.fillRect(0, 0, width(), QVistaHelper::topOffset(), color); + painter.fillRect(0, 0, width(), QVistaHelper::topOffset(this), color); } d->vistaHelper->paintEvent(event); } diff --git a/src/widgets/dialogs/qwizard_win.cpp b/src/widgets/dialogs/qwizard_win.cpp index 95f8f6a878..47ac41a791 100644 --- a/src/widgets/dialogs/qwizard_win.cpp +++ b/src/widgets/dialogs/qwizard_win.cpp @@ -87,7 +87,7 @@ QVistaBackButton::QVistaBackButton(QWidget *widget) QSize QVistaBackButton::sizeHint() const { ensurePolished(); - int size = int(QStyleHelper::dpiScaled(32)); + int size = int(QStyleHelper::dpiScaled(32, this)); int width = size, height = size; return QSize(width, height); } @@ -156,7 +156,7 @@ QVistaHelper::QVistaHelper(QWizard *wizard) backButton_ = new QVistaBackButton(wizard); backButton_->hide(); - iconSpacing = QStyleHelper::dpiScaled(7); + iconSpacing = QStyleHelper::dpiScaled(7, wizard); } QVistaHelper::~QVistaHelper() @@ -229,7 +229,7 @@ bool QVistaHelper::setDWMTitleBar(TitleBarChangeType type) if (type == NormalTitleBar) mar.cyTopHeight = 0; else - mar.cyTopHeight = (titleBarSize() + topOffset()) * QVistaHelper::m_devicePixelRatio; + mar.cyTopHeight = (titleBarSize() + topOffset(wizard)) * QVistaHelper::m_devicePixelRatio; if (const HWND wizardHandle = wizardHWND()) if (SUCCEEDED(DwmExtendFrameIntoClientArea(wizardHandle, &mar))) value = true; @@ -275,7 +275,7 @@ void QVistaHelper::drawTitleBar(QPainter *painter) if (vistaState() == VistaAero && isWindow) drawBlackRect(QRect(0, 0, wizard->width(), - titleBarSize() + topOffset()), hdc); + titleBarSize() + topOffset(wizard)), hdc); // The button is positioned in QWizardPrivate::handleAeroStyleChange(), // all calculation is relative to it. const int btnTop = backButton_->mapToParent(QPoint()).y(); @@ -293,7 +293,7 @@ void QVistaHelper::drawTitleBar(QPainter *painter) int glowOffset = 0; if (vistaState() == VistaAero) { - glowOffset = glowSize(); + glowOffset = glowSize(wizard); textHeight += 2 * glowOffset; textWidth += 2 * glowOffset; } @@ -314,10 +314,10 @@ void QVistaHelper::drawTitleBar(QPainter *painter) const QIcon windowIcon = wizard->windowIcon(); if (!windowIcon.isNull()) { - const int size = QVistaHelper::iconSize(); + const int size = QVistaHelper::iconSize(wizard); const int iconLeft = (wizard->layoutDirection() == Qt::LeftToRight - ? leftMargin() - : wizard->width() - leftMargin() - size); + ? leftMargin(wizard) + : wizard->width() - leftMargin(wizard) - size); const QPoint pos(origin.x() + iconLeft, origin.y() + verticalCenter - size / 2); const QPoint posDp = pos * QVistaHelper::m_devicePixelRatio; @@ -427,7 +427,7 @@ void QVistaHelper::resizeEvent(QResizeEvent * event) { Q_UNUSED(event); rtTop = QRect (0, 0, wizard->width(), frameSize()); - int height = captionSize() + topOffset(); + int height = captionSize() + topOffset(wizard); if (vistaState() == VistaBasic) height -= titleBarSize(); rtTitle = QRect (0, frameSize(), wizard->width(), height); @@ -637,7 +637,7 @@ bool QVistaHelper::drawTitleText(QPainter *painter, const QString &text, const Q RECT rctext ={0,0, rectDp.width(), rectDp.height()}; dto.dwFlags = DTT_COMPOSITED|DTT_GLOWSIZE; - dto.iGlowSize = glowSize(); + dto.iGlowSize = glowSize(wizard); DrawThemeTextEx(hTheme, dcMem, 0, 0, reinterpret_cast(text.utf16()), -1, uFormat, &rctext, &dto ); BitBlt(hdc, rectDp.left(), rectDp.top(), rectDp.width(), rectDp.height(), dcMem, 0, 0, SRCCOPY); @@ -714,27 +714,27 @@ int QVistaHelper::captionSizeDp() int QVistaHelper::titleOffset() { - int iconOffset = wizard ->windowIcon().isNull() ? 0 : iconSize() + iconSpacing; - return leftMargin() + iconOffset; + int iconOffset = wizard ->windowIcon().isNull() ? 0 : iconSize(wizard) + iconSpacing; + return leftMargin(wizard) + iconOffset; } -int QVistaHelper::iconSize() +int QVistaHelper::iconSize(const QPaintDevice *device) { - return QStyleHelper::dpiScaled(16); // Standard Aero + return QStyleHelper::dpiScaled(16, device); // Standard Aero } -int QVistaHelper::glowSize() +int QVistaHelper::glowSize(const QPaintDevice *device) { - return QStyleHelper::dpiScaled(10); + return QStyleHelper::dpiScaled(10, device); } -int QVistaHelper::topOffset() +int QVistaHelper::topOffset(const QPaintDevice *device) { if (vistaState() != VistaAero) return titleBarSize() + 3; static const int aeroOffset = QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows8 ? - QStyleHelper::dpiScaled(4) : QStyleHelper::dpiScaled(13); + QStyleHelper::dpiScaled(4, device) : QStyleHelper::dpiScaled(13, device); return aeroOffset + titleBarSize(); } diff --git a/src/widgets/dialogs/qwizard_win_p.h b/src/widgets/dialogs/qwizard_win_p.h index b3796e3f48..2469496b61 100644 --- a/src/widgets/dialogs/qwizard_win_p.h +++ b/src/widgets/dialogs/qwizard_win_p.h @@ -108,10 +108,10 @@ public: static VistaState vistaState(); static int titleBarSize() { return QVistaHelper::titleBarSizeDp() / QVistaHelper::m_devicePixelRatio; } static int titleBarSizeDp() { return QVistaHelper::frameSizeDp() + QVistaHelper::captionSizeDp(); } - static int topPadding() { // padding under text - return int(QStyleHelper::dpiScaled(4)); + static int topPadding(const QPaintDevice *device) { // padding under text + return int(QStyleHelper::dpiScaled(4, device)); } - static int topOffset(); + static int topOffset(const QPaintDevice *device); static HDC backingStoreDC(const QWidget *wizard, QPoint *offset); @@ -125,10 +125,12 @@ private: static int captionSize() { return QVistaHelper::captionSizeDp() / QVistaHelper::m_devicePixelRatio; } static int captionSizeDp(); - static int backButtonSize() { return int(QStyleHelper::dpiScaled(30)); } - static int iconSize(); - static int glowSize(); - int leftMargin() { return backButton_->isVisible() ? backButtonSize() + iconSpacing : 0; } + static int backButtonSize(const QPaintDevice *device) + { return int(QStyleHelper::dpiScaled(30, device)); } + static int iconSize(const QPaintDevice *device); + static int glowSize(const QPaintDevice *device); + int leftMargin(const QPaintDevice *device) + { return backButton_->isVisible() ? backButtonSize(device) + iconSpacing : 0; } int titleOffset(); void drawTitleBar(QPainter *painter); diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp index 7b53f5272c..3db85ca07a 100644 --- a/src/widgets/styles/qcommonstyle.cpp +++ b/src/widgets/styles/qcommonstyle.cpp @@ -4247,10 +4247,11 @@ QRect QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex #if QT_CONFIG(combobox) case CC_ComboBox: if (const QStyleOptionComboBox *cb = qstyleoption_cast(opt)) { + const qreal dpi = QStyleHelper::dpi(opt); const int x = cb->rect.x(), y = cb->rect.y(), wi = cb->rect.width(), he = cb->rect.height(); - const int margin = cb->frame ? qRound(QStyleHelper::dpiScaled(3)) : 0; - const int bmarg = cb->frame ? qRound(QStyleHelper::dpiScaled(2)) : 0; - const int xpos = x + wi - bmarg - qRound(QStyleHelper::dpiScaled(16)); + const int margin = cb->frame ? qRound(QStyleHelper::dpiScaled(3, dpi)) : 0; + const int bmarg = cb->frame ? qRound(QStyleHelper::dpiScaled(2, dpi)) : 0; + const int xpos = x + wi - bmarg - qRound(QStyleHelper::dpiScaled(16, dpi)); switch (sc) { @@ -4258,10 +4259,10 @@ QRect QCommonStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex ret = cb->rect; break; case SC_ComboBoxArrow: - ret.setRect(xpos, y + bmarg, qRound(QStyleHelper::dpiScaled(16)), he - 2*bmarg); + ret.setRect(xpos, y + bmarg, qRound(QStyleHelper::dpiScaled(16, opt)), he - 2*bmarg); break; case SC_ComboBoxEditField: - ret.setRect(x + margin, y + margin, wi - 2 * margin - qRound(QStyleHelper::dpiScaled(16)), he - 2 * margin); + ret.setRect(x + margin, y + margin, wi - 2 * margin - qRound(QStyleHelper::dpiScaled(16, dpi)), he - 2 * margin); break; case SC_ComboBoxListBoxPopup: ret = cb->rect; @@ -4505,13 +4506,13 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid ret = 0; break; case PM_DialogButtonsSeparator: - ret = int(QStyleHelper::dpiScaled(5.)); + ret = int(QStyleHelper::dpiScaled(5, opt)); break; case PM_DialogButtonsButtonWidth: - ret = int(QStyleHelper::dpiScaled(70.)); + ret = int(QStyleHelper::dpiScaled(70, opt)); break; case PM_DialogButtonsButtonHeight: - ret = int(QStyleHelper::dpiScaled(30.)); + ret = int(QStyleHelper::dpiScaled(30, opt)); break; case PM_TitleBarHeight: { if (const QStyleOptionTitleBar *tb = qstyleoption_cast(opt)) { @@ -4519,33 +4520,33 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid ret = qMax(widget ? widget->fontMetrics().height() : opt->fontMetrics.height(), 16); #if QT_CONFIG(dockwidget) } else if (qobject_cast(widget)) { - ret = qMax(widget->fontMetrics().height(), int(QStyleHelper::dpiScaled(13))); + ret = qMax(widget->fontMetrics().height(), int(QStyleHelper::dpiScaled(13, opt))); #endif } else { ret = qMax(widget ? widget->fontMetrics().height() : opt->fontMetrics.height(), 18); } } else { - ret = int(QStyleHelper::dpiScaled(18.)); + ret = int(QStyleHelper::dpiScaled(18., opt)); } break; } case PM_TitleBarButtonSize: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16., opt)); break; case PM_TitleBarButtonIconSize: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16., opt)); break; case PM_ScrollBarSliderMin: - ret = int(QStyleHelper::dpiScaled(9.)); + ret = int(QStyleHelper::dpiScaled(9., opt)); break; case PM_ButtonMargin: - ret = int(QStyleHelper::dpiScaled(6.)); + ret = int(QStyleHelper::dpiScaled(6., opt)); break; case PM_DockWidgetTitleBarButtonMargin: - ret = int(QStyleHelper::dpiScaled(2.)); + ret = int(QStyleHelper::dpiScaled(2., opt)); break; case PM_ButtonDefaultIndicator: @@ -4553,7 +4554,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_MenuButtonIndicator: - ret = int(QStyleHelper::dpiScaled(12.)); + ret = int(QStyleHelper::dpiScaled(12, opt)); break; case PM_ButtonShiftHorizontal: @@ -4568,15 +4569,15 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid case PM_MenuPanelWidth: case PM_TabBarBaseOverlap: case PM_TabBarBaseHeight: - ret = proxy()->pixelMetric(PM_DefaultFrameWidth, opt, widget); + ret = proxy()->pixelMetric(PM_DefaultFrameWidth, opt); break; case PM_MdiSubWindowFrameWidth: - ret = int(QStyleHelper::dpiScaled(4.)); + ret = int(QStyleHelper::dpiScaled(4, opt)); break; case PM_MdiSubWindowMinimizedWidth: - ret = int(QStyleHelper::dpiScaled(196.)); + ret = int(QStyleHelper::dpiScaled(196, opt)); break; #if QT_CONFIG(scrollbar) @@ -4587,7 +4588,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid : QApplication::globalStrut().width(); ret = qMax(16, s); } else { - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16, opt)); } break; #endif @@ -4597,7 +4598,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid #if QT_CONFIG(slider) case PM_SliderThickness: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16, opt)); break; case PM_SliderTickmarkOffset: @@ -4631,11 +4632,11 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid #endif // QT_CONFIG(slider) #if QT_CONFIG(dockwidget) case PM_DockWidgetSeparatorExtent: - ret = int(QStyleHelper::dpiScaled(6.)); + ret = int(QStyleHelper::dpiScaled(6, opt)); break; case PM_DockWidgetHandleExtent: - ret = int(QStyleHelper::dpiScaled(8.)); + ret = int(QStyleHelper::dpiScaled(8, opt)); break; case PM_DockWidgetTitleMargin: ret = 0; @@ -4664,19 +4665,19 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_ToolBarItemSpacing: - ret = int(QStyleHelper::dpiScaled(4.)); + ret = int(QStyleHelper::dpiScaled(4, opt)); break; case PM_ToolBarHandleExtent: - ret = int(QStyleHelper::dpiScaled(8.)); + ret = int(QStyleHelper::dpiScaled(8, opt)); break; case PM_ToolBarSeparatorExtent: - ret = int(QStyleHelper::dpiScaled(6.)); + ret = int(QStyleHelper::dpiScaled(6, opt)); break; case PM_ToolBarExtensionExtent: - ret = int(QStyleHelper::dpiScaled(12.)); + ret = int(QStyleHelper::dpiScaled(12, opt)); break; #endif // QT_CONFIG(toolbar) @@ -4686,7 +4687,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_TabBarTabHSpace: - ret = int(QStyleHelper::dpiScaled(24.)); + ret = int(QStyleHelper::dpiScaled(24, opt)); break; case PM_TabBarTabShiftHorizontal: @@ -4715,27 +4716,27 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_IndicatorWidth: - ret = int(QStyleHelper::dpiScaled(13.)); + ret = int(QStyleHelper::dpiScaled(13, opt)); break; case PM_IndicatorHeight: - ret = int(QStyleHelper::dpiScaled(13.)); + ret = int(QStyleHelper::dpiScaled(13, opt)); break; case PM_ExclusiveIndicatorWidth: - ret = int(QStyleHelper::dpiScaled(12.)); + ret = int(QStyleHelper::dpiScaled(12, opt)); break; case PM_ExclusiveIndicatorHeight: - ret = int(QStyleHelper::dpiScaled(12.)); + ret = int(QStyleHelper::dpiScaled(12, opt)); break; case PM_MenuTearoffHeight: - ret = int(QStyleHelper::dpiScaled(10.)); + ret = int(QStyleHelper::dpiScaled(10, opt)); break; case PM_MenuScrollerHeight: - ret = int(QStyleHelper::dpiScaled(10.)); + ret = int(QStyleHelper::dpiScaled(10, opt)); break; case PM_MenuDesktopFrameWidth: @@ -4745,22 +4746,22 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_HeaderMargin: - ret = int(QStyleHelper::dpiScaled(4.)); + ret = int(QStyleHelper::dpiScaled(4, opt)); break; case PM_HeaderMarkSize: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16, opt)); break; case PM_HeaderGripMargin: - ret = int(QStyleHelper::dpiScaled(4.)); + ret = int(QStyleHelper::dpiScaled(4, opt)); break; case PM_HeaderDefaultSectionSizeHorizontal: - ret = int(QStyleHelper::dpiScaled(100.)); + ret = int(QStyleHelper::dpiScaled(100, opt)); break; case PM_HeaderDefaultSectionSizeVertical: - ret = int(QStyleHelper::dpiScaled(30.)); + ret = int(QStyleHelper::dpiScaled(30, opt)); break; case PM_TabBarScrollButtonWidth: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16, opt)); break; case PM_LayoutLeftMargin: case PM_LayoutTopMargin: @@ -4782,13 +4783,13 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_DefaultTopLevelMargin: - ret = int(QStyleHelper::dpiScaled(11.)); + ret = int(QStyleHelper::dpiScaled(11, opt)); break; case PM_DefaultChildMargin: - ret = int(QStyleHelper::dpiScaled(9.)); + ret = int(QStyleHelper::dpiScaled(9, opt)); break; case PM_DefaultLayoutSpacing: - ret = int(QStyleHelper::dpiScaled(6.)); + ret = int(QStyleHelper::dpiScaled(6, opt)); break; case PM_ToolBarIconSize: @@ -4796,31 +4797,31 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid if (const QPlatformTheme *theme = QGuiApplicationPrivate::platformTheme()) ret = theme->themeHint(QPlatformTheme::ToolBarIconSize).toInt(); if (ret <= 0) - ret = int(QStyleHelper::dpiScaled(24.)); + ret = int(QStyleHelper::dpiScaled(24, opt)); break; case PM_TabBarIconSize: - ret = proxy()->pixelMetric(PM_SmallIconSize, opt, widget); + ret = proxy()->pixelMetric(PM_SmallIconSize, opt); break; case PM_ListViewIconSize: #if QT_CONFIG(filedialog) if (qobject_cast(widget)) - ret = int(QStyleHelper::dpiScaled(24.)); + ret = int(QStyleHelper::dpiScaled(24., opt)); else #endif - ret = proxy()->pixelMetric(PM_SmallIconSize, opt, widget); + ret = proxy()->pixelMetric(PM_SmallIconSize, opt); break; case PM_ButtonIconSize: case PM_SmallIconSize: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16, opt)); break; case PM_IconViewIconSize: - ret = proxy()->pixelMetric(PM_LargeIconSize, opt, widget); + ret = proxy()->pixelMetric(PM_LargeIconSize, opt); break; case PM_LargeIconSize: - ret = int(QStyleHelper::dpiScaled(32.)); + ret = int(QStyleHelper::dpiScaled(32, opt)); break; case PM_ToolTipLabelFrameWidth: @@ -4828,10 +4829,10 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_CheckBoxLabelSpacing: case PM_RadioButtonLabelSpacing: - ret = int(QStyleHelper::dpiScaled(6.)); + ret = int(QStyleHelper::dpiScaled(6, opt)); break; case PM_SizeGripSize: - ret = int(QStyleHelper::dpiScaled(13.)); + ret = int(QStyleHelper::dpiScaled(13, opt)); break; case PM_MessageBoxIconSize: #ifdef Q_OS_MAC @@ -4840,7 +4841,7 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid } else #endif { - ret = int(QStyleHelper::dpiScaled(32.)); + ret = int(QStyleHelper::dpiScaled(32, opt)); } break; case PM_TextCursorWidth: @@ -4851,19 +4852,19 @@ int QCommonStyle::pixelMetric(PixelMetric m, const QStyleOption *opt, const QWid break; case PM_TabCloseIndicatorWidth: case PM_TabCloseIndicatorHeight: - ret = int(QStyleHelper::dpiScaled(16.)); + ret = int(QStyleHelper::dpiScaled(16, opt)); break; case PM_ScrollView_ScrollBarSpacing: - ret = 2 * proxy()->pixelMetric(PM_DefaultFrameWidth, opt, widget); + ret = 2 * proxy()->pixelMetric(PM_DefaultFrameWidth, opt); break; case PM_ScrollView_ScrollBarOverlap: ret = 0; break; case PM_SubMenuOverlap: - ret = -proxy()->pixelMetric(QStyle::PM_MenuPanelWidth, opt, widget); + ret = -proxy()->pixelMetric(QStyle::PM_MenuPanelWidth, opt); break; case PM_TreeViewIndentation: - ret = int(QStyleHelper::dpiScaled(20.)); + ret = int(QStyleHelper::dpiScaled(20, opt)); break; default: ret = 0; diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index aa9f18d15e..ba2b6b0ed9 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -250,8 +250,9 @@ static void qt_fusion_draw_arrow(Qt::ArrowType type, QPainter *painter, const QS if (rect.isEmpty()) return; - const int arrowWidth = QStyleHelper::dpiScaled(14); - const int arrowHeight = QStyleHelper::dpiScaled(8); + const qreal dpi = QStyleHelper::dpi(option); + const int arrowWidth = int(QStyleHelper::dpiScaled(14, dpi)); + const int arrowHeight = int(QStyleHelper::dpiScaled(8, dpi)); const int arrowMax = qMin(arrowHeight, arrowWidth); const int rectMax = qMin(rect.height(), rect.width()); @@ -788,12 +789,13 @@ void QFusionStyle::drawPrimitive(PrimitiveElement elem, painter->drawRect(rect.adjusted(checkMarkPadding, checkMarkPadding, -checkMarkPadding, -checkMarkPadding)); } else if (checkbox->state & State_On) { - qreal penWidth = QStyleHelper::dpiScaled(1.5); + const qreal dpi = QStyleHelper::dpi(option); + qreal penWidth = QStyleHelper::dpiScaled(1.5, dpi); penWidth = qMax(penWidth, 0.13 * rect.height()); penWidth = qMin(penWidth, 0.20 * rect.height()); QPen checkPen = QPen(checkMarkColor, penWidth); checkMarkColor.setAlpha(210); - painter->translate(dpiScaled(-0.8), dpiScaled(0.5)); + painter->translate(dpiScaled(-0.8, dpi), dpiScaled(0.5, dpi)); painter->setPen(checkPen); painter->setBrush(Qt::NoBrush); @@ -1544,7 +1546,7 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio QColor highlight = option->palette.highlight().color(); if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) { int w = 0; - const int margin = QStyleHelper::dpiScaled(5); + const int margin = int(QStyleHelper::dpiScaled(5, option)); if (!menuItem->text.isEmpty()) { painter->setFont(menuItem->font); proxy()->drawItemText(painter, menuItem->rect.adjusted(margin, 0, -margin, 0), Qt::AlignLeft | Qt::AlignVCenter, @@ -1574,7 +1576,7 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio bool ignoreCheckMark = false; const int checkColHOffset = windowsItemHMargin + windowsItemFrame - 1; int checkcol = qMax(menuItem->rect.height() * 0.79, - qMax(menuItem->maxIconWidth, dpiScaled(21))); // icon checkbox's highlight column width + qMax(menuItem->maxIconWidth, dpiScaled(21, option))); // icon checkbox's highlight column width if ( #if QT_CONFIG(combobox) qobject_cast(widget) || @@ -1584,7 +1586,7 @@ void QFusionStyle::drawControl(ControlElement element, const QStyleOption *optio if (!ignoreCheckMark) { // Check, using qreal and QRectF to avoid error accumulation - const qreal boxMargin = dpiScaled(3.5); + const qreal boxMargin = dpiScaled(3.5, option); const qreal boxWidth = checkcol - 2 * boxMargin; QRectF checkRectF(option->rect.left() + boxMargin + checkColHOffset, option->rect.center().y() - boxWidth/2 + 1, boxWidth, boxWidth); QRect checkRect = checkRectF.toRect(); @@ -3184,7 +3186,7 @@ int QFusionStyle::pixelMetric(PixelMetric metric, const QStyleOption *option, co default: return QCommonStyle::pixelMetric(metric, option, widget); } - return QStyleHelper::dpiScaled(val); + return QStyleHelper::dpiScaled(val, option); } /*! @@ -3236,7 +3238,7 @@ QSize QFusionStyle::sizeFromContents(ContentsType type, const QStyleOption *opti if (menuItem->text.contains(QLatin1Char('\t'))) w += tabSpacing; else if (menuItem->menuItemType == QStyleOptionMenuItem::SubMenu) - w += 2 * QStyleHelper::dpiScaled(QFusionStylePrivate::menuArrowHMargin); + w += 2 * QStyleHelper::dpiScaled(QFusionStylePrivate::menuArrowHMargin, option); else if (menuItem->menuItemType == QStyleOptionMenuItem::DefaultItem) { QFontMetrics fm(menuItem->font); QFont fontBold = menuItem->font; @@ -3244,9 +3246,10 @@ QSize QFusionStyle::sizeFromContents(ContentsType type, const QStyleOption *opti QFontMetrics fmBold(fontBold); w += fmBold.horizontalAdvance(menuItem->text) - fm.horizontalAdvance(menuItem->text); } - const int checkcol = qMax(maxpmw, QStyleHelper::dpiScaled(QFusionStylePrivate::menuCheckMarkWidth)); // Windows always shows a check column + const qreal dpi = QStyleHelper::dpi(option); + const int checkcol = qMax(maxpmw, QStyleHelper::dpiScaled(QFusionStylePrivate::menuCheckMarkWidth, dpi)); // Windows always shows a check column w += checkcol; - w += QStyleHelper::dpiScaled(int(QFusionStylePrivate::menuRightBorder) + 10); + w += QStyleHelper::dpiScaled(int(QFusionStylePrivate::menuRightBorder) + 10, dpi); newSize.setWidth(w); if (menuItem->menuItemType == QStyleOptionMenuItem::Separator) { if (!menuItem->text.isEmpty()) { @@ -3260,8 +3263,8 @@ QSize QFusionStyle::sizeFromContents(ContentsType type, const QStyleOption *opti } #endif } - newSize.setWidth(newSize.width() + QStyleHelper::dpiScaled(12)); - newSize.setWidth(qMax(newSize.width(), QStyleHelper::dpiScaled(120))); + newSize.setWidth(newSize.width() + int(QStyleHelper::dpiScaled(12, dpi))); + newSize.setWidth(qMax(newSize.width(), int(QStyleHelper::dpiScaled(120, dpi)))); } break; case CT_SizeGrip: @@ -3409,7 +3412,7 @@ QRect QFusionStyle::subControlRect(ComplexControl control, const QStyleOptionCom break; case SC_SliderGroove: { QPoint grooveCenter = slider->rect.center(); - const int grooveThickness = QStyleHelper::dpiScaled(7); + const int grooveThickness = QStyleHelper::dpiScaled(7, option); if (slider->orientation == Qt::Horizontal) { rect.setHeight(grooveThickness); if (slider->tickPosition & QSlider::TicksAbove) @@ -3438,7 +3441,7 @@ QRect QFusionStyle::subControlRect(ComplexControl control, const QStyleOptionCom int center = spinbox->rect.height() / 2; int fw = spinbox->frame ? 3 : 0; // Is drawn with 3 pixels width in drawComplexControl, independently from PM_SpinBoxFrameWidth int y = fw; - const int buttonWidth = QStyleHelper::dpiScaled(14); + const int buttonWidth = QStyleHelper::dpiScaled(14, option); int x, lx, rx; x = spinbox->rect.width() - y - buttonWidth + 2; lx = fw; @@ -3522,17 +3525,19 @@ QRect QFusionStyle::subControlRect(ComplexControl control, const QStyleOptionCom case CC_ComboBox: switch (subControl) { - case SC_ComboBoxArrow: + case SC_ComboBoxArrow: { + const qreal dpi = QStyleHelper::dpi(option); rect = visualRect(option->direction, option->rect, rect); - rect.setRect(rect.right() - QStyleHelper::dpiScaled(18), rect.top() - 2, - QStyleHelper::dpiScaled(19), rect.height() + 4); + rect.setRect(rect.right() - int(QStyleHelper::dpiScaled(18, dpi)), rect.top() - 2, + int(QStyleHelper::dpiScaled(19, dpi)), rect.height() + 4); rect = visualRect(option->direction, option->rect, rect); + } break; case SC_ComboBoxEditField: { int frameWidth = 2; rect = visualRect(option->direction, option->rect, rect); rect.setRect(option->rect.left() + frameWidth, option->rect.top() + frameWidth, - option->rect.width() - int(QStyleHelper::dpiScaled(19)) - 2 * frameWidth, + option->rect.width() - int(QStyleHelper::dpiScaled(19, option)) - 2 * frameWidth, option->rect.height() - 2 * frameWidth); if (const QStyleOptionComboBox *box = qstyleoption_cast(option)) { if (!box->editable) { diff --git a/src/widgets/styles/qstylehelper.cpp b/src/widgets/styles/qstylehelper.cpp index 0b910d46df..4e61b2d1ec 100644 --- a/src/widgets/styles/qstylehelper.cpp +++ b/src/widgets/styles/qstylehelper.cpp @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include #include #include @@ -49,6 +51,7 @@ #include #include +#include #include "qstylehelper_p.h" #include @@ -79,15 +82,41 @@ QString uniqueName(const QString &key, const QStyleOption *option, const QSize & return tmp; } -qreal dpiScaled(qreal value) -{ -#ifdef Q_OS_MAC - // On mac the DPI is always 72 so we should not scale it - return value; +#ifdef Q_OS_DARWIN +static const qreal qstyleBaseDpi = 72; #else - static const qreal scale = qreal(qt_defaultDpiX()) / 96.0; - return value * scale; +static const qreal qstyleBaseDpi = 96; +#endif + +Q_WIDGETS_EXPORT qreal dpi(const QStyleOption *option) +{ +#ifndef Q_OS_DARWIN + // Prioritize the application override, except for on macOS where + // we have historically not supported the AA_Use96Dpi flag. + if (QCoreApplication::testAttribute(Qt::AA_Use96Dpi)) + return 96; #endif + + // Expect that QStyleOption::QFontMetrics::QFont has the correct DPI set + if (option) + return option->fontMetrics.fontDpi(); + + return qstyleBaseDpi; +} + +Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, qreal dpi) +{ + return value * dpi / qstyleBaseDpi; +} + +Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, const QPaintDevice *device) +{ + return dpiScaled(value, device->logicalDpiX()); +} + +Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, const QStyleOption *option) +{ + return dpiScaled(value, dpi(option)); } #ifndef QT_NO_ACCESSIBILITY diff --git a/src/widgets/styles/qstylehelper_p.h b/src/widgets/styles/qstylehelper_p.h index fe052b8984..165608257a 100644 --- a/src/widgets/styles/qstylehelper_p.h +++ b/src/widgets/styles/qstylehelper_p.h @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -75,7 +76,13 @@ class QWindow; namespace QStyleHelper { QString uniqueName(const QString &key, const QStyleOption *option, const QSize &size); - Q_WIDGETS_EXPORT qreal dpiScaled(qreal value); + + Q_WIDGETS_EXPORT qreal dpi(const QStyleOption *option); + + Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, qreal dpi); + Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, const QPaintDevice *device); + Q_WIDGETS_EXPORT qreal dpiScaled(qreal value, const QStyleOption *option); + #if QT_CONFIG(dial) qreal angle(const QPointF &p1, const QPointF &p2); QPolygonF calcLines(const QStyleOptionSlider *dial); diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp index c13f6e637d..72c803cb99 100644 --- a/src/widgets/styles/qwindowsstyle.cpp +++ b/src/widgets/styles/qwindowsstyle.cpp @@ -423,7 +423,7 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW ret = QWindowsStylePrivate::fixedPixelMetric(pm); if (ret != QWindowsStylePrivate::InvalidMetric) - return int(QStyleHelper::dpiScaled(ret)); + return int(QStyleHelper::dpiScaled(ret, opt)); ret = 0; @@ -469,7 +469,7 @@ int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QW break; case PM_SplitterWidth: - ret = qMax(int(QStyleHelper::dpiScaled(4)), QApplication::globalStrut().width()); + ret = qMax(int(QStyleHelper::dpiScaled(4, opt)), QApplication::globalStrut().width()); break; default: @@ -793,8 +793,9 @@ void QWindowsStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *opt, QPen oldPen = p->pen(); p->setPen(QPen(opt->palette.shadow().color(), 0)); QRectF rect = opt->rect; - const qreal topLevelAdjustment = QStyleHelper::dpiScaled(0.5); - const qreal bottomRightAdjustment = QStyleHelper::dpiScaled(-1.5); + const qreal dpi = QStyleHelper::dpi(opt); + const qreal topLevelAdjustment = QStyleHelper::dpiScaled(0.5, dpi); + const qreal bottomRightAdjustment = QStyleHelper::dpiScaled(-1.5, dpi); rect.adjust(topLevelAdjustment, topLevelAdjustment, bottomRightAdjustment, bottomRightAdjustment); p->drawRect(rect); @@ -2303,8 +2304,9 @@ QSize QWindowsStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt, int defwidth = 0; if (btn->features & QStyleOptionButton::AutoDefaultButton) defwidth = 2 * proxy()->pixelMetric(PM_ButtonDefaultIndicator, btn, widget); - int minwidth = int(QStyleHelper::dpiScaled(75.)); - int minheight = int(QStyleHelper::dpiScaled(23.)); + const qreal dpi = QStyleHelper::dpi(opt); + int minwidth = int(QStyleHelper::dpiScaled(75, dpi)); + int minheight = int(QStyleHelper::dpiScaled(23, dpi)); #ifndef QT_QWS_SMALL_PUSHBUTTON if (w < minwidth + defwidth && !btn->text.isEmpty()) -- cgit v1.2.3 From 3f603906b425152fe41e3b16d91fb25d0b0f0823 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 20 Aug 2019 10:05:43 +0300 Subject: Android: Set RTLD_NODELETE on API 23+ Change-Id: Ia4b0a6abf862e79b6d7b4c2368f44de0d05a65e9 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/plugin/qlibrary_unix.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp index 84fcc53d52..85ada9197c 100644 --- a/src/corelib/plugin/qlibrary_unix.cpp +++ b/src/corelib/plugin/qlibrary_unix.cpp @@ -52,6 +52,10 @@ # include #endif +#ifdef Q_OS_ANDROID +# include +#endif + QT_BEGIN_NAMESPACE static QString qdlerror() @@ -157,9 +161,12 @@ bool QLibraryPrivate::load_sys() // Do not unload the library during dlclose(). Consequently, the // library's specific static variables are not reinitialized if the // library is reloaded with dlopen() at a later time. -#if defined(RTLD_NODELETE) && !defined(Q_OS_ANDROID) +#if defined(RTLD_NODELETE) if (loadHints & QLibrary::PreventUnloadHint) { - dlFlags |= RTLD_NODELETE; +# ifdef Q_OS_ANDROID // RTLD_NODELETE flag is supported by Android 23+ + if (QtAndroidPrivate::androidSdkVersion() > 22) +# endif + dlFlags |= RTLD_NODELETE; } #endif -- cgit v1.2.3 From a4a11987089b1558b5b50a0d38c3263bb25818d7 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 14 Aug 2019 15:55:31 +0200 Subject: Windows: Fix some widget tests to pass on High DPI screens For tst_QFrame and tst_QOpenGLWidget, force scaling off since they do screen captures which would fail with scaling activated due to different device pixel ratios. For tst_QGraphicsItem and tst_QHeaderView, force scaling on for Windows since some tests otherwise fail due to violation of the minimum size constraints of framed windows on Windows. The tests will then pass regardless of any environment setting of the scaling variables on a developer machine. Change-Id: Iefa4e84b433f7e51dce4e416546a9eda8ee6d0f1 Reviewed-by: Edward Welbourne Reviewed-by: Oliver Wolff --- .../widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp | 11 +++++++++++ tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp | 9 +++++++++ tests/auto/widgets/widgets/qframe/tst_qframe.cpp | 4 ++++ .../auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp | 3 +++ 4 files changed, 27 insertions(+) diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp index 7b914512ab..72ea2ae31a 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp @@ -272,6 +272,9 @@ class tst_QGraphicsItem : public QObject { Q_OBJECT +public: + static void initMain(); + private slots: void construction(); void constructionWithParent(); @@ -474,6 +477,14 @@ private: QTouchDevice *m_touchDevice = nullptr; }; +void tst_QGraphicsItem::initMain() +{ +#ifdef Q_OS_WIN + // Ensure minimum size constraints of framed windows on High DPI screens + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); +#endif +} + void tst_QGraphicsItem::construction() { for (int i = 0; i < 7; ++i) { diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index f247889d55..df02815eb2 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -106,6 +106,7 @@ class tst_QHeaderView : public QObject public: tst_QHeaderView(); + static void initMain(); private slots: void initTestCase(); @@ -265,6 +266,14 @@ protected: QElapsedTimer timer; }; +void tst_QHeaderView::initMain() +{ +#ifdef Q_OS_WIN + // Ensure minimum size constraints of framed windows on High DPI screens + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); +#endif +} + class QtTestModel: public QAbstractTableModel { diff --git a/tests/auto/widgets/widgets/qframe/tst_qframe.cpp b/tests/auto/widgets/widgets/qframe/tst_qframe.cpp index 432f4474c5..05f9cd2e4a 100644 --- a/tests/auto/widgets/widgets/qframe/tst_qframe.cpp +++ b/tests/auto/widgets/widgets/qframe/tst_qframe.cpp @@ -37,6 +37,10 @@ class tst_QFrame : public QObject { Q_OBJECT + +public: + static void initMain() { QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); } + private slots: void testDefaults(); void testInitStyleOption_data(); diff --git a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp index 21c9f41646..76f8ebc804 100644 --- a/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp +++ b/tests/auto/widgets/widgets/qopenglwidget/tst_qopenglwidget.cpp @@ -49,6 +49,9 @@ class tst_QOpenGLWidget : public QObject { Q_OBJECT +public: + static void initMain() { QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); } + private slots: void initTestCase(); void create(); -- cgit v1.2.3 From e913b690b9c87a24e69085f707886ee066d1b616 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 22 Aug 2019 10:17:12 +0200 Subject: QtDBus: port all QMutexLocker users to qt_{scoped,unique}_lock Change-Id: Ibba27351a81b0b132ce702c1dfd49d56f23bd8c1 Reviewed-by: Thiago Macieira --- src/dbus/qdbus_symbols.cpp | 3 ++- src/dbus/qdbusconnection.cpp | 13 +++++++------ src/dbus/qdbusintegrator.cpp | 7 ++++--- src/dbus/qdbuspendingcall.cpp | 15 ++++++++------- src/dbus/qdbuspendingreply.cpp | 4 +++- src/dbus/qdbusserver.cpp | 4 +++- 6 files changed, 27 insertions(+), 19 deletions(-) diff --git a/src/dbus/qdbus_symbols.cpp b/src/dbus/qdbus_symbols.cpp index f22696639d..284ba999c2 100644 --- a/src/dbus/qdbus_symbols.cpp +++ b/src/dbus/qdbus_symbols.cpp @@ -41,6 +41,7 @@ #include #if QT_CONFIG(library) #include +#include #endif #include @@ -80,7 +81,7 @@ bool qdbus_loadLibDBus() static bool triedToLoadLibrary = false; static QBasicMutex mutex; - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); QLibrary *&lib = qdbus_libdbus; if (triedToLoadLibrary) diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp index 2c2dfc1ff6..58b5af3615 100644 --- a/src/dbus/qdbusconnection.cpp +++ b/src/dbus/qdbusconnection.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include "qdbusconnectioninterface.h" #include "qdbuserror.h" @@ -106,7 +107,7 @@ QDBusConnectionPrivate *QDBusConnectionManager::busConnection(QDBusConnection::B // (the event loop will resume delivery) bool suspendedDelivery = qApp && qApp->thread() == QThread::currentThread(); - QMutexLocker lock(&defaultBusMutex); + const auto locker = qt_scoped_lock(defaultBusMutex); if (defaultBuses[type]) return defaultBuses[type]; @@ -178,7 +179,7 @@ void QDBusConnectionManager::run() exec(); // cleanup: - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); for (QHash::const_iterator it = connectionHash.constBegin(); it != connectionHash.constEnd(); ++it) { QDBusConnectionPrivate *d = it.value(); @@ -240,7 +241,7 @@ QDBusConnectionPrivate *QDBusConnectionManager::connectToPeer(const QString &add void QDBusConnectionManager::executeConnectionRequest(QDBusConnectionManager::ConnectionRequestData *data) { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); const QString &name = *data->name; QDBusConnectionPrivate *&d = data->result; @@ -428,7 +429,7 @@ QDBusConnection::QDBusConnection(const QString &name) if (name.isEmpty() || _q_manager.isDestroyed()) { d = 0; } else { - QMutexLocker locker(&_q_manager()->mutex); + const auto locker = qt_scoped_lock(_q_manager()->mutex); d = _q_manager()->connection(name); if (d) d->ref.ref(); @@ -537,7 +538,7 @@ QDBusConnection QDBusConnection::connectToPeer(const QString &address, void QDBusConnection::disconnectFromBus(const QString &name) { if (_q_manager()) { - QMutexLocker locker(&_q_manager()->mutex); + const auto locker = qt_scoped_lock(_q_manager()->mutex); QDBusConnectionPrivate *d = _q_manager()->connection(name); if (d && d->mode != QDBusConnectionPrivate::ClientMode) return; @@ -558,7 +559,7 @@ void QDBusConnection::disconnectFromBus(const QString &name) void QDBusConnection::disconnectFromPeer(const QString &name) { if (_q_manager()) { - QMutexLocker locker(&_q_manager()->mutex); + const auto locker = qt_scoped_lock(_q_manager()->mutex); QDBusConnectionPrivate *d = _q_manager()->connection(name); if (d && d->mode != QDBusConnectionPrivate::PeerMode) return; diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp index 9306498f89..4c27a93382 100644 --- a/src/dbus/qdbusintegrator.cpp +++ b/src/dbus/qdbusintegrator.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include "qdbusargument.h" #include "qdbusconnection_p.h" @@ -304,7 +305,7 @@ static void qDBusNewConnection(DBusServer *server, DBusConnection *connection, v q_dbus_connection_set_allow_anonymous(connection, true); QDBusConnectionPrivate *newConnection = new QDBusConnectionPrivate(serverConnection->parent()); - QMutexLocker locker(&QDBusConnectionManager::instance()->mutex); + const auto locker = qt_scoped_lock(QDBusConnectionManager::instance()->mutex); QDBusConnectionManager::instance()->setConnection(QLatin1String("QDBusServer-") + QString::number(reinterpret_cast(newConnection), 16), newConnection); serverConnection->serverConnectionNames << newConnection->name; @@ -1862,7 +1863,7 @@ void QDBusConnectionPrivate::processFinishedCall(QDBusPendingCallPrivate *call) { QDBusConnectionPrivate *connection = const_cast(call->connection); - QMutexLocker locker(&call->mutex); + auto locker = qt_unique_lock(call->mutex); connection->pendingCalls.removeOne(call); @@ -1979,7 +1980,7 @@ public: #endif static bool initializedAmounts = false; static QBasicMutex initializeMutex; - QMutexLocker locker(&initializeMutex); + auto locker = qt_unique_lock(initializeMutex); if (!initializedAmounts) { int tmp = 0; diff --git a/src/dbus/qdbuspendingcall.cpp b/src/dbus/qdbuspendingcall.cpp index 7c2238900c..8e604d5a77 100644 --- a/src/dbus/qdbuspendingcall.cpp +++ b/src/dbus/qdbuspendingcall.cpp @@ -47,6 +47,7 @@ #include "qcoreapplication.h" #include "qcoreevent.h" #include +#include #ifndef QT_NO_DBUS @@ -232,7 +233,7 @@ void QDBusPendingCallPrivate::checkReceivedSignature() void QDBusPendingCallPrivate::waitForFinished() { - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); if (replyMessage.type() != QDBusMessage::InvalidMessage) return; // already finished @@ -330,7 +331,7 @@ bool QDBusPendingCall::isFinished() const if (!d) return true; // considered finished - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); return d->replyMessage.type() != QDBusMessage::InvalidMessage; } @@ -352,7 +353,7 @@ bool QDBusPendingCall::isValid() const { if (!d) return false; - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); return d->replyMessage.type() == QDBusMessage::ReplyMessage; } @@ -369,7 +370,7 @@ bool QDBusPendingCall::isError() const { if (!d) return true; // considered finished and an error - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); return d->replyMessage.type() == QDBusMessage::ErrorMessage; } @@ -384,7 +385,7 @@ bool QDBusPendingCall::isError() const QDBusError QDBusPendingCall::error() const { if (d) { - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); return QDBusError(d->replyMessage); } @@ -409,7 +410,7 @@ QDBusMessage QDBusPendingCall::reply() const { if (!d) return QDBusMessage::createError(error()); - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); return d->replyMessage; } @@ -503,7 +504,7 @@ QDBusPendingCallWatcher::QDBusPendingCallWatcher(const QDBusPendingCall &call, Q : QObject(*new QDBusPendingCallWatcherPrivate, parent), QDBusPendingCall(call) { if (d) { // QDBusPendingCall::d - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); if (!d->watcherHelper) { d->watcherHelper = new QDBusPendingCallWatcherHelper; if (d->replyMessage.type() != QDBusMessage::InvalidMessage) { diff --git a/src/dbus/qdbuspendingreply.cpp b/src/dbus/qdbuspendingreply.cpp index 6aec571563..ec49bafb60 100644 --- a/src/dbus/qdbuspendingreply.cpp +++ b/src/dbus/qdbuspendingreply.cpp @@ -42,6 +42,8 @@ #include "qdbuspendingcall_p.h" #include "qdbusmetatype.h" +#include + #ifndef QT_NO_DBUS /*! @@ -277,7 +279,7 @@ QVariant QDBusPendingReplyData::argumentAt(int index) const void QDBusPendingReplyData::setMetaTypes(int count, const int *types) { Q_ASSERT(d); - QMutexLocker locker(&d->mutex); + const auto locker = qt_scoped_lock(d->mutex); d->setMetaTypes(count, types); d->checkReceivedSignature(); } diff --git a/src/dbus/qdbusserver.cpp b/src/dbus/qdbusserver.cpp index 2899fb7bea..f2607e3e8d 100644 --- a/src/dbus/qdbusserver.cpp +++ b/src/dbus/qdbusserver.cpp @@ -43,6 +43,8 @@ #include "qdbusconnectionmanager_p.h" #include "qdbusutil_p.h" +#include + #ifndef QT_NO_DBUS QT_BEGIN_NAMESPACE @@ -111,7 +113,7 @@ QDBusServer::~QDBusServer() { QWriteLocker locker(&d->lock); if (QDBusConnectionManager::instance()) { - QMutexLocker locker(&QDBusConnectionManager::instance()->mutex); + const auto locker = qt_scoped_lock(QDBusConnectionManager::instance()->mutex); for (const QString &name : qAsConst(d->serverConnectionNames)) QDBusConnectionManager::instance()->removeConnection(name); d->serverConnectionNames.clear(); -- cgit v1.2.3 From 5d94aac2bae8bdbf8de7cebeb6a1a17a81685f0a Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Thu, 4 Jul 2019 15:17:29 +0200 Subject: Introduce QImage::Format_BGR888 Is pretty common on some architectures so we can avoid swizzling by supporting it. Fixes: QTBUG-45671 Change-Id: Ic7a21b5bfb374bf7496fd2b2b1252c2f1ed47705 Reviewed-by: Eirik Aavitsland --- src/gui/image/qimage.cpp | 15 ++ src/gui/image/qimage.h | 1 + src/gui/image/qimage_conversions.cpp | 222 +++++++++++++++------ src/gui/image/qimage_p.h | 1 + src/gui/image/qimage_ssse3.cpp | 7 +- src/gui/image/qpixmap_win.cpp | 3 +- src/gui/image/qpnghandler.cpp | 2 + src/gui/opengl/qopengltextureuploader.cpp | 18 ++ src/gui/painting/qdrawhelper.cpp | 28 ++- src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp | 2 +- tests/auto/gui/image/qimage/tst_qimage.cpp | 24 +++ .../gui/image/qimagereader/tst_qimagereader.cpp | 1 + tests/auto/gui/painting/qpainter/tst_qpainter.cpp | 1 + .../qimageconversion/tst_qimageconversion.cpp | 22 ++ 14 files changed, 281 insertions(+), 66 deletions(-) diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 8e0bbb6907..b7f67cd7ef 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -287,6 +287,7 @@ bool QImageData::checkForAlphaPixels() const case QImage::Format_RGB555: case QImage::Format_RGB666: case QImage::Format_RGB888: + case QImage::Format_BGR888: case QImage::Format_RGBX8888: case QImage::Format_BGR30: case QImage::Format_RGB30: @@ -720,6 +721,7 @@ bool QImageData::checkForAlphaPixels() const \value Format_RGBA64 The image is stored using a 64-bit halfword-ordered RGBA format (16-16-16-16). (added in Qt 5.12) \value Format_RGBA64_Premultiplied The image is stored using a premultiplied 64-bit halfword-ordered RGBA format (16-16-16-16). (added in Qt 5.12) + \value Format_BGR888 The image is stored using a 24-bit BGR format. (added in Qt 5.14) \note Drawing into a QImage with QImage::Format_Indexed8 is not supported. @@ -5550,6 +5552,19 @@ static Q_CONSTEXPR QPixelFormat pixelformats[] = { /*PREMULTIPLIED*/ QPixelFormat::NotPremultiplied, /*INTERPRETATION*/ QPixelFormat::UnsignedShort, /*BYTE ORDER*/ QPixelFormat::CurrentSystemEndian), + //QImage::Format_BGR888: + QPixelFormat(QPixelFormat::BGR, + /*RED*/ 8, + /*GREEN*/ 8, + /*BLUE*/ 8, + /*FOURTH*/ 0, + /*FIFTH*/ 0, + /*ALPHA*/ 0, + /*ALPHA USAGE*/ QPixelFormat::IgnoresAlpha, + /*ALPHA POSITION*/ QPixelFormat::AtBeginning, + /*PREMULTIPLIED*/ QPixelFormat::NotPremultiplied, + /*INTERPRETATION*/ QPixelFormat::UnsignedByte, + /*BYTE ORDER*/ QPixelFormat::CurrentSystemEndian), }; Q_STATIC_ASSERT(sizeof(pixelformats) / sizeof(*pixelformats) == QImage::NImageFormats); diff --git a/src/gui/image/qimage.h b/src/gui/image/qimage.h index 7c68168be8..7544ccca05 100644 --- a/src/gui/image/qimage.h +++ b/src/gui/image/qimage.h @@ -131,6 +131,7 @@ public: Format_RGBA64, Format_RGBA64_Premultiplied, Format_Grayscale16, + Format_BGR888, #ifndef Q_QDOC NImageFormats #endif diff --git a/src/gui/image/qimage_conversions.cpp b/src/gui/image/qimage_conversions.cpp index 837ac88470..539bac222a 100644 --- a/src/gui/image/qimage_conversions.cpp +++ b/src/gui/image/qimage_conversions.cpp @@ -429,8 +429,8 @@ typedef void (QT_FASTCALL *Rgb888ToRgbConverter)(quint32 *dst, const uchar *src, template static void convert_RGB888_to_RGB(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags) { - Q_ASSERT(src->format == QImage::Format_RGB888); - if (rgbx) + Q_ASSERT(src->format == QImage::Format_RGB888 || src->format == QImage::Format_BGR888); + if (rgbx ^ (src->format == QImage::Format_BGR888)) Q_ASSERT(dest->format == QImage::Format_RGBX8888 || dest->format == QImage::Format_RGBA8888 || dest->format == QImage::Format_RGBA8888_Premultiplied); else Q_ASSERT(dest->format == QImage::Format_RGB32 || dest->format == QImage::Format_ARGB32 || dest->format == QImage::Format_ARGB32_Premultiplied); @@ -1421,6 +1421,69 @@ static void convert_RGBA64_to_gray16(QImageData *dest, const QImageData *src, Qt } } +static void convert_RGB888_to_BGR888(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags) +{ + Q_ASSERT(src->format == QImage::Format_RGB888 || src->format == QImage::Format_BGR888); + Q_ASSERT(dest->format == QImage::Format_RGB888 || dest->format == QImage::Format_BGR888); + Q_ASSERT(src->width == dest->width); + Q_ASSERT(src->height == dest->height); + + const qsizetype sbpl = src->bytes_per_line; + const qsizetype dbpl = dest->bytes_per_line; + const uchar *src_data = src->data; + uchar *dest_data = dest->data; + + for (int i = 0; i < src->height; ++i) { + int pixel = 0; + // Handle 4 pixels (12 bytes) at a time + for (; pixel + 3 < src->width; pixel += 4) { + const uchar *src = src_data + pixel * 3; + quint32 *dest_packed = (quint32 *) (dest_data + pixel * 3); + dest_packed[0] = (src[5] << 24) | (src[0] << 16) | (src[1] << 8) | (src[2] << 0); + dest_packed[1] = (src[7] << 24) | (src[8] << 16) | (src[3] << 8) | (src[4] << 0); + dest_packed[2] = (src[9] << 24) | (src[10] << 16) | (src[11] << 8) | (src[6] << 0); + } + + // epilog: handle left over pixels + for (; pixel < src->width; ++pixel) { + dest_data[pixel * 3 + 0] = src_data[pixel * 3 + 2]; + dest_data[pixel * 3 + 1] = src_data[pixel * 3 + 1]; + dest_data[pixel * 3 + 2] = src_data[pixel * 3 + 0]; + } + + src_data += sbpl; + dest_data += dbpl; + } +} + +static bool convert_RGB888_to_BGR888_inplace(QImageData *data, Qt::ImageConversionFlags) +{ + Q_ASSERT(data->format == QImage::Format_RGB888 || data->format == QImage::Format_BGR888); + + const qsizetype bpl = data->bytes_per_line; + uchar *line_data = data->data; + + for (int i = 0; i < data->height; ++i) { + for (int j = 0; j < data->width; ++j) + qSwap(line_data[j * 3 + 0], line_data[j * 3 + 2]); + line_data += bpl; + } + + switch (data->format) { + case QImage::Format_RGB888: + data->format = QImage::Format_BGR888; + break; + case QImage::Format_BGR888: + data->format = QImage::Format_RGB888; + break; + default: + Q_UNREACHABLE(); + data->format = QImage::Format_Invalid; + return false; + } + return true; +} + static QVector fix_color_table(const QVector &ctbl, QImage::Format format) { QVector colorTable = ctbl; @@ -2265,7 +2328,7 @@ static bool convert_Grayscale8_to_Indexed8_inplace(QImageData *data, Qt::ImageCo Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormats] = { { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, @@ -2286,7 +2349,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_Mono { @@ -2308,7 +2371,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_MonoLSB { @@ -2333,7 +2396,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, 0, 0, convert_Indexed8_to_Alpha8, convert_Indexed8_to_Grayscale8, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_Indexed8 { @@ -2361,7 +2424,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_RGB_to_RGB30, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_RGB32 { @@ -2391,7 +2454,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, convert_ARGB32_to_RGBA64, - 0, 0 + 0, 0, 0 }, // Format_ARGB32 { @@ -2416,7 +2479,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_ARGB_to_RGBA, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_ARGB32_Premultiplied { @@ -2438,7 +2501,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB16 { @@ -2460,7 +2523,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB8565_Premultiplied { @@ -2482,7 +2545,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB666 { @@ -2504,7 +2567,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB6666_Premultiplied { @@ -2526,7 +2589,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB555 { @@ -2548,7 +2611,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB8555_Premultiplied { @@ -2565,13 +2628,14 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, + 0, // self 0, 0, convert_RGB888_to_RGB, convert_RGB888_to_RGB, convert_RGB888_to_RGB, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + convert_RGB888_to_BGR888, }, // Format_RGB888 { @@ -2593,7 +2657,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB444 { @@ -2614,7 +2678,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB4444_Premultiplied { 0, @@ -2641,7 +2705,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_RGB_to_RGB30, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_RGBX8888 { 0, @@ -2670,7 +2734,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, convert_ARGB32_to_RGBA64, - 0, 0 + 0, 0, 0 }, // Format_RGBA8888 { @@ -2692,7 +2756,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGBA8888_Premultiplied { @@ -2720,7 +2784,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_BGR30_to_RGB30, convert_BGR30_to_RGB30, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_BGR30 { 0, @@ -2747,7 +2811,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_A2RGB30_PM_to_RGB30, convert_BGR30_to_RGB30, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_A2BGR30_Premultiplied { 0, @@ -2773,7 +2837,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_BGR30_to_RGB30, 0, convert_passthrough, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB30 { 0, @@ -2800,7 +2864,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_A2RGB30_PM_to_RGB30, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_A2RGB30_Premultiplied { 0, @@ -2820,7 +2884,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_Alpha8 { 0, @@ -2840,14 +2904,15 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_Grayscale8 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // self convert_passthrough, convert_passthrough, - convert_RGBA64_to_gray16 + convert_RGBA64_to_gray16, + 0 }, // Format_RGBX64 { 0, @@ -2874,6 +2939,7 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_RGBA64_to_RGBx64, 0, // self convert_RGBA64_to_RGBA64PM, + 0, 0 }, // Format_RGBA64 { @@ -2901,7 +2967,8 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_RGBA64PM_to_RGBA64, convert_RGBA64PM_to_RGBA64, 0, // self - convert_RGBA64_to_gray16 + convert_RGBA64_to_gray16, + 0 }, // Format_RGBA64_Premultiplied { 0, @@ -2931,20 +2998,46 @@ Image_Converter qimage_converter_map[QImage::NImageFormats][QImage::NImageFormat convert_gray16_to_RGBA64, convert_gray16_to_RGBA64, convert_gray16_to_RGBA64, - 0 // self + 0, // self + 0 }, // Format_Grayscale16 + { + 0, + 0, + 0, + 0, + 0, 0, 0, + 0, + 0, + 0, + 0, + 0, + 0, + convert_RGB888_to_BGR888, + 0, + 0, +#if Q_BYTE_ORDER == Q_LITTLE_ENDIAN + convert_RGB888_to_RGB, + convert_RGB888_to_RGB, + convert_RGB888_to_RGB, +#else + 0, 0, 0, +#endif + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // self + }, // Format_BGR888 }; InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QImage::NImageFormats] = { { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_Mono { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_MonoLSB { 0, @@ -2968,7 +3061,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma 0, 0, 0, 0, 0, convert_Indexed8_to_Alpha8_inplace, convert_Indexed8_to_Grayscale8_inplace, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_Indexed8 { 0, @@ -2995,7 +3088,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_RGB_to_RGB30_inplace, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_RGB32 { 0, @@ -3022,7 +3115,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_RGB_to_RGB30_inplace, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_ARGB32 { 0, @@ -3046,34 +3139,35 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_ARGB_to_RGBA_inplace, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_ARGB32_Premultiplied { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB16 { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB8565_Premultiplied { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB666 { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB6666_Premultiplied { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB555 { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB8555_Premultiplied { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + convert_RGB888_to_BGR888_inplace }, // Format_RGB888 { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB444 { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_ARGB4444_Premultiplied { 0, @@ -3100,7 +3194,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_RGB_to_RGB30_inplace, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_RGBX8888 { 0, @@ -3127,7 +3221,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_RGB_to_RGB30_inplace, 0, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_RGBA8888 { 0, @@ -3149,7 +3243,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_RGBA8888_Premultiplied { 0, @@ -3176,7 +3270,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_BGR30_to_RGB30_inplace, convert_BGR30_to_A2RGB30_inplace, 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_BGR30 { 0, @@ -3202,7 +3296,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma 0, // self convert_A2RGB30_PM_to_RGB30_inplace, convert_BGR30_to_RGB30_inplace, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0 }, // Format_A2BGR30_Premultiplied { 0, @@ -3228,7 +3322,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_BGR30_to_A2RGB30_inplace, 0, // self convert_passthrough_inplace, - 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0 }, // Format_RGB30 { 0, @@ -3255,7 +3349,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma convert_A2RGB30_PM_to_RGB30_inplace, 0, // self 0, 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_A2RGB30_Premultiplied { 0, @@ -3280,7 +3374,7 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma 0, 0, 0, 0, 0, // self 0, - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_Alpha8 { 0, @@ -3305,32 +3399,37 @@ InPlace_Image_Converter qimage_inplace_converter_map[QImage::NImageFormats][QIma 0, 0, 0, 0, 0, 0, // self - 0, 0, 0, 0 + 0, 0, 0, 0, 0 }, // Format_Grayscale8 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // self convert_passthrough_inplace, convert_passthrough_inplace, - 0 + 0, 0 }, // Format_RGBX64 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, convert_RGBA64_to_RGBx64_inplace, 0, // self convert_RGBA64_to_RGBA64PM_inplace, - 0 + 0, 0 }, // Format_RGBA64 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, convert_RGBA64PM_to_RGBA64_inplace, convert_RGBA64PM_to_RGBA64_inplace, 0, // self - 0 + 0, 0 }, // Format_RGBA64_Premultiplied { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, // Format_Grayscale16 + { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + convert_RGB888_to_BGR888_inplace, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }, // Format_BGR888 }; static void qInitImageConversions() @@ -3341,6 +3440,9 @@ static void qInitImageConversions() qimage_converter_map[QImage::Format_RGB888][QImage::Format_RGB32] = convert_RGB888_to_RGB32_ssse3; qimage_converter_map[QImage::Format_RGB888][QImage::Format_ARGB32] = convert_RGB888_to_RGB32_ssse3; qimage_converter_map[QImage::Format_RGB888][QImage::Format_ARGB32_Premultiplied] = convert_RGB888_to_RGB32_ssse3; + qimage_converter_map[QImage::Format_BGR888][QImage::Format_RGBX8888] = convert_RGB888_to_RGB32_ssse3; + qimage_converter_map[QImage::Format_BGR888][QImage::Format_RGBA8888] = convert_RGB888_to_RGB32_ssse3; + qimage_converter_map[QImage::Format_BGR888][QImage::Format_RGBA8888_Premultiplied] = convert_RGB888_to_RGB32_ssse3; } #endif diff --git a/src/gui/image/qimage_p.h b/src/gui/image/qimage_p.h index 9da6acd0a7..9e2d9c86bb 100644 --- a/src/gui/image/qimage_p.h +++ b/src/gui/image/qimage_p.h @@ -207,6 +207,7 @@ inline int qt_depthForFormat(QImage::Format format) case QImage::Format_ARGB8565_Premultiplied: case QImage::Format_ARGB8555_Premultiplied: case QImage::Format_RGB888: + case QImage::Format_BGR888: depth = 24; break; case QImage::Format_RGBX64: diff --git a/src/gui/image/qimage_ssse3.cpp b/src/gui/image/qimage_ssse3.cpp index 9cdfba20e3..fb81a1a6c3 100644 --- a/src/gui/image/qimage_ssse3.cpp +++ b/src/gui/image/qimage_ssse3.cpp @@ -121,8 +121,11 @@ Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, con void convert_RGB888_to_RGB32_ssse3(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags) { - Q_ASSERT(src->format == QImage::Format_RGB888); - Q_ASSERT(dest->format == QImage::Format_RGB32 || dest->format == QImage::Format_ARGB32 || dest->format == QImage::Format_ARGB32_Premultiplied); + Q_ASSERT(src->format == QImage::Format_RGB888 || src->format == QImage::Format_BGR888); + if (src->format == QImage::Format_BGR888) + Q_ASSERT(dest->format == QImage::Format_RGBX8888 || dest->format == QImage::Format_RGBA8888 || dest->format == QImage::Format_RGBA8888_Premultiplied); + else + Q_ASSERT(dest->format == QImage::Format_RGB32 || dest->format == QImage::Format_ARGB32 || dest->format == QImage::Format_ARGB32_Premultiplied); Q_ASSERT(src->width == dest->width); Q_ASSERT(src->height == dest->height); diff --git a/src/gui/image/qpixmap_win.cpp b/src/gui/image/qpixmap_win.cpp index 3a2db74098..8aad77b991 100644 --- a/src/gui/image/qpixmap_win.cpp +++ b/src/gui/image/qpixmap_win.cpp @@ -281,6 +281,7 @@ Q_GUI_EXPORT HBITMAP qt_imageToWinHBITMAP(const QImage &imageIn, int hbitmapForm } break; case QImage::Format_RGB888: + case QImage::Format_BGR888: compression = BI_RGB; bitCount = 24u; break; @@ -368,7 +369,7 @@ static QImage::Format imageFromWinHBITMAP_Format(const BITMAPINFOHEADER &header, ? QImage::Format_RGB32 : QImage::Format_ARGB32_Premultiplied; break; case 24: - result = QImage::Format_RGB888; + result = QImage::Format_BGR888; break; case 16: result = QImage::Format_RGB555; diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp index 16d6c25b8b..4ab45337b0 100644 --- a/src/gui/image/qpnghandler.cpp +++ b/src/gui/image/qpnghandler.cpp @@ -1079,6 +1079,7 @@ bool QPNGImageWriter::writeImage(const QImage& image, volatile int compression_i if (color_type == PNG_COLOR_TYPE_RGB) { switch (image.format()) { case QImage::Format_RGB888: + case QImage::Format_BGR888: break; case QImage::Format_RGBX8888: case QImage::Format_RGBX64: @@ -1131,6 +1132,7 @@ bool QPNGImageWriter::writeImage(const QImage& image, volatile int compression_i case QImage::Format_RGB32: case QImage::Format_ARGB32: case QImage::Format_RGB888: + case QImage::Format_BGR888: case QImage::Format_RGBX8888: case QImage::Format_RGBA8888: case QImage::Format_RGBX64: diff --git a/src/gui/opengl/qopengltextureuploader.cpp b/src/gui/opengl/qopengltextureuploader.cpp index d9d5403cf3..9e393bc47a 100644 --- a/src/gui/opengl/qopengltextureuploader.cpp +++ b/src/gui/opengl/qopengltextureuploader.cpp @@ -65,6 +65,10 @@ #define GL_RGBA16 0x805B #endif +#ifndef GL_BGR +#define GL_BGR 0x80E0 +#endif + #ifndef GL_BGRA #define GL_BGRA 0x80E1 #endif @@ -202,6 +206,20 @@ qsizetype QOpenGLTextureUploader::textureImage(GLenum target, const QImage &imag pixelType = GL_UNSIGNED_BYTE; targetFormat = QImage::Format_RGB888; break; + case QImage::Format_BGR888: + if (isOpenGL12orBetter) { + externalFormat = GL_BGR; + internalFormat = GL_RGB; + pixelType = GL_UNSIGNED_BYTE; + targetFormat = QImage::Format_BGR888; + } else if (funcs->hasOpenGLExtension(QOpenGLExtensions::TextureSwizzle)) { + funcs->glTexParameteri(target, GL_TEXTURE_SWIZZLE_B, GL_RED); + funcs->glTexParameteri(target, GL_TEXTURE_SWIZZLE_R, GL_BLUE); + externalFormat = internalFormat = GL_RGB; + pixelType = GL_UNSIGNED_BYTE; + targetFormat = QImage::Format_BGR888; + } + break; case QImage::Format_RGBX8888: case QImage::Format_RGBA8888: case QImage::Format_RGBA8888_Premultiplied: diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 55d69221f5..c17bf2ddfd 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -88,6 +88,7 @@ template<> Q_DECL_CONSTEXPR uint redWidth() { return 4; } template<> Q_DECL_CONSTEXPR uint redWidth() { return 5; } template<> Q_DECL_CONSTEXPR uint redWidth() { return 6; } template<> Q_DECL_CONSTEXPR uint redWidth() { return 8; } +template<> Q_DECL_CONSTEXPR uint redWidth() { return 8; } template<> Q_DECL_CONSTEXPR uint redWidth() { return 4; } template<> Q_DECL_CONSTEXPR uint redWidth() { return 5; } template<> Q_DECL_CONSTEXPR uint redWidth() { return 5; } @@ -101,6 +102,7 @@ template<> Q_DECL_CONSTEXPR uint redShift() { return 8; template<> Q_DECL_CONSTEXPR uint redShift() { return 10; } template<> Q_DECL_CONSTEXPR uint redShift() { return 12; } template<> Q_DECL_CONSTEXPR uint redShift() { return 16; } +template<> Q_DECL_CONSTEXPR uint redShift() { return 0; } template<> Q_DECL_CONSTEXPR uint redShift() { return 8; } template<> Q_DECL_CONSTEXPR uint redShift() { return 18; } template<> Q_DECL_CONSTEXPR uint redShift() { return 19; } @@ -119,6 +121,7 @@ template<> Q_DECL_CONSTEXPR uint greenWidth() { return 4; template<> Q_DECL_CONSTEXPR uint greenWidth() { return 5; } template<> Q_DECL_CONSTEXPR uint greenWidth() { return 6; } template<> Q_DECL_CONSTEXPR uint greenWidth() { return 8; } +template<> Q_DECL_CONSTEXPR uint greenWidth() { return 8; } template<> Q_DECL_CONSTEXPR uint greenWidth() { return 4; } template<> Q_DECL_CONSTEXPR uint greenWidth() { return 5; } template<> Q_DECL_CONSTEXPR uint greenWidth() { return 6; } @@ -132,6 +135,7 @@ template<> Q_DECL_CONSTEXPR uint greenShift() { return 4; template<> Q_DECL_CONSTEXPR uint greenShift() { return 5; } template<> Q_DECL_CONSTEXPR uint greenShift() { return 6; } template<> Q_DECL_CONSTEXPR uint greenShift() { return 8; } +template<> Q_DECL_CONSTEXPR uint greenShift() { return 8; } template<> Q_DECL_CONSTEXPR uint greenShift() { return 4; } template<> Q_DECL_CONSTEXPR uint greenShift() { return 13; } template<> Q_DECL_CONSTEXPR uint greenShift() { return 13; } @@ -150,6 +154,7 @@ template<> Q_DECL_CONSTEXPR uint blueWidth() { return 4; template<> Q_DECL_CONSTEXPR uint blueWidth() { return 5; } template<> Q_DECL_CONSTEXPR uint blueWidth() { return 6; } template<> Q_DECL_CONSTEXPR uint blueWidth() { return 8; } +template<> Q_DECL_CONSTEXPR uint blueWidth() { return 8; } template<> Q_DECL_CONSTEXPR uint blueWidth() { return 4; } template<> Q_DECL_CONSTEXPR uint blueWidth() { return 5; } template<> Q_DECL_CONSTEXPR uint blueWidth() { return 5; } @@ -163,6 +168,7 @@ template<> Q_DECL_CONSTEXPR uint blueShift() { return 0; template<> Q_DECL_CONSTEXPR uint blueShift() { return 0; } template<> Q_DECL_CONSTEXPR uint blueShift() { return 0; } template<> Q_DECL_CONSTEXPR uint blueShift() { return 0; } +template<> Q_DECL_CONSTEXPR uint blueShift() { return 16; } template<> Q_DECL_CONSTEXPR uint blueShift() { return 0; } template<> Q_DECL_CONSTEXPR uint blueShift() { return 8; } template<> Q_DECL_CONSTEXPR uint blueShift() { return 8; } @@ -181,6 +187,7 @@ template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 0; template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 0; } +template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 4; } template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 8; } template<> Q_DECL_CONSTEXPR uint alphaWidth() { return 8; } @@ -194,6 +201,7 @@ template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; } +template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaShift() { return 12; } template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; } template<> Q_DECL_CONSTEXPR uint alphaShift() { return 0; } @@ -214,6 +222,7 @@ template<> constexpr QPixelLayout::BPP bitsPerPixel() { r template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP16; } template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP24; } template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP24; } +template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP24; } template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP16; } template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP24; } template<> constexpr QPixelLayout::BPP bitsPerPixel() { return QPixelLayout::BPP24; } @@ -1528,7 +1537,8 @@ QPixelLayout qPixelLayouts[QImage::NImageFormats] = { { false, false, QPixelLayout::BPP16, nullptr, convertGrayscale16ToRGB32, convertGrayscale16ToRGBA64, fetchGrayscale16ToRGB32, fetchGrayscale16ToRGBA64, - storeGrayscale16FromARGB32PM, storeGrayscale16FromRGB32 } // Format_Grayscale16 + storeGrayscale16FromARGB32PM, storeGrayscale16FromRGB32 }, // Format_Grayscale16 + pixelLayoutRGB(), }; Q_STATIC_ASSERT(sizeof(qPixelLayouts) / sizeof(*qPixelLayouts) == QImage::NImageFormats); @@ -1643,7 +1653,8 @@ ConvertAndStorePixelsFunc64 qStoreFromRGBA64PM[QImage::NImageFormats] = { storeRGBX64FromRGBA64PM, storeRGBA64FromRGBA64PM, storeRGBA64PMFromRGBA64PM, - storeGray16FromRGBA64PM + storeGray16FromRGBA64PM, + storeGenericFromRGBA64PM, }; /* @@ -1732,6 +1743,7 @@ static DestFetchProc destFetchProc[QImage::NImageFormats] = destFetch, // Format_RGBA64 destFetch, // Format_RGBA64_Premultiplied destFetch, // Format_Grayscale16 + destFetch, // Format_BGR888 }; #if QT_CONFIG(raster_64bit) @@ -1782,6 +1794,7 @@ static DestFetchProc64 destFetchProc64[QImage::NImageFormats] = destFetch64, // Format_RGBA64 destFetchRGB64, // Format_RGBA64_Premultiplied destFetch64, // Format_Grayscale16 + destFetch64, // Format_BGR888 }; #endif @@ -1922,6 +1935,7 @@ static DestStoreProc destStoreProc[QImage::NImageFormats] = destStore, // Format_RGBA64 destStore, // Format_RGBA64_Premultiplied destStore, // Format_Grayscale16 + destStore, // Format_BGR888 }; #if QT_CONFIG(raster_64bit) @@ -1971,6 +1985,7 @@ static DestStoreProc64 destStoreProc64[QImage::NImageFormats] = destStore64RGBA64, // Format_RGBA64 0, // Format_RGBA64_Premultiplied destStore64, // Format_Grayscale16 + destStore64, // Format_BGR888 }; #endif @@ -3922,6 +3937,7 @@ static SourceFetchProc sourceFetchUntransformed[QImage::NImageFormats] = { fetchUntransformed, // RGBA64 fetchUntransformed, // RGBA64_Premultiplied fetchUntransformed, // Grayscale16 + fetchUntransformed, // BGR888 }; static const SourceFetchProc sourceFetchGeneric[NBlendTypes] = { @@ -6589,6 +6605,14 @@ DrawHelper qDrawHelper[QImage::NImageFormats] = qt_alphargbblit_generic, qt_rectfill_quint16 }, + // Format_BGR888 + { + blend_color_generic, + 0, + qt_alphamapblit_generic, + qt_alphargbblit_generic, + qt_rectfill_quint24 + }, }; #if !defined(__SSE2__) diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp index dc7ea08dc5..cb8962d4b8 100644 --- a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp +++ b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp @@ -188,7 +188,7 @@ static QImage::Format determineFormat(const fb_var_screeninfo &info, int depth) if (memcmp(rgba, rgb888, 3 * sizeof(fb_bitfield)) == 0) { format = QImage::Format_RGB888; } else if (memcmp(rgba, bgr888, 3 * sizeof(fb_bitfield)) == 0) { - format = QImage::Format_RGB888; + format = QImage::Format_BGR888; // pixeltype = BGRPixel; } break; diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp index 441ec17412..b84aa52465 100644 --- a/tests/auto/gui/image/qimage/tst_qimage.cpp +++ b/tests/auto/gui/image/qimage/tst_qimage.cpp @@ -303,6 +303,8 @@ static QLatin1String formatToString(QImage::Format format) return QLatin1String("RGBA64pm"); case QImage::Format_Grayscale16: return QLatin1String("Grayscale16"); + case QImage::Format_BGR888: + return QLatin1String("BGR888"); default: break; }; @@ -844,6 +846,13 @@ void tst_QImage::convertToFormat_data() QTest::newRow("blue rgb32 -> rgb888") << int(QImage::Format_RGB32) << 0xff0000ff << int(QImage::Format_RGB888) << 0xff0000ff; + QTest::newRow("red rgb32 -> bgr888") << int(QImage::Format_RGB32) << 0xffff0000 + << int(QImage::Format_BGR888) << 0xffff0000; + QTest::newRow("green rgb32 -> bgr888") << int(QImage::Format_RGB32) << 0xff00ff00 + << int(QImage::Format_BGR888) << 0xff00ff00; + QTest::newRow("blue rgb32 -> bgr888") << int(QImage::Format_RGB32) << 0xff0000ff + << int(QImage::Format_BGR888) << 0xff0000ff; + QTest::newRow("red rgb16 -> rgb888") << int(QImage::Format_RGB16) << 0xffff0000 << int(QImage::Format_RGB888) << 0xffff0000; QTest::newRow("green rgb16 -> rgb888") << int(QImage::Format_RGB16) << 0xff00ff00 @@ -858,6 +867,13 @@ void tst_QImage::convertToFormat_data() QTest::newRow("blue rgb888 -> argb32") << int(QImage::Format_RGB888) << 0xff0000ff << int(QImage::Format_ARGB32) << 0xff0000ff; + QTest::newRow("red bgr888 -> argb32") << int(QImage::Format_RGB888) << 0xffff0000 + << int(QImage::Format_ARGB32) << 0xffff0000; + QTest::newRow("green bgr888 -> argb32") << int(QImage::Format_RGB888) << 0xff00ff00 + << int(QImage::Format_ARGB32) << 0xff00ff00; + QTest::newRow("blue bgr888 -> argb32") << int(QImage::Format_RGB888) << 0xff0000ff + << int(QImage::Format_ARGB32) << 0xff0000ff; + QTest::newRow("red rgb888 -> rgbx8888") << int(QImage::Format_RGB888) << 0xffff0000 << int(QImage::Format_RGBX8888) << 0xffff0000; QTest::newRow("green rgb888 -> rgbx8888") << int(QImage::Format_RGB888) << 0xff00ff00 @@ -1338,6 +1354,12 @@ void tst_QImage::setPixel_data() << 0xff00ff00 << 0x00ff00u; QTest::newRow("RGB888 blue") << int(QImage::Format_RGB888) << 0xff0000ff << 0x0000ffu; + QTest::newRow("BGR888 red") << int(QImage::Format_BGR888) + << 0xffff0000 << 0x0000ffu; + QTest::newRow("BGR888 green") << int(QImage::Format_BGR888) + << 0xff00ff00 << 0x00ff00u; + QTest::newRow("BGR888 blue") << int(QImage::Format_BGR888) + << 0xff0000ff << 0xff0000u; #if Q_BYTE_ORDER == Q_BIG_ENDIAN QTest::newRow("RGBA8888 red") << int(QImage::Format_RGBA8888) << 0xffff0000u << 0xff0000ffu; @@ -1425,6 +1447,7 @@ void tst_QImage::setPixel() case int(QImage::Format_ARGB8565_Premultiplied): case int(QImage::Format_ARGB8555_Premultiplied): case int(QImage::Format_RGB888): + case int(QImage::Format_BGR888): { for (int y = 0; y < h; ++y) { const quint24 *row = (const quint24*)(img.scanLine(y)); @@ -2445,6 +2468,7 @@ void tst_QImage::mirrored_data() QTest::newRow("Format_RGB555, vertical") << QImage::Format_RGB555 << true << false << 16 << 16; QTest::newRow("Format_ARGB8555_Premultiplied, vertical") << QImage::Format_ARGB8555_Premultiplied << true << false << 16 << 16; QTest::newRow("Format_RGB888, vertical") << QImage::Format_RGB888 << true << false << 16 << 16; + QTest::newRow("Format_BGR888, vertical") << QImage::Format_BGR888 << true << false << 16 << 16; QTest::newRow("Format_RGB444, vertical") << QImage::Format_RGB444 << true << false << 16 << 16; QTest::newRow("Format_RGBX8888, vertical") << QImage::Format_RGBX8888 << true << false << 16 << 16; QTest::newRow("Format_RGBA8888_Premultiplied, vertical") << QImage::Format_RGBA8888_Premultiplied << true << false << 16 << 16; diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp index eeabfd0413..f6ffd7b7c5 100644 --- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp +++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp @@ -1863,6 +1863,7 @@ void tst_QImageReader::saveFormat_data() QTest::newRow("Format_RGB555") << QImage::Format_RGB555; QTest::newRow("Format_ARGB8555_Premultiplied") << QImage::Format_ARGB8555_Premultiplied; QTest::newRow("Format_RGB888") << QImage::Format_RGB888; + QTest::newRow("Format_BGR888") << QImage::Format_BGR888; QTest::newRow("Format_RGB444") << QImage::Format_RGB444; QTest::newRow("Format_ARGB4444_Premultiplied") << QImage::Format_ARGB4444_Premultiplied; QTest::newRow("Format_RGBA64") << QImage::Format_RGBA64; diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp index 0efeb9b356..61867ec65a 100644 --- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp +++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp @@ -1637,6 +1637,7 @@ void tst_QPainter::qimageFormats_data() QTest::newRow("Qimage::Format_RGB555") << QImage::Format_RGB555; QTest::newRow("Qimage::Format_ARGB8555_Premultiplied") << QImage::Format_ARGB8555_Premultiplied; QTest::newRow("Qimage::Format_RGB888") << QImage::Format_RGB888; + QTest::newRow("Qimage::Format_BGR888") << QImage::Format_BGR888; QTest::newRow("Qimage::Format_A2RGB30_Premultiplied") << QImage::Format_A2RGB30_Premultiplied; QTest::newRow("Qimage::Format_RGB30") << QImage::Format_RGB30; } diff --git a/tests/benchmarks/gui/image/qimageconversion/tst_qimageconversion.cpp b/tests/benchmarks/gui/image/qimageconversion/tst_qimageconversion.cpp index 570c7b59fa..b88669e9ce 100644 --- a/tests/benchmarks/gui/image/qimageconversion/tst_qimageconversion.cpp +++ b/tests/benchmarks/gui/image/qimageconversion/tst_qimageconversion.cpp @@ -183,6 +183,7 @@ void tst_QImageConversion::convertRgb32_data() QTest::newRow("rgb32 -> rgb30") << rgb32 << QImage::Format_RGB30; QTest::newRow("rgb32 -> a2bgr30") << rgb32 << QImage::Format_A2BGR30_Premultiplied; QTest::newRow("rgb32 -> rgb888") << rgb32 << QImage::Format_RGB888; + QTest::newRow("rgb32 -> bgr888") << rgb32 << QImage::Format_BGR888; QTest::newRow("rgb32 -> rgb666") << rgb32 << QImage::Format_RGB666; QTest::newRow("rgb32 -> rgb555") << rgb32 << QImage::Format_RGB555; QTest::newRow("rgb32 -> argb8565pm") << rgb32 << QImage::Format_ARGB8565_Premultiplied; @@ -196,6 +197,7 @@ void tst_QImageConversion::convertRgb32_data() QTest::newRow("argb32 -> rgb30") << argb32 << QImage::Format_RGB30; QTest::newRow("argb32 -> a2bgr30") << argb32 << QImage::Format_A2BGR30_Premultiplied; QTest::newRow("argb32 -> rgb888") << argb32 << QImage::Format_RGB888; + QTest::newRow("argb32 -> bgr888") << argb32 << QImage::Format_BGR888; QTest::newRow("argb32 -> rgb666") << argb32 << QImage::Format_RGB666; QTest::newRow("argb32 -> argb8565pm") << argb32 << QImage::Format_ARGB8565_Premultiplied; QTest::newRow("argb32 -> argb4444pm") << argb32 << QImage::Format_ARGB4444_Premultiplied; @@ -212,6 +214,7 @@ void tst_QImageConversion::convertRgb32_data() QTest::newRow("argb32pm -> rgb30") << argb32pm << QImage::Format_RGB30; QTest::newRow("argb32pm -> a2bgr30") << argb32pm << QImage::Format_A2BGR30_Premultiplied; QTest::newRow("argb32pm -> rgb888") << argb32pm << QImage::Format_RGB888; + QTest::newRow("argb32pm -> bgr888") << argb32pm << QImage::Format_BGR888; QTest::newRow("argb32pm -> rgb666") << argb32pm << QImage::Format_RGB666; QTest::newRow("argb32pm -> argb8565pm") << argb32pm << QImage::Format_ARGB8565_Premultiplied; QTest::newRow("argb32pm -> argb4444pm") << argb32pm << QImage::Format_ARGB4444_Premultiplied; @@ -242,6 +245,8 @@ void tst_QImageConversion::convertGeneric_data() QImage rgb666 = rgb32.convertToFormat(QImage::Format_RGB666); QImage argb4444 = argb32.convertToFormat(QImage::Format_ARGB4444_Premultiplied); QImage rgba64pm = argb32.convertToFormat(QImage::Format_RGBA64_Premultiplied); + QImage rgb888 = rgb32.convertToFormat(QImage::Format_RGB888); + QImage bgr888 = rgb32.convertToFormat(QImage::Format_BGR888); QTest::newRow("indexed8 -> rgb32") << i8 << QImage::Format_RGB32; QTest::newRow("indexed8 -> argb32") << i8 << QImage::Format_ARGB32; @@ -299,6 +304,20 @@ void tst_QImageConversion::convertGeneric_data() QTest::newRow("rgba64pm -> rgb30") << rgba64pm << QImage::Format_RGB30; QTest::newRow("rgba64pm -> a2bgr30") << rgba64pm << QImage::Format_A2BGR30_Premultiplied; QTest::newRow("rgba64pm -> rgba64") << rgba64pm << QImage::Format_RGBA64; + + QTest::newRow("rgb888 -> rgb32") << rgb888 << QImage::Format_RGB32; + QTest::newRow("rgb888 -> argb32") << rgb888 << QImage::Format_ARGB32; + QTest::newRow("rgb888 -> argb32pm") << rgb888 << QImage::Format_ARGB32_Premultiplied; + QTest::newRow("rgb888 -> rgbx8888") << rgb888 << QImage::Format_RGBX8888; + QTest::newRow("rgb888 -> rgba8888pm") << rgb888 << QImage::Format_RGBA8888_Premultiplied; + QTest::newRow("rgb888 -> bgr888") << rgb888 << QImage::Format_BGR888; + + QTest::newRow("bgr888 -> rgb32") << bgr888 << QImage::Format_RGB32; + QTest::newRow("bgr888 -> argb32") << bgr888 << QImage::Format_ARGB32; + QTest::newRow("bgr888 -> argb32pm") << bgr888 << QImage::Format_ARGB32_Premultiplied; + QTest::newRow("bgr888 -> rgbx8888") << bgr888 << QImage::Format_RGBX8888; + QTest::newRow("bgr888 -> rgba8888pm") << bgr888 << QImage::Format_RGBA8888_Premultiplied; + QTest::newRow("bgr888 -> rgb888") << bgr888 << QImage::Format_RGB888; } void tst_QImageConversion::convertGeneric() @@ -323,6 +342,7 @@ void tst_QImageConversion::convertGenericInplace_data() QImage argb6666 = argb32.convertToFormat(QImage::Format_ARGB6666_Premultiplied); QImage argb4444 = argb32.convertToFormat(QImage::Format_ARGB4444_Premultiplied); QImage rgb16 = argb32.convertToFormat(QImage::Format_RGB16); + QImage rgb888 = argb32.convertToFormat(QImage::Format_RGB888); QTest::newRow("argb32 -> argb32pm -> argb32") << argb32 << QImage::Format_ARGB32_Premultiplied; QTest::newRow("argb32 -> rgb32 -> argb32") << argb32 << QImage::Format_RGB32; @@ -349,6 +369,8 @@ void tst_QImageConversion::convertGenericInplace_data() QTest::newRow("rgb16 -> rgb555 -> rgb16") << rgb16 << QImage::Format_RGB555; QTest::newRow("rgb16 -> rgb444 -> rgb16") << rgb16 << QImage::Format_RGB444; QTest::newRow("rgb16 -> argb4444pm -> rgb16") << rgb16 << QImage::Format_ARGB4444_Premultiplied; + + QTest::newRow("rgb888 -> bgr888 -> rgb888") << rgb888 << QImage::Format_BGR888; } void tst_QImageConversion::convertGenericInplace() -- cgit v1.2.3 From 1b7ce85a606261936efd3b3c7d73a71b5884e426 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Tue, 30 Jul 2019 16:42:12 +0200 Subject: Remove usages of deprecated APIs of QWheelEvent - Replaced the usages of deprecated QWheelEvent::delta() and QWheelEvent::orientation() with QWheelEvent::angleDelta(). In most of the examples it is acceptable to use only the vertical component of angle delta. - Made the docs APIs to build conditionally, based on the deprecation version. Task-number: QTBUG-76491 Task-number: QTBUG-76540 Change-Id: Id4230d483f724af49e4b6349b44881c3944de2a2 Reviewed-by: Volker Hilsheimer --- examples/corelib/threads/doc/src/mandelbrot.qdoc | 4 ++-- examples/corelib/threads/mandelbrot/mandelbrotwidget.cpp | 2 +- examples/widgets/graphicsview/chip/view.cpp | 2 +- examples/widgets/graphicsview/elasticnodes/graphwidget.cpp | 2 +- examples/widgets/painting/affine/xform.cpp | 2 +- examples/widgets/widgets/mousebuttons/buttontester.cpp | 11 ++++++----- src/gui/kernel/qevent.cpp | 4 ++++ 7 files changed, 16 insertions(+), 11 deletions(-) diff --git a/examples/corelib/threads/doc/src/mandelbrot.qdoc b/examples/corelib/threads/doc/src/mandelbrot.qdoc index 274874632e..9e3fdc1dfe 100644 --- a/examples/corelib/threads/doc/src/mandelbrot.qdoc +++ b/examples/corelib/threads/doc/src/mandelbrot.qdoc @@ -304,8 +304,8 @@ \snippet threads/mandelbrot/mandelbrotwidget.cpp 12 The wheel event handler is reimplemented to make the mouse wheel - control the zoom level. QWheelEvent::delta() returns the angle of - the wheel mouse movement, in eights of a degree. For most mice, + control the zoom level. QWheelEvent::angleDelta() returns the angle + of the wheel mouse movement, in eighths of a degree. For most mice, one wheel step corresponds to 15 degrees. We find out how many mouse steps we have and determine the resulting zoom factor. For example, if we have two wheel steps in the positive direction diff --git a/examples/corelib/threads/mandelbrot/mandelbrotwidget.cpp b/examples/corelib/threads/mandelbrot/mandelbrotwidget.cpp index 71d0abb09f..822791533b 100644 --- a/examples/corelib/threads/mandelbrot/mandelbrotwidget.cpp +++ b/examples/corelib/threads/mandelbrot/mandelbrotwidget.cpp @@ -176,7 +176,7 @@ void MandelbrotWidget::keyPressEvent(QKeyEvent *event) //! [12] void MandelbrotWidget::wheelEvent(QWheelEvent *event) { - int numDegrees = event->delta() / 8; + int numDegrees = event->angleDelta().y() / 8; double numSteps = numDegrees / 15.0f; zoom(pow(ZoomInFactor, numSteps)); } diff --git a/examples/widgets/graphicsview/chip/view.cpp b/examples/widgets/graphicsview/chip/view.cpp index 9676c13ff7..7d5fd699a4 100644 --- a/examples/widgets/graphicsview/chip/view.cpp +++ b/examples/widgets/graphicsview/chip/view.cpp @@ -68,7 +68,7 @@ void GraphicsView::wheelEvent(QWheelEvent *e) { if (e->modifiers() & Qt::ControlModifier) { - if (e->delta() > 0) + if (e->angleDelta().y() > 0) view->zoomIn(6); else view->zoomOut(6); diff --git a/examples/widgets/graphicsview/elasticnodes/graphwidget.cpp b/examples/widgets/graphicsview/elasticnodes/graphwidget.cpp index 6b817b2a21..9341d77f8d 100644 --- a/examples/widgets/graphicsview/elasticnodes/graphwidget.cpp +++ b/examples/widgets/graphicsview/elasticnodes/graphwidget.cpp @@ -190,7 +190,7 @@ void GraphWidget::timerEvent(QTimerEvent *event) //! [5] void GraphWidget::wheelEvent(QWheelEvent *event) { - scaleView(pow((double)2, -event->delta() / 240.0)); + scaleView(pow((double)2, -event->angleDelta().y() / 240.0)); } //! [5] #endif diff --git a/examples/widgets/painting/affine/xform.cpp b/examples/widgets/painting/affine/xform.cpp index 482e0f3268..50acf0f814 100644 --- a/examples/widgets/painting/affine/xform.cpp +++ b/examples/widgets/painting/affine/xform.cpp @@ -260,7 +260,7 @@ void XFormView::timerEvent(QTimerEvent *e) #if QT_CONFIG(wheelevent) void XFormView::wheelEvent(QWheelEvent *e) { - m_scale += e->delta() / qreal(600); + m_scale += e->angleDelta().y() / qreal(600); m_scale = qMax(qreal(0.1), qMin(qreal(4), m_scale)); emit scaleChanged(int(m_scale*1000)); } diff --git a/examples/widgets/widgets/mousebuttons/buttontester.cpp b/examples/widgets/widgets/mousebuttons/buttontester.cpp index 6653221698..88dbbeda45 100644 --- a/examples/widgets/widgets/mousebuttons/buttontester.cpp +++ b/examples/widgets/widgets/mousebuttons/buttontester.cpp @@ -93,15 +93,16 @@ void ButtonTester::mouseDoubleClickEvent(QMouseEvent *e) void ButtonTester::wheelEvent (QWheelEvent *e) { QString result; - if (e->delta() > 0) { - - if (e->orientation() == Qt::Vertical) { + const bool vertical = qAbs(e->angleDelta().y()) >= qAbs(e->angleDelta().x()); + const int delta = vertical ? e->angleDelta().y() : e->angleDelta().x(); + if (delta > 0) { + if (vertical) { result = "Mouse Wheel Event: UP"; } else { result = "Mouse Wheel Event: LEFT"; } - } else if (e->delta() < 0) { - if (e->orientation() == Qt::Vertical) { + } else if (delta < 0) { + if (vertical) { result = "Mouse Wheel Event: DOWN"; } else { result = "Mouse Wheel Event: RIGHT"; diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index d79066adf2..616cca1422 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -743,12 +743,14 @@ QHoverEvent::~QHoverEvent() \l inverted always returns false. */ +#if QT_DEPRECATED_SINCE(5, 15) /*! \fn Qt::Orientation QWheelEvent::orientation() const \obsolete Use angleDelta() instead. */ +#endif #if QT_CONFIG(wheelevent) #if QT_DEPRECATED_SINCE(5, 15) @@ -929,6 +931,7 @@ QWheelEvent::~QWheelEvent() \endlist */ +#if QT_DEPRECATED_SINCE(5, 15) /*! \fn int QWheelEvent::delta() const \obsolete @@ -992,6 +995,7 @@ QWheelEvent::~QWheelEvent() This function has been deprecated, use globalPosition() instead. */ +#endif /*! \fn Qt::ScrollPhase QWheelEvent::phase() const -- cgit v1.2.3 From ab55046862644441ade0fa1dc4aba98b32796877 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 15 Aug 2019 14:44:27 +0200 Subject: Brush up tst_QGraphicsScene - Fix includes - Add window titles - Introduce nullptr - Remove unneeded C-style casts in QCOMPARE - Replace remaining C-style casts - Use range-based for - Fix static invocation - Fix class structure, add override, use member initialization - Fix top level widget leaks and add a check - Silence debug output by using a logging category - Use Qt 5 connection syntax Task-number: QTBUG-76497 Change-Id: I77532a517353d04d1da43ce844988ee0ac2ffc7d Reviewed-by: Oliver Wolff --- .../qgraphicsscene/tst_qgraphicsscene.cpp | 669 +++++++++++---------- 1 file changed, 354 insertions(+), 315 deletions(-) diff --git a/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp index 46f1d5df5c..cc6ed2f80e 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. @@ -26,11 +26,24 @@ ** ****************************************************************************/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include #include -#include -#include +#include +#include + #include #include #include @@ -39,7 +52,7 @@ #include #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) -#include +#include #define Q_CHECK_PAINTEVENTS \ if (::SwitchDesktop(::GetThreadDesktop(::GetCurrentThreadId())) == 0) \ QSKIP("The Graphics View doesn't get the paint events"); @@ -51,6 +64,7 @@ Q_DECLARE_METATYPE(Qt::FocusReason) Q_DECLARE_METATYPE(QPainterPath) Q_DECLARE_METATYPE(Qt::AspectRatioMode) Q_DECLARE_METATYPE(Qt::ItemSelectionMode) +Q_DECLARE_METATYPE(QGraphicsItem::GraphicsItemFlags) static const int randomX[] = {276, 40, 250, 864, -56, 426, 855, 825, 184, 955, -798, -804, 773, 282, 489, 686, 780, -220, 50, 749, -856, -205, 81, 492, -819, 518, @@ -95,14 +109,16 @@ static const int randomY[] = {603, 70, -318, 843, 450, -637, 199, -527, 407, 964 -588, 864, 234, 225, -303, 493, 246, 153, 338, -378, 377, -819, 140, 136, 467, -849, -326, -533, 166, 252, -994, -699, 904, -566, 621, -752}; +Q_LOGGING_CATEGORY(lcTests, "qt.widgets.tests") + class HoverItem : public QGraphicsRectItem { public: HoverItem() - : QGraphicsRectItem(QRectF(-10, -10, 20, 20)), isHovered(false) + : QGraphicsRectItem(QRectF(-10, -10, 20, 20)) { setAcceptHoverEvents(true); } - bool isHovered; + bool isHovered = false; protected: void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) @@ -128,13 +144,13 @@ class EventSpy : public QGraphicsWidget Q_OBJECT public: EventSpy(QObject *watched, QEvent::Type type) - : _count(0), spied(type) + : spied(type) { watched->installEventFilter(this); } EventSpy(QGraphicsScene *scene, QGraphicsItem *watched, QEvent::Type type) - : _count(0), spied(type) + : spied(type) { scene->addItem(this); watched->installSceneEventFilter(this); @@ -143,7 +159,7 @@ public: int count() const { return _count; } protected: - bool eventFilter(QObject *watched, QEvent *event) + bool eventFilter(QObject *watched, QEvent *event) override { Q_UNUSED(watched); if (event->type() == spied) @@ -151,7 +167,7 @@ protected: return false; } - bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) + bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) override { Q_UNUSED(watched); if (event->type() == spied) @@ -159,8 +175,8 @@ protected: return false; } - int _count; - QEvent::Type spied; + int _count = 0; + const QEvent::Type spied; }; class tst_QGraphicsScene : public QObject @@ -273,8 +289,10 @@ private slots: void tst_QGraphicsScene::cleanup() { // ensure not even skipped tests with custom input context leave it dangling - QInputMethodPrivate *inputMethodPrivate = QInputMethodPrivate::get(qApp->inputMethod()); - inputMethodPrivate->testContext = 0; + QInputMethodPrivate *inputMethodPrivate = + QInputMethodPrivate::get(QGuiApplication::inputMethod()); + inputMethodPrivate->testContext = nullptr; + QTRY_VERIFY(QApplication::topLevelWidgets().isEmpty()); } void tst_QGraphicsScene::construction() @@ -287,7 +305,7 @@ void tst_QGraphicsScene::construction() QVERIFY(scene.items(QPolygonF()).isEmpty()); QVERIFY(scene.items(QPainterPath()).isEmpty()); QTest::ignoreMessage(QtWarningMsg, "QGraphicsScene::collidingItems: cannot find collisions for null item"); - QVERIFY(scene.collidingItems(0).isEmpty()); + QVERIFY(scene.collidingItems(nullptr).isEmpty()); QVERIFY(scene.items(QPointF()).isEmpty()); QVERIFY(scene.selectedItems().isEmpty()); QVERIFY(!scene.focusItem()); @@ -301,7 +319,7 @@ static inline const QGraphicsItem *itemAt(const QGraphicsScene &scene, qreal x, void tst_QGraphicsScene::sceneRect() { QGraphicsScene scene; - QSignalSpy sceneRectChanged(&scene, SIGNAL(sceneRectChanged(QRectF))); + QSignalSpy sceneRectChanged(&scene, &QGraphicsScene::sceneRectChanged); QCOMPARE(scene.sceneRect(), QRectF()); QCOMPARE(sceneRectChanged.count(), 0); @@ -435,9 +453,9 @@ void tst_QGraphicsScene::items() scene.removeItem(items.at(5)); delete items.at(5); - QVERIFY(!scene.items().contains(0)); + QVERIFY(!scene.items().contains(nullptr)); delete items.at(7); - QVERIFY(!scene.items().contains(0)); + QVERIFY(!scene.items().contains(nullptr)); } { QGraphicsScene scene; @@ -516,7 +534,7 @@ void tst_QGraphicsScene::itemsBoundingRect() QGraphicsScene scene; - foreach (QRectF rect, rects) { + for (const auto &rect : qAsConst(rects)) { QPainterPath path; path.addRect(rect); QGraphicsPathItem *item = scene.addPath(path); @@ -581,7 +599,7 @@ void tst_QGraphicsScene::items_QPointF() int n = 0; QList addedItems; - foreach(QRectF rect, items) { + for (const auto &rect : qAsConst(items)) { QPainterPath path; path.addRect(0, 0, rect.width(), rect.height()); @@ -593,7 +611,8 @@ void tst_QGraphicsScene::items_QPointF() } QList itemIndexes; - foreach (QGraphicsItem *item, scene.items(point)) + const auto &actualItemsAtPoint = scene.items(point); + for (QGraphicsItem *item : actualItemsAtPoint) itemIndexes << addedItems.indexOf(item); QCOMPARE(itemIndexes, itemsAtPoint); @@ -912,12 +931,11 @@ void tst_QGraphicsScene::items_QPainterPath_2() class CustomView : public QGraphicsView { public: - CustomView() : repaints(0) - { } + using QGraphicsView::QGraphicsView; - int repaints; + int repaints = 0; protected: - void paintEvent(QPaintEvent *event) + void paintEvent(QPaintEvent *event) override { ++repaints; QGraphicsView::paintEvent(event); @@ -927,7 +945,7 @@ protected: void tst_QGraphicsScene::selectionChanged() { QGraphicsScene scene(0, 0, 1000, 1000); - QSignalSpy spy(&scene, SIGNAL(selectionChanged())); + QSignalSpy spy(&scene, &QGraphicsScene::selectionChanged); QCOMPARE(spy.count(), 0); QPainterPath path; @@ -997,7 +1015,7 @@ void tst_QGraphicsScene::selectionChanged() void tst_QGraphicsScene::selectionChanged2() { QGraphicsScene scene; - QSignalSpy spy(&scene, SIGNAL(selectionChanged())); + QSignalSpy spy(&scene, &QGraphicsScene::selectionChanged); QGraphicsItem *item1 = scene.addRect(0, 0, 100, 100); QGraphicsItem *item2 = scene.addRect(100, 100, 100, 100); @@ -1009,13 +1027,13 @@ void tst_QGraphicsScene::selectionChanged2() QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); event.setScenePos(QPointF(50, 50)); event.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); } { QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); event.setScenePos(QPointF(50, 50)); event.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); } QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); @@ -1024,13 +1042,13 @@ void tst_QGraphicsScene::selectionChanged2() QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); event.setScenePos(QPointF(150, 150)); event.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); } { QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); event.setScenePos(QPointF(150, 150)); event.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); } QVERIFY(!item1->isSelected()); QVERIFY(item2->isSelected()); @@ -1040,7 +1058,7 @@ void tst_QGraphicsScene::selectionChanged2() event.setScenePos(QPointF(50, 50)); event.setButton(Qt::LeftButton); event.setModifiers(Qt::ControlModifier); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); } QVERIFY(!item1->isSelected()); QVERIFY(item2->isSelected()); @@ -1049,7 +1067,7 @@ void tst_QGraphicsScene::selectionChanged2() QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMouseRelease); event.setScenePos(QPointF(50, 50)); event.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); } QVERIFY(item1->isSelected()); QVERIFY(!item2->isSelected()); @@ -1065,10 +1083,11 @@ void tst_QGraphicsScene::addItem() QGraphicsScene scene; CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); view.setScene(&scene); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); - qApp->processEvents(); + QCoreApplication::processEvents(); view.repaints = 0; scene.addItem(path); @@ -1115,14 +1134,14 @@ void tst_QGraphicsScene::addEllipse() QCOMPARE(ellipse->pen(), QPen(Qt::red)); QCOMPARE(ellipse->brush(), QBrush(Qt::blue)); QCOMPARE(ellipse->rect(), QRectF(-10, -10, 20, 20)); - QCOMPARE(itemAt(scene, 0, 0), (QGraphicsItem *)ellipse); + QCOMPARE(itemAt(scene, 0, 0), ellipse); QVERIFY(scene.items(QPointF(-10, -10)).isEmpty()); - QCOMPARE(itemAt(scene, -9.9, 0), (QGraphicsItem *)ellipse); + QCOMPARE(itemAt(scene, -9.9, 0), ellipse); QVERIFY(scene.items(QPointF(-10, 10)).isEmpty()); - QCOMPARE(itemAt(scene, 0, -9.9), (QGraphicsItem *)ellipse); - QCOMPARE(itemAt(scene, 0, 9.9), (QGraphicsItem *)ellipse); + QCOMPARE(itemAt(scene, 0, -9.9), ellipse); + QCOMPARE(itemAt(scene, 0, 9.9), ellipse); QVERIFY(scene.items(QPointF(10, -10)).isEmpty()); - QCOMPARE(itemAt(scene, 9.9, 0), (QGraphicsItem *)ellipse); + QCOMPARE(itemAt(scene, 9.9, 0), ellipse); QVERIFY(scene.items(QPointF(10, 10)).isEmpty()); } @@ -1136,15 +1155,15 @@ void tst_QGraphicsScene::addLine() QCOMPARE(line->pos(), QPointF()); QCOMPARE(line->pen(), pen); QCOMPARE(line->line(), QLineF(-10, -10, 20, 20)); - QCOMPARE(itemAt(scene, 0, 0), (QGraphicsItem *)line); - QCOMPARE(itemAt(scene, -10, -10), (QGraphicsItem *)line); + QCOMPARE(itemAt(scene, 0, 0), line); + QCOMPARE(itemAt(scene, -10, -10), line); QVERIFY(scene.items(QPointF(-9.9, 0)).isEmpty()); QVERIFY(scene.items(QPointF(-10, 10)).isEmpty()); QVERIFY(scene.items(QPointF(0, -9.9)).isEmpty()); QVERIFY(scene.items(QPointF(0, 9.9)).isEmpty()); QVERIFY(scene.items(QPointF(10, -10)).isEmpty()); QVERIFY(scene.items(QPointF(9.9, 0)).isEmpty()); - QCOMPARE(itemAt(scene, 10, 10), (QGraphicsItem *)line); + QCOMPARE(itemAt(scene, 10, 10), line); } void tst_QGraphicsScene::addPath() @@ -1162,16 +1181,16 @@ void tst_QGraphicsScene::addPath() path->setPen(QPen(Qt::red, 0)); - QCOMPARE(itemAt(scene, 0, 0), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, -9.9, 0), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 9.9, 0), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 0, -9.9), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 0, 9.9), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 0, 30), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, -9.9, 30), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 9.9, 30), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 0, 20.1), (QGraphicsItem *)path); - QCOMPARE(itemAt(scene, 0, 39.9), (QGraphicsItem *)path); + QCOMPARE(itemAt(scene, 0, 0), path); + QCOMPARE(itemAt(scene, -9.9, 0), path); + QCOMPARE(itemAt(scene, 9.9, 0), path); + QCOMPARE(itemAt(scene, 0, -9.9), path); + QCOMPARE(itemAt(scene, 0, 9.9), path); + QCOMPARE(itemAt(scene, 0, 30), path); + QCOMPARE(itemAt(scene, -9.9, 30), path); + QCOMPARE(itemAt(scene, 9.9, 30), path); + QCOMPARE(itemAt(scene, 0, 20.1), path); + QCOMPARE(itemAt(scene, 0, 39.9), path); QVERIFY(scene.items(QPointF(-10, -10)).isEmpty()); QVERIFY(scene.items(QPointF(10, -10)).isEmpty()); QVERIFY(scene.items(QPointF(-10, 10)).isEmpty()); @@ -1193,10 +1212,10 @@ void tst_QGraphicsScene::addPixmap() QCOMPARE(pixmap->pos(), QPointF()); QCOMPARE(pixmap->pixmap(), pix); - QCOMPARE(itemAt(scene, 0, 0), (QGraphicsItem *)pixmap); - QCOMPARE(itemAt(scene, pix.width() - 1, 0), (QGraphicsItem *)pixmap); - QCOMPARE(itemAt(scene, 0, pix.height() - 1), (QGraphicsItem *)pixmap); - QCOMPARE(itemAt(scene, pix.width() - 1, pix.height() - 1), (QGraphicsItem *)pixmap); + QCOMPARE(itemAt(scene, 0, 0), pixmap); + QCOMPARE(itemAt(scene, pix.width() - 1, 0), pixmap); + QCOMPARE(itemAt(scene, 0, pix.height() - 1), pixmap); + QCOMPARE(itemAt(scene, pix.width() - 1, pix.height() - 1), pixmap); QVERIFY(scene.items(QPointF(-1, -1)).isEmpty()); QVERIFY(scene.items(QPointF(pix.width() - 1, -1)).isEmpty()); @@ -1218,14 +1237,14 @@ void tst_QGraphicsScene::addRect() rect->setPen(QPen(Qt::red, 0)); - QCOMPARE(itemAt(scene, 0, 0), (QGraphicsItem *)rect); - QCOMPARE(itemAt(scene, -10, -10), (QGraphicsItem *)rect); - QCOMPARE(itemAt(scene, -9.9, 0), (QGraphicsItem *)rect); + QCOMPARE(itemAt(scene, 0, 0),rect); + QCOMPARE(itemAt(scene, -10, -10), rect); + QCOMPARE(itemAt(scene, -9.9, 0), rect); QVERIFY(scene.items(QPointF(-10, 10)).isEmpty()); - QCOMPARE(itemAt(scene, 0, -9.9), (QGraphicsItem *)rect); - QCOMPARE(itemAt(scene, 0, 9.9), (QGraphicsItem *)rect); + QCOMPARE(itemAt(scene, 0, -9.9), rect); + QCOMPARE(itemAt(scene, 0, 9.9), rect); QVERIFY(scene.items(QPointF(10, -10)).isEmpty()); - QCOMPARE(itemAt(scene, 9.9, 0), (QGraphicsItem *)rect); + QCOMPARE(itemAt(scene, 9.9, 0), rect); QVERIFY(scene.items(QPointF(10, 10)).isEmpty()); } @@ -1271,6 +1290,7 @@ void tst_QGraphicsScene::removeItem() scene.setSceneRect(-50, -50, 100, 100); QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); view.setFixedSize(150, 150); view.show(); QApplication::setActiveWindow(&view); @@ -1342,7 +1362,7 @@ void tst_QGraphicsScene::focusItem() class FocusItem : public QGraphicsTextItem { protected: - void focusOutEvent(QFocusEvent *) + void focusOutEvent(QFocusEvent *) override { QVERIFY(!scene()->focusItem()); } @@ -1359,14 +1379,14 @@ void tst_QGraphicsScene::focusItemLostFocus() scene.addItem(item); item->setFocus(); - QCOMPARE(scene.focusItem(), (QGraphicsItem *)item); + QCOMPARE(scene.focusItem(), item); item->clearFocus(); } class ClearTestItem : public QGraphicsRectItem { public: - ClearTestItem(QGraphicsItem *parent = 0) : QGraphicsRectItem(parent) {} + using QGraphicsRectItem::QGraphicsRectItem; ~ClearTestItem() { qDeleteAll(items); } QList items; }; @@ -1389,7 +1409,7 @@ void tst_QGraphicsScene::clear() scene.setItemIndexMethod(QGraphicsScene::NoIndex); scene.addItem(firstItem); scene.addItem(secondItem); - QCOMPARE(scene.items().at(0), (QGraphicsItem*)firstItem); + QCOMPARE(scene.items().at(0), firstItem); QCOMPARE(scene.items().at(1), secondItem); ClearTestItem *thirdItem = new ClearTestItem(firstItem); @@ -1441,7 +1461,7 @@ void tst_QGraphicsScene::setFocusItem() QVERIFY(item->hasFocus()); QVERIFY(!item2->hasFocus()); - scene.setFocusItem(0); + scene.setFocusItem(nullptr); QVERIFY(!item->hasFocus()); QVERIFY(!item2->hasFocus()); @@ -1562,26 +1582,26 @@ void tst_QGraphicsScene::hoverEvents_siblings() Q_CHECK_PAINTEVENTS QGraphicsScene scene; - QGraphicsItem *lastItem = 0; + QGraphicsItem *lastItem = nullptr; QList items; for (int i = 0; i < 15; ++i) { - QGraphicsItem *item = new HoverItem; + auto item = new HoverItem; scene.addItem(item); - items << (HoverItem *)item; - if (lastItem) { + items << item; + if (lastItem) item->setPos(lastItem->pos() + QPointF(sin(i / 3.0) * 17, cos(i / 3.0) * 17)); - } item->setZValue(i); lastItem = item; } QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); view.setRenderHint(QPainter::Antialiasing, true); view.setMinimumSize(400, 300); view.rotate(10); view.scale(1.7, 1.7); view.show(); - qApp->setActiveWindow(&view); + QApplication::setActiveWindow(&view); view.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&view)); @@ -1604,8 +1624,8 @@ void tst_QGraphicsScene::hoverEvents_siblings() mouseEvent.setScenePos(items.at(i)->mapToScene(0, 0)); QApplication::sendEvent(&scene, &mouseEvent); - qApp->processEvents(); // this posts updates from the scene to the view - qApp->processEvents(); // which trigger a repaint here + QCoreApplication::processEvents(); // this posts updates from the scene to the view + QCoreApplication::processEvents(); // which trigger a repaint here QTRY_VERIFY(items.at(i)->isHovered); if (j && i > 0) @@ -1621,8 +1641,8 @@ void tst_QGraphicsScene::hoverEvents_siblings() mouseEvent.setScenePos(QPointF(-1000, -1000)); QApplication::sendEvent(&scene, &mouseEvent); - qApp->processEvents(); // this posts updates from the scene to the view - qApp->processEvents(); // which trigger a repaint here + QCoreApplication::processEvents(); // this posts updates from the scene to the view + QCoreApplication::processEvents(); // which trigger a repaint here } } @@ -1631,12 +1651,12 @@ void tst_QGraphicsScene::hoverEvents_parentChild() Q_CHECK_PAINTEVENTS QGraphicsScene scene; - QGraphicsItem *lastItem = 0; + QGraphicsItem *lastItem = nullptr; QList items; for (int i = 0; i < 15; ++i) { - QGraphicsItem *item = new HoverItem; + auto item = new HoverItem; scene.addItem(item); - items << (HoverItem *)item; + items << item; if (lastItem) { item->setParentItem(lastItem); item->setPos(sin(i / 3.0) * 17, cos(i / 3.0) * 17); @@ -1645,12 +1665,13 @@ void tst_QGraphicsScene::hoverEvents_parentChild() } QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); view.setRenderHint(QPainter::Antialiasing, true); view.setMinimumSize(400, 300); view.rotate(10); view.scale(1.7, 1.7); view.show(); - qApp->setActiveWindow(&view); + QApplication::setActiveWindow(&view); QVERIFY(QTest::qWaitForWindowActive(&view)); QGraphicsSceneMouseEvent mouseEvent(QEvent::GraphicsSceneMouseMove); @@ -1669,8 +1690,8 @@ void tst_QGraphicsScene::hoverEvents_parentChild() mouseEvent.setScenePos(items.at(i)->mapToScene(0, 0)); QApplication::sendEvent(&scene, &mouseEvent); - qApp->processEvents(); // this posts updates from the scene to the view - qApp->processEvents(); // which trigger a repaint here + QCoreApplication::processEvents(); // this posts updates from the scene to the view + QCoreApplication::processEvents(); // which trigger a repaint here QTRY_VERIFY(items.at(i)->isHovered); if (i < 14) @@ -1683,8 +1704,8 @@ void tst_QGraphicsScene::hoverEvents_parentChild() mouseEvent.setScenePos(QPointF(-1000, -1000)); QApplication::sendEvent(&scene, &mouseEvent); - qApp->processEvents(); // this posts updates from the scene to the view - qApp->processEvents(); // which trigger a repaint here + QCoreApplication::processEvents(); // this posts updates from the scene to the view + QCoreApplication::processEvents(); // which trigger a repaint here } } @@ -1712,23 +1733,23 @@ void tst_QGraphicsScene::createItemGroup() // All items in children1 are children of parent1 QGraphicsItem *parent1 = scene.addRect(QRectF(-10, -10, 20, 20)); - foreach (QGraphicsItem *item, children1) + for (QGraphicsItem *item : qAsConst(children1)) item->setParentItem(parent1); QGraphicsItemGroup *group = scene.createItemGroup(children1); QCOMPARE(group->parentItem(), parent1); - QCOMPARE(children1.first()->parentItem(), (QGraphicsItem *)group); + QCOMPARE(children1.first()->parentItem(), group); scene.destroyItemGroup(group); QCOMPARE(children1.first()->parentItem(), parent1); group = scene.createItemGroup(children1); QCOMPARE(group->parentItem(), parent1); - QCOMPARE(children1.first()->parentItem(), (QGraphicsItem *)group); + QCOMPARE(children1.first()->parentItem(), group); scene.destroyItemGroup(group); QCOMPARE(children1.first()->parentItem(), parent1); // All items in children2 are children of parent2 QGraphicsItem *parent2 = scene.addRect(QRectF(-10, -10, 20, 20)); - foreach (QGraphicsItem *item, children2) + for (QGraphicsItem *item : qAsConst(children2)) item->setParentItem(parent2); // Now make parent2 a child of parent1, so all children2 are also children @@ -1738,21 +1759,21 @@ void tst_QGraphicsScene::createItemGroup() // The children2 group should still have parent2 as their common ancestor. group = scene.createItemGroup(children2); QCOMPARE(group->parentItem(), parent2); - QCOMPARE(children2.first()->parentItem(), (QGraphicsItem *)group); + QCOMPARE(children2.first()->parentItem(), group); scene.destroyItemGroup(group); QCOMPARE(children2.first()->parentItem(), parent2); // But the set of both children2 and children1 share only parent1. group = scene.createItemGroup(children2 + children1); QCOMPARE(group->parentItem(), parent1); - QCOMPARE(children1.first()->parentItem(), (QGraphicsItem *)group); - QCOMPARE(children2.first()->parentItem(), (QGraphicsItem *)group); + QCOMPARE(children1.first()->parentItem(), group); + QCOMPARE(children2.first()->parentItem(), group); scene.destroyItemGroup(group); QCOMPARE(children1.first()->parentItem(), parent1); QCOMPARE(children2.first()->parentItem(), parent1); // Fixup the parent-child chain - foreach (QGraphicsItem *item, children2) + for (QGraphicsItem *item : qAsConst(children2)) item->setParentItem(parent2); // These share no common parent @@ -1762,7 +1783,7 @@ void tst_QGraphicsScene::createItemGroup() // Make children3 children of parent3 QGraphicsItem *parent3 = scene.addRect(QRectF(-10, -10, 20, 20)); - foreach (QGraphicsItem *item, children3) + for (QGraphicsItem *item : qAsConst(children3)) item->setParentItem(parent3); // These should have parent3 as a parent @@ -1794,15 +1815,14 @@ void tst_QGraphicsScene::createItemGroup() class EventTester : public QGraphicsEllipseItem { public: - EventTester() - : QGraphicsEllipseItem(QRectF(-10, -10, 20, 20)), ignoreMouse(false) + EventTester() : QGraphicsEllipseItem(QRectF(-10, -10, 20, 20)) { } - bool ignoreMouse; - QList eventTypes; + bool ignoreMouse = false; + QVector eventTypes; protected: - bool sceneEvent(QEvent *event) + bool sceneEvent(QEvent *event) override { eventTypes << QEvent::Type(event->type()); switch (event->type()) { @@ -1813,6 +1833,7 @@ protected: event->ignore(); return true; } + break; default: break; } @@ -1867,7 +1888,7 @@ void tst_QGraphicsScene::mouseEventPropagation() QCOMPARE(c->eventTypes.size(), 0); QCOMPARE(b->eventTypes.size(), 0); QCOMPARE(a->eventTypes.size(), 0); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)d); + QCOMPARE(scene.mouseGrabberItem(), d); // Send a move QApplication::sendEvent(&scene, &moveEvent); @@ -1876,7 +1897,7 @@ void tst_QGraphicsScene::mouseEventPropagation() QCOMPARE(c->eventTypes.size(), 0); QCOMPARE(b->eventTypes.size(), 0); QCOMPARE(a->eventTypes.size(), 0); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)d); + QCOMPARE(scene.mouseGrabberItem(), d); // Send a release QApplication::sendEvent(&scene, &releaseEvent); @@ -1898,7 +1919,7 @@ void tst_QGraphicsScene::mouseEventPropagation() QCOMPARE(c->eventTypes.at(1), QEvent::GraphicsSceneMousePress); QCOMPARE(b->eventTypes.size(), 0); QCOMPARE(a->eventTypes.size(), 0); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)c); + QCOMPARE(scene.mouseGrabberItem(), c); // Send another press, with a button that isn't actually accepted QApplication::sendEvent(&scene, &pressEvent); @@ -1908,7 +1929,7 @@ void tst_QGraphicsScene::mouseEventPropagation() QCOMPARE(c->eventTypes.at(2), QEvent::GraphicsSceneMousePress); QCOMPARE(b->eventTypes.size(), 0); QCOMPARE(a->eventTypes.size(), 0); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)c); + QCOMPARE(scene.mouseGrabberItem(), c); // Send a move QApplication::sendEvent(&scene, &moveEvent); @@ -1917,7 +1938,7 @@ void tst_QGraphicsScene::mouseEventPropagation() QCOMPARE(c->eventTypes.at(3), QEvent::GraphicsSceneMouseMove); QCOMPARE(b->eventTypes.size(), 0); QCOMPARE(a->eventTypes.size(), 0); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)c); + QCOMPARE(scene.mouseGrabberItem(), c); // Send a release QApplication::sendEvent(&scene, &releaseEvent); @@ -1950,7 +1971,7 @@ void tst_QGraphicsScene::mouseEventPropagation() QCOMPARE(c->eventTypes.at(7), QEvent::GraphicsSceneMousePress); QCOMPARE(b->eventTypes.size(), 0); QCOMPARE(a->eventTypes.size(), 0); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)c); + QCOMPARE(scene.mouseGrabberItem(), c); // Clicking outside the items removes the mouse grabber } @@ -1999,7 +2020,7 @@ void tst_QGraphicsScene::mouseEventPropagation_ignore() QCOMPARE(d->eventTypes.at(0), QEvent::GrabMouse); QCOMPARE(d->eventTypes.at(1), QEvent::GraphicsSceneMousePress); QCOMPARE(d->eventTypes.at(2), QEvent::UngrabMouse); - QCOMPARE(scene.mouseGrabberItem(), (QGraphicsItem *)a); + QCOMPARE(scene.mouseGrabberItem(), a); a->ignoreMouse = true; @@ -2115,7 +2136,7 @@ public: QVector mouseMovePoints; protected: - void mouseMoveEvent(QGraphicsSceneMouseEvent *event) + void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override { mouseMovePoints << event->scenePos(); } @@ -2140,22 +2161,17 @@ void tst_QGraphicsScene::mouseEventPropagation_mouseMove() class DndTester : public QGraphicsEllipseItem { public: - DndTester(const QRectF &rect) - : QGraphicsEllipseItem(rect), lastEvent(0), - ignoresDragEnter(false), ignoresDragMove(false) - - { - } + using QGraphicsEllipseItem::QGraphicsEllipseItem; ~DndTester() { delete lastEvent; } - QGraphicsSceneDragDropEvent *lastEvent; + QGraphicsSceneDragDropEvent *lastEvent = nullptr; QList eventList; - bool ignoresDragEnter; - bool ignoresDragMove; + bool ignoresDragEnter = false; + bool ignoresDragMove = false; protected: void dragEnterEvent(QGraphicsSceneDragDropEvent *event) @@ -2218,21 +2234,21 @@ void tst_QGraphicsScene::dragAndDrop_simple() QMimeData mimeData; // Initial drag enter for the scene - QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragEnter); QVERIFY(dragEnter.isAccepted()); QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); { // Move outside the item - QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); } { // Move inside the item without setAcceptDrops - QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2241,7 +2257,7 @@ void tst_QGraphicsScene::dragAndDrop_simple() item->setAcceptDrops(true); { // Move inside the item with setAcceptDrops - QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2255,7 +2271,7 @@ void tst_QGraphicsScene::dragAndDrop_simple() } { // Another move inside the item - QDragMoveEvent dragMove(view.mapFromScene(item->mapToScene(5, 5)), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->mapToScene(5, 5)), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2268,7 +2284,7 @@ void tst_QGraphicsScene::dragAndDrop_simple() } { // Move outside the item - QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2281,7 +2297,7 @@ void tst_QGraphicsScene::dragAndDrop_simple() } { // Move inside the item again - QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2295,7 +2311,7 @@ void tst_QGraphicsScene::dragAndDrop_simple() } { // Drop inside the item - QDropEvent drop(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDropEvent drop(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); @@ -2322,13 +2338,13 @@ void tst_QGraphicsScene::dragAndDrop_disabledOrInvisible() QMimeData mimeData; // Initial drag enter for the scene - QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragEnter); QVERIFY(dragEnter.isAccepted()); QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); { // Move inside the item - QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2338,7 +2354,7 @@ void tst_QGraphicsScene::dragAndDrop_disabledOrInvisible() } { // Move outside the item - QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2353,7 +2369,7 @@ void tst_QGraphicsScene::dragAndDrop_disabledOrInvisible() { // Move inside the item - QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2369,7 +2385,7 @@ void tst_QGraphicsScene::dragAndDrop_disabledOrInvisible() { // Move inside the item - QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(item->scenePos()), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2378,7 +2394,7 @@ void tst_QGraphicsScene::dragAndDrop_disabledOrInvisible() } // Dummy drop event to keep the Mac from crashing. - QDropEvent dropEvent(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDropEvent dropEvent(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dropEvent); } @@ -2405,14 +2421,14 @@ void tst_QGraphicsScene::dragAndDrop_propagate() QMimeData mimeData; // Initial drag enter for the scene - QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragEnterEvent dragEnter(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragEnter); QVERIFY(dragEnter.isAccepted()); QCOMPARE(dragEnter.dropAction(), Qt::CopyAction); { // Move outside the items - QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2421,7 +2437,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() } { // Move inside item1 - QDragMoveEvent dragMove(view.mapFromScene(-5, -5), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(-5, -5), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2432,7 +2448,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() { // Move into the intersection item1-item2 - QDragMoveEvent dragMove(view.mapFromScene(5, 5), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(5, 5), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); // move does not propagate, (ignoresDragMove = true) QCOMPARE(item1->eventList.size(), 3); @@ -2443,7 +2459,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() } { // Move into the item2 - QDragMoveEvent dragMove(view.mapFromScene(15, 15), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(15, 15), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(!dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::CopyAction); @@ -2453,7 +2469,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() } { // Move inside item1 - QDragMoveEvent dragMove(view.mapFromScene(-5, -5), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(-5, -5), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2467,7 +2483,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() { item2->ignoresDragEnter = true; // Move into the intersection item1-item2 - QDragMoveEvent dragMove(view.mapFromScene(5, 5), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDragMoveEvent dragMove(view.mapFromScene(5, 5), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dragMove); QVERIFY(dragMove.isAccepted()); // dragEnter propagates down to item1, which then accepts the move event. QCOMPARE(dragMove.dropAction(), Qt::IgnoreAction); @@ -2480,7 +2496,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() { item2->ignoresDragEnter = false; // Drop on the intersection item1-item2 - QDropEvent drop(view.mapFromScene(5, 5), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDropEvent drop(view.mapFromScene(5, 5), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &drop); QVERIFY(drop.isAccepted()); QCOMPARE(drop.dropAction(), Qt::CopyAction); @@ -2491,7 +2507,7 @@ void tst_QGraphicsScene::dragAndDrop_propagate() } // Dummy drop event to keep the Mac from crashing. - QDropEvent dropEvent(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, 0); + QDropEvent dropEvent(QPoint(0, 0), Qt::CopyAction, &mimeData, Qt::LeftButton, {}); QApplication::sendEvent(view.viewport(), &dropEvent); } #endif @@ -2580,6 +2596,7 @@ void tst_QGraphicsScene::render() pix.fill(Qt::blue); QGraphicsView view; + view.setWindowTitle(QTest::currentTestFunction()); QGraphicsScene scene(&view); scene.addEllipse(QRectF(-10, -10, 20, 20), QPen(Qt::black, 0), QBrush(Qt::white)); scene.addEllipse(QRectF(-2, -7, 4, 4), QPen(Qt::black, 0), QBrush(Qt::yellow))->setZValue(1); @@ -2642,6 +2659,7 @@ void tst_QGraphicsScene::render() gridLayout->addWidget(newLabel, 2, 0); QWidget widget; + widget.setWindowTitle(QTest::currentTestFunction()); widget.setLayout(gridLayout); widget.show(); @@ -2676,6 +2694,7 @@ void tst_QGraphicsScene::renderItemsWithNegativeWidthOrHeight() scene.addItem(item2); QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); view.setFrameStyle(QFrame::NoFrame); view.resize(150, 150); view.show(); @@ -2710,6 +2729,7 @@ void tst_QGraphicsScene::contextMenuEvent() QVERIFY(scene.hasFocus()); QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); view.show(); view.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&view)); @@ -2730,7 +2750,7 @@ public: { setBrush(Qt::red); } protected: - void contextMenuEvent(QGraphicsSceneContextMenuEvent *) + void contextMenuEvent(QGraphicsSceneContextMenuEvent *) override { /* just accept */ } }; @@ -2746,6 +2766,7 @@ void tst_QGraphicsScene::contextMenuEvent_ItemIgnoresTransformations() scene.addItem(item); QWidget topLevel; + topLevel.setWindowTitle(QTest::currentTestFunction()); QGraphicsView view(&scene, &topLevel); view.resize(200, 200); topLevel.show(); @@ -2790,14 +2811,14 @@ void tst_QGraphicsScene::update() QGraphicsRectItem *rect = new QGraphicsRectItem(0, 0, 100, 100); rect->setPen(QPen(Qt::black, 0)); scene.addItem(rect); - qApp->processEvents(); + QCoreApplication::processEvents(); rect->setPos(-100, -100); // This function forces indexing itemAt(scene, 0, 0); qRegisterMetaType >("QList"); - QSignalSpy spy(&scene, SIGNAL(changed(QList))); + QSignalSpy spy(&scene, &QGraphicsScene::changed); // We update the scene. scene.update(); @@ -2806,12 +2827,13 @@ void tst_QGraphicsScene::update() itemAt(scene, 0, 0); // This will process the pending update - QApplication::instance()->processEvents(); + QCoreApplication::processEvents(); // Check that the update region is correct QCOMPARE(spy.count(), 1); QRectF region; - foreach (QRectF rectF, qvariant_cast >(spy.at(0).at(0))) + const auto &rects = qvariant_cast >(spy.at(0).at(0)); + for (const auto &rectF : rects) region |= rectF; QCOMPARE(region, QRectF(-100, -100, 200, 200)); } @@ -2821,9 +2843,10 @@ void tst_QGraphicsScene::update2() QGraphicsScene scene; scene.setSceneRect(-200, -200, 200, 200); CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); view.setScene(&scene); view.show(); - qApp->setActiveWindow(&view); + QApplication::setActiveWindow(&view); QVERIFY(QTest::qWaitForWindowActive(&view)); QTRY_VERIFY(view.repaints >= 1); view.repaints = 0; @@ -2831,13 +2854,13 @@ void tst_QGraphicsScene::update2() // Make sure QGraphicsScene::update only requires one event-loop iteration // before the view is updated. scene.update(); - qApp->processEvents(); + QCoreApplication::processEvents(); QTRY_COMPARE(view.repaints, 1); view.repaints = 0; // The same for partial scene updates. scene.update(QRectF(-100, -100, 100, 100)); - qApp->processEvents(); + QCoreApplication::processEvents(); QCOMPARE(view.repaints, 1); } @@ -2853,7 +2876,7 @@ void tst_QGraphicsScene::views() QCOMPARE(scene.views().size(), 2); QVERIFY(scene.views().contains(&view1)); - view.setScene(0); + view.setScene(nullptr); QCOMPARE(scene.views().size(), 1); QCOMPARE(scene.views().at(0), &view1); @@ -2871,12 +2894,12 @@ void tst_QGraphicsScene::views() class CustomScene : public QGraphicsScene { public: - CustomScene() : gotTimerEvent(false) + CustomScene() { startTimer(10); } - bool gotTimerEvent; + bool gotTimerEvent = false; protected: - void timerEvent(QTimerEvent *) + void timerEvent(QTimerEvent *) override { gotTimerEvent = true; } @@ -2893,7 +2916,7 @@ void tst_QGraphicsScene::testEvent() class DisabledItemTester : public QGraphicsRectItem { public: - DisabledItemTester(const QRectF &rect, QGraphicsItem *parent = 0) + DisabledItemTester(const QRectF &rect, QGraphicsItem *parent = nullptr) : QGraphicsRectItem(rect, parent) { } @@ -2901,13 +2924,13 @@ public: QList receivedSceneEventFilters; protected: - bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) + bool sceneEventFilter(QGraphicsItem *watched, QEvent *event) override { receivedSceneEventFilters << event->type(); return QGraphicsRectItem::sceneEventFilter(watched, event); } - bool sceneEvent(QEvent *event) + bool sceneEvent(QEvent *event) override { receivedSceneEvents << event->type(); return QGraphicsRectItem::sceneEvent(event); @@ -2965,11 +2988,9 @@ void tst_QGraphicsScene::eventsToDisabledItems() class ExposedPixmapItem : public QGraphicsPixmapItem { public: - ExposedPixmapItem(QGraphicsItem *item = 0) - : QGraphicsPixmapItem(item) - { } + using QGraphicsPixmapItem::QGraphicsPixmapItem; - void paint(QPainter *, const QStyleOptionGraphicsItem *option, QWidget *) + void paint(QPainter *, const QStyleOptionGraphicsItem *option, QWidget *) override { exposed = option->exposedRect; } @@ -3013,8 +3034,9 @@ void tst_QGraphicsScene::tabFocus_emptyScene() QWidget widget; widget.setLayout(layout); + widget.setWindowTitle(QTest::currentTestFunction()); widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); @@ -3060,9 +3082,10 @@ void tst_QGraphicsScene::tabFocus_sceneWithFocusableItems() layout->addWidget(dial2); QWidget widget; + widget.setWindowTitle(QTest::currentTestFunction()); widget.setLayout(layout); widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); @@ -3112,18 +3135,18 @@ void tst_QGraphicsScene::tabFocus_sceneWithFocusableItems() QVERIFY(!view->viewport()->hasFocus()); QVERIFY(!scene.hasFocus()); QVERIFY(!item->hasFocus()); - QCOMPARE(scene.focusItem(), static_cast(item)); + QCOMPARE(scene.focusItem(), item); // Check that the correct item regains focus. widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); QVERIFY(view->hasFocus()); QTRY_VERIFY(scene.isActive()); QVERIFY(view->viewport()->hasFocus()); QVERIFY(scene.hasFocus()); - QCOMPARE(scene.focusItem(), static_cast(item)); + QCOMPARE(scene.focusItem(), item); QVERIFY(item->hasFocus()); } @@ -3131,14 +3154,13 @@ class FocusWidget : public QGraphicsWidget { Q_OBJECT public: - FocusWidget(QGraphicsItem *parent = 0) - : QGraphicsWidget(parent), tabs(0), backTabs(0) + FocusWidget(QGraphicsItem *parent = nullptr) : QGraphicsWidget(parent) { setFocusPolicy(Qt::StrongFocus); resize(100, 100); } - void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *) override { if (option->state & QStyle::State_HasFocus) { painter->fillRect(rect(), Qt::blue); @@ -3152,11 +3174,11 @@ public: } } - int tabs; - int backTabs; + int tabs = 0; + int backTabs = 0; protected: - bool sceneEvent(QEvent *event) + bool sceneEvent(QEvent *event) override { if (event->type() == QEvent::KeyPress) { QKeyEvent *k = static_cast(event); @@ -3168,9 +3190,9 @@ protected: return QGraphicsWidget::sceneEvent(event); } - void focusInEvent(QFocusEvent *) + void focusInEvent(QFocusEvent *) override { update(); } - void focusOutEvent(QFocusEvent *) + void focusOutEvent(QFocusEvent *) override { update(); } }; @@ -3195,9 +3217,10 @@ void tst_QGraphicsScene::tabFocus_sceneWithFocusWidgets() layout->addWidget(dial2); QWidget widget; + widget.setWindowTitle(QTest::currentTestFunction()); widget.setLayout(layout); widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); @@ -3236,7 +3259,7 @@ void tst_QGraphicsScene::tabFocus_sceneWithFocusWidgets() widget.hide(); QTest::qWait(15); widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); QTRY_VERIFY(widget1->hasFocus()); @@ -3279,9 +3302,10 @@ void tst_QGraphicsScene::tabFocus_sceneWithNestedFocusWidgets() layout->addWidget(dial2); QWidget widget; + widget.setWindowTitle(QTest::currentTestFunction()); widget.setLayout(layout); widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); @@ -3366,7 +3390,7 @@ void tst_QGraphicsScene::tabFocus_sceneWithNestedFocusWidgets() widget.hide(); QTest::qWait(12); widget.show(); - qApp->setActiveWindow(&widget); + QApplication::setActiveWindow(&widget); widget.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&widget)); QTRY_VERIFY(widget1->hasFocus()); @@ -3390,11 +3414,11 @@ void tst_QGraphicsScene::style() QCOMPARE(sceneSpy.count(), 1); QCOMPARE(proxySpy.count(), 1); QCOMPARE(editSpy.count(), 1); - QCOMPARE(scene.style(), (QStyle *)windowsStyle); - QCOMPARE(proxy->style(), (QStyle *)windowsStyle); - QCOMPARE(edit->style(), (QStyle *)windowsStyle); + QCOMPARE(scene.style(), windowsStyle.data()); + QCOMPARE(proxy->style(), windowsStyle.data()); + QCOMPARE(edit->style(), windowsStyle.data()); - scene.setStyle(0); + scene.setStyle(nullptr); QCOMPARE(sceneSpy.count(), 2); QCOMPARE(proxySpy.count(), 2); QCOMPARE(editSpy.count(), 2); @@ -3411,11 +3435,12 @@ void tst_QGraphicsScene::task139710_bspTreeCrash() for (int i = 0; i < 2; ++i) { // trigger delayed item indexing - qApp->processEvents(); + QCoreApplication::processEvents(); scene.setSceneRect(0, 0, 10000, 10000); // delete all items in the scene - pointers are now likely to be recycled - foreach (QGraphicsItem *item, scene.items()) { + const auto &items = scene.items(); + for (QGraphicsItem *item : items) { scene.removeItem(item); delete item; } @@ -3427,7 +3452,7 @@ void tst_QGraphicsScene::task139710_bspTreeCrash() } // trigger delayed item indexing for the first 1000 items - qApp->processEvents(); + QCoreApplication::processEvents(); // add 1000 more items - the BSP tree is now resized for (int i = 0; i < 1000; ++i) { @@ -3437,7 +3462,8 @@ void tst_QGraphicsScene::task139710_bspTreeCrash() // get items from the BSP tree and use them. there was junk in the tree // the second time this happened. - foreach (QGraphicsItem *item, scene.items(QRectF(0, 0, 1000, 1000))) + const auto &itemsWithin = scene.items(QRectF(0, 0, 1000, 1000)); + for (QGraphicsItem *item : itemsWithin) item->moveBy(0, 0); } } @@ -3446,7 +3472,7 @@ void tst_QGraphicsScene::task139782_containsItemBoundingRect() { // The item in question has a scene bounding rect of (10, 10, 50, 50) QGraphicsScene scene(0.0, 0.0, 200.0, 200.0); - QGraphicsRectItem *item = new QGraphicsRectItem(0.0, 0.0, 50.0, 50.0, 0); + QGraphicsRectItem *item = new QGraphicsRectItem(0.0, 0.0, 50.0, 50.0, nullptr); scene.addItem(item); item->setPos(10.0, 10.0); @@ -3476,7 +3502,8 @@ void tst_QGraphicsScene::task160653_selectionChanged() QGraphicsScene scene(0, 0, 100, 100); scene.addItem(new QGraphicsRectItem(0, 0, 20, 20)); scene.addItem(new QGraphicsRectItem(30, 30, 20, 20)); - foreach (QGraphicsItem *item, scene.items()) { + const auto &items = scene.items(); + for (QGraphicsItem *item : items) { item->setFlags( item->flags() | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsMovable); item->setSelected(true); @@ -3484,12 +3511,13 @@ void tst_QGraphicsScene::task160653_selectionChanged() QVERIFY(scene.items().size() > 1); QCOMPARE(scene.items().size(), scene.selectedItems().size()); - QSignalSpy spy(&scene, SIGNAL(selectionChanged())); + QSignalSpy spy(&scene, &QGraphicsScene::selectionChanged); QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); view.show(); QVERIFY(QTest::qWaitForWindowActive(&view)); QTest::mouseClick( - view.viewport(), Qt::LeftButton, 0, view.mapFromScene(scene.items().first()->scenePos())); + view.viewport(), Qt::LeftButton, {}, view.mapFromScene(scene.items().first()->scenePos())); QCOMPARE(spy.count(), 1); } @@ -3574,17 +3602,21 @@ void tst_QGraphicsScene::sorting() scene.addItem(t_1); - foreach (QGraphicsItem *item, scene.items()) + const auto &items = scene.items(); + for (QGraphicsItem *item : items) item->setFlag(QGraphicsItem::ItemIsSelectable); // QGraphicsView view(&scene); // view.setDragMode(QGraphicsView::RubberBandDrag); // view.show(); - qDebug() << "items: {"; - foreach (QGraphicsItem *item, scene.items(QRectF(32, 31, 4, 55))) - qDebug() << "\t" << item->data(0).toString(); - qDebug() << "}"; + if (lcTests().isDebugEnabled()) { + qCDebug(lcTests) << "items: {"; + const auto &itemsWithin = scene.items(QRectF(32, 31, 4, 55)); + for (QGraphicsItem *item : itemsWithin) + qCDebug(lcTests).nospace() << '\t' << item->data(0).toString(); + qCDebug(lcTests) << '}'; + } QCOMPARE(scene.items(QRectF(32, 31, 4, 55)), QList() @@ -3664,11 +3696,11 @@ void tst_QGraphicsScene::changedSignal() QFETCH(bool, withView); QGraphicsScene scene; ChangedListener cl; - connect(&scene, SIGNAL(changed(QList)), &cl, SLOT(changed(QList))); + connect(&scene, &QGraphicsScene::changed, &cl, &ChangedListener::changed); - QGraphicsView *view = 0; + QScopedPointer view; if (withView) - view = new QGraphicsView(&scene); + view.reset(new QGraphicsView(&scene)); QGraphicsRectItem *rect = new QGraphicsRectItem(0, 0, 10, 10); rect->setPen(QPen(Qt::black, 0)); @@ -3682,16 +3714,13 @@ void tst_QGraphicsScene::changedSignal() rect->setPos(20, 0); QCOMPARE(cl.changes.size(), 1); - qApp->processEvents(); + QCoreApplication::processEvents(); QCOMPARE(cl.changes.size(), 2); QCOMPARE(cl.changes.at(1).size(), 2); QCOMPARE(cl.changes.at(1).first(), QRectF(0, 0, 10, 10)); QCOMPARE(cl.changes.at(1).last(), QRectF(20, 0, 10, 10)); QCOMPARE(scene.sceneRect(), QRectF(0, 0, 30, 10)); - - if (withView) - delete view; } void tst_QGraphicsScene::stickyFocus_data() @@ -3718,7 +3747,7 @@ void tst_QGraphicsScene::stickyFocus() QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress); event.setScenePos(QPointF(-10, -10)); // outside item event.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); QCOMPARE(text->hasFocus(), sticky); } @@ -3736,43 +3765,50 @@ void tst_QGraphicsScene::sendEvent() void tst_QGraphicsScene::inputMethod_data() { - QTest::addColumn("flags"); + QTest::addColumn("flags"); QTest::addColumn("callFocusItem"); - QTest::newRow("0") << 0 << false; - QTest::newRow("1") << (int)QGraphicsItem::ItemAcceptsInputMethod << false; - QTest::newRow("2") << (int)QGraphicsItem::ItemIsFocusable << false; + QTest::newRow("0") << QGraphicsItem::GraphicsItemFlags() << false; + QTest::newRow("1") << QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemAcceptsInputMethod) << false; + QTest::newRow("2") << QGraphicsItem::GraphicsItemFlags(QGraphicsItem::ItemIsFocusable) << false; QTest::newRow("3") << - (int)(QGraphicsItem::ItemAcceptsInputMethod|QGraphicsItem::ItemIsFocusable) << true; + (QGraphicsItem::ItemAcceptsInputMethod|QGraphicsItem::ItemIsFocusable) << true; } class InputMethodTester : public QGraphicsRectItem { - void inputMethodEvent(QInputMethodEvent *) { ++eventCalls; } - QVariant inputMethodQuery(Qt::InputMethodQuery) const { ++queryCalls; return QVariant(); } + void inputMethodEvent(QInputMethodEvent *) override { ++eventCalls; } + QVariant inputMethodQuery(Qt::InputMethodQuery) const override + { + ++queryCalls; + return QVariant(); + } + public: - int eventCalls; - mutable int queryCalls; + int eventCalls = 0; + mutable int queryCalls = 0; }; void tst_QGraphicsScene::inputMethod() { PlatformInputContext inputContext; - QInputMethodPrivate *inputMethodPrivate = QInputMethodPrivate::get(qApp->inputMethod()); + QInputMethodPrivate *inputMethodPrivate = + QInputMethodPrivate::get(QGuiApplication::inputMethod()); inputMethodPrivate->testContext = &inputContext; - QFETCH(int, flags); + QFETCH(QGraphicsItem::GraphicsItemFlags, flags); QFETCH(bool, callFocusItem); InputMethodTester *item = new InputMethodTester; - item->setFlags((QGraphicsItem::GraphicsItemFlags)flags); + item->setFlags(flags); QGraphicsScene scene; QGraphicsView view(&scene); view.show(); + view.setWindowTitle(QTest::currentTestFunction()); QApplication::setActiveWindow(&view); view.setFocus(); QVERIFY(QTest::qWaitForWindowActive(&view)); - QCOMPARE(QApplication::activeWindow(), static_cast(&view)); + QCOMPARE(QApplication::activeWindow(), &view); inputContext.m_resetCallCount = 0; inputContext.m_commitCallCount = 0; @@ -3784,25 +3820,25 @@ void tst_QGraphicsScene::inputMethod() QCOMPARE(inputContext.m_resetCallCount, 0); item->eventCalls = 0; - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); QCOMPARE(item->eventCalls, callFocusItem ? 1 : 0); item->queryCalls = 0; - scene.inputMethodQuery((Qt::InputMethodQuery)0); + scene.inputMethodQuery(Qt::InputMethodQuery(0)); QCOMPARE(item->queryCalls, callFocusItem ? 1 : 0); - scene.setFocusItem(0); + scene.setFocusItem(nullptr); // the input context is reset twice, once because an item has lost focus and again because // the Qt::WA_InputMethodEnabled flag is cleared because no item has focus. QCOMPARE(inputContext.m_resetCallCount + inputContext.m_commitCallCount, callFocusItem ? 2 : 0); QCOMPARE(item->queryCalls, callFocusItem ? 1 : 0); // verify that value is unaffected item->eventCalls = 0; - qApp->sendEvent(&scene, &event); + QCoreApplication::sendEvent(&scene, &event); QCOMPARE(item->eventCalls, 0); item->queryCalls = 0; - scene.inputMethodQuery((Qt::InputMethodQuery)0); + scene.inputMethodQuery(Qt::InputMethodQuery(0)); QCOMPARE(item->queryCalls, 0); } @@ -3826,18 +3862,18 @@ void tst_QGraphicsScene::dispatchHoverOnPress() me.setButtons(Qt::LeftButton); QGraphicsSceneMouseEvent me2(QEvent::GraphicsSceneMouseRelease); me2.setButton(Qt::LeftButton); - qApp->sendEvent(&scene, &me); - qApp->sendEvent(&scene, &me2); - QCOMPARE(tester1->eventTypes, QList() + QCoreApplication::sendEvent(&scene, &me); + QCoreApplication::sendEvent(&scene, &me2); + QCOMPARE(tester1->eventTypes, QVector() << QEvent::GraphicsSceneHoverEnter << QEvent::GraphicsSceneHoverMove << QEvent::GrabMouse << QEvent::GraphicsSceneMousePress << QEvent::UngrabMouse); tester1->eventTypes.clear(); - qApp->sendEvent(&scene, &me); - qApp->sendEvent(&scene, &me2); - QCOMPARE(tester1->eventTypes, QList() + QCoreApplication::sendEvent(&scene, &me); + QCoreApplication::sendEvent(&scene, &me2); + QCOMPARE(tester1->eventTypes, QVector() << QEvent::GraphicsSceneHoverMove << QEvent::GrabMouse << QEvent::GraphicsSceneMousePress @@ -3852,21 +3888,21 @@ void tst_QGraphicsScene::dispatchHoverOnPress() me2.setScenePos(QPointF(30, 30)); me2.setButton(Qt::LeftButton); tester1->eventTypes.clear(); - qApp->sendEvent(&scene, &me); - qApp->sendEvent(&scene, &me2); - qDebug() << tester1->eventTypes; - QCOMPARE(tester1->eventTypes, QList() + QCoreApplication::sendEvent(&scene, &me); + QCoreApplication::sendEvent(&scene, &me2); + qCDebug(lcTests) << tester1->eventTypes; + QCOMPARE(tester1->eventTypes, QVector() << QEvent::GraphicsSceneHoverLeave); - QCOMPARE(tester2->eventTypes, QList() + QCOMPARE(tester2->eventTypes, QVector() << QEvent::GraphicsSceneHoverEnter << QEvent::GraphicsSceneHoverMove << QEvent::GrabMouse << QEvent::GraphicsSceneMousePress << QEvent::UngrabMouse); tester2->eventTypes.clear(); - qApp->sendEvent(&scene, &me); - qApp->sendEvent(&scene, &me2); - QCOMPARE(tester2->eventTypes, QList() + QCoreApplication::sendEvent(&scene, &me); + QCoreApplication::sendEvent(&scene, &me2); + QCOMPARE(tester2->eventTypes, QVector() << QEvent::GraphicsSceneHoverMove << QEvent::GrabMouse << QEvent::GraphicsSceneMousePress @@ -3915,7 +3951,7 @@ void tst_QGraphicsScene::initialFocus() if (activeScene) { QEvent windowActivate(QEvent::WindowActivate); - qApp->sendEvent(&scene, &windowActivate); + QCoreApplication::sendEvent(&scene, &windowActivate); scene.setFocus(); } @@ -3923,7 +3959,7 @@ void tst_QGraphicsScene::initialFocus() if (!activeScene) { QEvent windowActivate(QEvent::WindowActivate); - qApp->sendEvent(&scene, &windowActivate); + QCoreApplication::sendEvent(&scene, &windowActivate); scene.setFocus(); } @@ -3933,14 +3969,13 @@ void tst_QGraphicsScene::initialFocus() class PolishItem : public QGraphicsTextItem { public: - PolishItem(QGraphicsItem *parent = 0) - : QGraphicsTextItem(parent), polished(false), deleteChildrenInPolish(true), addChildrenInPolish(false) { } + using QGraphicsTextItem::QGraphicsTextItem; - bool polished; - bool deleteChildrenInPolish; - bool addChildrenInPolish; + bool polished = false; + bool deleteChildrenInPolish = true; + bool addChildrenInPolish = false; protected: - QVariant itemChange(GraphicsItemChange change, const QVariant& value) + QVariant itemChange(GraphicsItemChange change, const QVariant& value) override { if (change == ItemVisibleChange) { polished = true; @@ -3979,19 +4014,19 @@ void tst_QGraphicsScene::polishItems2() // Wait for the polish event to be delivered. QVERIFY(!item->polished); - QApplication::sendPostedEvents(&scene, QEvent::MetaCall); + QCoreApplication::sendPostedEvents(&scene, QEvent::MetaCall); QVERIFY(item->polished); // We deleted the children we added above, but we also // added 10 new children. These should be polished in the next // event loop iteration. - QList children = item->childItems(); + const QList children = item->childItems(); QCOMPARE(children.count(), 10); - foreach (QGraphicsItem *child, children) + for (QGraphicsItem *child : children) QVERIFY(!static_cast(child)->polished); - QApplication::sendPostedEvents(&scene, QEvent::MetaCall); - foreach (QGraphicsItem *child, children) + QCoreApplication::sendPostedEvents(&scene, QEvent::MetaCall); + for (QGraphicsItem *child : children) QVERIFY(static_cast(child)->polished); } @@ -4008,6 +4043,7 @@ void tst_QGraphicsScene::isActive() { QWidget toplevel1; + toplevel1.setWindowTitle(QTest::currentTestFunction()); QHBoxLayout *layout = new QHBoxLayout; toplevel1.setLayout(layout); QGraphicsView *view1 = new QGraphicsView(&scene1); @@ -4075,6 +4111,7 @@ void tst_QGraphicsScene::isActive() { const QRect availableGeometry = QGuiApplication::primaryScreen()->availableGeometry(); QWidget toplevel2; + toplevel2.setWindowTitle(QTest::currentTestFunction()); QHBoxLayout *layout = new QHBoxLayout; toplevel2.setLayout(layout); QGraphicsView *view1 = new QGraphicsView(&scene1); @@ -4141,7 +4178,7 @@ void tst_QGraphicsScene::isActive() QApplication::setActiveWindow(&topLevelView); topLevelView.setFocus(); QVERIFY(QTest::qWaitForWindowActive(&topLevelView)); - QCOMPARE(QApplication::activeWindow(), static_cast(&topLevelView)); + QCOMPARE(QApplication::activeWindow(), &topLevelView); QVERIFY(!scene1.isActive()); QVERIFY(!scene2.isActive()); @@ -4211,7 +4248,7 @@ void tst_QGraphicsScene::isActive() QVERIFY(scene1.hasFocus()); QVERIFY(!scene2.hasFocus()); - view1->setParent(0); + view1->setParent(nullptr); QVERIFY(!scene1.isActive()); QVERIFY(scene2.isActive()); QVERIFY(!scene1.hasFocus()); @@ -4243,7 +4280,7 @@ void tst_QGraphicsScene::siblingIndexAlwaysValid() scene.addItem(parent2); //Then we make the child a top level - child->setParentItem(0); + child->setParentItem(nullptr); //This is trigerred by a repaint... QGraphicsScenePrivate::get(&scene)->index->estimateTopLevelItems(QRectF(), Qt::AscendingOrder); @@ -4259,6 +4296,7 @@ void tst_QGraphicsScene::siblingIndexAlwaysValid() scene2.setItemIndexMethod(QGraphicsScene::NoIndex); QGraphicsView view2(&scene2); + view2.setWindowTitle(QTest::currentTestFunction()); // first add the blue rect QGraphicsRectItem* const item1 = new QGraphicsRectItem(QRect( 10, 10, 10, 10 )); @@ -4302,9 +4340,10 @@ void tst_QGraphicsScene::removeFullyTransparentItem() child->setParentItem(parent); CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); view.setScene(&scene); view.show(); - qApp->setActiveWindow(&view); + QApplication::setActiveWindow(&view); QVERIFY(QTest::qWaitForWindowActive(&view)); QCoreApplication::processEvents(); // Process all queued paint events @@ -4353,33 +4392,34 @@ void tst_QGraphicsScene::taskQTBUG_5904_crashWithDeviceCoordinateCache() void tst_QGraphicsScene::taskQT657_paintIntoCacheWithTransparentParts() { // Test using DeviceCoordinateCache and opaque item - QWidget *w = new QWidget(); + QScopedPointer w(new QWidget); w->setPalette(QColor(0, 0, 255)); w->setGeometry(0, 0, 50, 50); QGraphicsScene *scene = new QGraphicsScene(); - CustomView *view = new CustomView; - view->setScene(scene); + CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); + view.setScene(scene); - QGraphicsProxyWidget *proxy = scene->addWidget(w); + QGraphicsProxyWidget *proxy = scene->addWidget(w.data()); proxy->setCacheMode(QGraphicsItem::DeviceCoordinateCache); proxy->setTransform(QTransform().rotate(15), true); - view->show(); - QVERIFY(QTest::qWaitForWindowExposed(view)); - view->repaints = 0; + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + view.repaints = 0; proxy->update(10, 10, 10, 10); - QTRY_VERIFY(view->repaints > 0); + QTRY_VERIFY(view.repaints > 0); QPixmap pix; QGraphicsItemPrivate* itemp = QGraphicsItemPrivate::get(proxy); - QTRY_VERIFY(QPixmapCache::find(itemp->extraItemCache()->deviceData.value(view->viewport()).key, &pix)); + QTRY_VERIFY(QPixmapCache::find(itemp->extraItemCache()->deviceData.value(view.viewport()).key, &pix)); QTransform t = proxy->sceneTransform(); // Map from scene coordinates to pixmap coordinates. // X origin in the pixmap is the most-left point // of the item's boundingRect in the scene. - qreal adjust = t.mapRect(proxy->boundingRect().toRect()).left(); + const int adjust = t.mapRect(proxy->boundingRect().toRect()).left(); QRect rect = t.mapRect(QRect(10, 10, 10, 10)).adjusted(-adjust, 0, -adjust + 1, 1); QPixmap subpix = pix.copy(rect); @@ -4388,8 +4428,6 @@ void tst_QGraphicsScene::taskQT657_paintIntoCacheWithTransparentParts() for(int j = 0; j < im.height(); j++) QCOMPARE(qAlpha(im.pixel(i, j)), 255); } - - delete w; } void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() @@ -4403,28 +4441,29 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() rectItem->setParentItem(backItem); QGraphicsScene *scene = new QGraphicsScene(); - CustomView *view = new CustomView; - view->setScene(scene); + CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); + view.setScene(scene); scene->addItem(backItem); rectItem->setCacheMode(QGraphicsItem::DeviceCoordinateCache); backItem->setTransform(QTransform().rotate(15), true); - view->show(); - QVERIFY(QTest::qWaitForWindowExposed(view)); - view->repaints = 0; + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + view.repaints = 0; rectItem->update(10, 10, 10, 10); - QTRY_VERIFY(view->repaints > 0); + QTRY_VERIFY(view.repaints > 0); QPixmap pix; QGraphicsItemPrivate* itemp = QGraphicsItemPrivate::get(rectItem); - QTRY_VERIFY(QPixmapCache::find(itemp->extraItemCache()->deviceData.value(view->viewport()).key, &pix)); + QTRY_VERIFY(QPixmapCache::find(itemp->extraItemCache()->deviceData.value(view.viewport()).key, &pix)); QTransform t = rectItem->sceneTransform(); // Map from scene coordinates to pixmap coordinates. // X origin in the pixmap is the most-left point // of the item's boundingRect in the scene. - qreal adjust = t.mapRect(rectItem->boundingRect().toRect()).left(); + const int adjust = t.mapRect(rectItem->boundingRect().toRect()).left(); QRect rect = t.mapRect(QRect(10, 10, 10, 10)).adjusted(-adjust, 0, -adjust + 1, 1); QPixmap subpix = pix.copy(rect); @@ -4434,8 +4473,6 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() QCOMPARE(qAlpha(im.pixel(i, j)), 125); } } - - delete view; } // Test using ItemCoordinateCache and opaque item @@ -4444,18 +4481,19 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() rectItem->setBrush(QColor(0, 0, 255)); QGraphicsScene *scene = new QGraphicsScene(); - CustomView *view = new CustomView; - view->setScene(scene); + CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); + view.setScene(scene); scene->addItem(rectItem); rectItem->setCacheMode(QGraphicsItem::ItemCoordinateCache); rectItem->setTransform(QTransform().rotate(15), true); - view->show(); - QVERIFY(QTest::qWaitForWindowExposed(view)); - view->repaints = 0; + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + view.repaints = 0; rectItem->update(10, 10, 10, 10); - QTRY_VERIFY(view->repaints > 0); + QTRY_VERIFY(view.repaints > 0); QPixmap pix; QGraphicsItemPrivate* itemp = QGraphicsItemPrivate::get(rectItem); @@ -4465,7 +4503,7 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() // Map from scene coordinates to pixmap coordinates. // X origin in the pixmap is the most-left point // of the item's boundingRect in the scene. - qreal adjust = t.mapRect(rectItem->boundingRect().toRect()).left(); + const int adjust = t.mapRect(rectItem->boundingRect().toRect()).left(); QRect rect = t.mapRect(QRect(10, 10, 10, 10)).adjusted(-adjust, 0, -adjust + 1, 1); QPixmap subpix = pix.copy(rect); @@ -4474,8 +4512,6 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() for(int j = 0; j < im.height(); j++) QCOMPARE(qAlpha(im.pixel(i, j)), 255); } - - delete view; } // Test using ItemCoordinateCache and semi-transparent item @@ -4484,18 +4520,19 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() rectItem->setBrush(QColor(0, 0, 255, 125)); QGraphicsScene *scene = new QGraphicsScene(); - CustomView *view = new CustomView; - view->setScene(scene); + CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); + view.setScene(scene); scene->addItem(rectItem); rectItem->setCacheMode(QGraphicsItem::ItemCoordinateCache); rectItem->setTransform(QTransform().rotate(15), true); - view->show(); - QVERIFY(QTest::qWaitForWindowExposed(view)); - view->repaints = 0; + view.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view)); + view.repaints = 0; rectItem->update(10, 10, 10, 10); - QTRY_VERIFY(view->repaints > 0); + QTRY_VERIFY(view.repaints > 0); QPixmap pix; QGraphicsItemPrivate* itemp = QGraphicsItemPrivate::get(rectItem); @@ -4505,7 +4542,7 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() // Map from scene coordinates to pixmap coordinates. // X origin in the pixmap is the most-left point // of the item's boundingRect in the scene. - qreal adjust = t.mapRect(rectItem->boundingRect().toRect()).left(); + const int adjust = int(t.mapRect(rectItem->boundingRect().toRect()).left()); QRect rect = t.mapRect(QRect(10, 10, 10, 10)).adjusted(-adjust, 0, -adjust + 1, 1); QPixmap subpix = pix.copy(rect); @@ -4514,8 +4551,6 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() for(int j = 0; j < im.height(); j++) QCOMPARE(qAlpha(im.pixel(i, j)), 125); } - - delete view; } } @@ -4546,7 +4581,7 @@ void tst_QGraphicsScene::zeroScale() QGraphicsView view(&scene); ChangedListener cl; - connect(&scene, SIGNAL(changed(QList)), &cl, SLOT(changed(QList))); + connect(&scene, &QGraphicsScene::changed, &cl, &ChangedListener::changed); QGraphicsRectItem *rect1 = new QGraphicsRectItem(0, 0, 0.0000001, 0.00000001); scene.addItem(rect1); @@ -4569,13 +4604,13 @@ void tst_QGraphicsScene::focusItemChangedSignal() qRegisterMetaType("Qt::FocusReason"); QGraphicsScene scene; - QSignalSpy spy(&scene, SIGNAL(focusItemChanged(QGraphicsItem *, QGraphicsItem *, Qt::FocusReason))); + QSignalSpy spy(&scene, &QGraphicsScene::focusItemChanged); QVERIFY(spy.isValid()); QCOMPARE(spy.count(), 0); scene.setFocus(); QCOMPARE(spy.count(), 0); QEvent activateEvent(QEvent::WindowActivate); - qApp->sendEvent(&scene, &activateEvent); + QCoreApplication::sendEvent(&scene, &activateEvent); QCOMPARE(spy.count(), 0); QGraphicsRectItem *topLevelItem1 = new QGraphicsRectItem; @@ -4592,7 +4627,7 @@ void tst_QGraphicsScene::focusItemChangedSignal() QCOMPARE(spy.count(), 1); QList arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)topLevelItem2); + QCOMPARE(qvariant_cast(arguments.at(0)), topLevelItem2); QCOMPARE(qvariant_cast(arguments.at(1)), nullptr); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::OtherFocusReason); QVERIFY(topLevelItem2->hasFocus()); @@ -4602,14 +4637,14 @@ void tst_QGraphicsScene::focusItemChangedSignal() arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); QCOMPARE(qvariant_cast(arguments.at(0)), nullptr); - QCOMPARE(qvariant_cast(arguments.at(1)), (QGraphicsItem *)topLevelItem2); + QCOMPARE(qvariant_cast(arguments.at(1)), topLevelItem2); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::OtherFocusReason); scene.setFocus(Qt::MenuBarFocusReason); QCOMPARE(spy.count(), 1); arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)topLevelItem2); + QCOMPARE(qvariant_cast(arguments.at(0)), topLevelItem2); QCOMPARE(qvariant_cast(arguments.at(1)), nullptr); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::MenuBarFocusReason); @@ -4617,15 +4652,15 @@ void tst_QGraphicsScene::focusItemChangedSignal() topLevelItem1->setFocus(Qt::TabFocusReason); arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)topLevelItem1); - QCOMPARE(qvariant_cast(arguments.at(1)), (QGraphicsItem *)topLevelItem2); + QCOMPARE(qvariant_cast(arguments.at(0)), topLevelItem1); + QCOMPARE(qvariant_cast(arguments.at(1)), topLevelItem2); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::TabFocusReason); topLevelItem2->setFocus(Qt::TabFocusReason); arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)topLevelItem2); - QCOMPARE(qvariant_cast(arguments.at(1)), (QGraphicsItem *)topLevelItem1); + QCOMPARE(qvariant_cast(arguments.at(0)), topLevelItem2); + QCOMPARE(qvariant_cast(arguments.at(1)), topLevelItem1); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::TabFocusReason); } @@ -4633,10 +4668,10 @@ void tst_QGraphicsScene::focusItemChangedSignal() // when the scene activation changes) breaks quite a few tests so leave this fix // for some future release. See QTBUG-28346. QEvent deactivateEvent(QEvent::WindowDeactivate); - qApp->sendEvent(&scene, &deactivateEvent); + QCoreApplication::sendEvent(&scene, &deactivateEvent); QEXPECT_FAIL("", "QTBUG-28346", Continue); QCOMPARE(spy.count(), 1); - qApp->sendEvent(&scene, &activateEvent); + QCoreApplication::sendEvent(&scene, &activateEvent); QEXPECT_FAIL("", "QTBUG-28346", Continue); QCOMPARE(spy.count(), 1); @@ -4647,8 +4682,8 @@ void tst_QGraphicsScene::focusItemChangedSignal() QCOMPARE(spy.count(), 1); arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)panel1); - QCOMPARE(qvariant_cast(arguments.at(1)), (QGraphicsItem *)topLevelItem2); + QCOMPARE(qvariant_cast(arguments.at(0)), panel1); + QCOMPARE(qvariant_cast(arguments.at(1)), topLevelItem2); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::ActiveWindowFocusReason); QGraphicsRectItem *panel2 = new QGraphicsRectItem; @@ -4661,16 +4696,16 @@ void tst_QGraphicsScene::focusItemChangedSignal() QCOMPARE(spy.count(), 1); arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)panel2); - QCOMPARE(qvariant_cast(arguments.at(1)), (QGraphicsItem *)panel1); + QCOMPARE(qvariant_cast(arguments.at(0)), panel2); + QCOMPARE(qvariant_cast(arguments.at(1)), panel1); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::ActiveWindowFocusReason); scene.setActivePanel(panel1); QCOMPARE(spy.count(), 1); arguments = spy.takeFirst(); QCOMPARE(arguments.size(), 3); - QCOMPARE(qvariant_cast(arguments.at(0)), (QGraphicsItem *)panel1); - QCOMPARE(qvariant_cast(arguments.at(1)), (QGraphicsItem *)panel2); + QCOMPARE(qvariant_cast(arguments.at(0)), panel1); + QCOMPARE(qvariant_cast(arguments.at(1)), panel2); QCOMPARE(qvariant_cast(arguments.at(2)), Qt::ActiveWindowFocusReason); } @@ -4679,14 +4714,15 @@ void tst_QGraphicsScene::focusItemChangedSignal() class ItemCountsPaintCalls : public QGraphicsRectItem { public: - ItemCountsPaintCalls(const QRectF & rect, QGraphicsItem *parent = 0) - : QGraphicsRectItem(rect, parent), repaints(0) {} - void paint ( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget = 0 ) + using QGraphicsRectItem::QGraphicsRectItem; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, + QWidget *widget = nullptr) override { QGraphicsRectItem::paint(painter, option, widget); ++repaints; } - int repaints; + int repaints = 0; }; void tst_QGraphicsScene::minimumRenderSize() @@ -4700,10 +4736,11 @@ void tst_QGraphicsScene::minimumRenderSize() scene.addItem(bigParent); CustomView view; + view.setWindowTitle(QTest::currentTestFunction()); view.setScene(&scene); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); - qApp->processEvents(); + QCoreApplication::processEvents(); // Initially, everything should be repainted the same number of times int viewRepaints = 0; @@ -4716,7 +4753,7 @@ void tst_QGraphicsScene::minimumRenderSize() // Setting a minimum render size should cause a repaint scene.setMinimumRenderSize(0.5); - qApp->processEvents(); + QCoreApplication::processEvents(); QTRY_VERIFY(view.repaints > viewRepaints); viewRepaints = view.repaints; @@ -4727,7 +4764,7 @@ void tst_QGraphicsScene::minimumRenderSize() // Scaling should cause a repaint of big items only. view.scale(0.1, 0.1); - qApp->processEvents(); + QCoreApplication::processEvents(); QTRY_VERIFY(view.repaints > viewRepaints); viewRepaints = view.repaints; @@ -4738,7 +4775,7 @@ void tst_QGraphicsScene::minimumRenderSize() // Scaling further should cause even fewer items to be repainted view.scale(0.1, 0.1); // Stacks with previous scale - qApp->processEvents(); + QCoreApplication::processEvents(); QTRY_VERIFY(view.repaints > viewRepaints); viewRepaints = view.repaints; @@ -4752,6 +4789,7 @@ void tst_QGraphicsScene::focusOnTouch() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); scene.setSceneRect(0, 0, 100, 100); QGraphicsRectItem *rect = scene.addRect(0, 0, 100, 100); rect->setFlag(QGraphicsItem::ItemIsFocusable, true); @@ -4839,6 +4877,7 @@ void tst_QGraphicsScene::taskQTBUG_42915_focusNextPrevChild() { QGraphicsScene scene; QGraphicsView view(&scene); + view.setWindowTitle(QTest::currentTestFunction()); scene.setSceneRect(1, 1, 198, 198); view.setFocus(); -- cgit v1.2.3 From c2aaa9e18ecc62cb399010f063c6938771a92563 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 16 Aug 2019 10:06:56 +0200 Subject: tst_QGraphicsScene: Pass on High DPI screens The test requires High DPI scaling to be disabled since it captures widgets. Turn it off initially and introduce a member variable containing a suitable size depending on the screen to make the test pass on High DPI screens without violating minimum window widths on Windows. Change-Id: Ida9f306cff6abd48ee5de7001c7670a0da60c6c2 Reviewed-by: Oliver Wolff --- .../qgraphicsscene/tst_qgraphicsscene.cpp | 75 ++++++++++++++++------ 1 file changed, 55 insertions(+), 20 deletions(-) diff --git a/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp index cc6ed2f80e..950f3ef670 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp @@ -182,6 +182,10 @@ protected: class tst_QGraphicsScene : public QObject { Q_OBJECT +public: + tst_QGraphicsScene(); + static void initMain() { QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); } + public slots: void cleanup(); @@ -284,8 +288,19 @@ private slots: void taskQTBUG_15977_renderWithDeviceCoordinateCache(); void taskQTBUG_16401_focusItem(); void taskQTBUG_42915_focusNextPrevChild(); + +private: + QRect m_availableGeometry = QGuiApplication::primaryScreen()->availableGeometry(); + QSize m_testSize; }; +tst_QGraphicsScene::tst_QGraphicsScene() +{ + const int testSize = qMax(200, m_availableGeometry.width() / 10); + m_testSize.setWidth(testSize); + m_testSize.setHeight(testSize); +} + void tst_QGraphicsScene::cleanup() { // ensure not even skipped tests with custom input context leave it dangling @@ -1085,6 +1100,7 @@ void tst_QGraphicsScene::addItem() CustomView view; view.setWindowTitle(QTest::currentTestFunction()); view.setScene(&scene); + view.resize(m_testSize); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); QCoreApplication::processEvents(); @@ -2597,6 +2613,7 @@ void tst_QGraphicsScene::render() QGraphicsView view; view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); QGraphicsScene scene(&view); scene.addEllipse(QRectF(-10, -10, 20, 20), QPen(Qt::black, 0), QBrush(Qt::white)); scene.addEllipse(QRectF(-2, -7, 4, 4), QPen(Qt::black, 0), QBrush(Qt::yellow))->setZValue(1); @@ -2678,34 +2695,32 @@ void tst_QGraphicsScene::renderItemsWithNegativeWidthOrHeight() #if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED) || defined(Q_OS_WINRT) QSKIP("Test only works on platforms with resizable windows"); #endif - - QGraphicsScene scene(0, 0, 150, 150); + QGraphicsScene scene(0, 0, m_testSize.width(), m_testSize.height()); // Add item with negative width. - QGraphicsRectItem *item1 = new QGraphicsRectItem(0, 0, -150, 50); + QGraphicsRectItem *item1 = new QGraphicsRectItem(0, 0, -m_testSize.width(), 50); item1->setBrush(Qt::red); - item1->setPos(150, 50); + item1->setPos(m_testSize.width(), 50); scene.addItem(item1); // Add item with negative height. - QGraphicsRectItem *item2 = new QGraphicsRectItem(0, 0, 50, -150); + QGraphicsRectItem *item2 = new QGraphicsRectItem(0, 0, 50, -m_testSize.height()); item2->setBrush(Qt::blue); - item2->setPos(50, 150); + item2->setPos(50, m_testSize.height()); scene.addItem(item2); QGraphicsView view(&scene); view.setWindowTitle(QTest::currentTestFunction()); view.setFrameStyle(QFrame::NoFrame); - view.resize(150, 150); view.show(); - QCOMPARE(view.viewport()->size(), QSize(150, 150)); + QTRY_COMPARE(view.viewport()->size(), m_testSize); QImage expected(view.viewport()->size(), QImage::Format_RGB32); view.viewport()->render(&expected); // Make sure the scene background is the same as the viewport background. scene.setBackgroundBrush(view.viewport()->palette().brush(view.viewport()->backgroundRole())); - QImage actual(150, 150, QImage::Format_RGB32); + QImage actual(m_testSize, QImage::Format_RGB32); QPainter painter(&actual); scene.render(&painter); painter.end(); @@ -2730,6 +2745,7 @@ void tst_QGraphicsScene::contextMenuEvent() QGraphicsView view(&scene); view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.show(); view.activateWindow(); QVERIFY(QTest::qWaitForWindowActive(&view)); @@ -2746,7 +2762,7 @@ void tst_QGraphicsScene::contextMenuEvent() class ContextMenuItem : public QGraphicsRectItem { public: - ContextMenuItem() : QGraphicsRectItem(0, 0, 100, 100) + ContextMenuItem(const QSize &s) : QGraphicsRectItem(0, 0, s.width(), s.height()) { setBrush(Qt::red); } protected: @@ -2760,27 +2776,30 @@ void tst_QGraphicsScene::contextMenuEvent_ItemIgnoresTransformations() QSKIP("Test fails on some Android devices (QTBUG-44430)"); #endif - QGraphicsScene scene(0, 0, 200, 200); - ContextMenuItem *item = new ContextMenuItem; + QGraphicsScene scene(0, 0, m_testSize.width(), m_testSize.height()); + const QSize itemSize = m_testSize / 2; + ContextMenuItem *item = new ContextMenuItem(itemSize); item->setFlag(QGraphicsItem::ItemIgnoresTransformations); scene.addItem(item); QWidget topLevel; topLevel.setWindowTitle(QTest::currentTestFunction()); + topLevel.resize(m_testSize); QGraphicsView view(&scene, &topLevel); - view.resize(200, 200); topLevel.show(); QVERIFY(QTest::qWaitForWindowExposed(&topLevel)); + + { - QPoint pos(50, 50); + QPoint pos(itemSize.width() / 2, itemSize.height() / 2); QContextMenuEvent event(QContextMenuEvent::Keyboard, pos, view.viewport()->mapToGlobal(pos)); event.ignore(); QApplication::sendEvent(view.viewport(), &event); QVERIFY(event.isAccepted()); } { - QPoint pos(150, 150); + QPoint pos(itemSize.width() * 3 / 2, itemSize.height() * 3 / 2); QContextMenuEvent event(QContextMenuEvent::Keyboard, pos, view.viewport()->mapToGlobal(pos)); event.ignore(); QApplication::sendEvent(view.viewport(), &event); @@ -2788,14 +2807,14 @@ void tst_QGraphicsScene::contextMenuEvent_ItemIgnoresTransformations() } view.scale(1.5, 1.5); { - QPoint pos(25, 25); + QPoint pos(itemSize.width() / 4, itemSize.height() / 4); QContextMenuEvent event(QContextMenuEvent::Keyboard, pos, view.viewport()->mapToGlobal(pos)); event.ignore(); QApplication::sendEvent(view.viewport(), &event); QVERIFY(event.isAccepted()); } { - QPoint pos(55, 55); + QPoint pos(itemSize.width() / 2 + 5, itemSize.height() / 2 + 5); QContextMenuEvent event(QContextMenuEvent::Keyboard, pos, view.viewport()->mapToGlobal(pos)); event.ignore(); QApplication::sendEvent(view.viewport(), &event); @@ -2844,6 +2863,7 @@ void tst_QGraphicsScene::update2() scene.setSceneRect(-200, -200, 200, 200); CustomView view; view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.setScene(&scene); view.show(); QApplication::setActiveWindow(&view); @@ -3514,6 +3534,7 @@ void tst_QGraphicsScene::task160653_selectionChanged() QSignalSpy spy(&scene, &QGraphicsScene::selectionChanged); QGraphicsView view(&scene); view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.show(); QVERIFY(QTest::qWaitForWindowActive(&view)); QTest::mouseClick( @@ -3803,6 +3824,7 @@ void tst_QGraphicsScene::inputMethod() QGraphicsScene scene; QGraphicsView view(&scene); + view.resize(m_testSize); view.show(); view.setWindowTitle(QTest::currentTestFunction()); QApplication::setActiveWindow(&view); @@ -4044,6 +4066,7 @@ void tst_QGraphicsScene::isActive() { QWidget toplevel1; toplevel1.setWindowTitle(QTest::currentTestFunction()); + toplevel1.resize(m_testSize); QHBoxLayout *layout = new QHBoxLayout; toplevel1.setLayout(layout); QGraphicsView *view1 = new QGraphicsView(&scene1); @@ -4109,9 +4132,9 @@ void tst_QGraphicsScene::isActive() { - const QRect availableGeometry = QGuiApplication::primaryScreen()->availableGeometry(); QWidget toplevel2; toplevel2.setWindowTitle(QTest::currentTestFunction()); + toplevel2.resize(m_testSize); QHBoxLayout *layout = new QHBoxLayout; toplevel2.setLayout(layout); QGraphicsView *view1 = new QGraphicsView(&scene1); @@ -4124,7 +4147,7 @@ void tst_QGraphicsScene::isActive() QVERIFY(!scene1.hasFocus()); QVERIFY(!scene2.hasFocus()); - toplevel2.move(availableGeometry.topLeft() + QPoint(50, 50)); + toplevel2.move(m_availableGeometry.topLeft() + QPoint(50, 50)); toplevel2.show(); QApplication::setActiveWindow(&toplevel2); QVERIFY(QTest::qWaitForWindowActive(&toplevel2)); @@ -4173,7 +4196,8 @@ void tst_QGraphicsScene::isActive() QVERIFY(!scene2.hasFocus()); QGraphicsView topLevelView; - topLevelView.move(availableGeometry.topLeft() + QPoint(500, 50)); + topLevelView.move(toplevel2.geometry().topRight() + QPoint(100, 50)); + topLevelView.resize(m_testSize); topLevelView.show(); QApplication::setActiveWindow(&topLevelView); topLevelView.setFocus(); @@ -4219,6 +4243,7 @@ void tst_QGraphicsScene::isActive() { QWidget toplevel3; + toplevel3.resize(m_testSize); QHBoxLayout *layout = new QHBoxLayout; toplevel3.setLayout(layout); QGraphicsView *view1 = new QGraphicsView(&scene1); @@ -4297,6 +4322,7 @@ void tst_QGraphicsScene::siblingIndexAlwaysValid() QGraphicsView view2(&scene2); view2.setWindowTitle(QTest::currentTestFunction()); + view2.resize(m_testSize); // first add the blue rect QGraphicsRectItem* const item1 = new QGraphicsRectItem(QRect( 10, 10, 10, 10 )); @@ -4341,6 +4367,7 @@ void tst_QGraphicsScene::removeFullyTransparentItem() CustomView view; view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.setScene(&scene); view.show(); QApplication::setActiveWindow(&view); @@ -4398,6 +4425,7 @@ void tst_QGraphicsScene::taskQT657_paintIntoCacheWithTransparentParts() QGraphicsScene *scene = new QGraphicsScene(); CustomView view; + view.resize(m_testSize); view.setWindowTitle(QTest::currentTestFunction()); view.setScene(scene); @@ -4442,6 +4470,7 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() QGraphicsScene *scene = new QGraphicsScene(); CustomView view; + view.resize(m_testSize); view.setWindowTitle(QTest::currentTestFunction()); view.setScene(scene); @@ -4483,6 +4512,7 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() QGraphicsScene *scene = new QGraphicsScene(); CustomView view; view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.setScene(scene); scene->addItem(rectItem); @@ -4522,6 +4552,7 @@ void tst_QGraphicsScene::taskQTBUG_7863_paintIntoCacheWithTransparentParts() QGraphicsScene *scene = new QGraphicsScene(); CustomView view; view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.setScene(scene); scene->addItem(rectItem); @@ -4737,6 +4768,7 @@ void tst_QGraphicsScene::minimumRenderSize() CustomView view; view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); view.setScene(&scene); view.show(); QVERIFY(QTest::qWaitForWindowExposed(&view)); @@ -4790,6 +4822,7 @@ void tst_QGraphicsScene::focusOnTouch() QGraphicsScene scene; QGraphicsView view(&scene); view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); scene.setSceneRect(0, 0, 100, 100); QGraphicsRectItem *rect = scene.addRect(0, 0, 100, 100); rect->setFlag(QGraphicsItem::ItemIsFocusable, true); @@ -4847,6 +4880,7 @@ void tst_QGraphicsScene::taskQTBUG_16401_focusItem() { QGraphicsScene scene; QGraphicsView view(&scene); + view.resize(m_testSize); QGraphicsRectItem *rect = scene.addRect(0, 0, 100, 100); rect->setFlag(QGraphicsItem::ItemIsFocusable); @@ -4878,6 +4912,7 @@ void tst_QGraphicsScene::taskQTBUG_42915_focusNextPrevChild() QGraphicsScene scene; QGraphicsView view(&scene); view.setWindowTitle(QTest::currentTestFunction()); + view.resize(m_testSize); scene.setSceneRect(1, 1, 198, 198); view.setFocus(); -- cgit v1.2.3 From 97db8e04ac2efd924c6de4c0bcdcaf845b090bbc Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 9 Aug 2019 16:15:57 +0200 Subject: Port away from QMutexLocker in public headers We can't use qt_scoped_lock/qt_unique_lock here, so port to std::unique_lock and std::lock_guard for now. This is in preparation of deprecating QMutexLocker in favor of std::unique_lock and std::scoped_lock. In QFutureInterface, change the return type of mutex() from QMutex* to QMutex&, so we don't need to deref when passing to std::lock_guard. We need to keep the old method around for BC reasons, so the new one needs an artificial function argument for disambiguation. This will vanish come Qt 6. Change-Id: I1a0f0205952a249512ec2dbd3f0f48dd209b1636 Reviewed-by: Thiago Macieira --- src/concurrent/qtconcurrentreducekernel.h | 12 +++++++----- src/corelib/global/qglobalstatic.h | 3 ++- src/corelib/thread/qfutureinterface.cpp | 5 +++++ src/corelib/thread/qfutureinterface.h | 13 ++++++++----- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/concurrent/qtconcurrentreducekernel.h b/src/concurrent/qtconcurrentreducekernel.h index 0fbc40e02e..8f9a938952 100644 --- a/src/concurrent/qtconcurrentreducekernel.h +++ b/src/concurrent/qtconcurrentreducekernel.h @@ -52,6 +52,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE @@ -147,7 +149,7 @@ public: ReduceResultType &r, const IntermediateResults &result) { - QMutexLocker locker(&mutex); + std::unique_lock locker(mutex); if (!canReduce(result.begin)) { ++resultsMapSize; resultsMap.insert(result.begin, result); @@ -161,7 +163,7 @@ public: // reduce this result locker.unlock(); reduceResult(reduce, r, result); - locker.relock(); + locker.lock(); // reduce all stored results as well while (!resultsMap.isEmpty()) { @@ -170,7 +172,7 @@ public: locker.unlock(); reduceResults(reduce, r, resultsMapCopy); - locker.relock(); + locker.lock(); resultsMapSize -= resultsMapCopy.size(); } @@ -180,7 +182,7 @@ public: // reduce this result locker.unlock(); reduceResult(reduce, r, result); - locker.relock(); + locker.lock(); // OrderedReduce progress += result.end - result.begin; @@ -193,7 +195,7 @@ public: locker.unlock(); reduceResult(reduce, r, it.value()); - locker.relock(); + locker.lock(); --resultsMapSize; progress += it.value().end - it.value().begin; diff --git a/src/corelib/global/qglobalstatic.h b/src/corelib/global/qglobalstatic.h index 7a7d65ed76..e56fe1dbcb 100644 --- a/src/corelib/global/qglobalstatic.h +++ b/src/corelib/global/qglobalstatic.h @@ -98,6 +98,7 @@ enum GuardValues { QT_END_NAMESPACE #include +#include QT_BEGIN_NAMESPACE #define Q_GLOBAL_STATIC_INTERNAL(ARGS) \ @@ -107,7 +108,7 @@ QT_BEGIN_NAMESPACE static QBasicMutex mutex; \ int x = guard.loadAcquire(); \ if (Q_UNLIKELY(x >= QtGlobalStatic::Uninitialized)) { \ - QMutexLocker locker(&mutex); \ + const std::lock_guard locker(mutex); \ if (guard.loadRelaxed() == QtGlobalStatic::Uninitialized) { \ d = new Type ARGS; \ static struct Cleanup { \ diff --git a/src/corelib/thread/qfutureinterface.cpp b/src/corelib/thread/qfutureinterface.cpp index 8f4cae8816..6430f38a3b 100644 --- a/src/corelib/thread/qfutureinterface.cpp +++ b/src/corelib/thread/qfutureinterface.cpp @@ -429,6 +429,11 @@ QMutex *QFutureInterfaceBase::mutex() const return &d->m_mutex; } +QMutex &QFutureInterfaceBase::mutex(int) const +{ + return d->m_mutex; +} + QtPrivate::ExceptionStore &QFutureInterfaceBase::exceptionStore() { return d->m_exceptionStore; diff --git a/src/corelib/thread/qfutureinterface.h b/src/corelib/thread/qfutureinterface.h index d5e2401eee..bcdae24833 100644 --- a/src/corelib/thread/qfutureinterface.h +++ b/src/corelib/thread/qfutureinterface.h @@ -45,6 +45,8 @@ #include #include +#include + QT_REQUIRE_CONFIG(future); QT_BEGIN_NAMESPACE @@ -118,6 +120,7 @@ public: void waitForResume(); QMutex *mutex() const; + QMutex &mutex(int) const; QtPrivate::ExceptionStore &exceptionStore(); QtPrivate::ResultStoreBase &resultStoreBase(); const QtPrivate::ResultStoreBase &resultStoreBase() const; @@ -188,7 +191,7 @@ public: template inline void QFutureInterface::reportResult(const T *result, int index) { - QMutexLocker locker(mutex()); + std::lock_guard locker(mutex(0)); if (this->queryState(Canceled) || this->queryState(Finished)) { return; } @@ -214,7 +217,7 @@ inline void QFutureInterface::reportResult(const T &result, int index) template inline void QFutureInterface::reportResults(const QVector &_results, int beginIndex, int count) { - QMutexLocker locker(mutex()); + std::lock_guard locker(mutex(0)); if (this->queryState(Canceled) || this->queryState(Finished)) { return; } @@ -242,14 +245,14 @@ inline void QFutureInterface::reportFinished(const T *result) template inline const T &QFutureInterface::resultReference(int index) const { - QMutexLocker lock(mutex()); + std::lock_guard locker(mutex(0)); return resultStoreBase().resultAt(index).template value(); } template inline const T *QFutureInterface::resultPointer(int index) const { - QMutexLocker lock(mutex()); + std::lock_guard locker(mutex(0)); return resultStoreBase().resultAt(index).template pointer(); } @@ -263,7 +266,7 @@ inline QList QFutureInterface::results() QFutureInterfaceBase::waitForResult(-1); QList res; - QMutexLocker lock(mutex()); + std::lock_guard locker(mutex(0)); QtPrivate::ResultIteratorBase it = resultStoreBase().begin(); while (it != resultStoreBase().end()) { -- cgit v1.2.3 From 0d336ab3132c85781fc62b9d92dce690b8ff9d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Wed, 21 Aug 2019 17:19:34 +0200 Subject: QNetworkConnectionMonitor(win): Fix memory leak Through some misconceptions about ComPtr I ended up thinking that it did not call AddRef internally on creation. But it does. This lead to always having > 1 ref-counter. Also stop the monitor on destruction if it hasn't already been stopped. As was already done for QNetworkStatusMonitorPrivate. Change-Id: Ic72a2f5cb3325f86c018f90b497caaec834cb214 Reviewed-by: Timur Pocheptsov --- src/network/kernel/qnetconmonitor_win.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/network/kernel/qnetconmonitor_win.cpp b/src/network/kernel/qnetconmonitor_win.cpp index f9d660d738..a010df8e3a 100644 --- a/src/network/kernel/qnetconmonitor_win.cpp +++ b/src/network/kernel/qnetconmonitor_win.cpp @@ -139,7 +139,7 @@ private: QNetworkConnectionMonitorPrivate *monitor = nullptr; - QAtomicInteger ref = 1; // start at 1 for our own initial reference + QAtomicInteger ref = 0; DWORD cookie = 0; }; @@ -346,6 +346,8 @@ QNetworkConnectionMonitorPrivate::~QNetworkConnectionMonitorPrivate() { if (comInitFailed) return; + if (monitoring) + stopMonitoring(); connectionEvents.Reset(); CoUninitialize(); } @@ -496,7 +498,7 @@ private: QNetworkStatusMonitorPrivate *monitor = nullptr; - QAtomicInteger ref = 1; // start at 1 for our own initial reference + QAtomicInteger ref = 0; DWORD cookie = 0; }; -- cgit v1.2.3 From fd785c3899d21dd05fd013336bbc63ce818dc2a6 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 22 Aug 2019 10:17:12 +0200 Subject: QtCore: port all QMutexLocker users to qt_{scoped,unique}_lock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... except four instances in QCoreApplication that would conflict with another change. Replace a locally-defined MutexUnlocker with a call to unlock() + qScopedGuard'ed lock() to avoid having to spell out the locker type while we can't depend on C++17 CTAD, yet. In QSettings, move the new mutex locker into and out of initDefaultPaths(), such as is idiomatic for std::unique_lock, but wasn't possible with QMutexLocker (which is not movable). Change-Id: I23056e13ecaa76159db583c7dccc6e05715e0788 Reviewed-by: Mårten Nordheim --- src/corelib/animation/qpropertyanimation.cpp | 3 +- src/corelib/animation/qvariantanimation.cpp | 5 ++-- src/corelib/global/qglobal.cpp | 19 +++++++------ src/corelib/global/qlogging.cpp | 5 ++-- src/corelib/io/qfileselector.cpp | 6 ++-- src/corelib/io/qfilesystemwatcher_win.cpp | 13 +++++---- src/corelib/io/qloggingregistry.cpp | 7 +++-- src/corelib/io/qprocess_unix.cpp | 3 +- src/corelib/io/qsettings.cpp | 41 +++++++++++++++------------- src/corelib/kernel/qcore_mac.cpp | 3 +- src/corelib/kernel/qcoreapplication.cpp | 29 +++++++++----------- src/corelib/kernel/qcoreapplication_win.cpp | 3 +- src/corelib/text/qregexp.cpp | 5 ++-- 13 files changed, 76 insertions(+), 66 deletions(-) diff --git a/src/corelib/animation/qpropertyanimation.cpp b/src/corelib/animation/qpropertyanimation.cpp index a1baa112fc..2a3572d441 100644 --- a/src/corelib/animation/qpropertyanimation.cpp +++ b/src/corelib/animation/qpropertyanimation.cpp @@ -85,6 +85,7 @@ #include "qpropertyanimation_p.h" #include +#include QT_BEGIN_NAMESPACE @@ -261,7 +262,7 @@ void QPropertyAnimation::updateState(QAbstractAnimation::State newState, QPropertyAnimation *animToStop = 0; { static QBasicMutex mutex; - QMutexLocker locker(&mutex); + auto locker = qt_unique_lock(mutex); typedef QPair QPropertyAnimationPair; typedef QHash QPropertyAnimationHash; static QPropertyAnimationHash hash; diff --git a/src/corelib/animation/qvariantanimation.cpp b/src/corelib/animation/qvariantanimation.cpp index 01a699c5dc..216c015732 100644 --- a/src/corelib/animation/qvariantanimation.cpp +++ b/src/corelib/animation/qvariantanimation.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include @@ -426,7 +427,7 @@ void QVariantAnimation::registerInterpolator(QVariantAnimation::Interpolator fun // in such an order that we get here with interpolators == NULL, // to continue causes the app to crash on exit with a SEGV if (interpolators) { - QMutexLocker locker(®isteredInterpolatorsMutex); + const auto locker = qt_scoped_lock(registeredInterpolatorsMutex); if (int(interpolationType) >= interpolators->count()) interpolators->resize(int(interpolationType) + 1); interpolators->replace(interpolationType, func); @@ -443,7 +444,7 @@ QVariantAnimation::Interpolator QVariantAnimationPrivate::getInterpolator(int in { { QInterpolatorVector *interpolators = registeredInterpolators(); - QMutexLocker locker(®isteredInterpolatorsMutex); + const auto locker = qt_scoped_lock(registeredInterpolatorsMutex); QVariantAnimation::Interpolator ret = 0; if (interpolationType < interpolators->count()) { ret = interpolators->at(interpolationType); diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index dd54ef61dc..dfd5137703 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -52,6 +52,7 @@ #include #include +#include #include #include @@ -3351,7 +3352,7 @@ static QBasicMutex environmentMutex; */ void qTzSet() { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #if defined(Q_OS_WIN) _tzset(); #else @@ -3365,7 +3366,7 @@ void qTzSet() */ time_t qMkTime(struct tm *when) { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); return mktime(when); } @@ -3397,7 +3398,7 @@ time_t qMkTime(struct tm *when) */ QByteArray qgetenv(const char *varName) { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #ifdef Q_CC_MSVC size_t requiredSize = 0; QByteArray buffer; @@ -3465,7 +3466,7 @@ QByteArray qgetenv(const char *varName) QString qEnvironmentVariable(const char *varName, const QString &defaultValue) { #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); QVarLengthArray wname(int(strlen(varName)) + 1); for (int i = 0; i < wname.size(); ++i) // wname.size() is correct: will copy terminating null wname[i] = uchar(varName[i]); @@ -3513,7 +3514,7 @@ QString qEnvironmentVariable(const char *varName) */ bool qEnvironmentVariableIsEmpty(const char *varName) noexcept { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #ifdef Q_CC_MSVC // we provide a buffer that can only hold the empty string, so // when the env.var isn't empty, we'll get an ERANGE error (buffer @@ -3552,7 +3553,7 @@ int qEnvironmentVariableIntValue(const char *varName, bool *ok) noexcept static const int MaxDigitsForOctalInt = (std::numeric_limits::digits + NumBinaryDigitsPerOctalDigit - 1) / NumBinaryDigitsPerOctalDigit; - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #ifdef Q_CC_MSVC // we provide a buffer that can hold any int value: char buffer[MaxDigitsForOctalInt + 2]; // +1 for NUL +1 for optional '-' @@ -3617,7 +3618,7 @@ int qEnvironmentVariableIntValue(const char *varName, bool *ok) noexcept */ bool qEnvironmentVariableIsSet(const char *varName) noexcept { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #ifdef Q_CC_MSVC size_t requiredSize = 0; (void)getenv_s(&requiredSize, 0, 0, varName); @@ -3647,7 +3648,7 @@ bool qEnvironmentVariableIsSet(const char *varName) noexcept */ bool qputenv(const char *varName, const QByteArray& value) { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #if defined(Q_CC_MSVC) return _putenv_s(varName, value.constData()) == 0; #elif (defined(_POSIX_VERSION) && (_POSIX_VERSION-0) >= 200112L) || defined(Q_OS_HAIKU) @@ -3678,7 +3679,7 @@ bool qputenv(const char *varName, const QByteArray& value) */ bool qunsetenv(const char *varName) { - QMutexLocker locker(&environmentMutex); + const auto locker = qt_scoped_lock(environmentMutex); #if defined(Q_CC_MSVC) return _putenv_s(varName, "") == 0; #elif (defined(_POSIX_VERSION) && (_POSIX_VERSION-0) >= 200112L) || defined(Q_OS_BSD4) || defined(Q_OS_HAIKU) diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 621b6d7d13..491823f217 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -49,6 +49,7 @@ #include "qvarlengtharray.h" #include "qdebug.h" #include "qmutex.h" +#include #include "qloggingcategory.h" #ifndef QT_BOOTSTRAPPED #include "qelapsedtimer.h" @@ -1375,7 +1376,7 @@ QString qFormatLogMessage(QtMsgType type, const QMessageLogContext &context, con { QString message; - QMutexLocker lock(&QMessagePattern::mutex); + const auto locker = qt_scoped_lock(QMessagePattern::mutex); QMessagePattern *pattern = qMessagePattern(); if (!pattern) { @@ -2091,7 +2092,7 @@ QtMsgHandler qInstallMsgHandler(QtMsgHandler h) void qSetMessagePattern(const QString &pattern) { - QMutexLocker lock(&QMessagePattern::mutex); + const auto locker = qt_scoped_lock(QMessagePattern::mutex); if (!qMessagePattern()->fromEnvironment) qMessagePattern()->setPattern(pattern); diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp index 500b475d1d..31c490de66 100644 --- a/src/corelib/io/qfileselector.cpp +++ b/src/corelib/io/qfileselector.cpp @@ -44,7 +44,7 @@ #include #include #include -#include +#include #include #include #include @@ -312,7 +312,7 @@ void QFileSelector::setExtraSelectors(const QStringList &list) QStringList QFileSelector::allSelectors() const { Q_D(const QFileSelector); - QMutexLocker locker(&sharedDataMutex); + const auto locker = qt_scoped_lock(sharedDataMutex); QFileSelectorPrivate::updateSelectors(); return d->extras + sharedData->staticSelectors; } @@ -371,7 +371,7 @@ QStringList QFileSelectorPrivate::platformSelectors() void QFileSelectorPrivate::addStatics(const QStringList &statics) { - QMutexLocker locker(&sharedDataMutex); + const auto locker = qt_scoped_lock(sharedDataMutex); sharedData->preloadedStatics << statics; sharedData->staticSelectors.clear(); } diff --git a/src/corelib/io/qfilesystemwatcher_win.cpp b/src/corelib/io/qfilesystemwatcher_win.cpp index c22a003931..5f91ce5e3d 100644 --- a/src/corelib/io/qfilesystemwatcher_win.cpp +++ b/src/corelib/io/qfilesystemwatcher_win.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #include @@ -423,7 +424,7 @@ QStringList QWindowsFileSystemWatcherEngine::addPaths(const QStringList &paths, end = threads.constEnd(); for(jt = threads.constBegin(); jt != end; ++jt) { thread = *jt; - QMutexLocker locker(&(thread->mutex)); + const auto locker = qt_scoped_lock(thread->mutex); const auto hit = thread->handleForDir.find(QFileSystemWatcherPathKey(absolutePath)); if (hit != thread->handleForDir.end() && hit.value().flags < flags) { @@ -478,7 +479,7 @@ QStringList QWindowsFileSystemWatcherEngine::addPaths(const QStringList &paths, // now look for a thread to insert bool found = false; for (QWindowsFileSystemWatcherEngineThread *thread : qAsConst(threads)) { - QMutexLocker locker(&(thread->mutex)); + const auto locker = qt_scoped_lock(thread->mutex); if (thread->handles.count() < MAXIMUM_WAIT_OBJECTS) { DEBUG() << "Added handle" << handle.handle << "for" << absolutePath << "to watch" << fileInfo.absoluteFilePath() << "to existing thread " << thread; @@ -554,7 +555,7 @@ QStringList QWindowsFileSystemWatcherEngine::removePaths(const QStringList &path if (*jt == 0) continue; - QMutexLocker locker(&(thread->mutex)); + auto locker = qt_unique_lock(thread->mutex); QWindowsFileSystemWatcherEngine::Handle handle = thread->handleForDir.value(QFileSystemWatcherPathKey(absolutePath)); if (handle.handle == INVALID_HANDLE_VALUE) { @@ -587,7 +588,7 @@ QStringList QWindowsFileSystemWatcherEngine::removePaths(const QStringList &path locker.unlock(); thread->stop(); thread->wait(); - locker.relock(); + locker.lock(); // We can't delete the thread until the mutex locker is // out of scope } @@ -652,13 +653,13 @@ static QString msgFindNextFailed(const QWindowsFileSystemWatcherEngineThread::Pa void QWindowsFileSystemWatcherEngineThread::run() { - QMutexLocker locker(&mutex); + auto locker = qt_unique_lock(mutex); forever { QVector handlesCopy = handles; locker.unlock(); DEBUG() << "QWindowsFileSystemWatcherThread" << this << "waiting on" << handlesCopy.count() << "handles"; DWORD r = WaitForMultipleObjects(handlesCopy.count(), handlesCopy.constData(), false, INFINITE); - locker.relock(); + locker.lock(); do { if (r == WAIT_OBJECT_0) { int m = msg; diff --git a/src/corelib/io/qloggingregistry.cpp b/src/corelib/io/qloggingregistry.cpp index 7849dfd14c..e8eb18b4c1 100644 --- a/src/corelib/io/qloggingregistry.cpp +++ b/src/corelib/io/qloggingregistry.cpp @@ -41,6 +41,7 @@ #include #include +#include #include #include #include @@ -356,7 +357,7 @@ void QLoggingRegistry::initializeRules() */ void QLoggingRegistry::registerCategory(QLoggingCategory *cat, QtMsgType enableForLevel) { - QMutexLocker locker(®istryMutex); + const auto locker = qt_scoped_lock(registryMutex); if (!categories.contains(cat)) { categories.insert(cat, enableForLevel); @@ -370,7 +371,7 @@ void QLoggingRegistry::registerCategory(QLoggingCategory *cat, QtMsgType enableF */ void QLoggingRegistry::unregisterCategory(QLoggingCategory *cat) { - QMutexLocker locker(®istryMutex); + const auto locker = qt_scoped_lock(registryMutex); categories.remove(cat); } @@ -413,7 +414,7 @@ void QLoggingRegistry::updateRules() QLoggingCategory::CategoryFilter QLoggingRegistry::installFilter(QLoggingCategory::CategoryFilter filter) { - QMutexLocker locker(®istryMutex); + const auto locker = qt_scoped_lock(registryMutex); if (!filter) filter = defaultCategoryFilter; diff --git a/src/corelib/io/qprocess_unix.cpp b/src/corelib/io/qprocess_unix.cpp index 951fc4ccaa..0c80daa024 100644 --- a/src/corelib/io/qprocess_unix.cpp +++ b/src/corelib/io/qprocess_unix.cpp @@ -89,6 +89,7 @@ QT_END_NAMESPACE #include "qprocess_p.h" #include "qstandardpaths.h" #include "private/qcore_unix_p.h" +#include "private/qlocking_p.h" #ifdef Q_OS_MAC #include @@ -404,7 +405,7 @@ void QProcessPrivate::startProcess() // CFBundle is not reentrant, since CFBundleCreate might return a reference // to a cached bundle object. Protect the bundle calls with a mutex lock. static QBasicMutex cfbundleMutex; - QMutexLocker lock(&cfbundleMutex); + const auto locker = qt_scoped_lock(cfbundleMutex); QCFType bundle = CFBundleCreate(0, url); // 'executableURL' can be either relative or absolute ... QCFType executableURL = CFBundleCopyExecutableURL(bundle); diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp index accde01f16..4a119a1e2f 100644 --- a/src/corelib/io/qsettings.cpp +++ b/src/corelib/io/qsettings.cpp @@ -47,6 +47,7 @@ #include "qdir.h" #include "qfileinfo.h" #include "qmutex.h" +#include "private/qlocking_p.h" #include "qlibraryinfo.h" #include "qtemporaryfile.h" #include "qstandardpaths.h" @@ -210,7 +211,7 @@ QConfFile *QConfFile::fromName(const QString &fileName, bool _userPerms) ConfFileCache *unusedCache = unusedCacheFunc(); QConfFile *confFile = 0; - QMutexLocker locker(&settingsGlobalMutex); + const auto locker = qt_scoped_lock(settingsGlobalMutex); if (!(confFile = usedHash->value(absPath))) { if ((confFile = unusedCache->take(absPath))) @@ -225,7 +226,7 @@ QConfFile *QConfFile::fromName(const QString &fileName, bool _userPerms) void QConfFile::clearCache() { - QMutexLocker locker(&settingsGlobalMutex); + const auto locker = qt_scoped_lock(settingsGlobalMutex); unusedCacheFunc()->clear(); } @@ -937,7 +938,7 @@ void QConfFileSettingsPrivate::initFormat() #endif if (format > QSettings::IniFormat) { - QMutexLocker locker(&settingsGlobalMutex); + const auto locker = qt_scoped_lock(settingsGlobalMutex); const CustomFormatVector *customFormatVector = customFormatVectorFunc(); int i = (int)format - (int)QSettings::CustomFormat1; @@ -1052,11 +1053,11 @@ static QString make_user_path() } #endif // !Q_OS_WIN -static void initDefaultPaths(QMutexLocker *locker) +static std::unique_lock initDefaultPaths(std::unique_lock locker) { PathHash *pathHash = pathHashFunc(); - locker->unlock(); + locker.unlock(); /* QLibraryInfo::location() uses QSettings, so in order to @@ -1065,7 +1066,7 @@ static void initDefaultPaths(QMutexLocker *locker) */ QString systemPath = QLibraryInfo::location(QLibraryInfo::SettingsPath) + QLatin1Char('/'); - locker->relock(); + locker.lock(); if (pathHash->isEmpty()) { /* Lazy initialization of pathHash. We initialize the @@ -1096,6 +1097,8 @@ static void initDefaultPaths(QMutexLocker *locker) #endif #endif // Q_OS_WIN } + + return locker; } static Path getPath(QSettings::Format format, QSettings::Scope scope) @@ -1103,10 +1106,10 @@ static Path getPath(QSettings::Format format, QSettings::Scope scope) Q_ASSERT((int)QSettings::NativeFormat == 0); Q_ASSERT((int)QSettings::IniFormat == 1); - QMutexLocker locker(&settingsGlobalMutex); + auto locker = qt_unique_lock(settingsGlobalMutex); PathHash *pathHash = pathHashFunc(); if (pathHash->isEmpty()) - initDefaultPaths(&locker); + locker = initDefaultPaths(std::move(locker)); Path result = pathHash->value(pathHashKey(format, scope)); if (!result.path.isEmpty()) @@ -1120,7 +1123,7 @@ static Path getPath(QSettings::Format format, QSettings::Scope scope) // Note: Suitable only for autotests. void Q_AUTOTEST_EXPORT clearDefaultPaths() { - QMutexLocker locker(&settingsGlobalMutex); + const auto locker = qt_scoped_lock(settingsGlobalMutex); pathHashFunc()->clear(); } #endif // QT_BUILD_INTERNAL && Q_XDG_PLATFORM && !QT_NO_STANDARDPATHS @@ -1200,7 +1203,7 @@ QConfFileSettingsPrivate::QConfFileSettingsPrivate(const QString &fileName, QConfFileSettingsPrivate::~QConfFileSettingsPrivate() { - QMutexLocker locker(&settingsGlobalMutex); + const auto locker = qt_scoped_lock(settingsGlobalMutex); ConfFileHash *usedHash = usedHashFunc(); ConfFileCache *unusedCache = unusedCacheFunc(); @@ -1239,7 +1242,7 @@ void QConfFileSettingsPrivate::remove(const QString &key) QSettingsKey theKey(key, caseSensitivity); QSettingsKey prefix(key + QLatin1Char('/'), caseSensitivity); - QMutexLocker locker(&confFile->mutex); + const auto locker = qt_scoped_lock(confFile->mutex); ensureSectionParsed(confFile, theKey); ensureSectionParsed(confFile, prefix); @@ -1267,7 +1270,7 @@ void QConfFileSettingsPrivate::set(const QString &key, const QVariant &value) QConfFile *confFile = confFiles.at(0); QSettingsKey theKey(key, caseSensitivity, nextPosition++); - QMutexLocker locker(&confFile->mutex); + const auto locker = qt_scoped_lock(confFile->mutex); confFile->removedKeys.remove(theKey); confFile->addedKeys.insert(theKey, value); } @@ -1279,7 +1282,7 @@ bool QConfFileSettingsPrivate::get(const QString &key, QVariant *value) const bool found = false; for (auto confFile : qAsConst(confFiles)) { - QMutexLocker locker(&confFile->mutex); + const auto locker = qt_scoped_lock(confFile->mutex); if (!confFile->addedKeys.isEmpty()) { j = confFile->addedKeys.constFind(theKey); @@ -1312,7 +1315,7 @@ QStringList QConfFileSettingsPrivate::children(const QString &prefix, ChildSpec int startPos = prefix.size(); for (auto confFile : qAsConst(confFiles)) { - QMutexLocker locker(&confFile->mutex); + const auto locker = qt_scoped_lock(confFile->mutex); if (thePrefix.isEmpty()) ensureAllSectionsParsed(confFile); @@ -1351,7 +1354,7 @@ void QConfFileSettingsPrivate::clear() // Note: First config file is always the most specific. QConfFile *confFile = confFiles.at(0); - QMutexLocker locker(&confFile->mutex); + const auto locker = qt_scoped_lock(confFile->mutex); ensureAllSectionsParsed(confFile); confFile->addedKeys.clear(); confFile->removedKeys = confFile->originalKeys; @@ -1363,7 +1366,7 @@ void QConfFileSettingsPrivate::sync() // error we just try to go on and make the best of it for (auto confFile : qAsConst(confFiles)) { - QMutexLocker locker(&confFile->mutex); + const auto locker = qt_scoped_lock(confFile->mutex); syncConfFile(confFile); } } @@ -3521,10 +3524,10 @@ void QSettings::setUserIniPath(const QString &dir) */ void QSettings::setPath(Format format, Scope scope, const QString &path) { - QMutexLocker locker(&settingsGlobalMutex); + auto locker = qt_unique_lock(settingsGlobalMutex); PathHash *pathHash = pathHashFunc(); if (pathHash->isEmpty()) - initDefaultPaths(&locker); + locker = initDefaultPaths(std::move(locker)); pathHash->insert(pathHashKey(format, scope), Path(path + QDir::separator(), true)); } @@ -3604,7 +3607,7 @@ QSettings::Format QSettings::registerFormat(const QString &extension, ReadFunc r Q_ASSERT(caseSensitivity == Qt::CaseSensitive); #endif - QMutexLocker locker(&settingsGlobalMutex); + const auto locker = qt_scoped_lock(settingsGlobalMutex); CustomFormatVector *customFormatVector = customFormatVectorFunc(); int index = customFormatVector->size(); if (index == 16) // the QSettings::Format enum has room for 16 custom formats diff --git a/src/corelib/kernel/qcore_mac.cpp b/src/corelib/kernel/qcore_mac.cpp index b048576f5b..e59835be48 100644 --- a/src/corelib/kernel/qcore_mac.cpp +++ b/src/corelib/kernel/qcore_mac.cpp @@ -44,6 +44,7 @@ #include "qpair.h" #include "qmutex.h" #include "qvarlengtharray.h" +#include "private/qlocking_p.h" QT_BEGIN_NAMESPACE @@ -135,7 +136,7 @@ os_log_type_t AppleUnifiedLogger::logTypeForMessageType(QtMsgType msgType) os_log_t AppleUnifiedLogger::cachedLog(const QString &subsystem, const QString &category) { static QBasicMutex mutex; - QMutexLocker locker(&mutex); + const auto locker = qt_scoped_lock(mutex); static QHash, os_log_t> logs; const auto cacheKey = qMakePair(subsystem, category); diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 87dae896fa..6647ea99f5 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include #ifndef QT_NO_QOBJECT #include @@ -70,6 +71,7 @@ #include #include #include +#include #include #ifndef QT_NO_QOBJECT @@ -294,7 +296,7 @@ void qAddPreRoutine(QtStartUpFunction p) // Due to C++11 parallel dynamic initialization, this can be called // from multiple threads. - QMutexLocker locker(&globalRoutinesMutex); + const auto locker = qt_scoped_lock(globalRoutinesMutex); list->prepend(p); // in case QCoreApplication is re-created, see qt_call_pre_routines } @@ -303,7 +305,7 @@ void qAddPostRoutine(QtCleanUpFunction p) QVFuncList *list = postRList(); if (!list) return; - QMutexLocker locker(&globalRoutinesMutex); + const auto locker = qt_scoped_lock(globalRoutinesMutex); list->prepend(p); } @@ -312,7 +314,7 @@ void qRemovePostRoutine(QtCleanUpFunction p) QVFuncList *list = postRList(); if (!list) return; - QMutexLocker locker(&globalRoutinesMutex); + const auto locker = qt_scoped_lock(globalRoutinesMutex); list->removeAll(p); } @@ -323,7 +325,7 @@ static void qt_call_pre_routines() QVFuncList list; { - QMutexLocker locker(&globalRoutinesMutex); + const auto locker = qt_scoped_lock(globalRoutinesMutex); // Unlike qt_call_post_routines, we don't empty the list, because // Q_COREAPP_STARTUP_FUNCTION is a macro, so the user expects // the function to be executed every time QCoreApplication is created. @@ -342,7 +344,7 @@ void Q_CORE_EXPORT qt_call_post_routines() QVFuncList list; { // extract the current list and make the stored list empty - QMutexLocker locker(&globalRoutinesMutex); + const auto locker = qt_scoped_lock(globalRoutinesMutex); qSwap(*postRList, list); } @@ -522,7 +524,7 @@ void QCoreApplicationPrivate::cleanupThreadData() #endif // need to clear the state of the mainData, just in case a new QCoreApplication comes along. - QMutexLocker locker(&threadData->postEventList.mutex); + const auto locker = qt_scoped_lock(threadData->postEventList.mutex); for (int i = 0; i < threadData->postEventList.size(); ++i) { const QPostEvent &pe = threadData->postEventList.at(i); if (pe.event) { @@ -1705,7 +1707,7 @@ void QCoreApplicationPrivate::sendPostedEvents(QObject *receiver, int event_type ++data->postEventList.recursion; - QMutexLocker locker(&data->postEventList.mutex); + auto locker = qt_unique_lock(data->postEventList.mutex); // by default, we assume that the event dispatcher can go to sleep after // processing all events. if any new events are posted while we send @@ -1821,13 +1823,8 @@ void QCoreApplicationPrivate::sendPostedEvents(QObject *receiver, int event_type // for the next event. const_cast(pe).event = 0; - struct MutexUnlocker - { - QMutexLocker &m; - MutexUnlocker(QMutexLocker &m) : m(m) { m.unlock(); } - ~MutexUnlocker() { m.relock(); } - }; - MutexUnlocker unlocker(locker); + locker.unlock(); + const auto relocker = qScopeGuard([&locker] { locker.lock(); }); QScopedPointer event_deleter(e); // will delete the event (with the mutex unlocked) @@ -1864,7 +1861,7 @@ void QCoreApplicationPrivate::sendPostedEvents(QObject *receiver, int event_type void QCoreApplication::removePostedEvents(QObject *receiver, int eventType) { QThreadData *data = receiver ? receiver->d_func()->threadData : QThreadData::current(); - QMutexLocker locker(&data->postEventList.mutex); + auto locker = qt_unique_lock(data->postEventList.mutex); // the QObject destructor calls this function directly. this can // happen while the event loop is in the middle of posting events, @@ -1927,7 +1924,7 @@ void QCoreApplicationPrivate::removePostedEvent(QEvent * event) QThreadData *data = QThreadData::current(); - QMutexLocker locker(&data->postEventList.mutex); + const auto locker = qt_scoped_lock(data->postEventList.mutex); if (data->postEventList.size() == 0) { #if defined(QT_DEBUG) diff --git a/src/corelib/kernel/qcoreapplication_win.cpp b/src/corelib/kernel/qcoreapplication_win.cpp index 822b68cf62..961b96710e 100644 --- a/src/corelib/kernel/qcoreapplication_win.cpp +++ b/src/corelib/kernel/qcoreapplication_win.cpp @@ -47,6 +47,7 @@ #ifndef QT_NO_QOBJECT #include "qmutex.h" #include +#include #endif #include "qtextstream.h" #include @@ -919,7 +920,7 @@ void QCoreApplicationPrivate::removePostedTimerEvent(QObject *object, int timerI { QThreadData *data = object->d_func()->threadData; - QMutexLocker locker(&data->postEventList.mutex); + const auto locker = qt_scoped_lock(data->postEventList.mutex); if (data->postEventList.size() == 0) return; for (int i = 0; i < data->postEventList.size(); ++i) { diff --git a/src/corelib/text/qregexp.cpp b/src/corelib/text/qregexp.cpp index d81826b47b..41f3508ff8 100644 --- a/src/corelib/text/qregexp.cpp +++ b/src/corelib/text/qregexp.cpp @@ -52,6 +52,7 @@ #include "qstringlist.h" #include "qstringmatcher.h" #include "qvector.h" +#include "private/qlocking_p.h" #include #include @@ -3825,7 +3826,7 @@ static QBasicMutex engineCacheMutex; static void derefEngine(QRegExpEngine *eng, const QRegExpEngineKey &key) { #if !defined(QT_NO_REGEXP_OPTIM) - QMutexLocker locker(&engineCacheMutex); + const auto locker = qt_scoped_lock(engineCacheMutex); if (!eng->ref.deref()) { if (QRECache *c = engineCache()) { c->unusedEngines.insert(key, eng, 4 + key.pattern.length() / 4); @@ -3846,7 +3847,7 @@ static void prepareEngine_helper(QRegExpPrivate *priv) Q_ASSERT(!priv->eng); #if !defined(QT_NO_REGEXP_OPTIM) - QMutexLocker locker(&engineCacheMutex); + const auto locker = qt_scoped_lock(engineCacheMutex); if (QRECache *c = engineCache()) { priv->eng = c->unusedEngines.take(priv->engineKey); if (!priv->eng) -- cgit v1.2.3 From 77de5a329c98c3787725cb3c0a50d8f369b9479c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 28 Aug 2014 22:37:13 +0200 Subject: Long live QColorConstants! QColorConstant is a C++11 version of Qt::GlobalColor, except that instead of Qt::red being an enum, QColorConstants::red is an actual QColor instance, a bit like in the Qt 3 days. In addition, the SVG names that QColor understands are also available, with the same values. Technically, when building a QColor from a color name, QColor ignores casing and whitespaces; we stick to the SVG/CSS official color names (which are lowercase), and prefix them with Svg to clarify where they come from. For instance, note how SVG's gray is not Qt::gray. [ChangeLog][QtGui][[QColor] Added QColorConstants, a namespace containing constexpr QColor instances. Change-Id: Ic9fab26a9a537fcc43cc230da28f4c6314a32438 Reviewed-by: Marc Mutz --- src/gui/doc/qtgui.qdocconf | 3 + src/gui/doc/src/includes/qt-colors.qdocinc | 86 ++++ src/gui/doc/src/includes/svg-colors.qdocinc | 594 ++++++++++++++++++++++++++ src/gui/painting/qcolor.cpp | 81 +++- src/gui/painting/qcolor.h | 187 ++++++++ tests/auto/gui/painting/qcolor/tst_qcolor.cpp | 189 ++++++++ 6 files changed, 1124 insertions(+), 16 deletions(-) create mode 100644 src/gui/doc/src/includes/qt-colors.qdocinc create mode 100644 src/gui/doc/src/includes/svg-colors.qdocinc diff --git a/src/gui/doc/qtgui.qdocconf b/src/gui/doc/qtgui.qdocconf index 049b9ef179..76dd6d7ea1 100644 --- a/src/gui/doc/qtgui.qdocconf +++ b/src/gui/doc/qtgui.qdocconf @@ -67,3 +67,6 @@ navigation.cppclassespage = "Qt GUI C++ Classes" # Ignore warnings about undocumented enum values for the QGradient presets spurious += "Undocumented enum item '.*' in QGradient::Preset" + +# \svgcolor {#ffdead} +macro.svgcolor.HTML = "
" diff --git a/src/gui/doc/src/includes/qt-colors.qdocinc b/src/gui/doc/src/includes/qt-colors.qdocinc new file mode 100644 index 0000000000..4c082323b6 --- /dev/null +++ b/src/gui/doc/src/includes/qt-colors.qdocinc @@ -0,0 +1,86 @@ +\table +\header + \li Name + \li Hex + \li Color +\row + \li Color0 + \li #000000 + \li \svgcolor {#000000} +\row + \li Color1 + \li #ffffff + \li \svgcolor {#ffffff} +\row + \li Black + \li #000000 + \li \svgcolor {#000000} +\row + \li White + \li #ffffff + \li \svgcolor {#ffffff} +\row + \li DarkGray + \li #808080 + \li \svgcolor {#808080} +\row + \li Gray + \li #a0a0a4 + \li \svgcolor {#a0a0a4} +\row + \li LightGray + \li #c0c0c0 + \li \svgcolor {#c0c0c0} +\row + \li Red + \li #ff0000 + \li \svgcolor {#ff0000} +\row + \li Green + \li #00ff00 + \li \svgcolor {#00ff00} +\row + \li Blue + \li #0000ff + \li \svgcolor {#0000ff} +\row + \li Cyan + \li #00ffff + \li \svgcolor {#00ffff} +\row + \li Magenta + \li #ff00ff + \li \svgcolor {#ff00ff} +\row + \li Yellow + \li #ffff00 + \li \svgcolor {#ffff00} +\row + \li DarkRed + \li #800000 + \li \svgcolor {#800000} +\row + \li DarkGreen + \li #008000 + \li \svgcolor {#008000} +\row + \li DarkBlue + \li #000080 + \li \svgcolor {#000080} +\row + \li DarkCyan + \li #008080 + \li \svgcolor {#008080} +\row + \li DarkMagenta + \li #800080 + \li \svgcolor {#800080} +\row + \li DarkYellow + \li #808000 + \li \svgcolor {#808000} +\row + \li Transparent + \li #00000000 + \li (transparent) +\endtable diff --git a/src/gui/doc/src/includes/svg-colors.qdocinc b/src/gui/doc/src/includes/svg-colors.qdocinc new file mode 100644 index 0000000000..4e5fb56d5e --- /dev/null +++ b/src/gui/doc/src/includes/svg-colors.qdocinc @@ -0,0 +1,594 @@ +\table +\header + \li Name + \li Hex + \li Color +\row + \li aliceblue + \li #f0f8ff + \li \svgcolor {#f0f8ff} +\row + \li antiquewhite + \li #faebd7 + \li \svgcolor {#faebd7} +\row + \li aqua + \li #00ffff + \li \svgcolor {#00ffff} +\row + \li aquamarine + \li #7fffd4 + \li \svgcolor {#7fffd4} +\row + \li azure + \li #f0ffff + \li \svgcolor {#f0ffff} +\row + \li beige + \li #f5f5dc + \li \svgcolor {#f5f5dc} +\row + \li bisque + \li #ffe4c4 + \li \svgcolor {#ffe4c4} +\row + \li black + \li #000000 + \li \svgcolor {#000000} +\row + \li blanchedalmond + \li #ffebcd + \li \svgcolor {#ffebcd} +\row + \li blue + \li #0000ff + \li \svgcolor {#0000ff} +\row + \li blueviolet + \li #8a2be2 + \li \svgcolor {#8a2be2} +\row + \li brown + \li #a52a2a + \li \svgcolor {#a52a2a} +\row + \li burlywood + \li #deb887 + \li \svgcolor {#deb887} +\row + \li cadetblue + \li #5f9ea0 + \li \svgcolor {#5f9ea0} +\row + \li chartreuse + \li #7fff00 + \li \svgcolor {#7fff00} +\row + \li chocolate + \li #d2691e + \li \svgcolor {#d2691e} +\row + \li coral + \li #ff7f50 + \li \svgcolor {#ff7f50} +\row + \li cornflowerblue + \li #6495ed + \li \svgcolor {#6495ed} +\row + \li cornsilk + \li #fff8dc + \li \svgcolor {#fff8dc} +\row + \li crimson + \li #dc143c + \li \svgcolor {#dc143c} +\row + \li cyan + \li #00ffff + \li \svgcolor {#00ffff} +\row + \li darkblue + \li #00008b + \li \svgcolor {#00008b} +\row + \li darkcyan + \li #008b8b + \li \svgcolor {#008b8b} +\row + \li darkgoldenrod + \li #b8860b + \li \svgcolor {#b8860b} +\row + \li darkgray + \li #a9a9a9 + \li \svgcolor {#a9a9a9} +\row + \li darkgreen + \li #006400 + \li \svgcolor {#006400} +\row + \li darkgrey + \li #a9a9a9 + \li \svgcolor {#a9a9a9} +\row + \li darkkhaki + \li #bdb76b + \li \svgcolor {#bdb76b} +\row + \li darkmagenta + \li #8b008b + \li \svgcolor {#8b008b} +\row + \li darkolivegreen + \li #556b2f + \li \svgcolor {#556b2f} +\row + \li darkorange + \li #ff8c00 + \li \svgcolor {#ff8c00} +\row + \li darkorchid + \li #9932cc + \li \svgcolor {#9932cc} +\row + \li darkred + \li #8b0000 + \li \svgcolor {#8b0000} +\row + \li darksalmon + \li #e9967a + \li \svgcolor {#e9967a} +\row + \li darkseagreen + \li #8fbc8f + \li \svgcolor {#8fbc8f} +\row + \li darkslateblue + \li #483d8b + \li \svgcolor {#483d8b} +\row + \li darkslategray + \li #2f4f4f + \li \svgcolor {#2f4f4f} +\row + \li darkslategrey + \li #2f4f4f + \li \svgcolor {#2f4f4f} +\row + \li darkturquoise + \li #00ced1 + \li \svgcolor {#00ced1} +\row + \li darkviolet + \li #9400d3 + \li \svgcolor {#9400d3} +\row + \li deeppink + \li #ff1493 + \li \svgcolor {#ff1493} +\row + \li deepskyblue + \li #00bfff + \li \svgcolor {#00bfff} +\row + \li dimgray + \li #696969 + \li \svgcolor {#696969} +\row + \li dimgrey + \li #696969 + \li \svgcolor {#696969} +\row + \li dodgerblue + \li #1e90ff + \li \svgcolor {#1e90ff} +\row + \li firebrick + \li #b22222 + \li \svgcolor {#b22222} +\row + \li floralwhite + \li #fffaf0 + \li \svgcolor {#fffaf0} +\row + \li forestgreen + \li #228b22 + \li \svgcolor {#228b22} +\row + \li fuchsia + \li #ff00ff + \li \svgcolor {#ff00ff} +\row + \li gainsboro + \li #dcdcdc + \li \svgcolor {#dcdcdc} +\row + \li ghostwhite + \li #f8f8ff + \li \svgcolor {#f8f8ff} +\row + \li gold + \li #ffd700 + \li \svgcolor {#ffd700} +\row + \li goldenrod + \li #daa520 + \li \svgcolor {#daa520} +\row + \li gray + \li #808080 + \li \svgcolor {#808080} +\row + \li grey + \li #808080 + \li \svgcolor {#808080} +\row + \li green + \li #008000 + \li \svgcolor {#008000} +\row + \li greenyellow + \li #adff2f + \li \svgcolor {#adff2f} +\row + \li honeydew + \li #f0fff0 + \li \svgcolor {#f0fff0} +\row + \li hotpink + \li #ff69b4 + \li \svgcolor {#ff69b4} +\row + \li indianred + \li #cd5c5c + \li \svgcolor {#cd5c5c} +\row + \li indigo + \li #4b0082 + \li \svgcolor {#4b0082} +\row + \li ivory + \li #fffff0 + \li \svgcolor {#fffff0} +\row + \li khaki + \li #f0e68c + \li \svgcolor {#f0e68c} +\row + \li lavender + \li #e6e6fa + \li \svgcolor {#e6e6fa} +\row + \li lavenderblush + \li #fff0f5 + \li \svgcolor {#fff0f5} +\row + \li lawngreen + \li #7cfc00 + \li \svgcolor {#7cfc00} +\row + \li lemonchiffon + \li #fffacd + \li \svgcolor {#fffacd} +\row + \li lightblue + \li #add8e6 + \li \svgcolor {#add8e6} +\row + \li lightcoral + \li #f08080 + \li \svgcolor {#f08080} +\row + \li lightcyan + \li #e0ffff + \li \svgcolor {#e0ffff} +\row + \li lightgoldenrodyellow + \li #fafad2 + \li \svgcolor {#fafad2} +\row + \li lightgray + \li #d3d3d3 + \li \svgcolor {#d3d3d3} +\row + \li lightgreen + \li #90ee90 + \li \svgcolor {#90ee90} +\row + \li lightgrey + \li #d3d3d3 + \li \svgcolor {#d3d3d3} +\row + \li lightpink + \li #ffb6c1 + \li \svgcolor {#ffb6c1} +\row + \li lightsalmon + \li #ffa07a + \li \svgcolor {#ffa07a} +\row + \li lightseagreen + \li #20b2aa + \li \svgcolor {#20b2aa} +\row + \li lightskyblue + \li #87cefa + \li \svgcolor {#87cefa} +\row + \li lightslategray + \li #778899 + \li \svgcolor {#778899} +\row + \li lightslategrey + \li #778899 + \li \svgcolor {#778899} +\row + \li lightsteelblue + \li #b0c4de + \li \svgcolor {#b0c4de} +\row + \li lightyellow + \li #ffffe0 + \li \svgcolor {#ffffe0} +\row + \li lime + \li #00ff00 + \li \svgcolor {#00ff00} +\row + \li limegreen + \li #32cd32 + \li \svgcolor {#32cd32} +\row + \li linen + \li #faf0e6 + \li \svgcolor {#faf0e6} +\row + \li magenta + \li #ff00ff + \li \svgcolor {#ff00ff} +\row + \li maroon + \li #800000 + \li \svgcolor {#800000} +\row + \li mediumaquamarine + \li #66cdaa + \li \svgcolor {#66cdaa} +\row + \li mediumblue + \li #0000cd + \li \svgcolor {#0000cd} +\row + \li mediumorchid + \li #ba55d3 + \li \svgcolor {#ba55d3} +\row + \li mediumpurple + \li #9370db + \li \svgcolor {#9370db} +\row + \li mediumseagreen + \li #3cb371 + \li \svgcolor {#3cb371} +\row + \li mediumslateblue + \li #7b68ee + \li \svgcolor {#7b68ee} +\row + \li mediumspringgreen + \li #00fa9a + \li \svgcolor {#00fa9a} +\row + \li mediumturquoise + \li #48d1cc + \li \svgcolor {#48d1cc} +\row + \li mediumvioletred + \li #c71585 + \li \svgcolor {#c71585} +\row + \li midnightblue + \li #191970 + \li \svgcolor {#191970} +\row + \li mintcream + \li #f5fffa + \li \svgcolor {#f5fffa} +\row + \li mistyrose + \li #ffe4e1 + \li \svgcolor {#ffe4e1} +\row + \li moccasin + \li #ffe4b5 + \li \svgcolor {#ffe4b5} +\row + \li navajowhite + \li #ffdead + \li \svgcolor {#ffdead} +\row + \li navy + \li #000080 + \li \svgcolor {#000080} +\row + \li oldlace + \li #fdf5e6 + \li \svgcolor {#fdf5e6} +\row + \li olive + \li #808000 + \li \svgcolor {#808000} +\row + \li olivedrab + \li #6b8e23 + \li \svgcolor {#6b8e23} +\row + \li orange + \li #ffa500 + \li \svgcolor {#ffa500} +\row + \li orangered + \li #ff4500 + \li \svgcolor {#ff4500} +\row + \li orchid + \li #da70d6 + \li \svgcolor {#da70d6} +\row + \li palegoldenrod + \li #eee8aa + \li \svgcolor {#eee8aa} +\row + \li palegreen + \li #98fb98 + \li \svgcolor {#98fb98} +\row + \li paleturquoise + \li #afeeee + \li \svgcolor {#afeeee} +\row + \li palevioletred + \li #db7093 + \li \svgcolor {#db7093} +\row + \li papayawhip + \li #ffefd5 + \li \svgcolor {#ffefd5} +\row + \li peachpuff + \li #ffdab9 + \li \svgcolor {#ffdab9} +\row + \li peru + \li #cd853f + \li \svgcolor {#cd853f} +\row + \li pink + \li #ffc0cb + \li \svgcolor {#ffc0cb} +\row + \li plum + \li #dda0dd + \li \svgcolor {#dda0dd} +\row + \li powderblue + \li #b0e0e6 + \li \svgcolor {#b0e0e6} +\row + \li purple + \li #800080 + \li \svgcolor {#800080} +\row + \li red + \li #ff0000 + \li \svgcolor {#ff0000} +\row + \li rosybrown + \li #bc8f8f + \li \svgcolor {#bc8f8f} +\row + \li royalblue + \li #4169e1 + \li \svgcolor {#4169e1} +\row + \li saddlebrown + \li #8b4513 + \li \svgcolor {#8b4513} +\row + \li salmon + \li #fa8072 + \li \svgcolor {#fa8072} +\row + \li sandybrown + \li #f4a460 + \li \svgcolor {#f4a460} +\row + \li seagreen + \li #2e8b57 + \li \svgcolor {#2e8b57} +\row + \li seashell + \li #fff5ee + \li \svgcolor {#fff5ee} +\row + \li sienna + \li #a0522d + \li \svgcolor {#a0522d} +\row + \li silver + \li #c0c0c0 + \li \svgcolor {#c0c0c0} +\row + \li skyblue + \li #87ceeb + \li \svgcolor {#87ceeb} +\row + \li slateblue + \li #6a5acd + \li \svgcolor {#6a5acd} +\row + \li slategray + \li #708090 + \li \svgcolor {#708090} +\row + \li slategrey + \li #708090 + \li \svgcolor {#708090} +\row + \li snow + \li #fffafa + \li \svgcolor {#fffafa} +\row + \li springgreen + \li #00ff7f + \li \svgcolor {#00ff7f} +\row + \li steelblue + \li #4682b4 + \li \svgcolor {#4682b4} +\row + \li tan + \li #d2b48c + \li \svgcolor {#d2b48c} +\row + \li teal + \li #008080 + \li \svgcolor {#008080} +\row + \li thistle + \li #d8bfd8 + \li \svgcolor {#d8bfd8} +\row + \li tomato + \li #ff6347 + \li \svgcolor {#ff6347} +\row + \li turquoise + \li #40e0d0 + \li \svgcolor {#40e0d0} +\row + \li violet + \li #ee82ee + \li \svgcolor {#ee82ee} +\row + \li wheat + \li #f5deb3 + \li \svgcolor {#f5deb3} +\row + \li white + \li #ffffff + \li \svgcolor {#ffffff} +\row + \li whitesmoke + \li #f5f5f5 + \li \svgcolor {#f5f5f5} +\row + \li yellow + \li #ffff00 + \li \svgcolor {#ffff00} +\row + \li yellowgreen + \li #9acd32 + \li \svgcolor {#9acd32} +\endtable diff --git a/src/gui/painting/qcolor.cpp b/src/gui/painting/qcolor.cpp index 6cbc30e79a..8780cce223 100644 --- a/src/gui/painting/qcolor.cpp +++ b/src/gui/painting/qcolor.cpp @@ -147,6 +147,7 @@ static bool get_hex_rgb(const QChar *str, size_t len, QRgba64 *rgb) #endif #define rgb(r,g,b) (0xff000000 | (r << 16) | (g << 8) | b) +// keep this is in sync with QColorConstants static const struct RGBData { const char name[21]; uint value; @@ -475,25 +476,35 @@ static QStringList get_colornames() \section1 Predefined Colors - There are 20 predefined QColors described by the Qt::GlobalColor enum, - including black, white, primary and secondary colors, darker versions - of these colors and three shades of gray. QColor also recognizes a - variety of color names; the static colorNames() function returns a - QStringList color names that QColor knows about. + There are 20 predefined QColor objects in the \c{QColorConstants} + namespace, including black, white, primary and secondary colors, + darker versions of these colors, and three shades of gray. + Furthermore, the \c{QColorConstants::Svg} namespace defines QColor + objects for the standard \l{https://www.w3.org/TR/SVG11/types.html#ColorKeywords}{SVG color keyword names}. \image qt-colors.png Qt Colors - Additionally, the Qt::color0, Qt::color1 and Qt::transparent colors - are used for special purposes. + The \c{QColorConstants::Color0}, \c{QColorConstants::Color1} and + \c{QColorConstants::Transparent} colors are used for special + purposes. - Qt::color0 (zero pixel value) and Qt::color1 (non-zero pixel value) - are special colors for drawing in QBitmaps. Painting with Qt::color0 - sets the bitmap bits to 0 (transparent; i.e., background), and painting - with Qt::color1 sets the bits to 1 (opaque; i.e., foreground). + \c{QColorConstants::Color0} (zero pixel value) and + \c{QColorConstants::Color1} (non-zero pixel value) are special + colors for drawing in QBitmaps. Painting with + \c{QColorConstants::Color0} sets the bitmap bits to 0 (transparent; + i.e., background), and painting with c{QColorConstants::Color1} + sets the bits to 1 (opaque; i.e., foreground). - Qt::transparent is used to indicate a transparent pixel. When painting - with this value, a pixel value will be used that is appropriate for the - underlying pixel format in use. + \c{QColorConstants::Transparent} is used to indicate a transparent + pixel. When painting with this value, a pixel value will be used + that is appropriate for the underlying pixel format in use. + + For historical reasons, the 20 predefined colors are also available + in the Qt::GlobalColor enumeration. + + Finally, QColor recognizes a variety of color names (as strings); + the static colorNames() function returns a QStringList color names + that QColor knows about. \section1 The Extended RGB Color Model @@ -586,7 +597,7 @@ static QStringList get_colornames() alpha-channel to feature \l {QColor#Alpha-Blended Drawing}{alpha-blended drawing}. - \sa QPalette, QBrush + \sa QPalette, QBrush, QColorConstants */ #define QCOLOR_INT_RANGE_CHECK(fn, var) \ @@ -886,7 +897,8 @@ QString QColor::name(NameFormat format) const \li #AARRGGBB (Since 5.2) \li #RRRGGGBBB \li #RRRRGGGGBBBB - \li A name from the list of colors defined in the list of \l{http://www.w3.org/TR/SVG/types.html#ColorKeywords}{SVG color keyword names} + \li A name from the list of colors defined in the list of + \l{https://www.w3.org/TR/SVG11/types.html#ColorKeywords}{SVG color keyword names} provided by the World Wide Web Consortium; for example, "steelblue" or "gainsboro". These color names work on all platforms. Note that these color names are \e not the same as defined by the Qt::GlobalColor enums, e.g. "green" and Qt::green does not @@ -3249,4 +3261,41 @@ const uint qt_inv_premul_factor[256] = { \sa QColor::rgb(), QColor::rgba() */ +/*! + \namespace QColorConstants + \inmodule QtGui + + \brief The QColorConstants namespace contains QColor predefined constants. + + These constants are usable everywhere a QColor object is expected: + + \code + painter.setBrush(QColorConstants::Svg::lightblue); + \endcode + + Their usage is much cheaper than e.g. passing a string to QColor's constructor, + as they don't require any parsing of the string, and always result in a valid + QColor object: + + \badcode + object.setColor(QColor("lightblue")); // expensive + \endcode + + \section1 Qt Colors + + The following colors are defined in the \c{QColorConstants} namespace: + + \include qt-colors.qdocinc + + \section1 SVG Colors + + The following table lists the available + \l {http://www.w3.org/TR/SVG/types.html#ColorKeywords}{SVG colors}. + They are available in the \c{QColorConstants::Svg} inner namespace. + + \include svg-colors.qdocinc + + \sa QColor, Qt::GlobalColor +*/ + QT_END_NAMESPACE diff --git a/src/gui/painting/qcolor.h b/src/gui/painting/qcolor.h index 723b9fce73..f0d7dd23ad 100644 --- a/src/gui/painting/qcolor.h +++ b/src/gui/painting/qcolor.h @@ -309,6 +309,12 @@ private: friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QColor &); friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QColor &); #endif + +#ifdef Q_COMPILER_UNIFORM_INIT +public: // can't give friendship to a namespace, so it needs to be public + Q_DECL_CONSTEXPR explicit QColor(Spec spec, ushort a1, ushort a2, ushort a3, ushort a4, ushort a5=0) noexcept + : cspec(spec), ct(a1, a2, a3, a4, a5) {} +#endif // Q_COMPILER_UNIFORM_INIT }; Q_DECLARE_TYPEINFO(QColor, QT_VERSION >= QT_VERSION_CHECK(6,0,0) ? Q_MOVABLE_TYPE : Q_RELOCATABLE_TYPE); @@ -326,6 +332,187 @@ inline QColor::QColor(const QString& aname) inline bool QColor::isValid() const noexcept { return cspec != Invalid; } +// define these namespaces even if the contents are ifdef'd out +namespace QColorConstants +{ +namespace Svg {} + +#if defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT) + // Qt::GlobalColor names + constexpr Q_DECL_UNUSED QColor Color0 {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor Color1 {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor Black {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor White {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkGray {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor Gray {QColor::Rgb, 0xff * 0x101, 0xa0 * 0x101, 0xa0 * 0x101, 0xa4 * 0x101}; + constexpr Q_DECL_UNUSED QColor LightGray {QColor::Rgb, 0xff * 0x101, 0xc0 * 0x101, 0xc0 * 0x101, 0xc0 * 0x101}; + constexpr Q_DECL_UNUSED QColor Red {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor Green {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor Blue {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor Cyan {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor Magenta {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor Yellow {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkRed {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkGreen {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkBlue {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkCyan {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkMagenta {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor DarkYellow {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor Transparent {QColor::Rgb, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + + // SVG names supported by QColor (see qcolor.cpp). +namespace Svg { + constexpr Q_DECL_UNUSED QColor aliceblue {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xf8 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor antiquewhite {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0xeb * 0x101, 0xd7 * 0x101}; + constexpr Q_DECL_UNUSED QColor aqua {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor aquamarine {QColor::Rgb, 0xff * 0x101, 0x7f * 0x101, 0xff * 0x101, 0xd4 * 0x101}; + constexpr Q_DECL_UNUSED QColor azure {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor beige {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xf5 * 0x101, 0xdc * 0x101}; + constexpr Q_DECL_UNUSED QColor bisque {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xe4 * 0x101, 0xc4 * 0x101}; + constexpr Q_DECL_UNUSED QColor black {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor blanchedalmond {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xeb * 0x101, 0xcd * 0x101}; + constexpr Q_DECL_UNUSED QColor blue {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor blueviolet {QColor::Rgb, 0xff * 0x101, 0x8a * 0x101, 0x2b * 0x101, 0xe2 * 0x101}; + constexpr Q_DECL_UNUSED QColor brown {QColor::Rgb, 0xff * 0x101, 0xa5 * 0x101, 0x2a * 0x101, 0x2a * 0x101}; + constexpr Q_DECL_UNUSED QColor burlywood {QColor::Rgb, 0xff * 0x101, 0xde * 0x101, 0xb8 * 0x101, 0x87 * 0x101}; + constexpr Q_DECL_UNUSED QColor cadetblue {QColor::Rgb, 0xff * 0x101, 0x5f * 0x101, 0x9e * 0x101, 0xa0 * 0x101}; + constexpr Q_DECL_UNUSED QColor chartreuse {QColor::Rgb, 0xff * 0x101, 0x7f * 0x101, 0xff * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor chocolate {QColor::Rgb, 0xff * 0x101, 0xd2 * 0x101, 0x69 * 0x101, 0x1e * 0x101}; + constexpr Q_DECL_UNUSED QColor coral {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x7f * 0x101, 0x50 * 0x101}; + constexpr Q_DECL_UNUSED QColor cornflowerblue {QColor::Rgb, 0xff * 0x101, 0x64 * 0x101, 0x95 * 0x101, 0xed * 0x101}; + constexpr Q_DECL_UNUSED QColor cornsilk {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xf8 * 0x101, 0xdc * 0x101}; + constexpr Q_DECL_UNUSED QColor crimson {QColor::Rgb, 0xff * 0x101, 0xdc * 0x101, 0x14 * 0x101, 0x3c * 0x101}; + constexpr Q_DECL_UNUSED QColor cyan {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor darkblue {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x8b * 0x101}; + constexpr Q_DECL_UNUSED QColor darkcyan {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x8b * 0x101, 0x8b * 0x101}; + constexpr Q_DECL_UNUSED QColor darkgoldenrod {QColor::Rgb, 0xff * 0x101, 0xb8 * 0x101, 0x86 * 0x101, 0x0b * 0x101}; + constexpr Q_DECL_UNUSED QColor darkgray {QColor::Rgb, 0xff * 0x101, 0xa9 * 0x101, 0xa9 * 0x101, 0xa9 * 0x101}; + constexpr Q_DECL_UNUSED QColor darkgreen {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x64 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor darkgrey {QColor::Rgb, 0xff * 0x101, 0xa9 * 0x101, 0xa9 * 0x101, 0xa9 * 0x101}; + constexpr Q_DECL_UNUSED QColor darkkhaki {QColor::Rgb, 0xff * 0x101, 0xbd * 0x101, 0xb7 * 0x101, 0x6b * 0x101}; + constexpr Q_DECL_UNUSED QColor darkmagenta {QColor::Rgb, 0xff * 0x101, 0x8b * 0x101, 0x00 * 0x101, 0x8b * 0x101}; + constexpr Q_DECL_UNUSED QColor darkolivegreen {QColor::Rgb, 0xff * 0x101, 0x55 * 0x101, 0x6b * 0x101, 0x2f * 0x101}; + constexpr Q_DECL_UNUSED QColor darkorange {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x8c * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor darkorchid {QColor::Rgb, 0xff * 0x101, 0x99 * 0x101, 0x32 * 0x101, 0xcc * 0x101}; + constexpr Q_DECL_UNUSED QColor darkred {QColor::Rgb, 0xff * 0x101, 0x8b * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor darksalmon {QColor::Rgb, 0xff * 0x101, 0xe9 * 0x101, 0x96 * 0x101, 0x7a * 0x101}; + constexpr Q_DECL_UNUSED QColor darkseagreen {QColor::Rgb, 0xff * 0x101, 0x8f * 0x101, 0xbc * 0x101, 0x8f * 0x101}; + constexpr Q_DECL_UNUSED QColor darkslateblue {QColor::Rgb, 0xff * 0x101, 0x48 * 0x101, 0x3d * 0x101, 0x8b * 0x101}; + constexpr Q_DECL_UNUSED QColor darkslategray {QColor::Rgb, 0xff * 0x101, 0x2f * 0x101, 0x4f * 0x101, 0x4f * 0x101}; + constexpr Q_DECL_UNUSED QColor darkslategrey {QColor::Rgb, 0xff * 0x101, 0x2f * 0x101, 0x4f * 0x101, 0x4f * 0x101}; + constexpr Q_DECL_UNUSED QColor darkturquoise {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xce * 0x101, 0xd1 * 0x101}; + constexpr Q_DECL_UNUSED QColor darkviolet {QColor::Rgb, 0xff * 0x101, 0x94 * 0x101, 0x00 * 0x101, 0xd3 * 0x101}; + constexpr Q_DECL_UNUSED QColor deeppink {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x14 * 0x101, 0x93 * 0x101}; + constexpr Q_DECL_UNUSED QColor deepskyblue {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xbf * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor dimgray {QColor::Rgb, 0xff * 0x101, 0x69 * 0x101, 0x69 * 0x101, 0x69 * 0x101}; + constexpr Q_DECL_UNUSED QColor dimgrey {QColor::Rgb, 0xff * 0x101, 0x69 * 0x101, 0x69 * 0x101, 0x69 * 0x101}; + constexpr Q_DECL_UNUSED QColor dodgerblue {QColor::Rgb, 0xff * 0x101, 0x1e * 0x101, 0x90 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor firebrick {QColor::Rgb, 0xff * 0x101, 0xb2 * 0x101, 0x22 * 0x101, 0x22 * 0x101}; + constexpr Q_DECL_UNUSED QColor floralwhite {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xfa * 0x101, 0xf0 * 0x101}; + constexpr Q_DECL_UNUSED QColor forestgreen {QColor::Rgb, 0xff * 0x101, 0x22 * 0x101, 0x8b * 0x101, 0x22 * 0x101}; + constexpr Q_DECL_UNUSED QColor fuchsia {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor gainsboro {QColor::Rgb, 0xff * 0x101, 0xdc * 0x101, 0xdc * 0x101, 0xdc * 0x101}; + constexpr Q_DECL_UNUSED QColor ghostwhite {QColor::Rgb, 0xff * 0x101, 0xf8 * 0x101, 0xf8 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor gold {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xd7 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor goldenrod {QColor::Rgb, 0xff * 0x101, 0xda * 0x101, 0xa5 * 0x101, 0x20 * 0x101}; + constexpr Q_DECL_UNUSED QColor gray {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor green {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor greenyellow {QColor::Rgb, 0xff * 0x101, 0xad * 0x101, 0xff * 0x101, 0x2f * 0x101}; + constexpr Q_DECL_UNUSED QColor grey {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor honeydew {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xff * 0x101, 0xf0 * 0x101}; + constexpr Q_DECL_UNUSED QColor hotpink {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x69 * 0x101, 0xb4 * 0x101}; + constexpr Q_DECL_UNUSED QColor indianred {QColor::Rgb, 0xff * 0x101, 0xcd * 0x101, 0x5c * 0x101, 0x5c * 0x101}; + constexpr Q_DECL_UNUSED QColor indigo {QColor::Rgb, 0xff * 0x101, 0x4b * 0x101, 0x00 * 0x101, 0x82 * 0x101}; + constexpr Q_DECL_UNUSED QColor ivory {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xf0 * 0x101}; + constexpr Q_DECL_UNUSED QColor khaki {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xe6 * 0x101, 0x8c * 0x101}; + constexpr Q_DECL_UNUSED QColor lavender {QColor::Rgb, 0xff * 0x101, 0xe6 * 0x101, 0xe6 * 0x101, 0xfa * 0x101}; + constexpr Q_DECL_UNUSED QColor lavenderblush {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xf0 * 0x101, 0xf5 * 0x101}; + constexpr Q_DECL_UNUSED QColor lawngreen {QColor::Rgb, 0xff * 0x101, 0x7c * 0x101, 0xfc * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor lemonchiffon {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xfa * 0x101, 0xcd * 0x101}; + constexpr Q_DECL_UNUSED QColor lightblue {QColor::Rgb, 0xff * 0x101, 0xad * 0x101, 0xd8 * 0x101, 0xe6 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightcoral {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightcyan {QColor::Rgb, 0xff * 0x101, 0xe0 * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor lightgoldenrodyellow {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0xfa * 0x101, 0xd2 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightgray {QColor::Rgb, 0xff * 0x101, 0xd3 * 0x101, 0xd3 * 0x101, 0xd3 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightgreen {QColor::Rgb, 0xff * 0x101, 0x90 * 0x101, 0xee * 0x101, 0x90 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightgrey {QColor::Rgb, 0xff * 0x101, 0xd3 * 0x101, 0xd3 * 0x101, 0xd3 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightpink {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xb6 * 0x101, 0xc1 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightsalmon {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xa0 * 0x101, 0x7a * 0x101}; + constexpr Q_DECL_UNUSED QColor lightseagreen {QColor::Rgb, 0xff * 0x101, 0x20 * 0x101, 0xb2 * 0x101, 0xaa * 0x101}; + constexpr Q_DECL_UNUSED QColor lightskyblue {QColor::Rgb, 0xff * 0x101, 0x87 * 0x101, 0xce * 0x101, 0xfa * 0x101}; + constexpr Q_DECL_UNUSED QColor lightslategray {QColor::Rgb, 0xff * 0x101, 0x77 * 0x101, 0x88 * 0x101, 0x99 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightslategrey {QColor::Rgb, 0xff * 0x101, 0x77 * 0x101, 0x88 * 0x101, 0x99 * 0x101}; + constexpr Q_DECL_UNUSED QColor lightsteelblue {QColor::Rgb, 0xff * 0x101, 0xb0 * 0x101, 0xc4 * 0x101, 0xde * 0x101}; + constexpr Q_DECL_UNUSED QColor lightyellow {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xe0 * 0x101}; + constexpr Q_DECL_UNUSED QColor lime {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor limegreen {QColor::Rgb, 0xff * 0x101, 0x32 * 0x101, 0xcd * 0x101, 0x32 * 0x101}; + constexpr Q_DECL_UNUSED QColor linen {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0xf0 * 0x101, 0xe6 * 0x101}; + constexpr Q_DECL_UNUSED QColor magenta {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor maroon {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumaquamarine {QColor::Rgb, 0xff * 0x101, 0x66 * 0x101, 0xcd * 0x101, 0xaa * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumblue {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0xcd * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumorchid {QColor::Rgb, 0xff * 0x101, 0xba * 0x101, 0x55 * 0x101, 0xd3 * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumpurple {QColor::Rgb, 0xff * 0x101, 0x93 * 0x101, 0x70 * 0x101, 0xdb * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumseagreen {QColor::Rgb, 0xff * 0x101, 0x3c * 0x101, 0xb3 * 0x101, 0x71 * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumslateblue {QColor::Rgb, 0xff * 0x101, 0x7b * 0x101, 0x68 * 0x101, 0xee * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumspringgreen {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xfa * 0x101, 0x9a * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumturquoise {QColor::Rgb, 0xff * 0x101, 0x48 * 0x101, 0xd1 * 0x101, 0xcc * 0x101}; + constexpr Q_DECL_UNUSED QColor mediumvioletred {QColor::Rgb, 0xff * 0x101, 0xc7 * 0x101, 0x15 * 0x101, 0x85 * 0x101}; + constexpr Q_DECL_UNUSED QColor midnightblue {QColor::Rgb, 0xff * 0x101, 0x19 * 0x101, 0x19 * 0x101, 0x70 * 0x101}; + constexpr Q_DECL_UNUSED QColor mintcream {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xff * 0x101, 0xfa * 0x101}; + constexpr Q_DECL_UNUSED QColor mistyrose {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xe4 * 0x101, 0xe1 * 0x101}; + constexpr Q_DECL_UNUSED QColor moccasin {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xe4 * 0x101, 0xb5 * 0x101}; + constexpr Q_DECL_UNUSED QColor navajowhite {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xde * 0x101, 0xad * 0x101}; + constexpr Q_DECL_UNUSED QColor navy {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor oldlace {QColor::Rgb, 0xff * 0x101, 0xfd * 0x101, 0xf5 * 0x101, 0xe6 * 0x101}; + constexpr Q_DECL_UNUSED QColor olive {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor olivedrab {QColor::Rgb, 0xff * 0x101, 0x6b * 0x101, 0x8e * 0x101, 0x23 * 0x101}; + constexpr Q_DECL_UNUSED QColor orange {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xa5 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor orangered {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x45 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor orchid {QColor::Rgb, 0xff * 0x101, 0xda * 0x101, 0x70 * 0x101, 0xd6 * 0x101}; + constexpr Q_DECL_UNUSED QColor palegoldenrod {QColor::Rgb, 0xff * 0x101, 0xee * 0x101, 0xe8 * 0x101, 0xaa * 0x101}; + constexpr Q_DECL_UNUSED QColor palegreen {QColor::Rgb, 0xff * 0x101, 0x98 * 0x101, 0xfb * 0x101, 0x98 * 0x101}; + constexpr Q_DECL_UNUSED QColor paleturquoise {QColor::Rgb, 0xff * 0x101, 0xaf * 0x101, 0xee * 0x101, 0xee * 0x101}; + constexpr Q_DECL_UNUSED QColor palevioletred {QColor::Rgb, 0xff * 0x101, 0xdb * 0x101, 0x70 * 0x101, 0x93 * 0x101}; + constexpr Q_DECL_UNUSED QColor papayawhip {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xef * 0x101, 0xd5 * 0x101}; + constexpr Q_DECL_UNUSED QColor peachpuff {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xda * 0x101, 0xb9 * 0x101}; + constexpr Q_DECL_UNUSED QColor peru {QColor::Rgb, 0xff * 0x101, 0xcd * 0x101, 0x85 * 0x101, 0x3f * 0x101}; + constexpr Q_DECL_UNUSED QColor pink {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xc0 * 0x101, 0xcb * 0x101}; + constexpr Q_DECL_UNUSED QColor plum {QColor::Rgb, 0xff * 0x101, 0xdd * 0x101, 0xa0 * 0x101, 0xdd * 0x101}; + constexpr Q_DECL_UNUSED QColor powderblue {QColor::Rgb, 0xff * 0x101, 0xb0 * 0x101, 0xe0 * 0x101, 0xe6 * 0x101}; + constexpr Q_DECL_UNUSED QColor purple {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor red {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor rosybrown {QColor::Rgb, 0xff * 0x101, 0xbc * 0x101, 0x8f * 0x101, 0x8f * 0x101}; + constexpr Q_DECL_UNUSED QColor royalblue {QColor::Rgb, 0xff * 0x101, 0x41 * 0x101, 0x69 * 0x101, 0xe1 * 0x101}; + constexpr Q_DECL_UNUSED QColor saddlebrown {QColor::Rgb, 0xff * 0x101, 0x8b * 0x101, 0x45 * 0x101, 0x13 * 0x101}; + constexpr Q_DECL_UNUSED QColor salmon {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0x80 * 0x101, 0x72 * 0x101}; + constexpr Q_DECL_UNUSED QColor sandybrown {QColor::Rgb, 0xff * 0x101, 0xf4 * 0x101, 0xa4 * 0x101, 0x60 * 0x101}; + constexpr Q_DECL_UNUSED QColor seagreen {QColor::Rgb, 0xff * 0x101, 0x2e * 0x101, 0x8b * 0x101, 0x57 * 0x101}; + constexpr Q_DECL_UNUSED QColor seashell {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xf5 * 0x101, 0xee * 0x101}; + constexpr Q_DECL_UNUSED QColor sienna {QColor::Rgb, 0xff * 0x101, 0xa0 * 0x101, 0x52 * 0x101, 0x2d * 0x101}; + constexpr Q_DECL_UNUSED QColor silver {QColor::Rgb, 0xff * 0x101, 0xc0 * 0x101, 0xc0 * 0x101, 0xc0 * 0x101}; + constexpr Q_DECL_UNUSED QColor skyblue {QColor::Rgb, 0xff * 0x101, 0x87 * 0x101, 0xce * 0x101, 0xeb * 0x101}; + constexpr Q_DECL_UNUSED QColor slateblue {QColor::Rgb, 0xff * 0x101, 0x6a * 0x101, 0x5a * 0x101, 0xcd * 0x101}; + constexpr Q_DECL_UNUSED QColor slategray {QColor::Rgb, 0xff * 0x101, 0x70 * 0x101, 0x80 * 0x101, 0x90 * 0x101}; + constexpr Q_DECL_UNUSED QColor slategrey {QColor::Rgb, 0xff * 0x101, 0x70 * 0x101, 0x80 * 0x101, 0x90 * 0x101}; + constexpr Q_DECL_UNUSED QColor snow {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xfa * 0x101, 0xfa * 0x101}; + constexpr Q_DECL_UNUSED QColor springgreen {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0x7f * 0x101}; + constexpr Q_DECL_UNUSED QColor steelblue {QColor::Rgb, 0xff * 0x101, 0x46 * 0x101, 0x82 * 0x101, 0xb4 * 0x101}; + constexpr Q_DECL_UNUSED QColor tan {QColor::Rgb, 0xff * 0x101, 0xd2 * 0x101, 0xb4 * 0x101, 0x8c * 0x101}; + constexpr Q_DECL_UNUSED QColor teal {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; + constexpr Q_DECL_UNUSED QColor thistle {QColor::Rgb, 0xff * 0x101, 0xd8 * 0x101, 0xbf * 0x101, 0xd8 * 0x101}; + constexpr Q_DECL_UNUSED QColor tomato {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x63 * 0x101, 0x47 * 0x101}; + constexpr Q_DECL_UNUSED QColor turquoise {QColor::Rgb, 0xff * 0x101, 0x40 * 0x101, 0xe0 * 0x101, 0xd0 * 0x101}; + constexpr Q_DECL_UNUSED QColor violet {QColor::Rgb, 0xff * 0x101, 0xee * 0x101, 0x82 * 0x101, 0xee * 0x101}; + constexpr Q_DECL_UNUSED QColor wheat {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xde * 0x101, 0xb3 * 0x101}; + constexpr Q_DECL_UNUSED QColor white {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101}; + constexpr Q_DECL_UNUSED QColor whitesmoke {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xf5 * 0x101, 0xf5 * 0x101}; + constexpr Q_DECL_UNUSED QColor yellow {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101}; + constexpr Q_DECL_UNUSED QColor yellowgreen {QColor::Rgb, 0xff * 0x101, 0x9a * 0x101, 0xcd * 0x101, 0x32 * 0x101}; +} // namespace Svg +#endif // Q_COMPILER_CONSTEXPR && Q_COMPILER_UNIFORM_INIT +} // namespace QColorLiterals + QT_END_NAMESPACE #endif // QCOLOR_H diff --git a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp index 90a216e14a..6c66519dce 100644 --- a/tests/auto/gui/painting/qcolor/tst_qcolor.cpp +++ b/tests/auto/gui/painting/qcolor/tst_qcolor.cpp @@ -64,6 +64,10 @@ private slots: void globalColors_data(); void globalColors(); +#if defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT) + void colorConstants_data(); + void colorConstants(); +#endif void setRed(); void setGreen(); @@ -368,6 +372,191 @@ void tst_QColor::globalColors() QCOMPARE(color.rgba(), argb); } +#if defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT) +void tst_QColor::colorConstants_data() +{ + QTest::addColumn("color"); + QTest::addColumn("argb"); + + QTest::newRow("invalid") << QColor() << 0xff000000; + QTest::newRow("global color color0") << QColorConstants::Color0 << 0xff000000u; + QTest::newRow("global color color1") << QColorConstants::Color1 << 0xffffffffu; + QTest::newRow("global color black") << QColorConstants::Black << 0xff000000u; + QTest::newRow("global color white") << QColorConstants::White << 0xffffffffu; + QTest::newRow("global color darkGray") << QColorConstants::DarkGray << 0xff808080u; + QTest::newRow("global color gray") << QColorConstants::Gray << 0xffa0a0a4u; + QTest::newRow("global color lightGray") << QColorConstants::LightGray << 0xffc0c0c0u; + QTest::newRow("global color red") << QColorConstants::Red << 0xffff0000u; + QTest::newRow("global color green") << QColorConstants::Green << 0xff00ff00u; + QTest::newRow("global color blue") << QColorConstants::Blue << 0xff0000ffu; + QTest::newRow("global color cyan") << QColorConstants::Cyan << 0xff00ffffu; + QTest::newRow("global color magenta") << QColorConstants::Magenta << 0xffff00ffu; + QTest::newRow("global color yellow") << QColorConstants::Yellow << 0xffffff00u; + QTest::newRow("global color darkRed") << QColorConstants::DarkRed << 0xff800000u; + QTest::newRow("global color darkGreen") << QColorConstants::DarkGreen << 0xff008000u; + QTest::newRow("global color darkBlue") << QColorConstants::DarkBlue << 0xff000080u; + QTest::newRow("global color darkCyan") << QColorConstants::DarkCyan << 0xff008080u; + QTest::newRow("global color darkMagenta") << QColorConstants::DarkMagenta << 0xff800080u; + QTest::newRow("global color darkYellow") << QColorConstants::DarkYellow << 0xff808000u; + QTest::newRow("global color transparent") << QColorConstants::Transparent << 0x00000000u; + + QTest::newRow("SVG aliceblue") << QColorConstants::Svg::aliceblue << 0xfff0f8ffu; + QTest::newRow("SVG antiquewhite") << QColorConstants::Svg::antiquewhite << 0xfffaebd7u; + QTest::newRow("SVG aqua") << QColorConstants::Svg::aqua << 0xff00ffffu; + QTest::newRow("SVG aquamarine") << QColorConstants::Svg::aquamarine << 0xff7fffd4u; + QTest::newRow("SVG azure") << QColorConstants::Svg::azure << 0xfff0ffffu; + QTest::newRow("SVG beige") << QColorConstants::Svg::beige << 0xfff5f5dcu; + QTest::newRow("SVG bisque") << QColorConstants::Svg::bisque << 0xffffe4c4u; + QTest::newRow("SVG black") << QColorConstants::Svg::black << 0xff000000u; + QTest::newRow("SVG blanchedalmond") << QColorConstants::Svg::blanchedalmond << 0xffffebcdu; + QTest::newRow("SVG blue") << QColorConstants::Svg::blue << 0xff0000ffu; + QTest::newRow("SVG blueviolet") << QColorConstants::Svg::blueviolet << 0xff8a2be2u; + QTest::newRow("SVG brown") << QColorConstants::Svg::brown << 0xffa52a2au; + QTest::newRow("SVG burlywood") << QColorConstants::Svg::burlywood << 0xffdeb887u; + QTest::newRow("SVG cadetblue") << QColorConstants::Svg::cadetblue << 0xff5f9ea0u; + QTest::newRow("SVG chartreuse") << QColorConstants::Svg::chartreuse << 0xff7fff00u; + QTest::newRow("SVG chocolate") << QColorConstants::Svg::chocolate << 0xffd2691eu; + QTest::newRow("SVG coral") << QColorConstants::Svg::coral << 0xffff7f50u; + QTest::newRow("SVG cornflowerblue") << QColorConstants::Svg::cornflowerblue << 0xff6495edu; + QTest::newRow("SVG cornsilk") << QColorConstants::Svg::cornsilk << 0xfffff8dcu; + QTest::newRow("SVG crimson") << QColorConstants::Svg::crimson << 0xffdc143cu; + QTest::newRow("SVG cyan") << QColorConstants::Svg::cyan << 0xff00ffffu; + QTest::newRow("SVG darkblue") << QColorConstants::Svg::darkblue << 0xff00008bu; + QTest::newRow("SVG darkcyan") << QColorConstants::Svg::darkcyan << 0xff008b8bu; + QTest::newRow("SVG darkgoldenrod") << QColorConstants::Svg::darkgoldenrod << 0xffb8860bu; + QTest::newRow("SVG darkgray") << QColorConstants::Svg::darkgray << 0xffa9a9a9u; + QTest::newRow("SVG darkgreen") << QColorConstants::Svg::darkgreen << 0xff006400u; + QTest::newRow("SVG darkgrey") << QColorConstants::Svg::darkgrey << 0xffa9a9a9u; + QTest::newRow("SVG darkkhaki") << QColorConstants::Svg::darkkhaki << 0xffbdb76bu; + QTest::newRow("SVG darkmagenta") << QColorConstants::Svg::darkmagenta << 0xff8b008bu; + QTest::newRow("SVG darkolivegreen") << QColorConstants::Svg::darkolivegreen << 0xff556b2fu; + QTest::newRow("SVG darkorange") << QColorConstants::Svg::darkorange << 0xffff8c00u; + QTest::newRow("SVG darkorchid") << QColorConstants::Svg::darkorchid << 0xff9932ccu; + QTest::newRow("SVG darkred") << QColorConstants::Svg::darkred << 0xff8b0000u; + QTest::newRow("SVG darksalmon") << QColorConstants::Svg::darksalmon << 0xffe9967au; + QTest::newRow("SVG darkseagreen") << QColorConstants::Svg::darkseagreen << 0xff8fbc8fu; + QTest::newRow("SVG darkslateblue") << QColorConstants::Svg::darkslateblue << 0xff483d8bu; + QTest::newRow("SVG darkslategray") << QColorConstants::Svg::darkslategray << 0xff2f4f4fu; + QTest::newRow("SVG darkslategrey") << QColorConstants::Svg::darkslategrey << 0xff2f4f4fu; + QTest::newRow("SVG darkturquoise") << QColorConstants::Svg::darkturquoise << 0xff00ced1u; + QTest::newRow("SVG darkviolet") << QColorConstants::Svg::darkviolet << 0xff9400d3u; + QTest::newRow("SVG deeppink") << QColorConstants::Svg::deeppink << 0xffff1493u; + QTest::newRow("SVG deepskyblue") << QColorConstants::Svg::deepskyblue << 0xff00bfffu; + QTest::newRow("SVG dimgray") << QColorConstants::Svg::dimgray << 0xff696969u; + QTest::newRow("SVG dimgrey") << QColorConstants::Svg::dimgrey << 0xff696969u; + QTest::newRow("SVG dodgerblue") << QColorConstants::Svg::dodgerblue << 0xff1e90ffu; + QTest::newRow("SVG firebrick") << QColorConstants::Svg::firebrick << 0xffb22222u; + QTest::newRow("SVG floralwhite") << QColorConstants::Svg::floralwhite << 0xfffffaf0u; + QTest::newRow("SVG forestgreen") << QColorConstants::Svg::forestgreen << 0xff228b22u; + QTest::newRow("SVG fuchsia") << QColorConstants::Svg::fuchsia << 0xffff00ffu; + QTest::newRow("SVG gainsboro") << QColorConstants::Svg::gainsboro << 0xffdcdcdcu; + QTest::newRow("SVG ghostwhite") << QColorConstants::Svg::ghostwhite << 0xfff8f8ffu; + QTest::newRow("SVG gold") << QColorConstants::Svg::gold << 0xffffd700u; + QTest::newRow("SVG goldenrod") << QColorConstants::Svg::goldenrod << 0xffdaa520u; + QTest::newRow("SVG gray") << QColorConstants::Svg::gray << 0xff808080u; + QTest::newRow("SVG green") << QColorConstants::Svg::green << 0xff008000u; + QTest::newRow("SVG greenyellow") << QColorConstants::Svg::greenyellow << 0xffadff2fu; + QTest::newRow("SVG grey") << QColorConstants::Svg::grey << 0xff808080u; + QTest::newRow("SVG honeydew") << QColorConstants::Svg::honeydew << 0xfff0fff0u; + QTest::newRow("SVG hotpink") << QColorConstants::Svg::hotpink << 0xffff69b4u; + QTest::newRow("SVG indianred") << QColorConstants::Svg::indianred << 0xffcd5c5cu; + QTest::newRow("SVG indigo") << QColorConstants::Svg::indigo << 0xff4b0082u; + QTest::newRow("SVG ivory") << QColorConstants::Svg::ivory << 0xfffffff0u; + QTest::newRow("SVG khaki") << QColorConstants::Svg::khaki << 0xfff0e68cu; + QTest::newRow("SVG lavender") << QColorConstants::Svg::lavender << 0xffe6e6fau; + QTest::newRow("SVG lavenderblush") << QColorConstants::Svg::lavenderblush << 0xfffff0f5u; + QTest::newRow("SVG lawngreen") << QColorConstants::Svg::lawngreen << 0xff7cfc00u; + QTest::newRow("SVG lemonchiffon") << QColorConstants::Svg::lemonchiffon << 0xfffffacdu; + QTest::newRow("SVG lightblue") << QColorConstants::Svg::lightblue << 0xffadd8e6u; + QTest::newRow("SVG lightcoral") << QColorConstants::Svg::lightcoral << 0xfff08080u; + QTest::newRow("SVG lightcyan") << QColorConstants::Svg::lightcyan << 0xffe0ffffu; + QTest::newRow("SVG lightgoldenrodyellow") << QColorConstants::Svg::lightgoldenrodyellow << 0xfffafad2u; + QTest::newRow("SVG lightgray") << QColorConstants::Svg::lightgray << 0xffd3d3d3u; + QTest::newRow("SVG lightgreen") << QColorConstants::Svg::lightgreen << 0xff90ee90u; + QTest::newRow("SVG lightgrey") << QColorConstants::Svg::lightgrey << 0xffd3d3d3u; + QTest::newRow("SVG lightpink") << QColorConstants::Svg::lightpink << 0xffffb6c1u; + QTest::newRow("SVG lightsalmon") << QColorConstants::Svg::lightsalmon << 0xffffa07au; + QTest::newRow("SVG lightseagreen") << QColorConstants::Svg::lightseagreen << 0xff20b2aau; + QTest::newRow("SVG lightskyblue") << QColorConstants::Svg::lightskyblue << 0xff87cefau; + QTest::newRow("SVG lightslategray") << QColorConstants::Svg::lightslategray << 0xff778899u; + QTest::newRow("SVG lightslategrey") << QColorConstants::Svg::lightslategrey << 0xff778899u; + QTest::newRow("SVG lightsteelblue") << QColorConstants::Svg::lightsteelblue << 0xffb0c4deu; + QTest::newRow("SVG lightyellow") << QColorConstants::Svg::lightyellow << 0xffffffe0u; + QTest::newRow("SVG lime") << QColorConstants::Svg::lime << 0xff00ff00u; + QTest::newRow("SVG limegreen") << QColorConstants::Svg::limegreen << 0xff32cd32u; + QTest::newRow("SVG linen") << QColorConstants::Svg::linen << 0xfffaf0e6u; + QTest::newRow("SVG magenta") << QColorConstants::Svg::magenta << 0xffff00ffu; + QTest::newRow("SVG maroon") << QColorConstants::Svg::maroon << 0xff800000u; + QTest::newRow("SVG mediumaquamarine") << QColorConstants::Svg::mediumaquamarine << 0xff66cdaau; + QTest::newRow("SVG mediumblue") << QColorConstants::Svg::mediumblue << 0xff0000cdu; + QTest::newRow("SVG mediumorchid") << QColorConstants::Svg::mediumorchid << 0xffba55d3u; + QTest::newRow("SVG mediumpurple") << QColorConstants::Svg::mediumpurple << 0xff9370dbu; + QTest::newRow("SVG mediumseagreen") << QColorConstants::Svg::mediumseagreen << 0xff3cb371u; + QTest::newRow("SVG mediumslateblue") << QColorConstants::Svg::mediumslateblue << 0xff7b68eeu; + QTest::newRow("SVG mediumspringgreen") << QColorConstants::Svg::mediumspringgreen << 0xff00fa9au; + QTest::newRow("SVG mediumturquoise") << QColorConstants::Svg::mediumturquoise << 0xff48d1ccu; + QTest::newRow("SVG mediumvioletred") << QColorConstants::Svg::mediumvioletred << 0xffc71585u; + QTest::newRow("SVG midnightblue") << QColorConstants::Svg::midnightblue << 0xff191970u; + QTest::newRow("SVG mintcream") << QColorConstants::Svg::mintcream << 0xfff5fffau; + QTest::newRow("SVG mistyrose") << QColorConstants::Svg::mistyrose << 0xffffe4e1u; + QTest::newRow("SVG moccasin") << QColorConstants::Svg::moccasin << 0xffffe4b5u; + QTest::newRow("SVG navajowhite") << QColorConstants::Svg::navajowhite << 0xffffdeadu; + QTest::newRow("SVG navy") << QColorConstants::Svg::navy << 0xff000080u; + QTest::newRow("SVG oldlace") << QColorConstants::Svg::oldlace << 0xfffdf5e6u; + QTest::newRow("SVG olive") << QColorConstants::Svg::olive << 0xff808000u; + QTest::newRow("SVG olivedrab") << QColorConstants::Svg::olivedrab << 0xff6b8e23u; + QTest::newRow("SVG orange") << QColorConstants::Svg::orange << 0xffffa500u; + QTest::newRow("SVG orangered") << QColorConstants::Svg::orangered << 0xffff4500u; + QTest::newRow("SVG orchid") << QColorConstants::Svg::orchid << 0xffda70d6u; + QTest::newRow("SVG palegoldenrod") << QColorConstants::Svg::palegoldenrod << 0xffeee8aau; + QTest::newRow("SVG palegreen") << QColorConstants::Svg::palegreen << 0xff98fb98u; + QTest::newRow("SVG paleturquoise") << QColorConstants::Svg::paleturquoise << 0xffafeeeeu; + QTest::newRow("SVG palevioletred") << QColorConstants::Svg::palevioletred << 0xffdb7093u; + QTest::newRow("SVG papayawhip") << QColorConstants::Svg::papayawhip << 0xffffefd5u; + QTest::newRow("SVG peachpuff") << QColorConstants::Svg::peachpuff << 0xffffdab9u; + QTest::newRow("SVG peru") << QColorConstants::Svg::peru << 0xffcd853fu; + QTest::newRow("SVG pink") << QColorConstants::Svg::pink << 0xffffc0cbu; + QTest::newRow("SVG plum") << QColorConstants::Svg::plum << 0xffdda0ddu; + QTest::newRow("SVG powderblue") << QColorConstants::Svg::powderblue << 0xffb0e0e6u; + QTest::newRow("SVG purple") << QColorConstants::Svg::purple << 0xff800080u; + QTest::newRow("SVG red") << QColorConstants::Svg::red << 0xffff0000u; + QTest::newRow("SVG rosybrown") << QColorConstants::Svg::rosybrown << 0xffbc8f8fu; + QTest::newRow("SVG royalblue") << QColorConstants::Svg::royalblue << 0xff4169e1u; + QTest::newRow("SVG saddlebrown") << QColorConstants::Svg::saddlebrown << 0xff8b4513u; + QTest::newRow("SVG salmon") << QColorConstants::Svg::salmon << 0xfffa8072u; + QTest::newRow("SVG sandybrown") << QColorConstants::Svg::sandybrown << 0xfff4a460u; + QTest::newRow("SVG seagreen") << QColorConstants::Svg::seagreen << 0xff2e8b57u; + QTest::newRow("SVG seashell") << QColorConstants::Svg::seashell << 0xfffff5eeu; + QTest::newRow("SVG sienna") << QColorConstants::Svg::sienna << 0xffa0522du; + QTest::newRow("SVG silver") << QColorConstants::Svg::silver << 0xffc0c0c0u; + QTest::newRow("SVG skyblue") << QColorConstants::Svg::skyblue << 0xff87ceebu; + QTest::newRow("SVG slateblue") << QColorConstants::Svg::slateblue << 0xff6a5acdu; + QTest::newRow("SVG slategray") << QColorConstants::Svg::slategray << 0xff708090u; + QTest::newRow("SVG slategrey") << QColorConstants::Svg::slategrey << 0xff708090u; + QTest::newRow("SVG snow") << QColorConstants::Svg::snow << 0xfffffafau; + QTest::newRow("SVG springgreen") << QColorConstants::Svg::springgreen << 0xff00ff7fu; + QTest::newRow("SVG steelblue") << QColorConstants::Svg::steelblue << 0xff4682b4u; + QTest::newRow("SVG tan") << QColorConstants::Svg::tan << 0xffd2b48cu; + QTest::newRow("SVG teal") << QColorConstants::Svg::teal << 0xff008080u; + QTest::newRow("SVG thistle") << QColorConstants::Svg::thistle << 0xffd8bfd8u; + QTest::newRow("SVG tomato") << QColorConstants::Svg::tomato << 0xffff6347u; + QTest::newRow("SVG turquoise") << QColorConstants::Svg::turquoise << 0xff40e0d0u; + QTest::newRow("SVG violet") << QColorConstants::Svg::violet << 0xffee82eeu; + QTest::newRow("SVG wheat") << QColorConstants::Svg::wheat << 0xfff5deb3u; + QTest::newRow("SVG white") << QColorConstants::Svg::white << 0xffffffffu; + QTest::newRow("SVG whitesmoke") << QColorConstants::Svg::whitesmoke << 0xfff5f5f5u; + QTest::newRow("SVG yellow") << QColorConstants::Svg::yellow << 0xffffff00u; + QTest::newRow("SVG yellowgreen") << QColorConstants::Svg::yellowgreen << 0xff9acd32u; +} + +void tst_QColor::colorConstants() +{ + QFETCH(QColor, color); + QFETCH(QRgb, argb); + QCOMPARE(color.rgba(), argb); +} +#endif // defined(Q_COMPILER_CONSTEXPR) & defined(Q_COMPILER_UNIFORM_INIT) + /* CSS color names = SVG 1.0 color names + transparent (rgba(0,0,0,0)) */ -- cgit v1.2.3 From 7cbe1ca33da54cf2b6c8494bad39b6570f798014 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 22 Aug 2019 11:09:45 +0200 Subject: CMake: Fix detection of debug_and_release for Windows builds If Qt is configured with -release or -debug we must set CMAKE_DEBUG_TYPE or CMAKE_RELEASE_TYPE, but not both. This was broken by 82a2c7df which fixed the issue for iOS simulator_and_device builds. We have the following situation for both relevant CONFIG values: debug_and_release build_all iOS simulator_and_device unset set Windows -release set unset Windows -debug-and-release set set Trivia: On Windows, when configuring with -release (or -debug) then the *feature* debug_and_release is not set. The *CONFIG* *value* however, is unconditionally set in msvc-desktop.conf. Fixes: QTBUG-77754 Change-Id: I326ecb024056bc189be5fa03ec6f59bc71226544 Reviewed-by: Alexandru Croitor --- mkspecs/features/create_cmake.prf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 65c637244b..8100128441 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -138,8 +138,8 @@ CMAKE_RELEASE_TYPE = # the debug libraries at build time. equals(QMAKE_HOST.os, Windows): CMAKE_BIN_SUFFIX = ".exe" -debug_and_release|CONFIG(debug, debug|release): CMAKE_DEBUG_TYPE = debug -debug_and_release|CONFIG(release, debug|release): CMAKE_RELEASE_TYPE = release +if(debug_and_release:build_all)|CONFIG(debug, debug|release): CMAKE_DEBUG_TYPE = debug +if(debug_and_release:build_all)|CONFIG(release, debug|release): CMAKE_RELEASE_TYPE = release # CMAKE_DEBUG_AND_RELEASE is used to tell the _populate_$${CMAKE_MODULE_NAME}_target_properties # functions whether a Configuration specific generator expression needs to be added to the values -- cgit v1.2.3 From 6a859f8112e33c1373b6b6899475ee79b3ba3137 Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Fri, 23 Aug 2019 10:41:17 +0200 Subject: CMake: Fix usage of non debug and release static builds on Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As was recently discovered, the debug_and_release CONFIG value is always true on Windows, even if the feaure is disabled when specifying -debug or -release when configuring Qt. In order for the generated CMake Config files to be correct, we need to use the true feature value. Amends 44602224bfae7bea08e5883768cfeef6629ac503. Change-Id: I42be684e8ad2a5ce72cb2e9d36f81de7589112c6 Reviewed-by: Jörg Bornemann --- mkspecs/features/create_cmake.prf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 8100128441..5c561042cd 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -153,7 +153,14 @@ if(debug_and_release:build_all)|CONFIG(release, debug|release): CMAKE_RELEASE_TY # equivalent to the value specified by CMAKE_BUILD_TYPE. # This means that when Qt was built in a Release configuration, and the application in a Debug # configuration, IMPORTED_LOCATION_RELEASE will be used for the Qt libraries. -debug_and_release { +# +# Note that we need to check for the "debug_and_release" feature, and not the CONFIG value, because +# the CONFIG value is always set to true on Windows in msvc-desktop.conf disregarding whether the +# configure line specified just -debug or just -release. +# This also means that if a user configures and builds Qt with -release, and then calls nmake debug +# to build debug libraries of Qt, the generated CMake file won't know about debug libraries, +# and will always link against the release libraries. +qtConfig(debug_and_release) { CMAKE_DEBUG_AND_RELEASE = TRUE } else { CMAKE_DEBUG_AND_RELEASE = FALSE -- cgit v1.2.3 From 5bcfe771a5ce53f9cf88340effe3559a5c6d7c66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 21 Aug 2019 15:42:40 +0200 Subject: widgets: Merge QPlatformTextureListWatcher into implementation file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Icf177a5b559bd1c108a66ee14a51fb23cd36e083 Reviewed-by: Paul Olav Tvete Reviewed-by: Tor Arne Vestbø --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 73 +++++++++++++++------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 19 -------- 2 files changed, 39 insertions(+), 53 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index b70ce39159..3e988cff00 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -69,6 +69,44 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_OPENGL Q_GLOBAL_STATIC(QPlatformTextureList, qt_dummy_platformTextureList) + +// Watches one or more QPlatformTextureLists for changes in the lock state and +// triggers a backingstore sync when all the registered lists turn into +// unlocked state. This is essential when a custom composeAndFlush() +// implementation in a platform plugin is not synchronous and keeps +// holding on to the textures for some time even after returning from there. +class QPlatformTextureListWatcher : public QObject +{ + Q_OBJECT +public: + QPlatformTextureListWatcher(QWidgetRepaintManager *repaintManager) + : m_repaintManager(repaintManager) {} + + void watch(QPlatformTextureList *textureList) { + connect(textureList, SIGNAL(locked(bool)), SLOT(onLockStatusChanged(bool))); + m_locked[textureList] = textureList->isLocked(); + } + + bool isLocked() const { + foreach (bool v, m_locked) { + if (v) + return true; + } + return false; + } + +private slots: + void onLockStatusChanged(bool locked) { + QPlatformTextureList *tl = static_cast(sender()); + m_locked[tl] = locked; + if (!isLocked()) + m_repaintManager->sync(); + } + +private: + QHash m_locked; + QWidgetRepaintManager *m_repaintManager; +}; #endif // --------------------------------------------------------------------------- @@ -656,39 +694,6 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) return 0; } -// Watches one or more QPlatformTextureLists for changes in the lock state and -// triggers a backingstore sync when all the registered lists turn into -// unlocked state. This is essential when a custom composeAndFlush() -// implementation in a platform plugin is not synchronous and keeps -// holding on to the textures for some time even after returning from there. -QPlatformTextureListWatcher::QPlatformTextureListWatcher(QWidgetRepaintManager *paintManager) - : m_repaintManager(paintManager) -{ -} - -void QPlatformTextureListWatcher::watch(QPlatformTextureList *textureList) -{ - connect(textureList, SIGNAL(locked(bool)), SLOT(onLockStatusChanged(bool))); - m_locked[textureList] = textureList->isLocked(); -} - -bool QPlatformTextureListWatcher::isLocked() const -{ - foreach (bool v, m_locked) { - if (v) - return true; - } - return false; -} - -void QPlatformTextureListWatcher::onLockStatusChanged(bool locked) -{ - QPlatformTextureList *tl = static_cast(sender()); - m_locked[tl] = locked; - if (!isLocked()) - m_repaintManager->sync(); -} - #else static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) @@ -1445,4 +1450,4 @@ void QWidgetPrivate::invalidateBackingStore_resizeHelper(const QPoint &oldPos, c QT_END_NAMESPACE -#include "moc_qwidgetrepaintmanager_p.cpp" +#include "qwidgetrepaintmanager.moc" diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 5686457dfb..0a137c3c49 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -63,25 +63,6 @@ class QPlatformTextureList; class QPlatformTextureListWatcher; class QWidgetRepaintManager; -#ifndef QT_NO_OPENGL -class QPlatformTextureListWatcher : public QObject -{ - Q_OBJECT - -public: - QPlatformTextureListWatcher(QWidgetRepaintManager *repaintManager); - void watch(QPlatformTextureList *textureList); - bool isLocked() const; - -private slots: - void onLockStatusChanged(bool locked); - -private: - QHash m_locked; - QWidgetRepaintManager *m_repaintManager; -}; -#endif - class Q_AUTOTEST_EXPORT QWidgetRepaintManager { public: -- cgit v1.2.3 From b553335651798125c15b2ba783c2f2de4939540d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 16:55:23 +0200 Subject: widgets: Remove unused member in QWidgetRepaintManager Change-Id: I2f7eac2916bdcd9101e96e78a3d7c3c6c395dde7 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager_p.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 0a137c3c49..59fe25cdfe 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -129,7 +129,6 @@ private: QWidget *tlw; QRegion dirtyOnScreen; // needsFlush QRegion dirty; // needsRepaint - QRegion dirtyFromPreviousSync; QVector dirtyWidgets; QVector dirtyRenderToTextureWidgets; QVector dirtyOnScreenWidgets; -- cgit v1.2.3 From 1c2bcdb57a78b5a268f30786db91ff90cdcddcb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 16:56:03 +0200 Subject: widgets: Rename a few missed uses of QWidgetRepaintManager Change-Id: Ie28d5dea6fdf1c8728a68d419b487bc5e3e3ee16 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 3e988cff00..177d362249 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -478,7 +478,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) invalidateBackingStore((newRect & clipR).translated(-data.crect.topLeft())); } else { - QWidgetRepaintManager *wbs = x->repaintManager.get(); + QWidgetRepaintManager *repaintManager = x->repaintManager.get(); QRegion childExpose(newRect & clipR); QRegion overlappedExpose; @@ -490,7 +490,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) const QVector rectsToScroll = getSortedRectsToScroll(QRegion(sourceRect) - overlappedExpose, dx, dy); for (QRect rect : rectsToScroll) { - if (wbs->bltRect(rect, dx, dy, pw)) { + if (repaintManager->bltRect(rect, dx, dy, pw)) { childExpose -= rect.translated(dx, dy); } } @@ -510,7 +510,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) } if (!childExpose.isEmpty()) { childExpose.translate(-data.crect.topLeft()); - wbs->markDirty(childExpose, q); + repaintManager->markDirty(childExpose, q); isMoved = true; } } @@ -521,14 +521,14 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) parentExpose += QRegion(newRect) - extra->mask.translated(data.crect.topLeft()); if (!parentExpose.isEmpty()) { - wbs->markDirty(parentExpose, pw); + repaintManager->markDirty(parentExpose, pw); pd->isMoved = true; } if (childUpdatesEnabled) { QRegion needsFlush(sourceRect); needsFlush += destRect; - wbs->markDirtyOnScreen(needsFlush, pw, toplevelOffset); + repaintManager->markDirtyOnScreen(needsFlush, pw, toplevelOffset); } } } @@ -542,8 +542,8 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) if (x->inTopLevelResize) return; - QWidgetRepaintManager *wbs = x->repaintManager.get(); - if (!wbs) + QWidgetRepaintManager *repaintManager = x->repaintManager.get(); + if (!repaintManager) return; static const bool accelEnv = qEnvironmentVariableIntValue("QT_NO_FAST_SCROLL") == 0; @@ -574,7 +574,7 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) const QVector rectsToScroll = getSortedRectsToScroll(QRegion(sourceRect) - overlappedExpose, dx, dy); for (const QRect &rect : rectsToScroll) { - if (wbs->bltRect(rect, dx, dy, q)) { + if (repaintManager->bltRect(rect, dx, dy, q)) { childExpose -= rect.translated(dx, dy); } } @@ -601,14 +601,14 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) if (!overlappedExpose.isEmpty()) invalidateBackingStore(overlappedExpose); if (!childExpose.isEmpty()) { - wbs->markDirty(childExpose, q); + repaintManager->markDirty(childExpose, q); isScrolled = true; } // Instead of using native scroll-on-screen, we copy from // backingstore, giving only one screen update for each // scroll, and a solid appearance - wbs->markDirtyOnScreen(destRect, q, toplevelOffset); + repaintManager->markDirtyOnScreen(destRect, q, toplevelOffset); } } -- cgit v1.2.3 From 655e8b6eab04f6db70ebaf2005ef297ea80784de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 16:43:05 +0200 Subject: widgets: Class initialize QWidgetRepaintManager members Change-Id: Icc06ae8f5f542810d651e4834055cbcd1c1a4e2e Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 6 +----- src/widgets/kernel/qwidgetrepaintmanager_p.h | 17 +++++++++++------ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 177d362249..c4e557fb2f 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -112,12 +112,8 @@ private: // --------------------------------------------------------------------------- QWidgetRepaintManager::QWidgetRepaintManager(QWidget *topLevel) - : tlw(topLevel), - updateRequestSent(0), - textureListWatcher(0), - perfFrames(0) + : tlw(topLevel), store(tlw->backingStore()) { - store = tlw->backingStore(); Q_ASSERT(store); // Ensure all existing subsurfaces and static widgets are added to their respective lists. diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 59fe25cdfe..470d63f99e 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -126,19 +126,24 @@ private: QRect topLevelRect() const { return tlw->data->crect; } - QWidget *tlw; - QRegion dirtyOnScreen; // needsFlush + QWidget *tlw = nullptr; + QBackingStore *store = nullptr; + QRegion dirty; // needsRepaint + QRegion dirtyOnScreen; // needsFlush + QVector dirtyWidgets; QVector dirtyRenderToTextureWidgets; QVector dirtyOnScreenWidgets; + QList staticWidgets; - QBackingStore *store; - uint updateRequestSent : 1; - QPlatformTextureListWatcher *textureListWatcher; + QPlatformTextureListWatcher *textureListWatcher = nullptr; + + bool updateRequestSent = false; + QElapsedTimer perfTime; - int perfFrames; + int perfFrames = 0; Q_DISABLE_COPY_MOVE(QWidgetRepaintManager) }; -- cgit v1.2.3 From ca3b48539d4f5d61818cea84c8aa513d3956b9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 17:11:56 +0200 Subject: widgets: Share more code in appendDirtyOnScreenWidget Change-Id: I0ed936c7d8b004d498a8956b1ba246ade41ce43d Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 27 +++++++++++---------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 2 +- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index c4e557fb2f..7445255ad4 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -922,9 +922,6 @@ void QWidgetRepaintManager::paintAndFlush() if (hasPlatformWindow(w) || (npw && npw != tlw)) { if (!hasPlatformWindow(w)) w = npw; - QWidgetPrivate *wPrivate = w->d_func(); - if (!wPrivate->needsFlush) - wPrivate->needsFlush = new QRegion; appendDirtyOnScreenWidget(w); } } @@ -1039,29 +1036,27 @@ void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *wi return; } - // Alien widgets with native parent != tlw. - QWidgetPrivate *nativeParentPrivate = nativeParent->d_func(); - if (!nativeParentPrivate->needsFlush) - nativeParentPrivate->needsFlush = new QRegion; + // Alien widgets with native parent != tlw const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); - *nativeParentPrivate->needsFlush += region.translated(nativeParentOffset); - appendDirtyOnScreenWidget(nativeParent); + appendDirtyOnScreenWidget(nativeParent, region.translated(nativeParentOffset)); return; } - // Native child widgets. - QWidgetPrivate *widgetPrivate = widget->d_func(); - if (!widgetPrivate->needsFlush) - widgetPrivate->needsFlush = new QRegion; - *widgetPrivate->needsFlush += region; - appendDirtyOnScreenWidget(widget); + // Native child widgets + appendDirtyOnScreenWidget(widget, region); } -void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget) +void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget, const QRegion ®ion) { if (!widget) return; + auto *widgetPrivate = qt_widget_private(widget); + if (!widgetPrivate->needsFlush) + widgetPrivate->needsFlush = new QRegion; + + *widgetPrivate->needsFlush += region; + if (!dirtyOnScreenWidgets.contains(widget)) dirtyOnScreenWidgets.append(widget); } diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 470d63f99e..7d58adec99 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -113,7 +113,7 @@ private: bool syncAllowed(); void paintAndFlush(); - void appendDirtyOnScreenWidget(QWidget *widget); + void appendDirtyOnScreenWidget(QWidget *widget, const QRegion ®ion = QRegion()); void flush(QWidget *widget = nullptr); void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); -- cgit v1.2.3 From 36d734b3f8db4fc1fce932cf5f1a6684b2dc10db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 17:27:29 +0200 Subject: widgets: Rename markDirtyOnScreen to markNeedsFlush Including renaming the member touched by this function. This leaves the logic for appendDirtyOnScreenWidget, which still needs investigating. Change-Id: I405a5e3757f0a79992f88d9f70867aeb7b9764d8 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 4 ++-- src/widgets/kernel/qwidgetrepaintmanager.cpp | 30 ++++++++++++++-------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 6 +++--- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index c2caf7a421..c0f5954885 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5312,7 +5312,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP // Native widgets need to be marked dirty on screen so painting will be done in correct context // Same check as in the no effects case below. if (repaintManager && !onScreen && !asRoot && (q->internalWinId() || !q->nativeParentWidget()->isWindow())) - repaintManager->markDirtyOnScreen(rgn, q, offset); + repaintManager->markNeedsFlush(q, rgn, offset); return; } @@ -5420,7 +5420,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP // Native widgets need to be marked dirty on screen so painting will be done in correct context if (repaintManager && !onScreen && !asRoot && (q->internalWinId() || (q->nativeParentWidget() && !q->nativeParentWidget()->isWindow()))) - repaintManager->markDirtyOnScreen(toBePainted, q, offset); + repaintManager->markNeedsFlush(q, toBePainted, offset); //restore if (paintEngine) { diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 7445255ad4..5e7a34a31f 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -524,7 +524,7 @@ void QWidgetPrivate::moveRect(const QRect &rect, int dx, int dy) if (childUpdatesEnabled) { QRegion needsFlush(sourceRect); needsFlush += destRect; - repaintManager->markDirtyOnScreen(needsFlush, pw, toplevelOffset); + repaintManager->markNeedsFlush(pw, needsFlush, toplevelOffset); } } } @@ -604,7 +604,7 @@ void QWidgetPrivate::scrollRect(const QRect &rect, int dx, int dy) // Instead of using native scroll-on-screen, we copy from // backingstore, giving only one screen update for each // scroll, and a solid appearance - repaintManager->markDirtyOnScreen(destRect, q, toplevelOffset); + repaintManager->markNeedsFlush(q, destRect, toplevelOffset); } } @@ -730,9 +730,9 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR } if (exposedWidget != tlw) - markDirtyOnScreen(exposedRegion, exposedWidget, exposedWidget->mapTo(tlw, QPoint())); + markNeedsFlush(exposedWidget, exposedRegion, exposedWidget->mapTo(tlw, QPoint())); else - markDirtyOnScreen(exposedRegion, exposedWidget, QPoint()); + markNeedsFlush(exposedWidget, exposedRegion, QPoint()); if (syncAllowed()) paintAndFlush(); @@ -966,7 +966,7 @@ void QWidgetRepaintManager::paintAndFlush() #endif // Always flush repainted areas - dirtyOnScreen += toClean; + needsFlush += toClean; store->beginPaint(toClean); @@ -1010,12 +1010,12 @@ void QWidgetRepaintManager::paintAndFlush() } /*! - Marks the \a region of the \a widget as dirty on screen. The \a region will be copied from + Marks the \a region of the \a widget as needing a flush. The \a region will be copied from the backing store to the \a widget's native parent next time flush() is called. Paint on screen widgets are ignored. */ -void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *widget, const QPoint &topLevelOffset) +void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®ion, const QPoint &topLevelOffset) { if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) return; @@ -1023,7 +1023,7 @@ void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *wi // Top-level. if (widget == tlw) { if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region; + needsFlush += region; return; } @@ -1032,7 +1032,7 @@ void QWidgetRepaintManager::markDirtyOnScreen(const QRegion ®ion, QWidget *wi QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). if (nativeParent == tlw) { if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - dirtyOnScreen += region.translated(topLevelOffset); + needsFlush += region.translated(topLevelOffset); return; } @@ -1070,15 +1070,15 @@ void QWidgetRepaintManager::flush(QWidget *widget) const bool hasDirtyOnScreenWidgets = !dirtyOnScreenWidgets.isEmpty(); bool flushed = false; - // Flush the region in dirtyOnScreen. - if (!dirtyOnScreen.isEmpty()) { + // Flush the region in needsFlush + if (!needsFlush.isEmpty()) { QWidget *target = widget ? widget : tlw; - flush(target, dirtyOnScreen, widgetTexturesFor(tlw, tlw)); - dirtyOnScreen = QRegion(); + flush(target, needsFlush, widgetTexturesFor(tlw, tlw)); + needsFlush = QRegion(); flushed = true; } - // Render-to-texture widgets are not in dirtyOnScreen so flush if we have not done it above. + // Render-to-texture widgets are not in needsFlush so flush if we have not done it above. if (!flushed && !hasDirtyOnScreenWidgets) { #ifndef QT_NO_OPENGL if (!tlw->d_func()->topData()->widgetTextures.empty()) { @@ -1328,7 +1328,7 @@ QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const } // Append the region that needs flush. - r += dirtyOnScreen; + r += needsFlush; for (QWidget *w : dirtyOnScreenWidgets) { if (widgetDirty && w != widget && !widget->isAncestorOf(w)) diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 7d58adec99..a0904bce66 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -91,7 +91,7 @@ public: void sync(QWidget *exposedWidget, const QRegion &exposedRegion); void sync(); - void markDirtyOnScreen(const QRegion &dirtyOnScreen, QWidget *widget, const QPoint &topLevelOffset); + void markNeedsFlush(QWidget *widget, const QRegion ®ion, const QPoint &topLevelOffset); void addStaticWidget(QWidget *widget); void moveStaticWidgets(QWidget *reparented); @@ -130,10 +130,10 @@ private: QBackingStore *store = nullptr; QRegion dirty; // needsRepaint - QRegion dirtyOnScreen; // needsFlush - QVector dirtyWidgets; QVector dirtyRenderToTextureWidgets; + + QRegion needsFlush; QVector dirtyOnScreenWidgets; QList staticWidgets; -- cgit v1.2.3 From 0af7e5564c23c4b34dbea1ae4e31aceff71addc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 17:30:32 +0200 Subject: widgets: Simplify QWidgetRepaintManager::sync Change-Id: Ifd0cdcd7f4c03112fd93c24707e43273e211f688 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 5e7a34a31f..6534d829ab 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -729,10 +729,8 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR return; } - if (exposedWidget != tlw) - markNeedsFlush(exposedWidget, exposedRegion, exposedWidget->mapTo(tlw, QPoint())); - else - markNeedsFlush(exposedWidget, exposedRegion, QPoint()); + QPoint offset = exposedWidget != tlw ? exposedWidget->mapTo(tlw, QPoint()) : QPoint(); + markNeedsFlush(exposedWidget, exposedRegion, offset); if (syncAllowed()) paintAndFlush(); -- cgit v1.2.3 From dbab68a127189e479ff01a6450b4a45b872b7445 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Thu, 22 Aug 2019 17:37:32 +0200 Subject: widgets: Use single return in QWidgetRepaintManager::markNeedsFlush Change-Id: Ia21c5c57e4c642af2aa87b0539c4af51500a4827 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 6534d829ab..563e5932d3 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1018,30 +1018,25 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) return; - // Top-level. if (widget == tlw) { + // Top-level (native) if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) needsFlush += region; - return; - } - - // Alien widgets. - if (!hasPlatformWindow(widget) && !widget->isWindow()) { - QWidget *nativeParent = widget->nativeParentWidget(); // Alien widgets with the top-level as the native parent (common case). + } else if (!hasPlatformWindow(widget) && !widget->isWindow()) { + QWidget *nativeParent = widget->nativeParentWidget(); if (nativeParent == tlw) { + // Alien widgets with the top-level as the native parent (common case) if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) needsFlush += region.translated(topLevelOffset); - return; + } else { + // Alien widgets with native parent != tlw + const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); + appendDirtyOnScreenWidget(nativeParent, region.translated(nativeParentOffset)); } - - // Alien widgets with native parent != tlw - const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); - appendDirtyOnScreenWidget(nativeParent, region.translated(nativeParentOffset)); - return; + } else { + // Native child widgets + appendDirtyOnScreenWidget(widget, region); } - - // Native child widgets - appendDirtyOnScreenWidget(widget, region); } void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget, const QRegion ®ion) -- cgit v1.2.3 From 787314c2309565a02c17ea45e0065b1fda2c579e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 23 Aug 2019 12:07:33 +0200 Subject: widgets: Clarify top level flush region in QWidgetRepaintManager Change-Id: I9a8d11569d33bf580bd50b710cf072952ea3626b Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 16 ++++++++-------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 563e5932d3..e21e3af3e7 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -964,7 +964,7 @@ void QWidgetRepaintManager::paintAndFlush() #endif // Always flush repainted areas - needsFlush += toClean; + topLevelNeedsFlush += toClean; store->beginPaint(toClean); @@ -1021,13 +1021,13 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io if (widget == tlw) { // Top-level (native) if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - needsFlush += region; + topLevelNeedsFlush += region; } else if (!hasPlatformWindow(widget) && !widget->isWindow()) { QWidget *nativeParent = widget->nativeParentWidget(); if (nativeParent == tlw) { // Alien widgets with the top-level as the native parent (common case) if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - needsFlush += region.translated(topLevelOffset); + topLevelNeedsFlush += region.translated(topLevelOffset); } else { // Alien widgets with native parent != tlw const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); @@ -1063,11 +1063,11 @@ void QWidgetRepaintManager::flush(QWidget *widget) const bool hasDirtyOnScreenWidgets = !dirtyOnScreenWidgets.isEmpty(); bool flushed = false; - // Flush the region in needsFlush - if (!needsFlush.isEmpty()) { + // Flush the top level widget + if (!topLevelNeedsFlush.isEmpty()) { QWidget *target = widget ? widget : tlw; - flush(target, needsFlush, widgetTexturesFor(tlw, tlw)); - needsFlush = QRegion(); + flush(target, topLevelNeedsFlush, widgetTexturesFor(tlw, tlw)); + topLevelNeedsFlush = QRegion(); flushed = true; } @@ -1321,7 +1321,7 @@ QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const } // Append the region that needs flush. - r += needsFlush; + r += topLevelNeedsFlush; for (QWidget *w : dirtyOnScreenWidgets) { if (widgetDirty && w != widget && !widget->isAncestorOf(w)) diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index a0904bce66..524f1d5af8 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -133,7 +133,7 @@ private: QVector dirtyWidgets; QVector dirtyRenderToTextureWidgets; - QRegion needsFlush; + QRegion topLevelNeedsFlush; QVector dirtyOnScreenWidgets; QList staticWidgets; -- cgit v1.2.3 From 74be54684c187ba600488cb157a23c6bb072909d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 23 Aug 2019 12:11:12 +0200 Subject: widgets: Clarify how widgets needing flush is tracked Change-Id: Ia2c2c4b830e4441e50c66dd3fef5bc060f76551e Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 27 ++++++++++++++------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 4 ++-- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index e21e3af3e7..c05e3d1701 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -332,10 +332,11 @@ void QWidgetRepaintManager::removeDirtyWidget(QWidget *w) return; dirtyWidgets.removeAll(w); - dirtyOnScreenWidgets.removeAll(w); dirtyRenderToTextureWidgets.removeAll(w); resetWidget(w); + needsFlushWidgets.removeAll(w); + QWidgetPrivate *wd = w->d_func(); const int n = wd->children.count(); for (int i = 0; i < n; ++i) { @@ -920,7 +921,7 @@ void QWidgetRepaintManager::paintAndFlush() if (hasPlatformWindow(w) || (npw && npw != tlw)) { if (!hasPlatformWindow(w)) w = npw; - appendDirtyOnScreenWidget(w); + markNeedsFlush(w); } } } @@ -1031,15 +1032,15 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io } else { // Alien widgets with native parent != tlw const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); - appendDirtyOnScreenWidget(nativeParent, region.translated(nativeParentOffset)); + markNeedsFlush(nativeParent, region.translated(nativeParentOffset)); } } else { // Native child widgets - appendDirtyOnScreenWidget(widget, region); + markNeedsFlush(widget, region); } } -void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget, const QRegion ®ion) +void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®ion) { if (!widget) return; @@ -1050,8 +1051,8 @@ void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget, const QRe *widgetPrivate->needsFlush += region; - if (!dirtyOnScreenWidgets.contains(widget)) - dirtyOnScreenWidgets.append(widget); + if (!needsFlushWidgets.contains(widget)) + needsFlushWidgets.append(widget); } /*! @@ -1060,7 +1061,7 @@ void QWidgetRepaintManager::appendDirtyOnScreenWidget(QWidget *widget, const QRe */ void QWidgetRepaintManager::flush(QWidget *widget) { - const bool hasDirtyOnScreenWidgets = !dirtyOnScreenWidgets.isEmpty(); + const bool hasNeedsFlushWidgets = !needsFlushWidgets.isEmpty(); bool flushed = false; // Flush the top level widget @@ -1071,8 +1072,8 @@ void QWidgetRepaintManager::flush(QWidget *widget) flushed = true; } - // Render-to-texture widgets are not in needsFlush so flush if we have not done it above. - if (!flushed && !hasDirtyOnScreenWidgets) { + // Render-to-texture widgets are not in topLevelNeedsFlush so flush if we have not done it above. + if (!flushed && !hasNeedsFlushWidgets) { #ifndef QT_NO_OPENGL if (!tlw->d_func()->topData()->widgetTextures.empty()) { QPlatformTextureList *widgetTextures = widgetTexturesFor(tlw, tlw); @@ -1084,10 +1085,10 @@ void QWidgetRepaintManager::flush(QWidget *widget) #endif } - if (!hasDirtyOnScreenWidgets) + if (!hasNeedsFlushWidgets) return; - for (QWidget *w : qExchange(dirtyOnScreenWidgets, {})) { + for (QWidget *w : qExchange(needsFlushWidgets, {})) { QWidgetPrivate *wd = w->d_func(); Q_ASSERT(wd->needsFlush); QPlatformTextureList *widgetTexturesForNative = wd->textureChildSeen ? widgetTexturesFor(tlw, w) : 0; @@ -1323,7 +1324,7 @@ QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const // Append the region that needs flush. r += topLevelNeedsFlush; - for (QWidget *w : dirtyOnScreenWidgets) { + for (QWidget *w : needsFlushWidgets) { if (widgetDirty && w != widget && !widget->isAncestorOf(w)) continue; QWidgetPrivate *wd = w->d_func(); diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 524f1d5af8..c9114c6955 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -113,7 +113,7 @@ private: bool syncAllowed(); void paintAndFlush(); - void appendDirtyOnScreenWidget(QWidget *widget, const QRegion ®ion = QRegion()); + void markNeedsFlush(QWidget *widget, const QRegion ®ion = QRegion()); void flush(QWidget *widget = nullptr); void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); @@ -134,7 +134,7 @@ private: QVector dirtyRenderToTextureWidgets; QRegion topLevelNeedsFlush; - QVector dirtyOnScreenWidgets; + QVector needsFlushWidgets; QList staticWidgets; -- cgit v1.2.3 From 9b3935492bfa33bc716129cb303d3ac62be5bb07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 23 Aug 2019 14:50:02 +0200 Subject: widgets: Remove unused QWidgetRepaintManager::dirtyRegion It is no longer needed after qt_dirtyRegion was removed in e2a1fb901. Change-Id: I120df76b08808842b304cb8de10de23ccd0e2845 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 50 ---------------------------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 1 - 2 files changed, 51 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index c05e3d1701..10feb4a918 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1291,56 +1291,6 @@ bool QWidgetRepaintManager::isDirty() const return !(dirtyWidgets.isEmpty() && dirty.isEmpty() && dirtyRenderToTextureWidgets.isEmpty()); } -/*! - Returns the region (in top-level coordinates) that needs repaint and/or flush. - - If the widget is non-zero, only the dirty region for the widget is returned - and the region will be in widget coordinates. -*/ -QRegion QWidgetRepaintManager::dirtyRegion(QWidget *widget) const -{ - const bool widgetDirty = widget && widget != tlw; - const QRect tlwRect(topLevelRect()); - const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); - if (surfaceGeometry != tlwRect && surfaceGeometry.size() != tlwRect.size()) { - if (widgetDirty) { - const QRect dirtyTlwRect = QRect(QPoint(), tlwRect.size()); - const QPoint offset(widget->mapTo(tlw, QPoint())); - const QRect dirtyWidgetRect(dirtyTlwRect & widget->rect().translated(offset)); - return dirtyWidgetRect.translated(-offset); - } - return QRect(QPoint(), tlwRect.size()); - } - - // Calculate the region that needs repaint. - QRegion r(dirty); - for (int i = 0; i < dirtyWidgets.size(); ++i) { - QWidget *w = dirtyWidgets.at(i); - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) - continue; - r += w->d_func()->dirty.translated(w->mapTo(tlw, QPoint())); - } - - // Append the region that needs flush. - r += topLevelNeedsFlush; - - for (QWidget *w : needsFlushWidgets) { - if (widgetDirty && w != widget && !widget->isAncestorOf(w)) - continue; - QWidgetPrivate *wd = w->d_func(); - Q_ASSERT(wd->needsFlush); - r += wd->needsFlush->translated(w->mapTo(tlw, QPoint())); - } - - if (widgetDirty) { - // Intersect with the widget geometry and translate to its coordinates. - const QPoint offset(widget->mapTo(tlw, QPoint())); - r &= widget->rect().translated(offset); - r.translate(-offset); - } - return r; -} - /*! Invalidates the backing store when the widget is resized. Static areas are never invalidated unless absolutely needed. diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index c9114c6955..4ca5e95f24 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -119,7 +119,6 @@ private: void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); bool isDirty() const; - QRegion dirtyRegion(QWidget *widget = nullptr) const; bool hasStaticContents() const; void updateStaticContentsSize(); -- cgit v1.2.3 From 10e8faa72c2a58306f596ec4ee7d56fb7ce28bb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 23 Aug 2019 14:51:11 +0200 Subject: widgets: Merge QWidgetRepaintManager::topLevelRect into callsite Change-Id: Ia9bb0c396b8175f644e337ca73086208c637ed2d Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 2 +- src/widgets/kernel/qwidgetrepaintmanager_p.h | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 10feb4a918..da1754004d 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -799,7 +799,7 @@ void QWidgetRepaintManager::paintAndFlush() bool repaintAllWidgets = false; const bool inTopLevelResize = tlw->d_func()->maybeTopData()->inTopLevelResize; - const QRect tlwRect(topLevelRect()); + const QRect tlwRect = tlw->data->crect; const QRect surfaceGeometry(tlwRect.topLeft(), store->size()); if ((inTopLevelResize || surfaceGeometry.size() != tlwRect.size()) && !updatesDisabled) { if (hasStaticContents() && !store->size().isEmpty() ) { diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index 4ca5e95f24..e81eee0816 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -123,8 +123,6 @@ private: bool hasStaticContents() const; void updateStaticContentsSize(); - QRect topLevelRect() const { return tlw->data->crect; } - QWidget *tlw = nullptr; QBackingStore *store = nullptr; -- cgit v1.2.3 From 6dd5cb40ef0e12da4bcdbebb41fb1ea555d4fa0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 23 Aug 2019 14:55:07 +0200 Subject: widgets: Handle all flush tracking via markNeedsFlush Change-Id: I3652c09012e36468ef90870637988b3fe8c5e735 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index da1754004d..334b618afb 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -964,8 +964,11 @@ void QWidgetRepaintManager::paintAndFlush() } #endif - // Always flush repainted areas - topLevelNeedsFlush += toClean; + // Always flush repainted areas. FIXME: We should mark individual widgets, + // not the top level widget unconditionally, as this results in always + // flushing the top level widget, even if the painted region is entirely + // within a native child. + markNeedsFlush(tlw, toClean, QPoint()); store->beginPaint(toClean); -- cgit v1.2.3 From e8c70fb07f01b492b721451c00496f860eb40be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Fri, 23 Aug 2019 15:19:52 +0200 Subject: widgets: Rename QWidgetPrivate::repaint_sys to paintOnScreen Change-Id: Ic853e42cbed9b770bef0e1d7c7376c861bceb891 Reviewed-by: Paul Olav Tvete --- src/widgets/graphicsview/qgraphicsview_p.h | 2 +- src/widgets/kernel/qwidget.cpp | 14 +++++++------- src/widgets/kernel/qwidget_p.h | 4 ++-- src/widgets/kernel/qwidgetrepaintmanager.cpp | 4 ++-- src/widgets/kernel/qwidgetwindow.cpp | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/widgets/graphicsview/qgraphicsview_p.h b/src/widgets/graphicsview/qgraphicsview_p.h index b534004587..01af61d6ba 100644 --- a/src/widgets/graphicsview/qgraphicsview_p.h +++ b/src/widgets/graphicsview/qgraphicsview_p.h @@ -184,7 +184,7 @@ public: inline void dispatchPendingUpdateRequests() { - if (qt_widget_private(viewport)->paintOnScreen()) + if (qt_widget_private(viewport)->shouldPaintOnScreen()) QCoreApplication::sendPostedEvents(viewport, QEvent::UpdateRequest); else QCoreApplication::sendPostedEvents(viewport->window(), QEvent::UpdateRequest); diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index c0f5954885..c0c7f5cf3d 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1758,8 +1758,8 @@ QRegion QWidgetPrivate::overlappedRegion(const QRect &rect, bool breakAfterFirst void QWidgetPrivate::syncBackingStore() { - if (paintOnScreen()) { - repaint_sys(dirty); + if (shouldPaintOnScreen()) { + paintOnScreen(dirty); dirty = QRegion(); } else if (QWidgetRepaintManager *repaintManager = maybeRepaintManager()) { repaintManager->sync(); @@ -1768,14 +1768,14 @@ void QWidgetPrivate::syncBackingStore() void QWidgetPrivate::syncBackingStore(const QRegion ®ion) { - if (paintOnScreen()) - repaint_sys(region); + if (shouldPaintOnScreen()) + paintOnScreen(region); else if (QWidgetRepaintManager *repaintManager = maybeRepaintManager()) { repaintManager->sync(q_func(), region); } } -void QWidgetPrivate::repaint_sys(const QRegion &rgn) +void QWidgetPrivate::paintOnScreen(const QRegion &rgn) { if (data.in_destructor) return; @@ -2138,7 +2138,7 @@ void QWidgetPrivate::clipToEffectiveMask(QRegion ®ion) const } } -bool QWidgetPrivate::paintOnScreen() const +bool QWidgetPrivate::shouldPaintOnScreen() const { #if defined(QT_NO_BACKINGSTORE) return true; @@ -5276,7 +5276,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP return; const bool asRoot = flags & DrawAsRoot; - bool onScreen = paintOnScreen(); + bool onScreen = shouldPaintOnScreen(); Q_Q(QWidget); #if QT_CONFIG(graphicseffect) diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 6fd9c2d273..cfb9a1ad8c 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -350,7 +350,8 @@ public: #if QT_CONFIG(graphicsview) static QGraphicsProxyWidget * nearestGraphicsProxyWidget(const QWidget *origin); #endif - void repaint_sys(const QRegion &rgn); + bool shouldPaintOnScreen() const; + void paintOnScreen(const QRegion &rgn); QRect clipRect() const; QRegion clipRegion() const; @@ -362,7 +363,6 @@ public: void updateIsOpaque(); void setOpaque(bool opaque); void updateIsTranslucent(); - bool paintOnScreen() const; #if QT_CONFIG(graphicseffect) void invalidateGraphicsEffectsRecursively(); #endif // QT_CONFIG(graphicseffect) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 334b618afb..99373f758c 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -221,7 +221,7 @@ void QWidgetRepaintManager::markDirty(const T &r, QWidget *widget, UpdateTime up // --------------------------------------------------------------------------- - if (widget->d_func()->paintOnScreen()) { + if (widget->d_func()->shouldPaintOnScreen()) { if (widget->d_func()->dirty.isEmpty()) { widget->d_func()->dirty = r; sendUpdateRequest(widget, updateTime); @@ -1019,7 +1019,7 @@ void QWidgetRepaintManager::paintAndFlush() */ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®ion, const QPoint &topLevelOffset) { - if (!widget || widget->d_func()->paintOnScreen() || region.isEmpty()) + if (!widget || widget->d_func()->shouldPaintOnScreen() || region.isEmpty()) return; if (widget == tlw) { diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 3a824371f3..b9a67edc6a 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -803,7 +803,7 @@ void QWidgetWindow::handleResizeEvent(QResizeEvent *event) if (updateSize()) { QGuiApplication::forwardEvent(m_widget, event); - if (m_widget->d_func()->paintOnScreen()) { + if (m_widget->d_func()->shouldPaintOnScreen()) { QRegion updateRegion(geometry()); if (m_widget->testAttribute(Qt::WA_StaticContents)) updateRegion -= QRect(0, 0, oldSize.width(), oldSize.height()); -- cgit v1.2.3 From 5bb178c479a247720fbc3fbb7f06a32b725193ac Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Thu, 1 Aug 2019 08:56:59 +0300 Subject: Say hello to Android multi arch build in one go Multi arch build in one go is need to support the new .aab packaging format. By default the users apps are built for all Android ABIs: arm64-v8a armeabi-v7a x86_64 x86 The user can pass ANDROID_ABIS to qmake to filter the ABIs during development, e.g. qmake ANDROID_ABIS="arm64-v8a armeabi-v7a" will build only for arm ABIs. [ChangeLog][Android] Android multi arch build in one go, needed to support the new .aab packaging format. Change-Id: I3a64caf9621c2a195863976a62a57cdf47e6e3b5 Reviewed-by: Eskil Abrahamsen Blomfeldt --- config.tests/arch/write_info.pri | 3 - mkspecs/android-clang/qmake.conf | 107 ++- mkspecs/android-g++/qmake.conf | 40 - mkspecs/android-g++/qplatformdefs.h | 177 ---- mkspecs/common/android-base-head.conf | 71 -- mkspecs/common/android-base-tail.conf | 82 -- mkspecs/features/android/android.prf | 25 +- .../android/android_deployment_settings.prf | 36 +- mkspecs/features/android/default_pre.prf | 76 ++ mkspecs/features/android/resolve_config.prf | 10 + mkspecs/features/exclusive_builds_post.prf | 2 + mkspecs/features/qmake_use.prf | 6 +- mkspecs/features/qt_android_deps.prf | 6 +- mkspecs/features/qt_configure.prf | 2 +- mkspecs/features/qt_functions.prf | 3 +- mkspecs/features/qt_helper_lib.prf | 33 +- mkspecs/features/qt_module_pris.prf | 27 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- src/android/jar/jar.pro | 1 + src/android/java/java.pro | 2 + .../qtproject/qt5/android/bindings/QtLoader.java | 77 +- src/android/templates/AndroidManifest.xml | 5 +- src/android/templates/build.gradle | 2 +- src/android/templates/res/values/libs.xml | 9 +- src/android/templates/templates.pro | 2 + src/corelib/corelib.pro | 1 + src/corelib/plugin/qlibrary_unix.cpp | 10 + src/gui/image/image.pri | 19 +- src/gui/painting/painting.pri | 42 +- src/plugins/bearer/android/jar/jar.pro | 2 + src/tools/androiddeployqt/main.cpp | 922 ++++++++++----------- 31 files changed, 822 insertions(+), 980 deletions(-) delete mode 100644 mkspecs/android-g++/qmake.conf delete mode 100644 mkspecs/android-g++/qplatformdefs.h delete mode 100644 mkspecs/common/android-base-head.conf delete mode 100644 mkspecs/common/android-base-tail.conf create mode 100644 mkspecs/features/android/default_pre.prf create mode 100644 mkspecs/features/android/resolve_config.prf diff --git a/config.tests/arch/write_info.pri b/config.tests/arch/write_info.pri index 79f980c873..666b9e5cbb 100644 --- a/config.tests/arch/write_info.pri +++ b/config.tests/arch/write_info.pri @@ -3,9 +3,6 @@ targetinfofile ~= s/pro$/target.txt/ win32 { ext = .exe -} else:android { - file_prefix = lib - ext = .so } else:wasm { equals(WASM_OBJECT_FILES, 1): \ ext = .o diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index 84ad884710..8252f400a1 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -8,35 +8,102 @@ CONFIG += android_install unversioned_soname unversioned_libname include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/clang.conf) -include(../common/android-base-head.conf) + +load(device_config) + +# In early configure setup; nothing useful to be done here. +isEmpty(DEFAULT_ANDROID_NDK_ROOT): return() + +NDK_ROOT = $$(ANDROID_NDK_ROOT) +isEmpty(NDK_ROOT): NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT + +!exists($$NDK_ROOT): error("You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.") + +NDK_HOST = $$(ANDROID_NDK_HOST) +isEmpty(NDK_HOST): NDK_HOST = $$DEFAULT_ANDROID_NDK_HOST + +ANDROID_PLATFORM = $$(ANDROID_NDK_PLATFORM) +isEmpty(ANDROID_PLATFORM): ANDROID_PLATFORM = $$DEFAULT_ANDROID_PLATFORM + +ANDROID_SDK_ROOT = $$(ANDROID_SDK_ROOT) +isEmpty(ANDROID_SDK_ROOT): ANDROID_SDK_ROOT = $$DEFAULT_ANDROID_SDK_ROOT + +ANDROID_SDK_BUILD_TOOLS_REVISION = $$(ANDROID_BUILD_TOOLS_REVISION) +isEmpty(ANDROID_SDK_BUILD_TOOLS_REVISION) { + SDK_BUILD_TOOLS_REVISIONS = $$files($$ANDROID_SDK_ROOT/build-tools/*) + for (REVISION, SDK_BUILD_TOOLS_REVISIONS) { + BASENAME = $$basename(REVISION) + greaterThan(BASENAME, $$ANDROID_SDK_BUILD_TOOLS_REVISION): ANDROID_SDK_BUILD_TOOLS_REVISION = $$BASENAME + } +} + +ALL_ANDROID_ABIS = arm64-v8a armeabi-v7a x86_64 x86 + +CONFIG += $$ANDROID_PLATFORM + +QMAKE_PCH_OUTPUT_EXT = .gch + +QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} +QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} +QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} +QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST QMAKE_CC = $$NDK_LLVM_PATH/bin/clang QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++ +QMAKE_LINK = $$QMAKE_CXX -# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md +QMAKE_CFLAGS_OPTIMIZE = -Oz +QMAKE_CFLAGS_OPTIMIZE_FULL = -Oz -equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ - QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "") -else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \ - QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -else: equals(ANDROID_TARGET_ARCH, x86): \ - QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign -else: equals(ANDROID_TARGET_ARCH, x86_64): \ - QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "") +QMAKE_CFLAGS_WARN_ON = -Wall -W +QMAKE_CFLAGS_WARN_OFF = +QMAKE_CFLAGS_SHLIB = -fPIC +QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses +QMAKE_CFLAGS_THREAD = -D_REENTRANT +QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden +QMAKE_CFLAGS_NEON = -mfpu=neon -QMAKE_CFLAGS += -fno-limit-debug-info +QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared +QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared +QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB +QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined +QMAKE_LFLAGS_RPATH = -Wl,-rpath= +QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link= -QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS - -ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/$$NDK_TOOLS_PREFIX/libc++_shared.so +QMAKE_LIBS_X11 = +QMAKE_LIBS_THREAD = +QMAKE_LIBS_OPENGL = +QMAKE_INCDIR_POST = +QMAKE_INCDIR_X11 = +QMAKE_LIBDIR_X11 = +QMAKE_INCDIR_OPENGL = +QMAKE_LIBDIR_OPENGL = ANDROID_USE_LLVM = true -QMAKE_CFLAGS_OPTIMIZE_SIZE = -Oz -QMAKE_LIBDIR_POST = -QMAKE_LFLAGS = -QMAKE_LIBS_PRIVATE = -ANDROID_CXX_STL_LIBS = +armeabi-v7a.sdk = armeabi-v7a +armeabi-v7a.target = armeabi-v7a +armeabi-v7a.dir_affix = armeabi-v7a +armeabi-v7a.CONFIG = armeabi-v7a +armeabi-v7a.deployment_identifier = armeabi-v7a + +arm64-v8a.sdk = arm64-v8a +arm64-v8a.target = arm64-v8a +arm64-v8a.dir_affix = arm64-v8a +arm64-v8a.CONFIG = arm64-v8a +arm64-v8a.deployment_identifier = arm64-v8a + +x86.sdk = x86 +x86.target = x86 +x86.dir_affix = x86 +x86.CONFIG = x86 +x86.deployment_identifier = x86 + +x86_64.sdk = x86_64 +x86_64.target = x86_64 +x86_64.dir_affix = x86_64 +x86_64.CONFIG = x86_64 +x86_64.deployment_identifier = x86_64 -include(../common/android-base-tail.conf) +load(qt_config) diff --git a/mkspecs/android-g++/qmake.conf b/mkspecs/android-g++/qmake.conf deleted file mode 100644 index 451e12bc75..0000000000 --- a/mkspecs/android-g++/qmake.conf +++ /dev/null @@ -1,40 +0,0 @@ -# qmake configuration for building with android-g++ -MAKEFILE_GENERATOR = UNIX -QMAKE_PLATFORM = android -QMAKE_COMPILER = gcc - -CONFIG += android_install unversioned_soname unversioned_libname plugin_with_soname android_deployment_settings - -include(../common/linux.conf) -include(../common/gcc-base-unix.conf) -include(../common/android-base-head.conf) - -QMAKE_CC = $${CROSS_COMPILE}gcc -QMAKE_CXX = $${CROSS_COMPILE}g++ -QMAKE_LINK = $$QMAKE_CXX -QMAKE_CFLAGS = -D__ANDROID_API__=$$replace(ANDROID_PLATFORM, "android-", "") - -ANDROID_SOURCES_CXX_STL_LIBDIR = $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/$$NDK_TOOLCHAIN_VERSION/libs/$$ANDROID_TARGET_ARCH -ANDROID_STDCPP_PATH = $$ANDROID_SOURCES_CXX_STL_LIBDIR/libgnustl_shared.so -ANDROID_CXX_STL_LIBS = -lgnustl_shared -lgcc -ANDROID_USE_LLVM = false - -exists($$NDK_ROOT/sysroot/usr/include): \ - QMAKE_CFLAGS += --sysroot=$$NDK_ROOT/sysroot \ - -isystem $$NDK_ROOT/sysroot/usr/include/$$NDK_TOOLS_PREFIX -else: QMAKE_CFLAGS += --sysroot=$$ANDROID_PLATFORM_ROOT_PATH - -QMAKE_CFLAGS += -isystem $$NDK_ROOT/sources/cxx-stl/gnu-libstdc++/$$NDK_TOOLCHAIN_VERSION/include \ - -isystem $$ANDROID_SOURCES_CXX_STL_LIBDIR/include - -equals(ANDROID_TARGET_ARCH, armeabi)|equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ - LIBGCC_PATH_FULL = $$system("$$QMAKE_CXX -mthumb-interwork -print-libgcc-file-name") -else: \ - LIBGCC_PATH_FULL = $$system("$$QMAKE_CXX -print-libgcc-file-name") -ANDROID_SOURCES_CXX_STL_LIBDIR += $$dirname(LIBGCC_PATH_FULL) - -QMAKE_LIBDIR_POST = $$ANDROID_SOURCES_CXX_STL_LIBDIR -QMAKE_LFLAGS = --sysroot=$$ANDROID_PLATFORM_ROOT_PATH -equals(ANDROID_TARGET_ARCH, x86_64) QMAKE_LFLAGS += -L$$ANDROID_PLATFORM_ROOT_PATH/usr/lib64 - -include(../common/android-base-tail.conf) diff --git a/mkspecs/android-g++/qplatformdefs.h b/mkspecs/android-g++/qplatformdefs.h deleted file mode 100644 index 0b92709dd5..0000000000 --- a/mkspecs/android-g++/qplatformdefs.h +++ /dev/null @@ -1,177 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QPLATFORMDEFS_H -#define QPLATFORMDEFS_H - -// Get Qt defines/settings - -#include "qglobal.h" - -// Set any POSIX/XOPEN defines at the top of this file to turn on specific APIs - -// 1) need to reset default environment if _BSD_SOURCE is defined -// 2) need to specify POSIX thread interfaces explicitly in glibc 2.0 -// 3) it seems older glibc need this to include the X/Open stuff - -#include - -// We are hot - unistd.h should have turned on the specific APIs we requested - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#ifdef QT_LARGEFILE_SUPPORT -#define QT_STATBUF struct stat64 -#define QT_STATBUF4TSTAT struct stat64 -#define QT_STAT ::stat64 -#define QT_FSTAT ::fstat64 -#define QT_LSTAT ::lstat64 -#define QT_OPEN ::open64 -#define QT_TRUNCATE ::truncate64 -#define QT_FTRUNCATE ::ftruncate64 -#define QT_LSEEK ::lseek64 -#else -#define QT_STATBUF struct stat -#define QT_STATBUF4TSTAT struct stat -#define QT_STAT ::stat -#define QT_FSTAT ::fstat -#define QT_LSTAT ::lstat -#define QT_OPEN ::open -#define QT_TRUNCATE ::truncate -#define QT_FTRUNCATE ::ftruncate -#define QT_LSEEK ::lseek -#endif - -#ifdef QT_LARGEFILE_SUPPORT -#define QT_FOPEN ::fopen64 -#define QT_FSEEK ::fseeko64 -#define QT_FTELL ::ftello64 -#define QT_FGETPOS ::fgetpos64 -#define QT_FSETPOS ::fsetpos64 -#define QT_MMAP ::mmap64 -#define QT_FPOS_T fpos64_t -#define QT_OFF_T off64_t -#else -#define QT_FOPEN ::fopen -#define QT_FSEEK ::fseek -#define QT_FTELL ::ftell -#define QT_FGETPOS ::fgetpos -#define QT_FSETPOS ::fsetpos -#define QT_MMAP ::mmap -#define QT_FPOS_T fpos_t -#define QT_OFF_T long -#endif - -#define QT_STAT_REG S_IFREG -#define QT_STAT_DIR S_IFDIR -#define QT_STAT_MASK S_IFMT -#define QT_STAT_LNK S_IFLNK -#define QT_SOCKET_CONNECT ::connect -#define QT_SOCKET_BIND ::bind -#define QT_FILENO fileno -#define QT_CLOSE ::close -#define QT_READ ::read -#define QT_WRITE ::write -#define QT_ACCESS ::access -#define QT_GETCWD ::getcwd -#define QT_CHDIR ::chdir -#define QT_MKDIR ::mkdir -#define QT_RMDIR ::rmdir -#define QT_OPEN_LARGEFILE O_LARGEFILE -#define QT_OPEN_RDONLY O_RDONLY -#define QT_OPEN_WRONLY O_WRONLY -#define QT_OPEN_RDWR O_RDWR -#define QT_OPEN_CREAT O_CREAT -#define QT_OPEN_TRUNC O_TRUNC -#define QT_OPEN_APPEND O_APPEND -#define QT_OPEN_EXCL O_EXCL - -// Directory iteration -#define QT_DIR DIR - -#define QT_OPENDIR ::opendir -#define QT_CLOSEDIR ::closedir - -#if defined(QT_LARGEFILE_SUPPORT) \ - && defined(QT_USE_XOPEN_LFS_EXTENSIONS) \ - && !defined(QT_NO_READDIR64) -#define QT_DIRENT struct dirent64 -#define QT_READDIR ::readdir64 -#define QT_READDIR_R ::readdir64_r -#else -#define QT_DIRENT struct dirent -#define QT_READDIR ::readdir -#define QT_READDIR_R ::readdir_r -#endif - -#define QT_SOCKET_CONNECT ::connect -#define QT_SOCKET_BIND ::bind - - -#define QT_SIGNAL_RETTYPE void -#define QT_SIGNAL_ARGS int -#define QT_SIGNAL_IGNORE SIG_IGN - -#define QT_SOCKLEN_T socklen_t - -#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) -#define QT_SNPRINTF ::snprintf -#define QT_VSNPRINTF ::vsnprintf -#endif - -#endif // QPLATFORMDEFS_H diff --git a/mkspecs/common/android-base-head.conf b/mkspecs/common/android-base-head.conf deleted file mode 100644 index 7335b7f4cb..0000000000 --- a/mkspecs/common/android-base-head.conf +++ /dev/null @@ -1,71 +0,0 @@ -load(device_config) - -# In early configure setup; nothing useful to be done here. -isEmpty(DEFAULT_ANDROID_NDK_ROOT): return() - -NDK_ROOT = $$(ANDROID_NDK_ROOT) -isEmpty(NDK_ROOT): NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT - -NDK_HOST = $$(ANDROID_NDK_HOST) -isEmpty(NDK_HOST): NDK_HOST = $$DEFAULT_ANDROID_NDK_HOST - -ANDROID_PLATFORM = $$(ANDROID_NDK_PLATFORM) -isEmpty(ANDROID_PLATFORM): ANDROID_PLATFORM = $$DEFAULT_ANDROID_PLATFORM - -ANDROID_TARGET_ARCH = $$(ANDROID_TARGET_ARCH) -isEmpty(ANDROID_TARGET_ARCH): ANDROID_TARGET_ARCH = $$DEFAULT_ANDROID_TARGET_ARCH - -NDK_TOOLCHAIN_PREFIX = $$(ANDROID_NDK_TOOLCHAIN_PREFIX) -isEmpty(NDK_TOOLCHAIN_PREFIX) { - equals(ANDROID_TARGET_ARCH, x86): NDK_TOOLCHAIN_PREFIX = x86 - else: equals(ANDROID_TARGET_ARCH, x86_64): NDK_TOOLCHAIN_PREFIX = x86_64 - else: equals(ANDROID_TARGET_ARCH, arm64-v8a): NDK_TOOLCHAIN_PREFIX = aarch64-linux-android - else: NDK_TOOLCHAIN_PREFIX = arm-linux-androideabi -} - -NDK_TOOLS_PREFIX = $$(ANDROID_NDK_TOOLS_PREFIX) -isEmpty(NDK_TOOLS_PREFIX) { - equals(ANDROID_TARGET_ARCH, x86): NDK_TOOLS_PREFIX = i686-linux-android - else: equals(ANDROID_TARGET_ARCH, x86_64): NDK_TOOLS_PREFIX = x86_64-linux-android - else: equals(ANDROID_TARGET_ARCH, arm64-v8a): NDK_TOOLS_PREFIX = aarch64-linux-android - else: NDK_TOOLS_PREFIX = arm-linux-androideabi -} - -NDK_TOOLCHAIN_VERSION = $$(ANDROID_NDK_TOOLCHAIN_VERSION) -isEmpty(NDK_TOOLCHAIN_VERSION): NDK_TOOLCHAIN_VERSION = $$DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION - -equals(ANDROID_TARGET_ARCH, x86): ANDROID_ARCHITECTURE = x86 -else: equals(ANDROID_TARGET_ARCH, x86_64): ANDROID_ARCHITECTURE = x86_64 -else: equals(ANDROID_TARGET_ARCH, arm64-v8a): ANDROID_ARCHITECTURE = arm64 -else: ANDROID_ARCHITECTURE = arm - -!equals(NDK_TOOLCHAIN_VERSION, 4.4.3): ANDROID_CXXSTL_SUFFIX = -$$NDK_TOOLCHAIN_VERSION - -NDK_TOOLCHAIN = $$NDK_TOOLCHAIN_PREFIX-$$NDK_TOOLCHAIN_VERSION -NDK_TOOLCHAIN_PATH = $$NDK_ROOT/toolchains/$$NDK_TOOLCHAIN/prebuilt/$$NDK_HOST - - -ANDROID_SDK_ROOT = $$(ANDROID_SDK_ROOT) -isEmpty(ANDROID_SDK_ROOT): ANDROID_SDK_ROOT = $$DEFAULT_ANDROID_SDK_ROOT - -ANDROID_SDK_BUILD_TOOLS_REVISION = $$(ANDROID_BUILD_TOOLS_REVISION) -isEmpty(ANDROID_SDK_BUILD_TOOLS_REVISION) { - SDK_BUILD_TOOLS_REVISIONS = $$files($$ANDROID_SDK_ROOT/build-tools/*) - for (REVISION, SDK_BUILD_TOOLS_REVISIONS) { - BASENAME = $$basename(REVISION) - greaterThan(BASENAME, $$ANDROID_SDK_BUILD_TOOLS_REVISION): ANDROID_SDK_BUILD_TOOLS_REVISION = $$BASENAME - } -} - -CONFIG += $$ANDROID_PLATFORM - -ANDROID_PLATFORM_ROOT_PATH = $$NDK_ROOT/platforms/$$ANDROID_PLATFORM/arch-$$ANDROID_ARCHITECTURE/ - -CROSS_COMPILE = $$NDK_TOOLCHAIN_PATH/bin/$$NDK_TOOLS_PREFIX- - -QMAKE_PCH_OUTPUT_EXT = .gch - -QMAKE_CFLAGS_PRECOMPILE = -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} -QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} -QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} -QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE diff --git a/mkspecs/common/android-base-tail.conf b/mkspecs/common/android-base-tail.conf deleted file mode 100644 index c970379f28..0000000000 --- a/mkspecs/common/android-base-tail.conf +++ /dev/null @@ -1,82 +0,0 @@ -# In early configure setup; nothing useful to be done here. -isEmpty(DEFAULT_ANDROID_NDK_ROOT): return() - -# -fstack-protector-strong offers good protection against stack smashing attacks. -# It is (currently) enabled only on Android because we know for sure that Andoroid compilers supports it -QMAKE_CFLAGS += -fstack-protector-strong -DANDROID - -equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ - QMAKE_CFLAGS += -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -else: equals(ANDROID_TARGET_ARCH, armeabi): \ - QMAKE_CFLAGS += -march=armv5te -mtune=xscale -msoft-float - -QMAKE_CFLAGS_WARN_ON = -Wall -W -QMAKE_CFLAGS_WARN_OFF = -equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) { - CONFIG += optimize_size - QMAKE_CFLAGS_DEBUG = -g -marm -O0 - QMAKE_CFLAGS_RELEASE += -mthumb - QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb -} - -QMAKE_CFLAGS_SHLIB = -fPIC -QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses -QMAKE_CFLAGS_THREAD = -D_REENTRANT -QMAKE_CFLAGS_HIDESYMS = -fvisibility=hidden -QMAKE_CFLAGS_NEON = -mfpu=neon - -QMAKE_CFLAGS_GNUC99 = -std=gnu99 -QMAKE_CFLAGS_GNUC11 = -std=gnu11 -QMAKE_CXXFLAGS_CXX11 = -std=c++11 -QMAKE_CXXFLAGS_CXX14 = -std=c++14 -QMAKE_CXXFLAGS_CXX1Z = -std=c++1z -QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 -QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++14 -QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z - -QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON -QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF -QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE -QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO -QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG -QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB -QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC -QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD -QMAKE_CXXFLAGS_HIDESYMS = $$QMAKE_CFLAGS_HIDESYMS -fvisibility-inlines-hidden - -# modifications to linux.conf -QMAKE_AR = $${CROSS_COMPILE}ar cqs -QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy -QMAKE_NM = $${CROSS_COMPILE}nm -P - -QMAKE_STRIP = -#$${CROSS_COMPILE}strip - -QMAKE_RANLIB = $${CROSS_COMPILE}ranlib - -QMAKE_INCDIR_POST = -QMAKE_INCDIR_X11 = -QMAKE_LIBDIR_X11 = -QMAKE_INCDIR_OPENGL = -QMAKE_LIBDIR_OPENGL = - -QMAKE_LINK_SHLIB = $$QMAKE_LINK -QMAKE_LFLAGS_APP = -Wl,--no-undefined -Wl,-z,noexecstack -shared -QMAKE_LFLAGS_SHLIB = -Wl,--no-undefined -Wl,-z,noexecstack -shared -QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB -QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined -QMAKE_LFLAGS_RPATH = -Wl,-rpath= -QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link= - -QMAKE_LIBS_PRIVATE = $$ANDROID_CXX_STL_LIBS -llog -lz -lm -ldl -lc -QMAKE_LIBS_X11 = -QMAKE_LIBS_THREAD = -QMAKE_LIBS_EGL = -lEGL -QMAKE_LIBS_OPENGL = -QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 - - -!exists($$NDK_ROOT): error("You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK.") - -load(qt_config) diff --git a/mkspecs/features/android/android.prf b/mkspecs/features/android/android.prf index 0e6f4a4592..a12c17c4ed 100644 --- a/mkspecs/features/android/android.prf +++ b/mkspecs/features/android/android.prf @@ -16,17 +16,22 @@ APK_PATH = $$shell_path($$OUT_PWD/android-build/$${TARGET}.apk) } QMAKE_EXTRA_TARGETS *= apk apk_install_target -contains(TEMPLATE, ".*app") { - !android_app { - !contains(TARGET, ".so"): TARGET = lib$${TARGET}.so - QMAKE_LFLAGS += -Wl,-soname,$$shell_quote($$TARGET) +build_pass { + contains(TEMPLATE, ".*app") { + !android_app { + !contains(TARGET, ".so") { + single_arch:TARGET = lib$${TARGET}.so + else:TARGET = lib$${TARGET}_$${QT_ARCH}.so + } + QMAKE_LFLAGS += -Wl,-soname,$$shell_quote($$TARGET) - android_install { - target.path=/libs/$$ANDROID_TARGET_ARCH/ - INSTALLS *= target + android_install { + target.path=/libs/$$ANDROID_TARGET_ARCH/ + INSTALLS *= target + } } + } else: contains(TEMPLATE, "lib"):!static:!QTDIR_build:android_install { + target.path = /libs/$$ANDROID_TARGET_ARCH/ + INSTALLS *= target } -} else: contains(TEMPLATE, "lib"):!static:!QTDIR_build:android_install { - target.path = /libs/$$ANDROID_TARGET_ARCH/ - INSTALLS *= target } diff --git a/mkspecs/features/android/android_deployment_settings.prf b/mkspecs/features/android/android_deployment_settings.prf index 48943fa0f4..998a985bb5 100644 --- a/mkspecs/features/android/android_deployment_settings.prf +++ b/mkspecs/features/android/android_deployment_settings.prf @@ -17,32 +17,21 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded { isEmpty(NDK_ROOT): NDK_ROOT = $$DEFAULT_ANDROID_NDK_ROOT FILE_CONTENT += " \"ndk\": $$emitString($$NDK_ROOT)," - equals(ANDROID_USE_LLVM, true) { - FILE_CONTENT += " \"toolchain-prefix\": \"llvm\"," - FILE_CONTENT += " \"tool-prefix\": \"llvm\"," - } else { - NDK_TOOLCHAIN_PREFIX = $$(ANDROID_NDK_TOOLCHAIN_PREFIX) - isEmpty(NDK_TOOLCHAIN_PREFIX) { - equals(ANDROID_TARGET_ARCH, x86): NDK_TOOLCHAIN_PREFIX = x86 - else: equals(ANDROID_TARGET_ARCH, x86_64): NDK_TOOLCHAIN_PREFIX = x86_64 - else: equals(ANDROID_TARGET_ARCH, arm64-v8a): NDK_TOOLCHAIN_PREFIX = aarch64-linux-android - else: NDK_TOOLCHAIN_PREFIX = arm-linux-androideabi - } - FILE_CONTENT += " \"toolchain-prefix\": $$emitString($$NDK_TOOLCHAIN_PREFIX)," - FILE_CONTENT += " \"tool-prefix\": $$emitString($$NDK_TOOLS_PREFIX)," - } - - NDK_TOOLCHAIN_VERSION = $$(ANDROID_NDK_TOOLCHAIN_VERSION) - isEmpty(NDK_TOOLCHAIN_VERSION): NDK_TOOLCHAIN_VERSION = $$DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION - FILE_CONTENT += " \"toolchain-version\": $$emitString($$NDK_TOOLCHAIN_VERSION)," + FILE_CONTENT += " \"toolchain-prefix\": \"llvm\"," + FILE_CONTENT += " \"tool-prefix\": \"llvm\"," NDK_HOST = $$(ANDROID_NDK_HOST) isEmpty(NDK_HOST): NDK_HOST = $$DEFAULT_ANDROID_NDK_HOST FILE_CONTENT += " \"ndk-host\": $$emitString($$NDK_HOST)," - ANDROID_TARGET_ARCH = $$(ANDROID_TARGET_ARCH) - isEmpty(ANDROID_TARGET_ARCH): ANDROID_TARGET_ARCH = $$DEFAULT_ANDROID_TARGET_ARCH - FILE_CONTENT += " \"target-architecture\": $$emitString($$ANDROID_TARGET_ARCH)," + for (arch, ANDROID_ABIS) { + equals(arch, x86): libs_arch = i686-linux-android + else: equals(arch, x86_64): libs_arch = x86_64-linux-android + else: equals(arch, arm64-v8a): libs_arch = aarch64-linux-android + else: libs_arch = arm-linux-androideabi + ARCHS += "$$emitString($$arch):$$emitString($$libs_arch)" + } + FILE_CONTENT += " \"architectures\": {$$join(ARCHS,", ")}," # Explicitly set qt dependencies of application for deployment !isEmpty(ANDROID_DEPLOYMENT_DEPENDENCIES): \ @@ -74,9 +63,8 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded { QML_ROOT_PATH = $$_PRO_FILE_PWD_ FILE_CONTENT += " \"qml-root-path\": $$emitString($$QML_ROOT_PATH)," FILE_CONTENT += " \"stdcpp-path\": $$emitString($$ANDROID_STDCPP_PATH)," - FILE_CONTENT += " \"useLLVM\": $$ANDROID_USE_LLVM," - - FILE_CONTENT += " \"application-binary\": $$emitString($$absolute_path($$DESTDIR, $$OUT_PWD)/$$TARGET)" + FILE_CONTENT += "" + FILE_CONTENT += " \"application-binary\": $$emitString($$TARGET)" FILE_CONTENT += "}" isEmpty(ANDROID_DEPLOYMENT_SETTINGS_FILE): ANDROID_DEPLOYMENT_SETTINGS_FILE = $$OUT_PWD/android-$$TARGET-deployment-settings.json diff --git a/mkspecs/features/android/default_pre.prf b/mkspecs/features/android/default_pre.prf new file mode 100644 index 0000000000..d4f84a8fcc --- /dev/null +++ b/mkspecs/features/android/default_pre.prf @@ -0,0 +1,76 @@ +load(default_pre) + +build_pass:armeabi-v7a { + QT_ARCH = armeabi-v7a +} else:build_pass:arm64-v8a { + QT_ARCH = arm64-v8a +} else:build_pass:x86 { + QT_ARCH = x86 +} else:build_pass:x86_64 { + QT_ARCH = x86_64 +} else { + # default architecture + QT_ARCH = arm64-v8a +} + +DEFAULT_ANDROID_TARGET_ARCH=$${QT_ARCH} + +ANDROID_TARGET_ARCH = $$(ANDROID_TARGET_ARCH) +isEmpty(ANDROID_TARGET_ARCH): ANDROID_TARGET_ARCH = $$DEFAULT_ANDROID_TARGET_ARCH + +# Follow https://android.googlesource.com/platform/ndk/+/ndk-release-r20/docs/BuildSystemMaintainers.md + +equals(ANDROID_TARGET_ARCH, armeabi-v7a): \ + QMAKE_CFLAGS = -target armv7a-linux-androideabi$$replace(ANDROID_PLATFORM, "android-", "") +else: equals(ANDROID_TARGET_ARCH, arm64-v8a): \ + QMAKE_CFLAGS = -target aarch64-linux-android$$replace(ANDROID_PLATFORM, "android-", "") +else: equals(ANDROID_TARGET_ARCH, x86): \ + QMAKE_CFLAGS = -target i686-linux-android$$replace(ANDROID_PLATFORM, "android-", "") -mstackrealign +else: equals(ANDROID_TARGET_ARCH, x86_64): \ + QMAKE_CFLAGS = -target x86_64-linux-android$$replace(ANDROID_PLATFORM, "android-", "") + +QMAKE_CFLAGS += -fno-limit-debug-info + +QMAKE_LINK = $$QMAKE_CXX $$QMAKE_CFLAGS + +ANDROID_STDCPP_PATH = $$NDK_LLVM_PATH/sysroot/usr/lib/ + +# -fstack-protector-strong offers good protection against stack smashing attacks. +# It is (currently) enabled only on Android because we know for sure that Android compilers supports it +QMAKE_CFLAGS += -fPIC -fstack-protector-strong -DANDROID + + +equals(ANDROID_TARGET_ARCH, armeabi-v7a) | equals(ANDROID_TARGET_ARCH, armeabi) { + CONFIG += optimize_size + QMAKE_CFLAGS_DEBUG = -g -marm -O0 + QMAKE_CFLAGS_RELEASE += -mthumb + QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -mthumb +} + +QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO + +QMAKE_CXXFLAGS = $$QMAKE_CFLAGS +QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON +QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF +QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE +QMAKE_CXXFLAGS_DEBUG = $$QMAKE_CFLAGS_DEBUG +QMAKE_CXXFLAGS_SHLIB = $$QMAKE_CFLAGS_SHLIB +QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC +QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD + +QMAKE_LIBS_EGL = -lEGL +QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 + +# modifications to linux.conf +QMAKE_AR = $${CROSS_COMPILE}ar cqs +QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy +QMAKE_NM = $${CROSS_COMPILE}nm -P + +QMAKE_STRIP = +#$${CROSS_COMPILE}strip + +QMAKE_RANLIB = $${CROSS_COMPILE}ranlib +QMAKE_LINK_SHLIB = $$QMAKE_LINK +QMAKE_LFLAGS = + +QMAKE_LIBS_PRIVATE = -llog -lz -lm -ldl -lc diff --git a/mkspecs/features/android/resolve_config.prf b/mkspecs/features/android/resolve_config.prf new file mode 100644 index 0000000000..c542017e31 --- /dev/null +++ b/mkspecs/features/android/resolve_config.prf @@ -0,0 +1,10 @@ +load(resolve_config) + +!host_build:!single_arch:!java:android { + isEmpty(ANDROID_ABIS): ANDROID_ABIS = $$ALL_ANDROID_ABIS + + ALL_ABIS = $$join(ANDROID_ABIS, _and_) + CONFIG += $$ALL_ABIS build_all + addExclusiveBuildsProper($$ALL_ABIS, $$ANDROID_ABIS) + unset(ALL_ABIS) +} diff --git a/mkspecs/features/exclusive_builds_post.prf b/mkspecs/features/exclusive_builds_post.prf index 936085af0b..a9c341a2d7 100644 --- a/mkspecs/features/exclusive_builds_post.prf +++ b/mkspecs/features/exclusive_builds_post.prf @@ -1,4 +1,6 @@ +load(qt_functions) + contains(TEMPLATE, subdirs) { for(build, QMAKE_EXCLUSIVE_BUILDS) { prepareRecursiveTarget($$build) diff --git a/mkspecs/features/qmake_use.prf b/mkspecs/features/qmake_use.prf index 64faa4f215..ecb4f7ed41 100644 --- a/mkspecs/features/qmake_use.prf +++ b/mkspecs/features/qmake_use.prf @@ -22,7 +22,11 @@ for(ever) { !defined(QMAKE_LIBS_$$nu, var): \ error("Library '$$lower($$replace(nu, _, -))' is not defined.") - debug: \ + android { + ABI_LIBS = $$eval(QMAKE_LIBS_$${nu}_$${QT_ARCH}) + isEmpty(ABI_LIBS): ABI_LIBS = $$eval(QMAKE_LIBS_$${nu}) + LIBS$${suffix} += $$ABI_LIBS + } else: debug: \ LIBS$${suffix} += $$eval(QMAKE_LIBS_$${nu}_DEBUG) $$eval(QMAKE_LIBS_$$nu) else: \ LIBS$${suffix} += $$eval(QMAKE_LIBS_$${nu}_RELEASE) $$eval(QMAKE_LIBS_$$nu) diff --git a/mkspecs/features/qt_android_deps.prf b/mkspecs/features/qt_android_deps.prf index c172ca8c4e..e50c24b966 100644 --- a/mkspecs/features/qt_android_deps.prf +++ b/mkspecs/features/qt_android_deps.prf @@ -16,7 +16,7 @@ ANDROID_DEPENDS_DIR = $$MODULE_BASE_OUTDIR/lib/ DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml -!build_pass { +build_pass:!isEmpty(QT_ARCH): { !isEmpty(MODULE_PLUGIN_TYPES) { for(PLUGIN_TYPE, MODULE_PLUGIN_TYPES) { ANDROID_BUNDLED_FILES += "plugins/$$PLUGIN_TYPE" @@ -46,6 +46,8 @@ DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml EXTENDS = $$section(LIB_FILE, ":", 1, 1) !isEmpty(EXTENDS): EXTENDS = "extends=\"$$EXTENDS\"" LIB_FILE = $$section(LIB_FILE, ":", 0, 0) + LIB_FILE = $$replace(LIB_FILE,".so", "_$${QT_ARCH}.so") + !isEmpty(EXTENDS): EXTENDS = $$replace(EXTENDS,".so", "_$${QT_ARCH}.so") FILE_CONTENT += "" } } @@ -54,12 +56,14 @@ DEPENDENCY_FILE = $$ANDROID_DEPENDS_DIR$$TARGET-android-dependencies.xml for(REPLACEMENT, ANDROID_LIB_DEPENDENCY_REPLACEMENTS) { REPLACEMENT_FILE = $$section(REPLACEMENT, ":", 0, 0) LIB_FILE = $$section(REPLACEMENT, ":", 1, 1) + REPLACEMENT_FILE = $$replace(REPLACEMENT_FILE,".so", "_$${QT_ARCH}.so") FILE_CONTENT += "" } } !isEmpty(ANDROID_BUNDLED_FILES) { for (BUNDLED_FILE, ANDROID_BUNDLED_FILES) { + BUNDLED_FILE = $$replace(BUNDLED_FILE,".so", "_$${QT_ARCH}.so") FILE_CONTENT += "" } } diff --git a/mkspecs/features/qt_configure.prf b/mkspecs/features/qt_configure.prf index 2b86caebd0..1219fe1443 100644 --- a/mkspecs/features/qt_configure.prf +++ b/mkspecs/features/qt_configure.prf @@ -560,7 +560,7 @@ defineTest(qtConfResolveLibs) { } else { paths += $$lp } - } else: contains(l, "^-l.*") { + } else: !android: contains(l, "^-l.*") { lib = $$replace(l, "^-l", ) lcan = integrity:contains(lib, "^.*\\.a") { diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 1903e509c8..ede494eec1 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -1,7 +1,8 @@ defineReplace(qtPlatformTargetSuffix) { suffix = - CONFIG(debug, debug|release) { + android: return($${suffix}_$${QT_ARCH}) + else: CONFIG(debug, debug|release) { !debug_and_release|build_pass { mac: return($${suffix}_debug) win32: return($${suffix}d) diff --git a/mkspecs/features/qt_helper_lib.prf b/mkspecs/features/qt_helper_lib.prf index 2cb54fc547..216c24c7aa 100644 --- a/mkspecs/features/qt_helper_lib.prf +++ b/mkspecs/features/qt_helper_lib.prf @@ -29,19 +29,19 @@ DLLDESTDIR = $$MODULE_BASE_OUTDIR/bin THE_TARGET = $$qt5LibraryTarget($$TARGET) -!build_pass { - MODULE = $$replace(TARGET, ^qt, ) - MODULE ~= s,-,_, - MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_ext_$${MODULE}.pri - ucmodule = $$upper($$MODULE) +MODULE = $$replace(TARGET, ^qt, ) +MODULE ~= s,-,_, +MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules/qt_ext_$${MODULE}.pri +ucmodule = $$upper($$MODULE) +win32|CONFIG(static, static|shared) { + prefix = $$QMAKE_PREFIX_STATICLIB + suffix = $$QMAKE_EXTENSION_STATICLIB +} else { + prefix = $$QMAKE_PREFIX_SHLIB + suffix = $$QMAKE_EXTENSION_SHLIB +} - win32|CONFIG(static, static|shared) { - prefix = $$QMAKE_PREFIX_STATICLIB - suffix = $$QMAKE_EXTENSION_STATICLIB - } else { - prefix = $$QMAKE_PREFIX_SHLIB - suffix = $$QMAKE_EXTENSION_SHLIB - } +!build_pass { CC_USES = LD_USES = for (use, QMAKE_USE) { @@ -58,7 +58,9 @@ THE_TARGET = $$qt5LibraryTarget($$TARGET) "QMAKE_DEPENDS_$${ucmodule}_LD =$$join(LD_USES, " ", " ")" \ "QMAKE_INCDIR_$${ucmodule} = $$val_escape(MODULE_INCLUDEPATH)" \ "QMAKE_DEFINES_$${ucmodule} = $$val_escape(MODULE_DEFINES)" - debug_and_release { + android { + MODULE_PRI_CONT += "QMAKE_LIBS_$${ucmodule} =" + } else: debug_and_release { win32: \ MODULE_DEBUG_LIBS = $$DESTDIR/$$prefix$${TARGET}d.$$suffix else: darwin: \ @@ -76,6 +78,11 @@ THE_TARGET = $$qt5LibraryTarget($$TARGET) "QMAKE_LIBS_$${ucmodule} = $$val_escape(MODULE_LIBS)" } write_file($$MODULE_PRI, MODULE_PRI_CONT)|error() +} else: android { + ABI_TARGET = $$qt5LibraryTarget($$TARGET) + ABI_MODULE_LIBS = $$DESTDIR/$$prefix$${ABI_TARGET}.$$suffix + MODULE_PRI_CONT = "QMAKE_LIBS_$${ucmodule}_$${QT_ARCH} = $$val_escape(ABI_MODULE_LIBS)" + write_file($$MODULE_PRI, MODULE_PRI_CONT, append)|error() } TARGET = $$THE_TARGET diff --git a/mkspecs/features/qt_module_pris.prf b/mkspecs/features/qt_module_pris.prf index e892f83432..719caf3d4a 100644 --- a/mkspecs/features/qt_module_pris.prf +++ b/mkspecs/features/qt_module_pris.prf @@ -51,13 +51,12 @@ defineReplace(qtGetExportsForModule) { return($$result) } -defineReplace(qtExportLibsForModule) { +defineReplace(qtExportDepsForModule) { result = for (lib, QT.$${1}.libraries) { NAME = $$upper($$lib) vars = \ QMAKE_DEPENDS_$${NAME}_CC QMAKE_DEPENDS_$${NAME}_LD \ - QMAKE_LIBS_$$NAME QMAKE_LIBS_$${NAME}_DEBUG QMAKE_LIBS_$${NAME}_RELEASE \ QMAKE_DEFINES_$$NAME QMAKE_INCDIR_$$NAME for (var, vars) { expvar = $$var @@ -71,6 +70,24 @@ defineReplace(qtExportLibsForModule) { return($$result) } +defineReplace(qtExportLibsForModule) { + result = + for (lib, QT.$${1}.libraries) { + NAME = $$upper($$lib) + vars = \ + QMAKE_LIBS_$$NAME QMAKE_LIBS_$${NAME}_DEBUG QMAKE_LIBS_$${NAME}_RELEASE + for (var, vars) { + expvar = $$var + expvar ~= s/^QMAKE_/QMAKE_EXPORT_/ + defined($$expvar, var):equals($$expvar, -): next() + !defined($$expvar, var): expvar = $$var + defined($$expvar, var): \ + result += "$$var$${2} = $$val_escape($$expvar)" + } + } + return($$result) +} + !build_pass { # Create a module .pri file @@ -160,6 +177,7 @@ defineReplace(qtExportLibsForModule) { "QT.$${MODULE}_private.module_config =$$join(module_build_type, " ", " ")" \ $$qtGetFeaturesForModule($${MODULE}_private) \ "" \ + $$qtExportDepsForModule($${MODULE}_private) \ $$qtExportLibsForModule($${MODULE}_private) write_file($$MODULE_PRIVATE_PRI, MODULE_PRIVATE_PRI_CONT)|error() } @@ -220,7 +238,10 @@ defineReplace(qtExportLibsForModule) { } cache(QT_MODULES, transient) -} # !build_pass +} else:android:!no_private_module:!internal_module { + MODULE_PRIVATE_PRI_CONT = $$qtExportLibsForModule($${MODULE}_private, _$${QT_ARCH}) + write_file($$MODULE_PRIVATE_PRI, MODULE_PRIVATE_PRI_CONT, append)|error() +} # Schedule the regular .pri file for installation CONFIG += qt_install_module diff --git a/src/3rdparty/gradle/gradle/wrapper/gradle-wrapper.properties b/src/3rdparty/gradle/gradle/wrapper/gradle-wrapper.properties index bf3de21830..4b7e1f3d38 100644 --- a/src/3rdparty/gradle/gradle/wrapper/gradle-wrapper.properties +++ b/src/3rdparty/gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/android/jar/jar.pro b/src/android/jar/jar.pro index ac6fc79968..24a83d56a1 100644 --- a/src/android/jar/jar.pro +++ b/src/android/jar/jar.pro @@ -1,6 +1,7 @@ TARGET = QtAndroid CONFIG += java + DESTDIR = $$[QT_INSTALL_PREFIX/get]/jar PATHPREFIX = $$PWD/src/org/qtproject/qt5/android/ diff --git a/src/android/java/java.pro b/src/android/java/java.pro index 9d37eb1026..7f0dfa8a1b 100644 --- a/src/android/java/java.pro +++ b/src/android/java/java.pro @@ -1,3 +1,5 @@ +CONFIG += single_arch + CONFIG -= qt android_install javaresources.files = \ diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java index d3b0600b2f..45941e8ed8 100644 --- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java +++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java @@ -1,5 +1,5 @@ /* - Copyright (c) 2016, BogDan Vatra + Copyright (c) 2019, BogDan Vatra Contact: http://www.qt.io/licensing/ Commercial License Usage @@ -63,9 +63,12 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.lang.reflect.Array; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; +import java.util.List; import dalvik.system.DexClassLoader; @@ -85,7 +88,6 @@ public abstract class QtLoader { public static final String ENVIRONMENT_VARIABLES_KEY = "environment.variables"; public static final String APPLICATION_PARAMETERS_KEY = "application.parameters"; public static final String BUNDLED_LIBRARIES_KEY = "bundled.libraries"; - public static final String QT_LIBS_RESOURCE_ID_KEY = "android.app.qt_libs_resource_id"; public static final String BUNDLED_IN_LIB_RESOURCE_ID_KEY = "android.app.bundled_in_lib_resource_id"; public static final String BUNDLED_IN_ASSETS_RESOURCE_ID_KEY = "android.app.bundled_in_assets_resource_id"; public static final String MAIN_LIBRARY_KEY = "main.library"; @@ -153,7 +155,7 @@ public abstract class QtLoader { // this repository is used to push a new release, and should be used to test your application. // * unstable - unstable repository, DO NOT use this repository in production, // this repository is used to push Qt snapshots. - public String[] m_qtLibs = null; // required qt libs + public ArrayList m_qtLibs = null; // required qt libs public int m_displayDensity = -1; private ContextWrapper m_context; protected ComponentInfo m_contextInfo; @@ -191,6 +193,36 @@ public abstract class QtLoader { } // Implement in subclass + private final List supportedAbis = Arrays.asList(Build.SUPPORTED_ABIS); + private String preferredAbi = null; + + private ArrayList prefferedAbiLibs(String []libs) + { + HashMap> abisLibs = new HashMap<>(); + for (String lib : libs) { + String[] archLib = lib.split(";", 2); + if (preferredAbi != null && !archLib[0].equals(preferredAbi)) + continue; + if (!abisLibs.containsKey(archLib[0])) + abisLibs.put(archLib[0], new ArrayList()); + abisLibs.get(archLib[0]).add(archLib[1]); + } + + if (preferredAbi != null) { + if (abisLibs.containsKey(preferredAbi)) { + return abisLibs.get(preferredAbi); + } + return new ArrayList(); + } + + for (String abi: supportedAbis) { + if (abisLibs.containsKey(abi)) { + preferredAbi = abi; + return abisLibs.get(abi); + } + } + return new ArrayList(); + } // this function is used to load and start the loader private void loadApplication(Bundle loaderParams) @@ -218,12 +250,14 @@ public abstract class QtLoader { // add all bundled Qt libs to loader params ArrayList libs = new ArrayList(); - if (m_contextInfo.metaData.containsKey("android.app.bundled_libs_resource_id")) - libs.addAll(Arrays.asList(m_context.getResources().getStringArray(m_contextInfo.metaData.getInt("android.app.bundled_libs_resource_id")))); + if (m_contextInfo.metaData.containsKey("android.app.bundled_libs_resource_id")) { + int resourceId = m_contextInfo.metaData.getInt("android.app.bundled_libs_resource_id"); + libs.addAll(prefferedAbiLibs(m_context.getResources().getStringArray(resourceId))); + } String libName = null; if (m_contextInfo.metaData.containsKey("android.app.lib_name")) { - libName = m_contextInfo.metaData.getString("android.app.lib_name"); + libName = m_contextInfo.metaData.getString("android.app.lib_name") + "_" + preferredAbi; loaderParams.putString(MAIN_LIBRARY_KEY, libName); //main library contains main() function } @@ -278,7 +312,7 @@ public abstract class QtLoader { try { if (m_service != null) { Bundle parameters = new Bundle(); - parameters.putStringArray(REQUIRED_MODULES_KEY, m_qtLibs); + parameters.putStringArray(REQUIRED_MODULES_KEY, (String[]) m_qtLibs.toArray()); parameters.putString(APPLICATION_TITLE_KEY, getTitle()); parameters.putInt(MINIMUM_MINISTRO_API_KEY, MINISTRO_API_LEVEL); parameters.putInt(MINIMUM_QT_VERSION_KEY, QT_VERSION); @@ -464,7 +498,8 @@ public abstract class QtLoader { // why can't we load the plugins directly from libs ?!?! String key = BUNDLED_IN_LIB_RESOURCE_ID_KEY; if (m_contextInfo.metaData.containsKey(key)) { - String[] list = m_context.getResources().getStringArray(m_contextInfo.metaData.getInt(key)); + int resourceId = m_contextInfo.metaData.getInt(key); + ArrayList list = prefferedAbiLibs(m_context.getResources().getStringArray(resourceId)); for (String bundledImportBinary : list) { String[] split = bundledImportBinary.split(":"); @@ -603,7 +638,7 @@ public abstract class QtLoader { if (m_contextInfo.metaData.containsKey("android.app.qt_libs_resource_id")) { int resourceId = m_contextInfo.metaData.getInt("android.app.qt_libs_resource_id"); - m_qtLibs = m_context.getResources().getStringArray(resourceId); + m_qtLibs = prefferedAbiLibs(m_context.getResources().getStringArray(resourceId)); } if (m_contextInfo.metaData.containsKey("android.app.use_local_qt_libs") @@ -617,6 +652,7 @@ public abstract class QtLoader { apkDeployFromSystem = true; String libsDir = null; + String bundledLibsDir = null; if (apkDeployFromSystem) { String systemLibsPrefix = SYSTEM_LIB_PATH; if (m_contextInfo.metaData.containsKey("android.app.system_libs_prefix")) { @@ -633,8 +669,11 @@ public abstract class QtLoader { } else { String nativeLibraryPrefix = m_context.getApplicationInfo().nativeLibraryDir + "/"; File nativeLibraryDir = new File(nativeLibraryPrefix); - if (nativeLibraryDir.exists() && nativeLibraryDir.isDirectory() && nativeLibraryDir.list().length > 0) + if (nativeLibraryDir.exists() && nativeLibraryDir.isDirectory() && nativeLibraryDir.list().length > 0) { libsDir = nativeLibraryPrefix; + bundledLibsDir = nativeLibraryPrefix; + } + } if (apkDeployFromSystem && libsDir == null) @@ -643,8 +682,8 @@ public abstract class QtLoader { if (m_qtLibs != null) { String libPrefix = libsDir + "lib"; - for (int i = 0; i < m_qtLibs.length; i++) - libraryList.add(libPrefix + m_qtLibs[i] + ".so"); + for (String lib : m_qtLibs) + libraryList.add(libPrefix + lib + ".so"); } if (m_contextInfo.metaData.containsKey("android.app.bundle_local_qt_libs") @@ -654,22 +693,26 @@ public abstract class QtLoader { String pluginsPrefix = dataPath + "qt-reserved-files/"; if (libsDir == null) - throw new Exception(""); + throw new Exception("Invalid libsDir"); cleanOldCacheIfNecessary(dataPath, pluginsPrefix); extractBundledPluginsAndImports(pluginsPrefix, libsDir); if (m_contextInfo.metaData.containsKey(BUNDLED_IN_LIB_RESOURCE_ID_KEY)) { - String[] extraLibs = m_contextInfo.metaData.getString("android.app.load_local_libs").split(":"); - for (String lib : extraLibs) { - if (!lib.isEmpty()) - libraryList.add(pluginsPrefix + lib); + int resourceId = m_contextInfo.metaData.getInt("android.app.load_local_libs_resource_id"); + for (String libs : prefferedAbiLibs(m_context.getResources().getStringArray(resourceId))) { + for (String lib : libs.split(":")) { + if (!lib.isEmpty()) + libraryList.add(libsDir + lib); + } } } ENVIRONMENT_VARIABLES += "\tQML2_IMPORT_PATH=" + pluginsPrefix + "/qml" + "\tQML_IMPORT_PATH=" + pluginsPrefix + "/imports" + "\tQT_PLUGIN_PATH=" + pluginsPrefix + "/plugins"; + if (bundledLibsDir != null) + ENVIRONMENT_VARIABLES += "\tQT_BUNDLED_LIBS_PATH=" + bundledLibsDir; } Bundle loaderParams = new Bundle(); diff --git a/src/android/templates/AndroidManifest.xml b/src/android/templates/AndroidManifest.xml index aed8a3c888..75da314c2b 100644 --- a/src/android/templates/AndroidManifest.xml +++ b/src/android/templates/AndroidManifest.xml @@ -12,7 +12,7 @@ - + + - + diff --git a/src/android/templates/build.gradle b/src/android/templates/build.gradle index 8d4aa63153..d2da115936 100644 --- a/src/android/templates/build.gradle +++ b/src/android/templates/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.2.0' + classpath 'com.android.tools.build:gradle:3.5.0' } } diff --git a/src/android/templates/res/values/libs.xml b/src/android/templates/res/values/libs.xml index 4009a7785a..db777bf433 100644 --- a/src/android/templates/res/values/libs.xml +++ b/src/android/templates/res/values/libs.xml @@ -1,7 +1,7 @@ - https://download.qt.io/ministro/android/qt5/qt-5.9 + https://download.qt.io/ministro/android/qt5/qt-5.14 + + + + + + diff --git a/src/android/templates/templates.pro b/src/android/templates/templates.pro index 55387f3af7..9a64251ee3 100644 --- a/src/android/templates/templates.pro +++ b/src/android/templates/templates.pro @@ -1,3 +1,5 @@ +CONFIG += single_arch + CONFIG -= qt android_install templates.files = \ diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index b9bcc70e17..121db51eb5 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -12,6 +12,7 @@ CONFIG += qt_tracepoints CONFIG += $$MODULE_CONFIG DEFINES += $$MODULE_DEFINES +android: DEFINES += LIBS_SUFFIX='\\"_$${QT_ARCH}.so\\"' DEFINES += QT_NO_USING_NAMESPACE QT_NO_FOREACH msvc:equals(QT_ARCH, i386): QMAKE_LFLAGS += /BASE:0x67000000 diff --git a/src/corelib/plugin/qlibrary_unix.cpp b/src/corelib/plugin/qlibrary_unix.cpp index 85ada9197c..44d5513163 100644 --- a/src/corelib/plugin/qlibrary_unix.cpp +++ b/src/corelib/plugin/qlibrary_unix.cpp @@ -100,6 +100,9 @@ QStringList QLibraryPrivate::suffixes_sys(const QString& fullVersion) suffixes << QLatin1String(".so.%1").arg(fullVersion); } else { suffixes << QLatin1String(".so"); +# ifdef Q_OS_ANDROID + suffixes << QStringLiteral(LIBS_SUFFIX); +# endif } #endif # ifdef Q_OS_MAC @@ -226,7 +229,14 @@ bool QLibraryPrivate::load_sys() } else { attempt = path + prefixes.at(prefix) + name + suffixes.at(suffix); } + pHnd = dlopen(QFile::encodeName(attempt), dlFlags); +#ifdef Q_OS_ANDROID + if (!pHnd) { + auto attemptFromBundle = attempt; + pHnd = dlopen(QFile::encodeName(attemptFromBundle.replace(QLatin1Char('/'), QLatin1Char('_'))), dlFlags); + } +#endif if (!pHnd && fileName.startsWith(QLatin1Char('/')) && QFile::exists(attempt)) { // We only want to continue if dlopen failed due to that the shared library did not exist. diff --git a/src/gui/image/image.pri b/src/gui/image/image.pri index 70fccbc378..3b2ced3f58 100644 --- a/src/gui/image/image.pri +++ b/src/gui/image/image.pri @@ -82,7 +82,18 @@ qtConfig(png) { } # SIMD -SSSE3_SOURCES += image/qimage_ssse3.cpp -NEON_SOURCES += image/qimage_neon.cpp -MIPS_DSPR2_SOURCES += image/qimage_mips_dspr2.cpp -MIPS_DSPR2_ASM += image/qimage_mips_dspr2_asm.S +!android { + SSSE3_SOURCES += image/qimage_ssse3.cpp + NEON_SOURCES += image/qimage_neon.cpp + MIPS_DSPR2_SOURCES += image/qimage_mips_dspr2.cpp + MIPS_DSPR2_ASM += image/qimage_mips_dspr2_asm.S +} else { + # see https://developer.android.com/ndk/guides/abis + arm64-v8a { + SOURCES += image/qimage_neon.cpp + } + x86 | x86_64 { + DEFINES += QT_COMPILER_SUPPORTS_SSE2 QT_COMPILER_SUPPORTS_SSE3 QT_COMPILER_SUPPORTS_SSSE3 + SOURCES += image/qimage_ssse3.cpp + } +} diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri index 972cf387ff..fcf6488edd 100644 --- a/src/gui/painting/painting.pri +++ b/src/gui/painting/painting.pri @@ -135,23 +135,41 @@ gcc:equals(QT_GCC_MAJOR_VERSION, 5) { NO_PCH_SOURCES += painting/qdrawhelper.cpp } -SSE2_SOURCES += painting/qdrawhelper_sse2.cpp -SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp -SSE4_1_SOURCES += painting/qdrawhelper_sse4.cpp \ - painting/qimagescale_sse4.cpp -ARCH_HASWELL_SOURCES += painting/qdrawhelper_avx2.cpp +!android { + SSE2_SOURCES += painting/qdrawhelper_sse2.cpp + SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp + SSE4_1_SOURCES += painting/qdrawhelper_sse4.cpp \ + painting/qimagescale_sse4.cpp + ARCH_HASWELL_SOURCES += painting/qdrawhelper_avx2.cpp -NEON_SOURCES += painting/qdrawhelper_neon.cpp painting/qimagescale_neon.cpp -NEON_HEADERS += painting/qdrawhelper_neon_p.h + NEON_SOURCES += painting/qdrawhelper_neon.cpp painting/qimagescale_neon.cpp + NEON_HEADERS += painting/qdrawhelper_neon_p.h +} !uikit:!win32:contains(QT_ARCH, "arm"): CONFIG += no_clang_integrated_as -!uikit:!win32:!integrity:!contains(QT_ARCH, "arm64") { +!android:!uikit:!win32:!integrity:!contains(QT_ARCH, "arm64") { NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S DEFINES += ENABLE_PIXMAN_DRAWHELPERS } -MIPS_DSP_SOURCES += painting/qdrawhelper_mips_dsp.cpp -MIPS_DSP_HEADERS += painting/qdrawhelper_mips_dsp_p.h painting/qt_mips_asm_dsp_p.h -MIPS_DSP_ASM += painting/qdrawhelper_mips_dsp_asm.S -MIPS_DSPR2_ASM += painting/qdrawhelper_mips_dspr2_asm.S +!android { + MIPS_DSP_SOURCES += painting/qdrawhelper_mips_dsp.cpp + MIPS_DSP_HEADERS += painting/qdrawhelper_mips_dsp_p.h painting/qt_mips_asm_dsp_p.h + MIPS_DSP_ASM += painting/qdrawhelper_mips_dsp_asm.S + MIPS_DSPR2_ASM += painting/qdrawhelper_mips_dspr2_asm.S +} else { + # see https://developer.android.com/ndk/guides/abis + x86 | x86_64 { + DEFINES += QT_COMPILER_SUPPORTS_SSE2 QT_COMPILER_SUPPORTS_SSE3 QT_COMPILER_SUPPORTS_SSSE3 + SOURCES += painting/qdrawhelper_sse2.cpp painting/qdrawhelper_ssse3.cpp + } + x86_64 { + DEFINES += QT_COMPILER_SUPPORTS_SSE4_1 QT_COMPILER_SUPPORTS_SSE4_2 + SOURCES += painting/qdrawhelper_sse4.cpp painting/qimagescale_sse4.cpp + } + arm64-v8a { + SOURCES += painting/qdrawhelper_neon.cpp painting/qimagescale_neon.cpp + HEADERS += painting/qdrawhelper_neon_p.h + } +} include($$PWD/../../3rdparty/zlib_dependency.pri) diff --git a/src/plugins/bearer/android/jar/jar.pro b/src/plugins/bearer/android/jar/jar.pro index f988019dac..8277a8abc1 100644 --- a/src/plugins/bearer/android/jar/jar.pro +++ b/src/plugins/bearer/android/jar/jar.pro @@ -1,3 +1,5 @@ +CONFIG += single_arch + TARGET = QtAndroidBearer load(qt_build_paths) diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 10bbd59bfb..4c7b8a6917 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -91,7 +91,7 @@ FILE *openProcess(const QString &command) #if defined(Q_OS_WIN32) QString processedCommand = QLatin1Char('\"') + command + QLatin1Char('\"'); #else - QString processedCommand = command; + const QString& processedCommand = command; #endif return popen(processedCommand.toLocal8Bit().constData(), QT_POPEN_READ); @@ -99,7 +99,7 @@ FILE *openProcess(const QString &command) struct QtDependency { - QtDependency(QString rpath, QString apath) : relativePath(rpath), absolutePath(apath) {} + QtDependency(const QString &rpath, const QString &apath) : relativePath(rpath), absolutePath(apath) {} bool operator==(const QtDependency &other) const { @@ -127,7 +127,6 @@ struct Options , sectionsOnly(false) , protectedAuthenticationPath(false) , jarSigner(false) - , gdbServer(Auto) , installApk(false) , uninstallApk(false) {} @@ -150,7 +149,6 @@ struct Options bool generateAssetsFileList; bool build; bool auxMode; - bool stripLibraries = true; ActionTimer timer; // External tools @@ -175,22 +173,22 @@ struct Options // lib c++ path QString stdCppPath; - QString stdCppName = QStringLiteral("gnustl_shared"); + QString stdCppName = QStringLiteral("c++_shared"); // Build information QString androidPlatform; - QString architecture; - QString toolchainVersion; + QHash architectures; + QString currentArchitecture; QString toolchainPrefix; - QString toolPrefix; - bool useLLVM = false; QString ndkHost; // Package information DeploymentMechanism deploymentMechanism; QString packageName; QStringList extraLibs; + QHash archExtraLibs; QStringList extraPlugins; + QHash archExtraPlugins; // Signing information bool releasePackage; @@ -211,25 +209,36 @@ struct Options bool jarSigner; QString apkPath; - // Gdbserver - TriState gdbServer; - // Installation information bool installApk; bool uninstallApk; QString installLocation; - // Collected information + // Per architecture collected information + void clear(const QString &arch) + { + currentArchitecture = arch; + } typedef QPair BundledFile; - QList bundledFiles; - QList qtDependencies; - QStringList localLibs; + QHash> bundledFiles; + QHash> qtDependencies; + QHash localLibs; + bool usesOpenGL = false; + + // Per package collected information QStringList localJars; QStringList initClasses; QStringList permissions; QStringList features; }; +static const QHash elfArchitecures = { + {"aarch64", "arm64-v8a"}, + {"arm", "armeabi-v7a"}, + {"i386", "x86"}, + {"x86_64", "x86_64"} +}; + // Copy-pasted from qmake/library/ioutil.cpp inline static bool hasSpecialChars(const QString &arg, const uchar (&iqm)[16]) { @@ -301,6 +310,59 @@ static QString shellQuote(const QString &arg) return shellQuoteUnix(arg); } +QString architecureFromName(const QString &name) +{ + QRegExp architecture(QStringLiteral(".*_(.*)\\.so")); + if (!architecture.exactMatch(name)) + return {}; + return architecture.capturedTexts().last(); +} + +QString fileArchitecture(const Options &options, const QString &path) +{ + auto arch = architecureFromName(path); + if (!arch.isEmpty()) + return arch; + + QString readElf = QStringLiteral("%1/toolchains/%2/prebuilt/%3/bin/llvm-readobj").arg(options.ndkPath, + options.toolchainPrefix, + options.ndkHost); +#if defined(Q_OS_WIN32) + readElf += QStringLiteral(".exe"); +#endif + + if (!QFile::exists(readElf)) { + fprintf(stderr, "Command does not exist: %s\n", qPrintable(readElf)); + return {}; + } + + readElf = QStringLiteral("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(path)); + + FILE *readElfCommand = openProcess(readElf); + if (!readElfCommand) { + fprintf(stderr, "Cannot execute command %s\n", qPrintable(readElf)); + return {}; + } + + char buffer[512]; + while (fgets(buffer, sizeof(buffer), readElfCommand) != nullptr) { + QByteArray line = QByteArray::fromRawData(buffer, qstrlen(buffer)); + QString library; + line = line.trimmed(); + if (line.startsWith("Arch: ")) { + auto it = elfArchitecures.find(line.mid(6)); + pclose(readElfCommand); + return it != elfArchitecures.constEnd() ? QString::fromLatin1(it.value()) : QString{}; + } + } + pclose(readElfCommand); + return {}; +} + +bool checkArchitecture(const Options &options, const QString &fileName) +{ + return fileArchitecture(options, fileName) == options.currentArchitecture; +} void deleteMissingFiles(const Options &options, const QDir &srcDir, const QDir &dstDir) { @@ -388,10 +450,6 @@ Options parseOptions() options.installLocation = arguments.at(++i); } else if (argument.compare(QLatin1String("--release"), Qt::CaseInsensitive) == 0) { options.releasePackage = true; - } else if (argument.compare(QLatin1String("--gdbserver"), Qt::CaseInsensitive) == 0) { - options.gdbServer = Options::True; - } else if (argument.compare(QLatin1String("--no-gdbserver"), Qt::CaseInsensitive) == 0) { - options.gdbServer = Options::False; } else if (argument.compare(QLatin1String("--jdk"), Qt::CaseInsensitive) == 0) { if (i + 1 == arguments.size()) options.helpRequested = true; @@ -462,8 +520,6 @@ Options parseOptions() options.generateAssetsFileList = false; } else if (argument.compare(QLatin1String("--aux-mode"), Qt::CaseInsensitive) == 0) { options.auxMode = true; - } else if (argument.compare(QLatin1String("--no-strip"), Qt::CaseInsensitive) == 0) { - options.stripLibraries = false; } } @@ -533,10 +589,6 @@ void printHelp() " --protected: Keystore has protected authentication path.\n" " --jarsigner: Force jarsigner usage, otherwise apksigner will be\n" " used if available.\n" - " --gdbserver: Adds the gdbserver to the package. By default the gdbserver\n" - " is bundled for debug pacakges.\n" - " --no-gdbserver: Prevents the gdbserver from being added to the package\n" - " By default the gdbserver is bundled for debug pacakges.\n" " --jdk : Used to find the jarsigner tool when used\n" " in combination with the --release argument. By default,\n" " an attempt is made to detect the tool using the JAVA_HOME and\n" @@ -549,7 +601,6 @@ void printHelp() " --aux-mode: Operate in auxiliary mode. This will only copy the\n" " dependencies into the build directory and update the XML templates.\n" " The project will not be built or installed.\n" - " --no-strip: Do not strip debug symbols from libraries.\n" " --apk : Path where to copy the built apk.\n" " --help: Displays this information.\n\n", qPrintable(QCoreApplication::arguments().at(0)) @@ -580,9 +631,10 @@ bool alwaysOverwritableFile(const QString &fileName) || fileName.endsWith(QLatin1String("/src/org/qtproject/qt5/android/bindings/QtActivity.java"))); } + bool copyFileIfNewer(const QString &sourceFileName, const QString &destinationFileName, - bool verbose, + const Options &options, bool forceOverwrite = false) { if (QFile::exists(destinationFileName)) { @@ -592,7 +644,7 @@ bool copyFileIfNewer(const QString &sourceFileName, if (!forceOverwrite && sourceFileInfo.lastModified() <= destinationFileInfo.lastModified() && !alwaysOverwritableFile(destinationFileName)) { - if (verbose) + if (options.verbose) fprintf(stdout, " -- Skipping file %s. Same or newer file already in place.\n", qPrintable(sourceFileName)); return true; } else { @@ -611,11 +663,10 @@ bool copyFileIfNewer(const QString &sourceFileName, if (!QFile::exists(destinationFileName) && !QFile::copy(sourceFileName, destinationFileName)) { fprintf(stderr, "Failed to copy %s to %s.\n", qPrintable(sourceFileName), qPrintable(destinationFileName)); return false; - } else if (verbose) { + } else if (options.verbose) { fprintf(stdout, " -- Copied %s\n", qPrintable(destinationFileName)); fflush(stdout); } - return true; } @@ -666,7 +717,7 @@ QString cleanPackageName(QString packageName) } } if (keywords.contains(word)) { - packageName.insert(next, QLatin1String("_")); + packageName.insert(next, QStringLiteral("_")); index = next + 1; } else { index = next; @@ -678,7 +729,7 @@ QString cleanPackageName(QString packageName) QString detectLatestAndroidPlatform(const QString &sdkPath) { - QDir dir(sdkPath + QLatin1String("/platforms")); + QDir dir(sdkPath + QStringLiteral("/platforms")); if (!dir.exists()) { fprintf(stderr, "Directory %s does not exist\n", qPrintable(dir.absolutePath())); return QString(); @@ -795,53 +846,22 @@ bool readInputFile(Options *options) } { - const QJsonValue applicationBinary = jsonObject.value(QStringLiteral("application-binary")); - if (applicationBinary.isUndefined()) { - fprintf(stderr, "No application binary defined in json file.\n"); - return false; - } - options->applicationBinary = applicationBinary.toString(); - - if (!QFile::exists(options->applicationBinary)) { - fprintf(stderr, "Cannot find application binary %s.\n", qPrintable(options->applicationBinary)); + const QJsonObject targetArchitectures = jsonObject.value(QStringLiteral("architectures")).toObject(); + if (targetArchitectures.isEmpty()) { + fprintf(stderr, "No target architecture defined in json file.\n"); return false; } - } - - { - const QJsonValue deploymentDependencies = jsonObject.value(QStringLiteral("deployment-dependencies")); - if (!deploymentDependencies.isUndefined()) { - QString deploymentDependenciesString = deploymentDependencies.toString(); - const auto dependencies = deploymentDependenciesString.splitRef(QLatin1Char(',')); - for (const QStringRef &dependency : dependencies) { - QString path = options->qtInstallDirectory + QLatin1Char('/') + dependency; - if (QFileInfo(path).isDir()) { - QDirIterator iterator(path, QDirIterator::Subdirectories); - while (iterator.hasNext()) { - iterator.next(); - if (iterator.fileInfo().isFile()) { - QString subPath = iterator.filePath(); - options->qtDependencies.append(QtDependency(subPath.mid(options->qtInstallDirectory.length() + 1), - subPath)); - } - } - } else { - options->qtDependencies.append(QtDependency(dependency.toString(), path)); - } + for (auto it = targetArchitectures.constBegin(); it != targetArchitectures.constEnd(); ++it) { + if (it.value().isUndefined()) { + fprintf(stderr, "Invalid architecure.\n"); + return false; } + if (it.value().isNull()) + continue; + options->architectures.insert(it.key(), it.value().toString()); } } - - { - const QJsonValue targetArchitecture = jsonObject.value(QStringLiteral("target-architecture")); - if (targetArchitecture.isUndefined()) { - fprintf(stderr, "No target architecture defined in json file.\n"); - return false; - } - options->architecture = targetArchitecture.toString(); - } - { const QJsonValue ndk = jsonObject.value(QStringLiteral("ndk")); if (ndk.isUndefined()) { @@ -851,11 +871,6 @@ bool readInputFile(Options *options) options->ndkPath = ndk.toString(); } - { - const QJsonValue value = jsonObject.value(QStringLiteral("useLLVM")); - options->useLLVM = value.toBool(false); - } - { const QJsonValue toolchainPrefix = jsonObject.value(QStringLiteral("toolchain-prefix")); if (toolchainPrefix.isUndefined()) { @@ -865,25 +880,6 @@ bool readInputFile(Options *options) options->toolchainPrefix = toolchainPrefix.toString(); } - { - const QJsonValue toolPrefix = jsonObject.value(QStringLiteral("tool-prefix")); - if (toolPrefix.isUndefined()) { - fprintf(stderr, "Warning: No tool prefix defined in json file.\n"); - options->toolPrefix = options->toolchainPrefix; - } else { - options->toolPrefix = toolPrefix.toString(); - } - } - - if (!options->useLLVM) { - const QJsonValue toolchainVersion = jsonObject.value(QStringLiteral("toolchain-version")); - if (toolchainVersion.isUndefined()) { - fprintf(stderr, "No toolchain version defined in json file.\n"); - return false; - } - options->toolchainVersion = toolchainVersion.toString(); - } - { const QJsonValue ndkHost = jsonObject.value(QStringLiteral("ndk-host")); if (ndkHost.isUndefined()) { @@ -893,10 +889,6 @@ bool readInputFile(Options *options) options->ndkHost = ndkHost.toString(); } - options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QLatin1String("/AndroidManifest.xml")); - if (options->packageName.isEmpty()) - options->packageName = cleanPackageName(QString::fromLatin1("org.qtproject.example.%1").arg(QFileInfo(options->applicationBinary).baseName().mid(sizeof("lib") - 1))); - { const QJsonValue extraLibs = jsonObject.value(QStringLiteral("android-extra-libs")); if (!extraLibs.isUndefined()) @@ -916,12 +908,6 @@ bool readInputFile(Options *options) return false; } options->stdCppPath = stdcppPath.toString(); - auto name = QFileInfo(options->stdCppPath).baseName(); - if (!name.startsWith(QLatin1String("lib"))) { - fprintf(stderr, "Invalid STD C++ library name.\n"); - return false; - } - options->stdCppName = name.mid(3); } { @@ -935,10 +921,68 @@ bool readInputFile(Options *options) if (!qmlImportPaths.isUndefined()) options->qmlImportPaths = qmlImportPaths.toString().split(QLatin1Char(',')); } + + { + const QJsonValue applicationBinary = jsonObject.value(QStringLiteral("application-binary")); + if (applicationBinary.isUndefined()) { + fprintf(stderr, "No application binary defined in json file.\n"); + return false; + } + options->applicationBinary = applicationBinary.toString(); + if (options->build) { + for (auto it = options->architectures.constBegin(); it != options->architectures.constEnd(); ++it) { + if (!QFile::exists(QStringLiteral("%1/libs/%2/lib%3_%2.so").arg(options->outputDirectory, it.key(), options->applicationBinary))) { + fprintf(stderr, "Cannot find application binary %s.\n", qPrintable(options->applicationBinary)); + return false; + } + } + } + } + + { + const QJsonValue deploymentDependencies = jsonObject.value(QStringLiteral("deployment-dependencies")); + if (!deploymentDependencies.isUndefined()) { + QString deploymentDependenciesString = deploymentDependencies.toString(); + const auto dependencies = deploymentDependenciesString.splitRef(QLatin1Char(',')); + for (const QStringRef &dependency : dependencies) { + QString path = options->qtInstallDirectory + QLatin1Char('/') + dependency; + if (QFileInfo(path).isDir()) { + QDirIterator iterator(path, QDirIterator::Subdirectories); + while (iterator.hasNext()) { + iterator.next(); + if (iterator.fileInfo().isFile()) { + QString subPath = iterator.filePath(); + auto arch = fileArchitecture(*options, subPath); + if (!arch.isEmpty()) { + options->qtDependencies[arch].append(QtDependency(subPath.mid(options->qtInstallDirectory.length() + 1), + subPath)); + } else if (options->verbose) { + fprintf(stderr, "Skipping \"%s\", unknown architecture\n", qPrintable(subPath)); + fflush(stderr); + } + } + } + } else { + auto arch = fileArchitecture(*options, path); + if (!arch.isEmpty()) { + options->qtDependencies[arch].append(QtDependency(dependency.toString(), path)); + } else if (options->verbose) { + fprintf(stderr, "Skipping \"%s\", unknown architecture\n", qPrintable(path)); + fflush(stderr); + } + } + } + } + } + + options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QStringLiteral("/AndroidManifest.xml")); + if (options->packageName.isEmpty()) + options->packageName = cleanPackageName(QStringLiteral("org.qtproject.example.%1").arg(options->applicationBinary)); + return true; } -bool copyFiles(const QDir &sourceDirectory, const QDir &destinationDirectory, bool verbose, bool forceOverwrite = false) +bool copyFiles(const QDir &sourceDirectory, const QDir &destinationDirectory, const Options &options, bool forceOverwrite = false) { const QFileInfoList entries = sourceDirectory.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs); for (const QFileInfo &entry : entries) { @@ -949,11 +993,11 @@ bool copyFiles(const QDir &sourceDirectory, const QDir &destinationDirectory, bo return false; } - if (!copyFiles(dir, QDir(destinationDirectory.path() + QLatin1String("/") + dir.dirName()), verbose, forceOverwrite)) + if (!copyFiles(dir, QDir(destinationDirectory.path() + QStringLiteral("/") + dir.dirName()), options, forceOverwrite)) return false; } else { QString destination = destinationDirectory.absoluteFilePath(entry.fileName()); - if (!copyFileIfNewer(entry.absoluteFilePath(), destination, verbose, forceOverwrite)) + if (!copyFileIfNewer(entry.absoluteFilePath(), destination, options, forceOverwrite)) return false; } } @@ -993,7 +1037,7 @@ bool copyAndroidTemplate(const Options &options, const QString &androidTemplate, return false; } - return copyFiles(sourceDirectory, QDir(outDir), options.verbose); + return copyFiles(sourceDirectory, QDir(outDir), options); } bool copyGradleTemplate(const Options &options) @@ -1010,7 +1054,7 @@ bool copyGradleTemplate(const Options &options) return false; } - return copyFiles(sourceDirectory, QDir(outDir), options.verbose); + return copyFiles(sourceDirectory, QDir(outDir), options); } bool copyAndroidTemplate(const Options &options) @@ -1041,38 +1085,42 @@ bool copyAndroidSources(const Options &options) return false; } - return copyFiles(sourceDirectory, QDir(options.outputDirectory), options.verbose, true); + return copyFiles(sourceDirectory, QDir(options.outputDirectory), options, true); } -bool copyAndroidExtraLibs(const Options &options) +bool copyAndroidExtraLibs(Options *options) { - if (options.extraLibs.isEmpty()) + if (options->extraLibs.isEmpty()) return true; - if (options.verbose) - fprintf(stdout, "Copying %d external libraries to package.\n", options.extraLibs.size()); + if (options->verbose) + fprintf(stdout, "Copying %d external libraries to package.\n", options->extraLibs.size()); - for (const QString &extraLib : options.extraLibs) { + for (const QString &extraLib : options->extraLibs) { QFileInfo extraLibInfo(extraLib); if (!extraLibInfo.exists()) { fprintf(stderr, "External library %s does not exist!\n", qPrintable(extraLib)); return false; } - - if (!extraLibInfo.fileName().startsWith(QLatin1String("lib")) || extraLibInfo.suffix() != QLatin1String("so")) { + if (!checkArchitecture(*options, extraLibInfo.filePath())) { + if (options->verbose) + fprintf(stdout, "Skipping \"%s\", architecture mismatch.\n", qPrintable(extraLib)); + continue; + } + if (!extraLibInfo.fileName().startsWith(QStringLiteral("lib")) || extraLibInfo.suffix() != QStringLiteral("so")) { fprintf(stderr, "The file name of external library %s must begin with \"lib\" and end with the suffix \".so\".\n", qPrintable(extraLib)); return false; } - - QString destinationFile(options.outputDirectory - + QLatin1String("/libs/") - + options.architecture + QString destinationFile(options->outputDirectory + + QStringLiteral("/libs/") + + options->currentArchitecture + QLatin1Char('/') + extraLibInfo.fileName()); - if (!copyFileIfNewer(extraLib, destinationFile, options.verbose)) + if (!copyFileIfNewer(extraLib, destinationFile, *options)) return false; + options->archExtraLibs[options->currentArchitecture] += extraLib; } return true; @@ -1093,15 +1141,15 @@ QStringList allFilesInside(const QDir& current, const QDir& rootDir) return result; } -bool copyAndroidExtraResources(const Options &options) +bool copyAndroidExtraResources(Options *options) { - if (options.extraPlugins.isEmpty()) + if (options->extraPlugins.isEmpty()) return true; - if (options.verbose) - fprintf(stdout, "Copying %d external resources to package.\n", options.extraPlugins.size()); + if (options->verbose) + fprintf(stdout, "Copying %d external resources to package.\n", options->extraPlugins.size()); - for (const QString &extraResource : options.extraPlugins) { + for (const QString &extraResource : options->extraPlugins) { QFileInfo extraResourceInfo(extraResource); if (!extraResourceInfo.exists() || !extraResourceInfo.isDir()) { fprintf(stderr, "External resource %s does not exist or not a correct directory!\n", qPrintable(extraResource)); @@ -1109,20 +1157,22 @@ bool copyAndroidExtraResources(const Options &options) } QDir resourceDir(extraResource); - QString assetsDir = options.outputDirectory + QStringLiteral("/assets/") + resourceDir.dirName() + QLatin1Char('/'); - QString libsDir = options.outputDirectory + QStringLiteral("/libs/") + options.architecture + QLatin1Char('/'); + QString assetsDir = options->outputDirectory + QStringLiteral("/assets/") + resourceDir.dirName() + QLatin1Char('/'); + QString libsDir = options->outputDirectory + QStringLiteral("/libs/") + options->currentArchitecture + QLatin1Char('/'); const QStringList files = allFilesInside(resourceDir, resourceDir); for (const QString &resourceFile : files) { QString originFile(resourceDir.filePath(resourceFile)); QString destinationFile; - if (!resourceFile.endsWith(QLatin1String(".so"))) { + if (!resourceFile.endsWith(QStringLiteral(".so"))) { destinationFile = assetsDir + resourceFile; } else { + if (!checkArchitecture(*options, originFile)) + continue; destinationFile = libsDir + QStringLiteral("/lib") + QString(resourceDir.dirName() + QLatin1Char('/') + resourceFile).replace(QLatin1Char('/'), QLatin1Char('_')); + options->archExtraPlugins[options->currentArchitecture] += resourceFile; } - - if (!copyFileIfNewer(originFile, destinationFile, options.verbose)) + if (!copyFileIfNewer(originFile, destinationFile, *options)) return false; } } @@ -1174,75 +1224,118 @@ bool updateFile(const QString &fileName, const QHash &replacem } -bool updateLibsXml(const Options &options) +bool updateLibsXml(Options *options) { - if (options.verbose) + if (options->verbose) fprintf(stdout, " -- res/values/libs.xml\n"); - QString fileName = options.outputDirectory + QLatin1String("/res/values/libs.xml"); + QString fileName = options->outputDirectory + QStringLiteral("/res/values/libs.xml"); if (!QFile::exists(fileName)) { fprintf(stderr, "Cannot find %s in prepared packaged. This file is required.\n", qPrintable(fileName)); return false; } - QString libsPath = QLatin1String("libs/") + options.architecture + QLatin1Char('/'); - - QString qtLibs = QLatin1String("") + options.stdCppName + QLatin1String("\n"); + QString qtLibs; QString bundledInLibs; QString bundledInAssets; - for (const Options::BundledFile &bundledFile : options.bundledFiles) { - if (bundledFile.second.startsWith(QLatin1String("lib/"))) { - QString s = bundledFile.second.mid(sizeof("lib/lib") - 1); - s.chop(sizeof(".so") - 1); - qtLibs += QString::fromLatin1("%1\n").arg(s); - } else if (bundledFile.first.startsWith(libsPath)) { - QString s = bundledFile.first.mid(libsPath.length()); - bundledInLibs += QString::fromLatin1("%1:%2\n") - .arg(s).arg(bundledFile.second); - } else if (bundledFile.first.startsWith(QLatin1String("assets/"))) { - QString s = bundledFile.first.mid(sizeof("assets/") - 1); - bundledInAssets += QString::fromLatin1("%1:%2\n") - .arg(s).arg(bundledFile.second); + QString allLocalLibs; + QString extraLibs; + + for (auto it = options->architectures.constBegin(); it != options->architectures.constEnd(); ++it) { + QString libsPath = QStringLiteral("libs/") + it.key() + QLatin1Char('/'); + + qtLibs += QStringLiteral(" %1;%2\n").arg(it.key(), options->stdCppName); + for (const Options::BundledFile &bundledFile : options->bundledFiles[it.key()]) { + if (bundledFile.second.startsWith(QStringLiteral("lib/"))) { + QString s = bundledFile.second.mid(sizeof("lib/lib") - 1); + s.chop(sizeof(".so") - 1); + qtLibs += QStringLiteral(" %1;%2\n").arg(it.key(), s); + } else if (bundledFile.first.startsWith(libsPath)) { + QString s = bundledFile.first.mid(libsPath.length()); + bundledInLibs += QString::fromLatin1(" %1;%2:%3\n") + .arg(it.key(), s, bundledFile.second); + } else if (bundledFile.first.startsWith(QStringLiteral("assets/"))) { + QString s = bundledFile.first.mid(sizeof("assets/") - 1); + bundledInAssets += QString::fromLatin1(" %1:%2\n") + .arg(s).arg(bundledFile.second); + } } - } - if (!options.extraPlugins.isEmpty()) { - for (const QString &extraRes : options.extraPlugins) { - QDir resourceDir(extraRes); - const QStringList files = allFilesInside(resourceDir, resourceDir); - for (const QString &file : files) { - QString destinationPath = resourceDir.dirName() + QLatin1Char('/') + file; - if (!file.endsWith(QLatin1String(".so"))) { - bundledInAssets += QStringLiteral("%1:%1\n") - .arg(destinationPath); - } else { - bundledInLibs += QStringLiteral("lib%1:%2\n") - .arg(QString(destinationPath).replace(QLatin1Char('/'), QLatin1Char('_'))) - .arg(destinationPath); + if (!options->archExtraPlugins[it.key()].isEmpty()) { + for (const QString &extraRes : options->archExtraPlugins[it.key()]) { + QDir resourceDir(extraRes); + const QStringList files = allFilesInside(resourceDir, resourceDir); + for (const QString &file : files) { + QString destinationPath = resourceDir.dirName() + QLatin1Char('/') + file; + if (!file.endsWith(QStringLiteral(".so"))) { + bundledInAssets += QStringLiteral(" %1:%1\n") + .arg(destinationPath); + } else { + bundledInLibs += QStringLiteral(" %1;lib%2:%3\n") + .arg(it.key(), + QString(destinationPath).replace(QLatin1Char('/'), QLatin1Char('_')), + destinationPath); + } } } } - } - QHash replacements; - replacements[QLatin1String("")] = qtLibs; + if (!options->archExtraLibs[it.key()].isEmpty()) { + for (const QString &extraLib : options->archExtraLibs[it.key()]) { + QFileInfo extraLibInfo(extraLib); + QString name = extraLibInfo.fileName().mid(sizeof("lib") - 1); + name.chop(sizeof(".so") - 1); + extraLibs += QStringLiteral(" %1;%2").arg(it.key(), name); + } + } - if (options.deploymentMechanism == Options::Bundled) { - replacements[QLatin1String("")] = bundledInLibs; - replacements[QLatin1String("")] = bundledInAssets; - } + QStringList localLibs; + localLibs = options->localLibs[it.key()]; + // If .pro file overrides dependency detection, we need to see which platform plugin they picked + if (localLibs.isEmpty()) { + QString plugin; + for (const QtDependency &qtDependency : options->qtDependencies[it.key()]) { + if (qtDependency.relativePath.endsWith(QStringLiteral("libqtforandroid.so")) + || qtDependency.relativePath.endsWith(QStringLiteral("libqtforandroidGL.so"))) { + if (!plugin.isEmpty() && plugin != qtDependency.relativePath) { + fprintf(stderr, "Both platform plugins libqtforandroid.so and libqtforandroidGL.so included in package. Please include only one.\n"); + return false; + } - QString extraLibs; - if (!options.extraLibs.isEmpty()) { - for (const QString extraLib : options.extraLibs) { - QFileInfo extraLibInfo(extraLib); - QString name = extraLibInfo.fileName().mid(sizeof("lib") - 1); - name.chop(sizeof(".so") - 1); + plugin = qtDependency.relativePath; + } + if (qtDependency.relativePath.contains(QStringLiteral("libQt5OpenGL")) + || qtDependency.relativePath.contains(QStringLiteral("libQt5Quick"))) { + options->usesOpenGL |= true; + break; + } + } - extraLibs += QLatin1String("") + name + QLatin1String("\n"); + if (plugin.isEmpty()) { + fflush(stdout); + fprintf(stderr, "No platform plugin, neither libqtforandroid.so or libqtforandroidGL.so, included in package. Please include one.\n"); + fflush(stderr); + return false; + } + + localLibs.append(plugin); + if (options->verbose) + fprintf(stdout, " -- Using platform plugin %s\n", qPrintable(plugin)); } + allLocalLibs += QStringLiteral(" %1;%2\n").arg(it.key(), localLibs.join(QLatin1Char(':')) + .replace(QStringLiteral("lib/"), QString{}) + .replace(QLatin1Char('/'), QLatin1Char('_'))); + } + + QHash replacements; + replacements[QStringLiteral("")] += qtLibs.trimmed(); + replacements[QStringLiteral("")] = allLocalLibs.trimmed(); + replacements[QStringLiteral("")] = extraLibs.trimmed(); + + if (options->deploymentMechanism == Options::Bundled) { + replacements[QStringLiteral("")] += bundledInLibs.trimmed(); + replacements[QStringLiteral("")] += bundledInAssets.trimmed(); } - replacements[QLatin1String("")] = extraLibs; if (!updateFile(fileName, replacements)) return false; @@ -1256,9 +1349,9 @@ bool updateStringsXml(const Options &options) fprintf(stdout, " -- res/values/strings.xml\n"); QHash replacements; - replacements[QStringLiteral("")] = QFileInfo(options.applicationBinary).baseName().mid(sizeof("lib") - 1); + replacements[QStringLiteral("")] = options.applicationBinary; - QString fileName = options.outputDirectory + QLatin1String("/res/values/strings.xml"); + QString fileName = options.outputDirectory + QStringLiteral("/res/values/strings.xml"); if (!QFile::exists(fileName)) { if (options.verbose) fprintf(stdout, " -- Create strings.xml since it's missing.\n"); @@ -1268,7 +1361,7 @@ bool updateStringsXml(const Options &options) return false; } file.write(QByteArray("") - .append(QFileInfo(options.applicationBinary).baseName().mid(sizeof("lib") - 1).toLatin1()) + .append(options.applicationBinary.toLatin1()) .append("\n")); return true; } @@ -1284,71 +1377,34 @@ bool updateAndroidManifest(Options &options) if (options.verbose) fprintf(stdout, " -- AndroidManifest.xml \n"); - QStringList localLibs = options.localLibs; - - // If .pro file overrides dependency detection, we need to see which platform plugin they picked - if (localLibs.isEmpty()) { - QString plugin; - for (const QtDependency &qtDependency : qAsConst(options.qtDependencies)) { - if (qtDependency.relativePath.endsWith(QLatin1String("libqtforandroid.so")) - || qtDependency.relativePath.endsWith(QLatin1String("libqtforandroidGL.so"))) { - if (!plugin.isEmpty() && plugin != qtDependency.relativePath) { - fprintf(stderr, "Both platform plugins libqtforandroid.so and libqtforandroidGL.so included in package. Please include only one.\n"); - return false; - } - - plugin = qtDependency.relativePath; - } - } - - if (plugin.isEmpty()) { - fprintf(stderr, "No platform plugin, neither libqtforandroid.so or libqtforandroidGL.so, included in package. Please include one.\n"); - return false; - } - - localLibs.append(plugin); - if (options.verbose) - fprintf(stdout, " -- Using platform plugin %s\n", qPrintable(plugin)); - } - - bool usesGL = false; - for (const QtDependency &qtDependency : qAsConst(options.qtDependencies)) { - if (qtDependency.relativePath.endsWith(QLatin1String("libQt5OpenGL.so")) - || qtDependency.relativePath.endsWith(QLatin1String("libQt5Quick.so"))) { - usesGL = true; - break; - } - } - options.localJars.removeDuplicates(); options.initClasses.removeDuplicates(); QHash replacements; - replacements[QLatin1String("-- %%INSERT_APP_NAME%% --")] = QFileInfo(options.applicationBinary).baseName().mid(sizeof("lib") - 1); - replacements[QLatin1String("-- %%INSERT_APP_LIB_NAME%% --")] = QFileInfo(options.applicationBinary).baseName().mid(sizeof("lib") - 1); - replacements[QLatin1String("-- %%INSERT_LOCAL_LIBS%% --")] = localLibs.join(QLatin1Char(':')); - replacements[QLatin1String("-- %%INSERT_LOCAL_JARS%% --")] = options.localJars.join(QLatin1Char(':')); - replacements[QLatin1String("-- %%INSERT_INIT_CLASSES%% --")] = options.initClasses.join(QLatin1Char(':')); - replacements[QLatin1String("-- %%INSERT_VERSION_NAME%% --")] = options.versionName; - replacements[QLatin1String("-- %%INSERT_VERSION_CODE%% --")] = options.versionCode; - replacements[QLatin1String("package=\"org.qtproject.example\"")] = QString::fromLatin1("package=\"%1\"").arg(options.packageName); - replacements[QLatin1String("-- %%BUNDLE_LOCAL_QT_LIBS%% --")] - = (options.deploymentMechanism == Options::Bundled) ? QString::fromLatin1("1") : QString::fromLatin1("0"); - replacements[QLatin1String("-- %%USE_LOCAL_QT_LIBS%% --")] - = (options.deploymentMechanism != Options::Ministro) ? QString::fromLatin1("1") : QString::fromLatin1("0"); + replacements[QStringLiteral("-- %%INSERT_APP_NAME%% --")] = options.applicationBinary; + replacements[QStringLiteral("-- %%INSERT_APP_LIB_NAME%% --")] = options.applicationBinary; + replacements[QStringLiteral("-- %%INSERT_LOCAL_JARS%% --")] = options.localJars.join(QLatin1Char(':')); + replacements[QStringLiteral("-- %%INSERT_INIT_CLASSES%% --")] = options.initClasses.join(QLatin1Char(':')); + replacements[QStringLiteral("-- %%INSERT_VERSION_NAME%% --")] = options.versionName; + replacements[QStringLiteral("-- %%INSERT_VERSION_CODE%% --")] = options.versionCode; + replacements[QStringLiteral("package=\"org.qtproject.example\"")] = QStringLiteral("package=\"%1\"").arg(options.packageName); + replacements[QStringLiteral("-- %%BUNDLE_LOCAL_QT_LIBS%% --")] + = (options.deploymentMechanism == Options::Bundled) ? QStringLiteral("1") : QStringLiteral("0"); + replacements[QStringLiteral("-- %%USE_LOCAL_QT_LIBS%% --")] + = (options.deploymentMechanism != Options::Ministro) ? QStringLiteral("1") : QStringLiteral("0"); QString permissions; for (const QString &permission : qAsConst(options.permissions)) - permissions += QString::fromLatin1(" \n").arg(permission); - replacements[QLatin1String("")] = permissions; + permissions += QStringLiteral(" \n").arg(permission); + replacements[QStringLiteral("")] = permissions.trimmed(); QString features; for (const QString &feature : qAsConst(options.features)) features += QStringLiteral(" \n").arg(feature); - if (usesGL) + if (options.usesOpenGL) features += QStringLiteral(" "); - replacements[QLatin1String("")] = features; + replacements[QStringLiteral("")] = features.trimmed(); QString androidManifestPath = options.outputDirectory + QLatin1String("/AndroidManifest.xml"); if (!updateFile(androidManifestPath, replacements)) @@ -1409,7 +1465,7 @@ bool updateAndroidFiles(Options &options) if (options.verbose) fprintf(stdout, "Updating Android package files with project settings.\n"); - if (!updateLibsXml(options)) + if (!updateLibsXml(&options)) return false; if (!updateAndroidManifest(options)) @@ -1466,7 +1522,7 @@ bool readAndroidDependencyXml(Options *options, QSet *usedDependencies, QSet *remainingDependencies) { - QString androidDependencyName = absoluteFilePath(options, QString::fromLatin1("/lib/%1-android-dependencies.xml").arg(moduleName)); + QString androidDependencyName = absoluteFilePath(options, QStringLiteral("/lib/%1-android-dependencies.xml").arg(moduleName)); QFile androidDependencyFile(androidDependencyName); if (androidDependencyFile.exists()) { @@ -1505,7 +1561,7 @@ bool readAndroidDependencyXml(Options *options, if (options->verbose) fprintf(stdout, "Appending dependency from xml: %s\n", qPrintable(fileName.relativePath)); - options->qtDependencies.append(fileName); + options->qtDependencies[options->currentArchitecture].append(fileName); } } else if (reader.name() == QLatin1String("jar")) { int bundling = reader.attributes().value(QLatin1String("bundling")).toInt(); @@ -1513,7 +1569,7 @@ bool readAndroidDependencyXml(Options *options, if (bundling == (options->deploymentMechanism == Options::Bundled)) { QtDependency dependency(fileName, absoluteFilePath(options, fileName)); if (!usedDependencies->contains(dependency.absolutePath)) { - options->qtDependencies.append(dependency); + options->qtDependencies[options->currentArchitecture].append(dependency); usedDependencies->insert(dependency.absolutePath); } } @@ -1529,15 +1585,15 @@ bool readAndroidDependencyXml(Options *options, if (reader.attributes().hasAttribute(QLatin1String("replaces"))) { QString replaces = reader.attributes().value(QLatin1String("replaces")).toString(); for (int i=0; ilocalLibs.size(); ++i) { - if (options->localLibs.at(i) == replaces) { - options->localLibs[i] = fileName; + if (options->localLibs[options->currentArchitecture].at(i) == replaces) { + options->localLibs[options->currentArchitecture][i] = fileName; break; } } } else if (!fileName.isEmpty()) { - options->localLibs.append(fileName); + options->localLibs[options->currentArchitecture].append(fileName); } - if (fileName.endsWith(QLatin1String(".so"))) { + if (fileName.endsWith(QStringLiteral(".so")) && checkArchitecture(*options, fileName)) { remainingDependencies->insert(fileName); } } else if (reader.name() == QLatin1String("permission")) { @@ -1557,26 +1613,19 @@ bool readAndroidDependencyXml(Options *options, } else if (options->verbose) { fprintf(stdout, "No android dependencies for %s\n", qPrintable(moduleName)); } + options->permissions.removeDuplicates(); + options->features.removeDuplicates(); return true; } QStringList getQtLibsFromElf(const Options &options, const QString &fileName) { - QString readElf = options.ndkPath - + QLatin1String("/toolchains/") - + options.toolchainPrefix; - - if (!options.useLLVM) - readElf += QLatin1Char('-') + options.toolchainVersion; - - readElf += QLatin1String("/prebuilt/") - + options.ndkHost - + QLatin1String("/bin/") - + options.toolPrefix + - (options.useLLVM ? QLatin1String("-readobj") : QLatin1String("-readelf")); + QString readElf = QStringLiteral("%1/toolchains/%2/prebuilt/%3/bin/llvm-readobj").arg(options.ndkPath, + options.toolchainPrefix, + options.ndkHost); #if defined(Q_OS_WIN32) - readElf += QLatin1String(".exe"); + readElf += QStringLiteral(".exe"); #endif if (!QFile::exists(readElf)) { @@ -1584,14 +1633,11 @@ QStringList getQtLibsFromElf(const Options &options, const QString &fileName) return QStringList(); } - if (options.useLLVM) - readElf = QString::fromLatin1("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(fileName)); - else - readElf = QString::fromLatin1("%1 -d -W %2").arg(shellQuote(readElf), shellQuote(fileName)); + readElf = QStringLiteral("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(fileName)); FILE *readElfCommand = openProcess(readElf); if (!readElfCommand) { - fprintf(stderr, "Cannot execute command %s", qPrintable(readElf)); + fprintf(stderr, "Cannot execute command %s\n", qPrintable(readElf)); return QStringList(); } @@ -1599,23 +1645,26 @@ QStringList getQtLibsFromElf(const Options &options, const QString &fileName) bool readLibs = false; char buffer[512]; - while (fgets(buffer, sizeof(buffer), readElfCommand) != 0) { + while (fgets(buffer, sizeof(buffer), readElfCommand) != nullptr) { QByteArray line = QByteArray::fromRawData(buffer, qstrlen(buffer)); QString library; - if (options.useLLVM) { - line = line.trimmed(); - if (!readLibs) { - readLibs = line.startsWith("NeededLibraries"); - continue; + line = line.trimmed(); + if (!readLibs) { + if (line.startsWith("Arch: ")) { + auto it = elfArchitecures.find(line.mid(6)); + if (it == elfArchitecures.constEnd() || *it != options.currentArchitecture.toLatin1()) { + if (options.verbose) + fprintf(stdout, "Skipping \"%s\", architecture mismatch\n", qPrintable(fileName)); + return {}; + } } - if (!line.startsWith("lib")) - continue; - library = QString::fromLatin1(line); - } else if (line.contains("(NEEDED)") && line.contains("Shared library:")) { - const int pos = line.lastIndexOf('[') + 1; - library = QString::fromLatin1(line.mid(pos, line.length() - pos - 2)); + readLibs = line.startsWith("NeededLibraries"); + continue; } - QString libraryName = QLatin1String("lib/") + library; + if (!line.startsWith("lib")) + continue; + library = QString::fromLatin1(line); + QString libraryName = QStringLiteral("lib/") + library; if (QFile::exists(absoluteFilePath(&options, libraryName))) ret += libraryName; } @@ -1653,7 +1702,7 @@ bool readDependenciesFromElf(Options *options, return false; } - options->qtDependencies.append(QtDependency(dependency, absoluteDependencyPath)); + options->qtDependencies[options->currentArchitecture].append(QtDependency(dependency, absoluteDependencyPath)); if (options->verbose) fprintf(stdout, "Appending dependency: %s\n", qPrintable(dependency)); dependenciesToCheck.append(dependency); @@ -1797,10 +1846,10 @@ bool scanImports(Options *options, QSet *usedDependencies) fprintf(stdout, " -- Appending dependency found by qmlimportscanner: %s\n", qPrintable(fileName.absolutePath)); // Put all imports in default import path in assets - fileName.relativePath.prepend(QLatin1String("qml/")); - options->qtDependencies.append(fileName); + fileName.relativePath.prepend(QStringLiteral("qml/")); + options->qtDependencies[options->currentArchitecture].append(fileName); - if (fileName.absolutePath.endsWith(QLatin1String(".so"))) { + if (fileName.absolutePath.endsWith(QStringLiteral(".so")) && checkArchitecture(*options, fileName.absolutePath)) { QSet remainingDependencies; if (!readDependenciesFromElf(options, fileName.absolutePath, usedDependencies, &remainingDependencies)) return false; @@ -1819,7 +1868,7 @@ bool readDependencies(Options *options) fprintf(stdout, "Detecting dependencies of application.\n"); // Override set in .pro file - if (!options->qtDependencies.isEmpty()) { + if (!options->qtDependencies[options->currentArchitecture].isEmpty()) { if (options->verbose) fprintf(stdout, "\tDependencies explicitly overridden in .pro file. No detection needed.\n"); return true; @@ -1829,11 +1878,7 @@ bool readDependencies(Options *options) QSet remainingDependencies; // Add dependencies of application binary first - if (!readDependenciesFromElf(options, options->applicationBinary, &usedDependencies, &remainingDependencies)) - return false; - - // Jam in the dependencies of the platform plugin, since the application will crash without it - if (!readDependenciesFromElf(options, options->qtInstallDirectory + QLatin1String("/plugins/platforms/android/libqtforandroid.so"), &usedDependencies, &remainingDependencies)) + if (!readDependenciesFromElf(options, QStringLiteral("%1/libs/%2/lib%3_%2.so").arg(options->outputDirectory, options->currentArchitecture, options->applicationBinary), &usedDependencies, &remainingDependencies)) return false; while (!remainingDependencies.isEmpty()) { @@ -1853,14 +1898,14 @@ bool readDependencies(Options *options) } } - QStringList::iterator it = options->localLibs.begin(); - while (it != options->localLibs.end()) { + QStringList::iterator it = options->localLibs[options->currentArchitecture].begin(); + while (it != options->localLibs[options->currentArchitecture].end()) { QStringList unmetDependencies; if (!goodToCopy(options, absoluteFilePath(options, *it), &unmetDependencies)) { fprintf(stdout, "Skipping %s due to unmet dependencies: %s\n", qPrintable(*it), qPrintable(unmetDependencies.join(QLatin1Char(',')))); - it = options->localLibs.erase(it); + it = options->localLibs[options->currentArchitecture].erase(it); } else { ++it; } @@ -1872,94 +1917,33 @@ bool readDependencies(Options *options) return true; } -bool stripFile(const Options &options, const QString &fileName) -{ - QString strip = options.ndkPath - + QLatin1String("/toolchains/") - + options.toolchainPrefix; - - if (!options.useLLVM) - strip += QLatin1Char('-') + options.toolchainVersion; - - strip += QLatin1String("/prebuilt/") - + options.ndkHost - + QLatin1String("/bin/") - + options.toolPrefix - + QLatin1String("-strip"); -#if defined(Q_OS_WIN32) - strip += QLatin1String(".exe"); -#endif - - if (!QFile::exists(strip)) { - fprintf(stderr, "Command does not exist: %s\n", qPrintable(strip)); - return false; - } - - if (options.useLLVM) - strip = QString::fromLatin1("%1 -strip-all %2").arg(shellQuote(strip), shellQuote(fileName)); - else - strip = QString::fromLatin1("%1 %2").arg(shellQuote(strip), shellQuote(fileName)); - - FILE *stripCommand = openProcess(strip); - if (stripCommand == 0) { - fprintf(stderr, "Cannot execute command %s", qPrintable(strip)); - return false; - } - - pclose(stripCommand); - - return true; -} - -bool stripLibraries(const Options &options) +bool containsApplicationBinary(Options *options) { - if (!options.stripLibraries) + if (!options->build) return true; - if (options.verbose) - fprintf(stdout, "Stripping libraries to minimize size.\n"); - - - QString libraryPath = options.outputDirectory - + QLatin1String("/libs/") - + options.architecture; - const QStringList libraries = QDir(libraryPath).entryList(QDir::Files); - for (const QString &library : libraries) { - if (library.endsWith(QLatin1String(".so"))) { - if (!stripFile(options, libraryPath + QLatin1Char('/') + library)) - return false; - } - } - - return true; -} - -bool containsApplicationBinary(const Options &options) -{ - if (options.verbose) + if (options->verbose) fprintf(stdout, "Checking if application binary is in package.\n"); - QFileInfo applicationBinary(options.applicationBinary); - QString destinationFileName = options.outputDirectory - + QLatin1String("/libs/") - + options.architecture - + QLatin1Char('/') - + applicationBinary.fileName(); + QFileInfo applicationBinary(options->applicationBinary); + QString applicationFileName = QStringLiteral("lib%1_%2.so").arg(options->applicationBinary, + options->currentArchitecture); - if (!QFile::exists(destinationFileName)) { + QString applicationPath = QStringLiteral("%1/libs/%2/%3").arg(options->outputDirectory, + options->currentArchitecture, + applicationFileName); + if (!QFile::exists(applicationPath)) { #if defined(Q_OS_WIN32) QLatin1String makeTool("mingw32-make"); // Only Mingw host builds supported on Windows currently #else QLatin1String makeTool("make"); #endif - fprintf(stderr, "Application binary is not in output directory: %s. Please run '%s install INSTALL_ROOT=%s' first.\n", - qPrintable(destinationFileName), + qPrintable(applicationFileName), qPrintable(makeTool), - qPrintable(options.outputDirectory)); + qPrintable(options->outputDirectory)); return false; } - return true; } @@ -1997,10 +1981,13 @@ bool goodToCopy(const Options *options, const QString &file, QStringList *unmetD if (!file.endsWith(QLatin1String(".so"))) return true; + if (!checkArchitecture(*options, file)) + return false; + bool ret = true; const auto libs = getQtLibsFromElf(*options, file); for (const QString &lib : libs) { - if (!options->qtDependencies.contains(QtDependency(lib, absoluteFilePath(options, lib)))) { + if (!options->qtDependencies[options->currentArchitecture].contains(QtDependency(lib, absoluteFilePath(options, lib)))) { ret = false; unmetDependencies->append(lib); } @@ -2027,25 +2014,22 @@ bool copyQtFiles(Options *options) QString libsDirectory = QLatin1String("libs/"); + // Copy other Qt dependencies - QString libDestinationDirectory = libsDirectory + options->architecture + QLatin1Char('/'); - QString assetsDestinationDirectory = QLatin1String("assets/--Added-by-androiddeployqt--/"); - for (const QtDependency &qtDependency : qAsConst(options->qtDependencies)) { + QString assetsDestinationDirectory = QStringLiteral("assets/--Added-by-androiddeployqt--/"); + for (const QtDependency &qtDependency : qAsConst(options->qtDependencies[options->currentArchitecture])) { QString sourceFileName = qtDependency.absolutePath; QString destinationFileName; - if (qtDependency.relativePath.endsWith(QLatin1String(".so"))) { + if (qtDependency.relativePath.endsWith(QStringLiteral(".so"))) { QString garbledFileName; - if (qtDependency.relativePath.startsWith(QLatin1String("lib/"))) { + if (qtDependency.relativePath.startsWith(QStringLiteral("lib/"))) { garbledFileName = qtDependency.relativePath.mid(sizeof("lib/") - 1); } else { - garbledFileName = QLatin1String("lib") - + QString(qtDependency.relativePath).replace(QLatin1Char('/'), QLatin1Char('_')); - + garbledFileName = QString(qtDependency.relativePath).replace(QLatin1Char('/'), QLatin1Char('_')); } - destinationFileName = libDestinationDirectory + garbledFileName; - - } else if (qtDependency.relativePath.startsWith(QLatin1String("jar/"))) { + destinationFileName = libsDirectory + options->currentArchitecture + QLatin1Char('/') + garbledFileName; + } else if (qtDependency.relativePath.startsWith(QStringLiteral("jar/"))) { destinationFileName = libsDirectory + qtDependency.relativePath.mid(sizeof("jar/") - 1); } else { destinationFileName = assetsDestinationDirectory + qtDependency.relativePath; @@ -2058,20 +2042,34 @@ bool copyQtFiles(Options *options) QStringList unmetDependencies; if (!goodToCopy(options, sourceFileName, &unmetDependencies)) { - fprintf(stdout, " -- Skipping %s. It has unmet dependencies: %s.\n", - qPrintable(sourceFileName), - qPrintable(unmetDependencies.join(QLatin1Char(',')))); + if (unmetDependencies.isEmpty()) { + if (options->verbose) { + fprintf(stdout, " -- Skipping %s, architecture mismatch.\n", + qPrintable(sourceFileName)); + } + } else { + if (unmetDependencies.isEmpty()) { + if (options->verbose) { + fprintf(stdout, " -- Skipping %s, architecture mismatch.\n", + qPrintable(sourceFileName)); + } + } else { + fprintf(stdout, " -- Skipping %s. It has unmet dependencies: %s.\n", + qPrintable(sourceFileName), + qPrintable(unmetDependencies.join(QLatin1Char(',')))); + } + } continue; } if (options->deploymentMechanism == Options::Bundled && !copyFileIfNewer(sourceFileName, options->outputDirectory + QLatin1Char('/') + destinationFileName, - options->verbose)) { + *options)) { return false; } - options->bundledFiles += qMakePair(destinationFileName, qtDependency.relativePath); + options->bundledFiles[options->currentArchitecture] += qMakePair(destinationFileName, qtDependency.relativePath); } return true; @@ -2409,21 +2407,18 @@ bool copyStdCpp(Options *options) if (options->verbose) fprintf(stdout, "Copying STL library\n"); - if (!QFile::exists(options->stdCppPath)) { - fprintf(stderr, "STL library does not exist at %s\n", qPrintable(options->stdCppPath)); - return false; - } - - const QString destinationDirectory = options->outputDirectory - + QLatin1String("/libs/") + options->architecture; - - if (!copyFileIfNewer(options->stdCppPath, destinationDirectory + QLatin1String("/lib") - + options->stdCppName + QLatin1String(".so"), - options->verbose)) { + QString stdCppPath = QStringLiteral("%1/%2/lib%3.so").arg(options->stdCppPath, options->architectures[options->currentArchitecture], options->stdCppName); + if (!QFile::exists(stdCppPath)) { + fprintf(stderr, "STL library does not exist at %s\n", qPrintable(stdCppPath)); + fflush(stdout); + fflush(stderr); return false; } - return true; + const QString destinationFile = QStringLiteral("%1/libs/%2/lib%3.so").arg(options->outputDirectory, + options->currentArchitecture, + options->stdCppName); + return copyFileIfNewer(stdCppPath, destinationFile, *options); } bool jarSignerSignPackage(const Options &options) @@ -2654,55 +2649,6 @@ bool signPackage(const Options &options) return apkSignerRunner() && QFile::remove(apkPath(options, UnsignedAPK)); } -bool copyGdbServer(const Options &options) -{ - if (options.verbose) - fprintf(stdout, "Copying gdbserver into package.\n"); - - QString architectureSubDirectory; - if (options.architecture == QLatin1String("arm64-v8a")) - architectureSubDirectory = QLatin1String("android-arm64"); - else if (options.architecture.startsWith(QLatin1String("arm"))) - architectureSubDirectory = QLatin1String("android-arm"); - else - architectureSubDirectory = QLatin1String("android-") + options.architecture; - - QString gdbServerBinary = options.ndkPath - + QLatin1String("/prebuilt/") - + architectureSubDirectory - + QLatin1String("/gdbserver/gdbserver"); - if (!QFile::exists(gdbServerBinary)) { - fprintf(stderr, "Cannot find gdbserver at %s.\n", qPrintable(gdbServerBinary)); - return false; - } - - QString gdbServerTarget = options.outputDirectory + QLatin1String("/libs/") + options.architecture; - - if (!copyFileIfNewer(gdbServerBinary, - gdbServerTarget + QLatin1String("/gdbserver"), - options.verbose) - || !copyFileIfNewer(gdbServerBinary, - gdbServerTarget + QLatin1String("/libgdbserver.so"), - options.verbose)) { - return false; - } - - QString addedByAndroidDeployQtPath = options.outputDirectory + QLatin1String("/assets/--Added-by-androiddeployqt--/"); - if (!QDir().mkpath(addedByAndroidDeployQtPath)) { - fprintf(stderr, "Failed to create directory '%s'", qPrintable(addedByAndroidDeployQtPath)); - return false; - } - QFile f(addedByAndroidDeployQtPath + QLatin1String("debugger.command")); - if (!f.open(QIODevice::WriteOnly)) { - fprintf(stderr, "Failed to create directory '%s'", qPrintable(addedByAndroidDeployQtPath)); - return false; - } - f.write("lib/libgdbserver.so --multi +"); - f.close(); - - return true; -} - bool generateAssetsFileList(const Options &options) { if (options.verbose) @@ -2764,8 +2710,6 @@ enum ErrorCode CannotCopyGnuStl = 5, CannotCopyQtFiles = 6, CannotFindApplicationBinary = 7, - CannotCopyGdbServer = 8, - CannotStripLibraries = 9, CannotCopyAndroidExtraLibs = 10, CannotCopyAndroidSources = 11, CannotUpdateAndroidFiles = 12, @@ -2813,25 +2757,7 @@ int main(int argc, char *argv[]) : "No" ); - if (options.auxMode) { - if (!readDependencies(&options)) - return CannotReadDependencies; - if (!copyQtFiles(&options)) - return CannotCopyQtFiles; - if (!copyAndroidExtraResources(options)) - return CannotCopyAndroidExtraResources; - if (!copyAndroidExtraLibs(options)) - return CannotCopyAndroidExtraLibs; - if (!stripLibraries(options)) - return CannotStripLibraries; - if (!updateAndroidFiles(options)) - return CannotUpdateAndroidFiles; - if (options.generateAssetsFileList && !generateAssetsFileList(options)) - return CannotGenerateAssetsFileList; - return 0; - } - - if (options.build) { + if (options.build && !options.auxMode) { cleanAndroidFiles(options); if (Q_UNLIKELY(options.timing)) fprintf(stdout, "[TIMING] %d ms: Cleaned Android file\n", options.timer.elapsed()); @@ -2843,60 +2769,68 @@ int main(int argc, char *argv[]) fprintf(stdout, "[TIMING] %d ms: Copied Android template\n", options.timer.elapsed()); } - if (!readDependencies(&options)) - return CannotReadDependencies; - - if (Q_UNLIKELY(options.timing)) - fprintf(stdout, "[TIMING] %d ms: Read dependencies\n", options.timer.elapsed()); + for (auto it = options.architectures.constBegin(); it != options.architectures.constEnd(); ++it) { + options.clear(it.key()); - if (options.deploymentMechanism != Options::Ministro && !copyStdCpp(&options)) - return CannotCopyGnuStl; + if (!readDependencies(&options)) + return CannotReadDependencies; - if (Q_UNLIKELY(options.timing)) - fprintf(stdout, "[TIMING] %d ms: Copied GNU STL\n", options.timer.elapsed()); + if (Q_UNLIKELY(options.timing)) + fprintf(stdout, "[TIMING] %d ms: Read dependencies\n", options.timer.elapsed()); - if (!copyQtFiles(&options)) - return CannotCopyQtFiles; + if (!copyQtFiles(&options)) + return CannotCopyQtFiles; - if (options.build) { if (Q_UNLIKELY(options.timing)) fprintf(stdout, "[TIMING] %d ms: Copied Qt files\n", options.timer.elapsed()); - if (!containsApplicationBinary(options)) - return CannotFindApplicationBinary; + if (!copyAndroidExtraLibs(&options)) + return CannotCopyAndroidExtraLibs; if (Q_UNLIKELY(options.timing)) - fprintf(stdout, "[TIMING] %d ms: Checked for application binary\n", options.timer.elapsed()); + fprintf(stdout, "[TIMING] %d ms: Copied extra libs\n", options.timer.elapsed()); - bool needToCopyGdbServer = options.gdbServer == Options::True - || (options.gdbServer == Options::Auto && !options.releasePackage); - if (needToCopyGdbServer && !copyGdbServer(options)) - return CannotCopyGdbServer; + if (!copyAndroidExtraResources(&options)) + return CannotCopyAndroidExtraResources; if (Q_UNLIKELY(options.timing)) - fprintf(stdout, "[TIMING] %d ms: Copied GDB server\n", options.timer.elapsed()); + fprintf(stdout, "[TIMING] %d ms: Copied extra resources\n", options.timer.elapsed()); - if (!copyAndroidExtraLibs(options)) - return CannotCopyAndroidExtraLibs; + if (!options.auxMode) { + if (options.deploymentMechanism != Options::Ministro && !copyStdCpp(&options)) + return CannotCopyGnuStl; + + if (Q_UNLIKELY(options.timing)) + fprintf(stdout, "[TIMING] %d ms: Copied GNU STL\n", options.timer.elapsed()); + } + + if (!containsApplicationBinary(&options)) + return CannotFindApplicationBinary; if (Q_UNLIKELY(options.timing)) - fprintf(stdout, "[TIMING] %d ms: Copied extra libs\n", options.timer.elapsed()); + fprintf(stdout, "[TIMING] %d ms: Checked for application binary\n", options.timer.elapsed()); - if (!copyAndroidExtraResources(options)) - return CannotCopyAndroidExtraResources; + if (options.deploymentMechanism != Options::Ministro) { + if (Q_UNLIKELY(options.timing)) + fprintf(stdout, "[TIMING] %d ms: Bundled Qt libs\n", options.timer.elapsed()); + } + } + if (options.auxMode) { + if (!updateAndroidFiles(options)) + return CannotUpdateAndroidFiles; + if (options.generateAssetsFileList && !generateAssetsFileList(options)) + return CannotGenerateAssetsFileList; + return 0; + } + + if (options.build) { if (!copyAndroidSources(options)) return CannotCopyAndroidSources; if (Q_UNLIKELY(options.timing)) fprintf(stdout, "[TIMING] %d ms: Copied android sources\n", options.timer.elapsed()); - if (!stripLibraries(options)) - return CannotStripLibraries; - - if (Q_UNLIKELY(options.timing)) - fprintf(stdout, "[TIMING] %d ms: Stripped libraries\n", options.timer.elapsed()); - if (!updateAndroidFiles(options)) return CannotUpdateAndroidFiles; -- cgit v1.2.3 From 60588e1a5dd9b10803e078c741271cbe5713a51b Mon Sep 17 00:00:00 2001 From: Gatis Paeglis Date: Tue, 19 Feb 2019 10:09:19 +0100 Subject: 3rdparty: remove xcb libs and bump minimal required version to 1.11 With libxcb 1.11 as minimal required version we can: (a) (Maybe) Enable threaded GL for MESA, see QTBUG-67277. (b) Avoid performance issues described in QTBUG-46017. Bundled xcb libs don't contain the more modern SHM fd passing APIs. The official binaries use "-qt-xcb", therefore we were shipping with the performance fix #ifdef-ed out. (c) Make xcb-xkb a mandatory dependency avoiding issues described in QTBUG-30911. Issues that appear when Qt was configure with "-no-xkb -xcb-xlib", but X server has the XKB extension. (d) Drop all, but xcb-xinput sources from src/3rdparty/xcb/, for which we need "xcb-xinput >= 1.12". This way we can reduce maintenance work. The xcb libraries were origianlly bundled because of lack of availability on supported distributions. This is not the case anymore: CI for Qt 5.13 has: Ubuntu 18.04 - libxcb 1.13 RHEL 7.4 - libxcb 1.13 openSUSE 15.0 - libxcb 1.13 CI for Qt 5.12 has: Ubuntu 16.04 - libxcb 1.11 RHEL 7.4 - libxcb 1.13 openSUSE 42.3 - libxcb 1.11 RHEL 6.x - not relevant because it was dropped from supported platforms. Why 1.11 (released on Aug, 2014), but not 1.13 (released on March 2018)? Based on what we have in CI for 5.13 and 5.14 we could update to 1.13, but it means that Qt would require a very recent version of 3rd party dependency. [ChangeLog][Configure][X11] The minimal required version of libxcb now is 1.11. [ChangeLog][Third-Party Code][X11] Removed all bundled XCB libs, with the exception of xcb-xinput, which is not available on systems with libxcb 1.11. [ChangeLog][Configure][X11] Removed -qt-xcb, -system-xcb, -xkb, -xcb-xinput switches. [ChangeLog][Platform Specific Changes][X11] XKB and XInput2 now are mandatory dependencies for XCB plugin. XCB-XKB is a part of libxcb 1.11 releases. XCB-XInput is not part of libxcb 1.11 releases, but Qt builders can use -bundled-xcb-xinput switch. Fixes: QTBUG-73862 Fixes: QTBUG-73888 Task-number: QTBUG-67277 Task-number: QTBUG-30939 Change-Id: I4c2bd2a0e667220d32fd1fbfa1419c844f17fcce Reviewed-by: Lars Knoll --- config_help.txt | 5 +- src/3rdparty/xcb/README | 35 +- src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch | 15 + src/3rdparty/xcb/include/xcb/randr.h | 5075 ------ src/3rdparty/xcb/include/xcb/render.h | 4513 ------ src/3rdparty/xcb/include/xcb/shape.h | 1103 -- src/3rdparty/xcb/include/xcb/shm.h | 738 - src/3rdparty/xcb/include/xcb/sync.h | 2216 --- src/3rdparty/xcb/include/xcb/xcb_atom.h | 18 - src/3rdparty/xcb/include/xcb/xcb_aux.h | 214 - src/3rdparty/xcb/include/xcb/xcb_bitops.h | 212 - src/3rdparty/xcb/include/xcb/xcb_event.h | 90 - src/3rdparty/xcb/include/xcb/xcb_icccm.h | 1049 -- src/3rdparty/xcb/include/xcb/xcb_image.h | 630 - src/3rdparty/xcb/include/xcb/xcb_keysyms.h | 71 - src/3rdparty/xcb/include/xcb/xcb_pixel.h | 171 - src/3rdparty/xcb/include/xcb/xcb_renderutil.h | 150 - src/3rdparty/xcb/include/xcb/xcb_util.h | 8 - src/3rdparty/xcb/include/xcb/xfixes.h | 2816 ---- src/3rdparty/xcb/include/xcb/xinerama.h | 811 - src/3rdparty/xcb/include/xcb/xinput.h | 4 +- src/3rdparty/xcb/include/xcb/xkb.h | 12085 -------------- .../fix_compiler_warning_on_32bit_systems.patch | 15 - src/3rdparty/xcb/libxcb/fixup-xinput-c.patch | 19 + src/3rdparty/xcb/libxcb/randr.c | 5640 ------- src/3rdparty/xcb/libxcb/render.c | 5295 ------ src/3rdparty/xcb/libxcb/shape.c | 1102 -- src/3rdparty/xcb/libxcb/shm.c | 724 - src/3rdparty/xcb/libxcb/sync.c | 2258 --- src/3rdparty/xcb/libxcb/xfixes.c | 3274 ---- src/3rdparty/xcb/libxcb/xinerama.c | 703 - src/3rdparty/xcb/libxcb/xinput.c | 6 +- src/3rdparty/xcb/libxcb/xkb.c | 15959 ------------------- src/3rdparty/xcb/qt_attribution.json | 24 +- src/3rdparty/xcb/sysinclude/render.h | 1 - src/3rdparty/xcb/sysinclude/xcb.h | 1 - src/3rdparty/xcb/sysinclude/xcbext.h | 1 - src/3rdparty/xcb/sysinclude/xproto.h | 1 - src/3rdparty/xcb/xcb-util-image/xcb_image.c | 1011 -- src/3rdparty/xcb/xcb-util-keysyms/keysyms.c | 498 - src/3rdparty/xcb/xcb-util-renderutil/util.c | 255 - src/3rdparty/xcb/xcb-util-wm/icccm.c | 845 - src/3rdparty/xcb/xcb-util/atoms.c | 76 - src/3rdparty/xcb/xcb-util/event.c | 257 - src/3rdparty/xcb/xcb-util/xcb_aux.c | 374 - src/gui/configure.json | 86 +- src/plugins/platforms/xcb/qxcbconnection.cpp | 26 - src/plugins/platforms/xcb/qxcbconnection.h | 8 - src/plugins/platforms/xcb/qxcbconnection_basic.cpp | 21 +- src/plugins/platforms/xcb/qxcbconnection_basic.h | 6 - src/plugins/platforms/xcb/qxcbkeyboard.cpp | 25 +- src/plugins/platforms/xcb/qxcbkeyboard.h | 20 +- src/plugins/platforms/xcb/qxcbwindow.cpp | 26 +- src/plugins/platforms/xcb/qxcbwindow.h | 2 - .../platforms/xcb/xcb-static/xcb-static.pro | 80 - src/plugins/platforms/xcb/xcb.pro | 2 - src/plugins/platforms/xcb/xcb_qpa_lib.pro | 30 +- 57 files changed, 130 insertions(+), 70570 deletions(-) create mode 100644 src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch delete mode 100644 src/3rdparty/xcb/include/xcb/randr.h delete mode 100644 src/3rdparty/xcb/include/xcb/render.h delete mode 100644 src/3rdparty/xcb/include/xcb/shape.h delete mode 100644 src/3rdparty/xcb/include/xcb/shm.h delete mode 100644 src/3rdparty/xcb/include/xcb/sync.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_atom.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_aux.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_bitops.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_event.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_icccm.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_image.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_keysyms.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_pixel.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_renderutil.h delete mode 100644 src/3rdparty/xcb/include/xcb/xcb_util.h delete mode 100644 src/3rdparty/xcb/include/xcb/xfixes.h delete mode 100644 src/3rdparty/xcb/include/xcb/xinerama.h delete mode 100644 src/3rdparty/xcb/include/xcb/xkb.h delete mode 100644 src/3rdparty/xcb/libxcb/fix_compiler_warning_on_32bit_systems.patch create mode 100644 src/3rdparty/xcb/libxcb/fixup-xinput-c.patch delete mode 100644 src/3rdparty/xcb/libxcb/randr.c delete mode 100644 src/3rdparty/xcb/libxcb/render.c delete mode 100644 src/3rdparty/xcb/libxcb/shape.c delete mode 100644 src/3rdparty/xcb/libxcb/shm.c delete mode 100644 src/3rdparty/xcb/libxcb/sync.c delete mode 100644 src/3rdparty/xcb/libxcb/xfixes.c delete mode 100644 src/3rdparty/xcb/libxcb/xinerama.c delete mode 100644 src/3rdparty/xcb/libxcb/xkb.c delete mode 100644 src/3rdparty/xcb/sysinclude/render.h delete mode 100644 src/3rdparty/xcb/sysinclude/xcb.h delete mode 100644 src/3rdparty/xcb/sysinclude/xcbext.h delete mode 100644 src/3rdparty/xcb/sysinclude/xproto.h delete mode 100644 src/3rdparty/xcb/xcb-util-image/xcb_image.c delete mode 100644 src/3rdparty/xcb/xcb-util-keysyms/keysyms.c delete mode 100644 src/3rdparty/xcb/xcb-util-renderutil/util.c delete mode 100644 src/3rdparty/xcb/xcb-util-wm/icccm.c delete mode 100644 src/3rdparty/xcb/xcb-util/atoms.c delete mode 100644 src/3rdparty/xcb/xcb-util/event.c delete mode 100644 src/3rdparty/xcb/xcb-util/xcb_aux.c delete mode 100644 src/plugins/platforms/xcb/xcb-static/xcb-static.pro diff --git a/config_help.txt b/config_help.txt index 3f31fd351f..19991becb6 100644 --- a/config_help.txt +++ b/config_help.txt @@ -297,8 +297,7 @@ Gui, printing, widget options: -gbm ............... Enable backends for GBM [auto] (Linux only) -kms ............... Enable backends for KMS [auto] (Linux only) -linuxfb ........... Enable Linux Framebuffer support [auto] (Linux only) - -xcb ............... Enable X11 support. Select used xcb-* libraries [system/qt/no] - (-qt-xcb still uses system version of libxcb itself) + -xcb ............... Enable X11 support [auto] (Linux only) Input backends: -libudev............ Enable udev support [auto] @@ -307,7 +306,7 @@ Gui, printing, widget options: -libinput .......... Enable libinput support [auto] -mtdev ............. Enable mtdev support [auto] -tslib ............. Enable tslib support [auto] - -xcb-xinput ........ Enable XInput2 support [auto] + -bundled-xcb-xinput Use bundled XInput2 support [auto] -xkbcommon ......... Enable key mapping support [auto] Image formats: diff --git a/src/3rdparty/xcb/README b/src/3rdparty/xcb/README index 2f1ee24079..362fa54bf8 100644 --- a/src/3rdparty/xcb/README +++ b/src/3rdparty/xcb/README @@ -1,19 +1,22 @@ -Contains the header and sources files from selected xcb libraries: +***************************************************************** +From 62f053c19b917a369c4aad5b71ab150911b589aa: - libxcb-1.9.1 together with xcb-proto-1.8 (randr, render, shape, shm, sync, - xfixes, xinerama sources) - # libxkbcommon-x11 requires libxcb-xkb >= 1.10 - libxcb-1.10 together with xcb-proto-1.10 (xkb sources) - libxcb-1.13 together with xcb-proto-1.13 (xinput sources with removed - Pointer Barriers API and SendExtensionEvent API) - libxcb-util-image-0.3.9 - libxcb-util-keysyms-0.3.9 - libxcb-util-renderutil-0.3.9 - libxcb-util-wm-0.3.9 +xcb-xinput code was produced by build of libxcb 1.13 with xcb-proto 1.13. -The 'include' directory was obtained by compiling and installing all of the modules. -When upgrading the bundled xcb headers, they must be tested to run also with the -minimal supported libxcb version, which currently is 1.9.1. +The following parts were removed from it: + - Pointer Barriers API (requires xcb-xfixes 1.9 with xcb-proto 1.9) + - SendExtensionEvent API (requires definition of xcb_raw_generic_event_t + from libxcb 1.13) + +***************************************************************** + +As of time of writing the minimal required libxcb version is 1.11, hence +we could restore the Pointer Barriers API, but we don't use it, so it is +not worth the hustle. When we will bump the minimal required version of libxcb +to 1.13, then we can drop the bundled xcb-xinput altogether. + +The xcb-xinput files where modified to use system includes, see: + +src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch +src/3rdparty/xcb/libxcb/fixup-xinput-c.patch -Use the -qt-xcb configure option to use the files instead of system xcb libraries. -See src/plugins/platforms/xcb/README for details. diff --git a/src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch b/src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch new file mode 100644 index 0000000000..50c5ebd9f0 --- /dev/null +++ b/src/3rdparty/xcb/include/xcb/fixup-xinput-h.patch @@ -0,0 +1,15 @@ +diff --git a/src/3rdparty/xcb/include/xcb/xinput.h b/src/3rdparty/xcb/include/xcb/xinput.h +index 9420047c71..729c0b5169 100644 +--- a/src/3rdparty/xcb/include/xcb/xinput.h ++++ b/src/3rdparty/xcb/include/xcb/xinput.h +@@ -12,8 +12,8 @@ + #ifndef __XINPUT_H + #define __XINPUT_H + +-#include "xcb.h" +-#include "xfixes.h" ++#include ++#include + + #ifdef __cplusplus + extern "C" { diff --git a/src/3rdparty/xcb/include/xcb/randr.h b/src/3rdparty/xcb/include/xcb/randr.h deleted file mode 100644 index 4f4f2104cf..0000000000 --- a/src/3rdparty/xcb/include/xcb/randr.h +++ /dev/null @@ -1,5075 +0,0 @@ -/* - * This file generated automatically from randr.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_RandR_API XCB RandR API - * @brief RandR XCB Protocol Implementation. - * @{ - **/ - -#ifndef __RANDR_H -#define __RANDR_H - -#include "xcb.h" -#include "xproto.h" -#include "render.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_RANDR_MAJOR_VERSION 1 -#define XCB_RANDR_MINOR_VERSION 3 - -extern xcb_extension_t xcb_randr_id; - -typedef uint32_t xcb_randr_mode_t; - -/** - * @brief xcb_randr_mode_iterator_t - **/ -typedef struct xcb_randr_mode_iterator_t { - xcb_randr_mode_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_mode_iterator_t; - -typedef uint32_t xcb_randr_crtc_t; - -/** - * @brief xcb_randr_crtc_iterator_t - **/ -typedef struct xcb_randr_crtc_iterator_t { - xcb_randr_crtc_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_crtc_iterator_t; - -typedef uint32_t xcb_randr_output_t; - -/** - * @brief xcb_randr_output_iterator_t - **/ -typedef struct xcb_randr_output_iterator_t { - xcb_randr_output_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_output_iterator_t; - -/** Opcode for xcb_randr_bad_output. */ -#define XCB_RANDR_BAD_OUTPUT 0 - -/** - * @brief xcb_randr_bad_output_error_t - **/ -typedef struct xcb_randr_bad_output_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_randr_bad_output_error_t; - -/** Opcode for xcb_randr_bad_crtc. */ -#define XCB_RANDR_BAD_CRTC 1 - -/** - * @brief xcb_randr_bad_crtc_error_t - **/ -typedef struct xcb_randr_bad_crtc_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_randr_bad_crtc_error_t; - -/** Opcode for xcb_randr_bad_mode. */ -#define XCB_RANDR_BAD_MODE 2 - -/** - * @brief xcb_randr_bad_mode_error_t - **/ -typedef struct xcb_randr_bad_mode_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_randr_bad_mode_error_t; - -typedef enum xcb_randr_rotation_t { - XCB_RANDR_ROTATION_ROTATE_0 = 1, - XCB_RANDR_ROTATION_ROTATE_90 = 2, - XCB_RANDR_ROTATION_ROTATE_180 = 4, - XCB_RANDR_ROTATION_ROTATE_270 = 8, - XCB_RANDR_ROTATION_REFLECT_X = 16, - XCB_RANDR_ROTATION_REFLECT_Y = 32 -} xcb_randr_rotation_t; - -/** - * @brief xcb_randr_screen_size_t - **/ -typedef struct xcb_randr_screen_size_t { - uint16_t width; /**< */ - uint16_t height; /**< */ - uint16_t mwidth; /**< */ - uint16_t mheight; /**< */ -} xcb_randr_screen_size_t; - -/** - * @brief xcb_randr_screen_size_iterator_t - **/ -typedef struct xcb_randr_screen_size_iterator_t { - xcb_randr_screen_size_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_screen_size_iterator_t; - -/** - * @brief xcb_randr_refresh_rates_t - **/ -typedef struct xcb_randr_refresh_rates_t { - uint16_t nRates; /**< */ -} xcb_randr_refresh_rates_t; - -/** - * @brief xcb_randr_refresh_rates_iterator_t - **/ -typedef struct xcb_randr_refresh_rates_iterator_t { - xcb_randr_refresh_rates_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_refresh_rates_iterator_t; - -/** - * @brief xcb_randr_query_version_cookie_t - **/ -typedef struct xcb_randr_query_version_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_query_version_cookie_t; - -/** Opcode for xcb_randr_query_version. */ -#define XCB_RANDR_QUERY_VERSION 0 - -/** - * @brief xcb_randr_query_version_request_t - **/ -typedef struct xcb_randr_query_version_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint32_t major_version; /**< */ - uint32_t minor_version; /**< */ -} xcb_randr_query_version_request_t; - -/** - * @brief xcb_randr_query_version_reply_t - **/ -typedef struct xcb_randr_query_version_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t major_version; /**< */ - uint32_t minor_version; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_randr_query_version_reply_t; - -typedef enum xcb_randr_set_config_t { - XCB_RANDR_SET_CONFIG_SUCCESS = 0, - XCB_RANDR_SET_CONFIG_INVALID_CONFIG_TIME = 1, - XCB_RANDR_SET_CONFIG_INVALID_TIME = 2, - XCB_RANDR_SET_CONFIG_FAILED = 3 -} xcb_randr_set_config_t; - -/** - * @brief xcb_randr_set_screen_config_cookie_t - **/ -typedef struct xcb_randr_set_screen_config_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_set_screen_config_cookie_t; - -/** Opcode for xcb_randr_set_screen_config. */ -#define XCB_RANDR_SET_SCREEN_CONFIG 2 - -/** - * @brief xcb_randr_set_screen_config_request_t - **/ -typedef struct xcb_randr_set_screen_config_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - uint16_t sizeID; /**< */ - uint16_t rotation; /**< */ - uint16_t rate; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_set_screen_config_request_t; - -/** - * @brief xcb_randr_set_screen_config_reply_t - **/ -typedef struct xcb_randr_set_screen_config_reply_t { - uint8_t response_type; /**< */ - uint8_t status; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t new_timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - xcb_window_t root; /**< */ - uint16_t subpixel_order; /**< */ - uint8_t pad0[10]; /**< */ -} xcb_randr_set_screen_config_reply_t; - -typedef enum xcb_randr_notify_mask_t { - XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE = 1, - XCB_RANDR_NOTIFY_MASK_CRTC_CHANGE = 2, - XCB_RANDR_NOTIFY_MASK_OUTPUT_CHANGE = 4, - XCB_RANDR_NOTIFY_MASK_OUTPUT_PROPERTY = 8 -} xcb_randr_notify_mask_t; - -/** Opcode for xcb_randr_select_input. */ -#define XCB_RANDR_SELECT_INPUT 4 - -/** - * @brief xcb_randr_select_input_request_t - **/ -typedef struct xcb_randr_select_input_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - uint16_t enable; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_select_input_request_t; - -/** - * @brief xcb_randr_get_screen_info_cookie_t - **/ -typedef struct xcb_randr_get_screen_info_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_screen_info_cookie_t; - -/** Opcode for xcb_randr_get_screen_info. */ -#define XCB_RANDR_GET_SCREEN_INFO 5 - -/** - * @brief xcb_randr_get_screen_info_request_t - **/ -typedef struct xcb_randr_get_screen_info_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_randr_get_screen_info_request_t; - -/** - * @brief xcb_randr_get_screen_info_reply_t - **/ -typedef struct xcb_randr_get_screen_info_reply_t { - uint8_t response_type; /**< */ - uint8_t rotations; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_window_t root; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - uint16_t nSizes; /**< */ - uint16_t sizeID; /**< */ - uint16_t rotation; /**< */ - uint16_t rate; /**< */ - uint16_t nInfo; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_get_screen_info_reply_t; - -/** - * @brief xcb_randr_get_screen_size_range_cookie_t - **/ -typedef struct xcb_randr_get_screen_size_range_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_screen_size_range_cookie_t; - -/** Opcode for xcb_randr_get_screen_size_range. */ -#define XCB_RANDR_GET_SCREEN_SIZE_RANGE 6 - -/** - * @brief xcb_randr_get_screen_size_range_request_t - **/ -typedef struct xcb_randr_get_screen_size_range_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_randr_get_screen_size_range_request_t; - -/** - * @brief xcb_randr_get_screen_size_range_reply_t - **/ -typedef struct xcb_randr_get_screen_size_range_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t min_width; /**< */ - uint16_t min_height; /**< */ - uint16_t max_width; /**< */ - uint16_t max_height; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_randr_get_screen_size_range_reply_t; - -/** Opcode for xcb_randr_set_screen_size. */ -#define XCB_RANDR_SET_SCREEN_SIZE 7 - -/** - * @brief xcb_randr_set_screen_size_request_t - **/ -typedef struct xcb_randr_set_screen_size_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint32_t mm_width; /**< */ - uint32_t mm_height; /**< */ -} xcb_randr_set_screen_size_request_t; - -typedef enum xcb_randr_mode_flag_t { - XCB_RANDR_MODE_FLAG_HSYNC_POSITIVE = 1, - XCB_RANDR_MODE_FLAG_HSYNC_NEGATIVE = 2, - XCB_RANDR_MODE_FLAG_VSYNC_POSITIVE = 4, - XCB_RANDR_MODE_FLAG_VSYNC_NEGATIVE = 8, - XCB_RANDR_MODE_FLAG_INTERLACE = 16, - XCB_RANDR_MODE_FLAG_DOUBLE_SCAN = 32, - XCB_RANDR_MODE_FLAG_CSYNC = 64, - XCB_RANDR_MODE_FLAG_CSYNC_POSITIVE = 128, - XCB_RANDR_MODE_FLAG_CSYNC_NEGATIVE = 256, - XCB_RANDR_MODE_FLAG_HSKEW_PRESENT = 512, - XCB_RANDR_MODE_FLAG_BCAST = 1024, - XCB_RANDR_MODE_FLAG_PIXEL_MULTIPLEX = 2048, - XCB_RANDR_MODE_FLAG_DOUBLE_CLOCK = 4096, - XCB_RANDR_MODE_FLAG_HALVE_CLOCK = 8192 -} xcb_randr_mode_flag_t; - -/** - * @brief xcb_randr_mode_info_t - **/ -typedef struct xcb_randr_mode_info_t { - uint32_t id; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint32_t dot_clock; /**< */ - uint16_t hsync_start; /**< */ - uint16_t hsync_end; /**< */ - uint16_t htotal; /**< */ - uint16_t hskew; /**< */ - uint16_t vsync_start; /**< */ - uint16_t vsync_end; /**< */ - uint16_t vtotal; /**< */ - uint16_t name_len; /**< */ - uint32_t mode_flags; /**< */ -} xcb_randr_mode_info_t; - -/** - * @brief xcb_randr_mode_info_iterator_t - **/ -typedef struct xcb_randr_mode_info_iterator_t { - xcb_randr_mode_info_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_mode_info_iterator_t; - -/** - * @brief xcb_randr_get_screen_resources_cookie_t - **/ -typedef struct xcb_randr_get_screen_resources_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_screen_resources_cookie_t; - -/** Opcode for xcb_randr_get_screen_resources. */ -#define XCB_RANDR_GET_SCREEN_RESOURCES 8 - -/** - * @brief xcb_randr_get_screen_resources_request_t - **/ -typedef struct xcb_randr_get_screen_resources_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_randr_get_screen_resources_request_t; - -/** - * @brief xcb_randr_get_screen_resources_reply_t - **/ -typedef struct xcb_randr_get_screen_resources_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - uint16_t num_crtcs; /**< */ - uint16_t num_outputs; /**< */ - uint16_t num_modes; /**< */ - uint16_t names_len; /**< */ - uint8_t pad1[8]; /**< */ -} xcb_randr_get_screen_resources_reply_t; - -typedef enum xcb_randr_connection_t { - XCB_RANDR_CONNECTION_CONNECTED, - XCB_RANDR_CONNECTION_DISCONNECTED, - XCB_RANDR_CONNECTION_UNKNOWN -} xcb_randr_connection_t; - -/** - * @brief xcb_randr_get_output_info_cookie_t - **/ -typedef struct xcb_randr_get_output_info_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_output_info_cookie_t; - -/** Opcode for xcb_randr_get_output_info. */ -#define XCB_RANDR_GET_OUTPUT_INFO 9 - -/** - * @brief xcb_randr_get_output_info_request_t - **/ -typedef struct xcb_randr_get_output_info_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_timestamp_t config_timestamp; /**< */ -} xcb_randr_get_output_info_request_t; - -/** - * @brief xcb_randr_get_output_info_reply_t - **/ -typedef struct xcb_randr_get_output_info_reply_t { - uint8_t response_type; /**< */ - uint8_t status; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_randr_crtc_t crtc; /**< */ - uint32_t mm_width; /**< */ - uint32_t mm_height; /**< */ - uint8_t connection; /**< */ - uint8_t subpixel_order; /**< */ - uint16_t num_crtcs; /**< */ - uint16_t num_modes; /**< */ - uint16_t num_preferred; /**< */ - uint16_t num_clones; /**< */ - uint16_t name_len; /**< */ -} xcb_randr_get_output_info_reply_t; - -/** - * @brief xcb_randr_list_output_properties_cookie_t - **/ -typedef struct xcb_randr_list_output_properties_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_list_output_properties_cookie_t; - -/** Opcode for xcb_randr_list_output_properties. */ -#define XCB_RANDR_LIST_OUTPUT_PROPERTIES 10 - -/** - * @brief xcb_randr_list_output_properties_request_t - **/ -typedef struct xcb_randr_list_output_properties_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ -} xcb_randr_list_output_properties_request_t; - -/** - * @brief xcb_randr_list_output_properties_reply_t - **/ -typedef struct xcb_randr_list_output_properties_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t num_atoms; /**< */ - uint8_t pad1[22]; /**< */ -} xcb_randr_list_output_properties_reply_t; - -/** - * @brief xcb_randr_query_output_property_cookie_t - **/ -typedef struct xcb_randr_query_output_property_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_query_output_property_cookie_t; - -/** Opcode for xcb_randr_query_output_property. */ -#define XCB_RANDR_QUERY_OUTPUT_PROPERTY 11 - -/** - * @brief xcb_randr_query_output_property_request_t - **/ -typedef struct xcb_randr_query_output_property_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_atom_t property; /**< */ -} xcb_randr_query_output_property_request_t; - -/** - * @brief xcb_randr_query_output_property_reply_t - **/ -typedef struct xcb_randr_query_output_property_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t pending; /**< */ - uint8_t range; /**< */ - uint8_t immutable; /**< */ - uint8_t pad1[21]; /**< */ -} xcb_randr_query_output_property_reply_t; - -/** Opcode for xcb_randr_configure_output_property. */ -#define XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY 12 - -/** - * @brief xcb_randr_configure_output_property_request_t - **/ -typedef struct xcb_randr_configure_output_property_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_atom_t property; /**< */ - uint8_t pending; /**< */ - uint8_t range; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_configure_output_property_request_t; - -/** Opcode for xcb_randr_change_output_property. */ -#define XCB_RANDR_CHANGE_OUTPUT_PROPERTY 13 - -/** - * @brief xcb_randr_change_output_property_request_t - **/ -typedef struct xcb_randr_change_output_property_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_atom_t property; /**< */ - xcb_atom_t type; /**< */ - uint8_t format; /**< */ - uint8_t mode; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t num_units; /**< */ -} xcb_randr_change_output_property_request_t; - -/** Opcode for xcb_randr_delete_output_property. */ -#define XCB_RANDR_DELETE_OUTPUT_PROPERTY 14 - -/** - * @brief xcb_randr_delete_output_property_request_t - **/ -typedef struct xcb_randr_delete_output_property_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_atom_t property; /**< */ -} xcb_randr_delete_output_property_request_t; - -/** - * @brief xcb_randr_get_output_property_cookie_t - **/ -typedef struct xcb_randr_get_output_property_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_output_property_cookie_t; - -/** Opcode for xcb_randr_get_output_property. */ -#define XCB_RANDR_GET_OUTPUT_PROPERTY 15 - -/** - * @brief xcb_randr_get_output_property_request_t - **/ -typedef struct xcb_randr_get_output_property_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_atom_t property; /**< */ - xcb_atom_t type; /**< */ - uint32_t long_offset; /**< */ - uint32_t long_length; /**< */ - uint8_t _delete; /**< */ - uint8_t pending; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_get_output_property_request_t; - -/** - * @brief xcb_randr_get_output_property_reply_t - **/ -typedef struct xcb_randr_get_output_property_reply_t { - uint8_t response_type; /**< */ - uint8_t format; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_atom_t type; /**< */ - uint32_t bytes_after; /**< */ - uint32_t num_items; /**< */ - uint8_t pad0[12]; /**< */ -} xcb_randr_get_output_property_reply_t; - -/** - * @brief xcb_randr_create_mode_cookie_t - **/ -typedef struct xcb_randr_create_mode_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_create_mode_cookie_t; - -/** Opcode for xcb_randr_create_mode. */ -#define XCB_RANDR_CREATE_MODE 16 - -/** - * @brief xcb_randr_create_mode_request_t - **/ -typedef struct xcb_randr_create_mode_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - xcb_randr_mode_info_t mode_info; /**< */ -} xcb_randr_create_mode_request_t; - -/** - * @brief xcb_randr_create_mode_reply_t - **/ -typedef struct xcb_randr_create_mode_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_randr_mode_t mode; /**< */ - uint8_t pad1[20]; /**< */ -} xcb_randr_create_mode_reply_t; - -/** Opcode for xcb_randr_destroy_mode. */ -#define XCB_RANDR_DESTROY_MODE 17 - -/** - * @brief xcb_randr_destroy_mode_request_t - **/ -typedef struct xcb_randr_destroy_mode_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_mode_t mode; /**< */ -} xcb_randr_destroy_mode_request_t; - -/** Opcode for xcb_randr_add_output_mode. */ -#define XCB_RANDR_ADD_OUTPUT_MODE 18 - -/** - * @brief xcb_randr_add_output_mode_request_t - **/ -typedef struct xcb_randr_add_output_mode_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_randr_mode_t mode; /**< */ -} xcb_randr_add_output_mode_request_t; - -/** Opcode for xcb_randr_delete_output_mode. */ -#define XCB_RANDR_DELETE_OUTPUT_MODE 19 - -/** - * @brief xcb_randr_delete_output_mode_request_t - **/ -typedef struct xcb_randr_delete_output_mode_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_output_t output; /**< */ - xcb_randr_mode_t mode; /**< */ -} xcb_randr_delete_output_mode_request_t; - -/** - * @brief xcb_randr_get_crtc_info_cookie_t - **/ -typedef struct xcb_randr_get_crtc_info_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_crtc_info_cookie_t; - -/** Opcode for xcb_randr_get_crtc_info. */ -#define XCB_RANDR_GET_CRTC_INFO 20 - -/** - * @brief xcb_randr_get_crtc_info_request_t - **/ -typedef struct xcb_randr_get_crtc_info_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ - xcb_timestamp_t config_timestamp; /**< */ -} xcb_randr_get_crtc_info_request_t; - -/** - * @brief xcb_randr_get_crtc_info_reply_t - **/ -typedef struct xcb_randr_get_crtc_info_reply_t { - uint8_t response_type; /**< */ - uint8_t status; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - xcb_randr_mode_t mode; /**< */ - uint16_t rotation; /**< */ - uint16_t rotations; /**< */ - uint16_t num_outputs; /**< */ - uint16_t num_possible_outputs; /**< */ -} xcb_randr_get_crtc_info_reply_t; - -/** - * @brief xcb_randr_set_crtc_config_cookie_t - **/ -typedef struct xcb_randr_set_crtc_config_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_set_crtc_config_cookie_t; - -/** Opcode for xcb_randr_set_crtc_config. */ -#define XCB_RANDR_SET_CRTC_CONFIG 21 - -/** - * @brief xcb_randr_set_crtc_config_request_t - **/ -typedef struct xcb_randr_set_crtc_config_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - xcb_randr_mode_t mode; /**< */ - uint16_t rotation; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_set_crtc_config_request_t; - -/** - * @brief xcb_randr_set_crtc_config_reply_t - **/ -typedef struct xcb_randr_set_crtc_config_reply_t { - uint8_t response_type; /**< */ - uint8_t status; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ - uint8_t pad0[20]; /**< */ -} xcb_randr_set_crtc_config_reply_t; - -/** - * @brief xcb_randr_get_crtc_gamma_size_cookie_t - **/ -typedef struct xcb_randr_get_crtc_gamma_size_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_crtc_gamma_size_cookie_t; - -/** Opcode for xcb_randr_get_crtc_gamma_size. */ -#define XCB_RANDR_GET_CRTC_GAMMA_SIZE 22 - -/** - * @brief xcb_randr_get_crtc_gamma_size_request_t - **/ -typedef struct xcb_randr_get_crtc_gamma_size_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ -} xcb_randr_get_crtc_gamma_size_request_t; - -/** - * @brief xcb_randr_get_crtc_gamma_size_reply_t - **/ -typedef struct xcb_randr_get_crtc_gamma_size_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t size; /**< */ - uint8_t pad1[22]; /**< */ -} xcb_randr_get_crtc_gamma_size_reply_t; - -/** - * @brief xcb_randr_get_crtc_gamma_cookie_t - **/ -typedef struct xcb_randr_get_crtc_gamma_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_crtc_gamma_cookie_t; - -/** Opcode for xcb_randr_get_crtc_gamma. */ -#define XCB_RANDR_GET_CRTC_GAMMA 23 - -/** - * @brief xcb_randr_get_crtc_gamma_request_t - **/ -typedef struct xcb_randr_get_crtc_gamma_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ -} xcb_randr_get_crtc_gamma_request_t; - -/** - * @brief xcb_randr_get_crtc_gamma_reply_t - **/ -typedef struct xcb_randr_get_crtc_gamma_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t size; /**< */ - uint8_t pad1[22]; /**< */ -} xcb_randr_get_crtc_gamma_reply_t; - -/** Opcode for xcb_randr_set_crtc_gamma. */ -#define XCB_RANDR_SET_CRTC_GAMMA 24 - -/** - * @brief xcb_randr_set_crtc_gamma_request_t - **/ -typedef struct xcb_randr_set_crtc_gamma_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ - uint16_t size; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_set_crtc_gamma_request_t; - -/** - * @brief xcb_randr_get_screen_resources_current_cookie_t - **/ -typedef struct xcb_randr_get_screen_resources_current_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_screen_resources_current_cookie_t; - -/** Opcode for xcb_randr_get_screen_resources_current. */ -#define XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT 25 - -/** - * @brief xcb_randr_get_screen_resources_current_request_t - **/ -typedef struct xcb_randr_get_screen_resources_current_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_randr_get_screen_resources_current_request_t; - -/** - * @brief xcb_randr_get_screen_resources_current_reply_t - **/ -typedef struct xcb_randr_get_screen_resources_current_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - uint16_t num_crtcs; /**< */ - uint16_t num_outputs; /**< */ - uint16_t num_modes; /**< */ - uint16_t names_len; /**< */ - uint8_t pad1[8]; /**< */ -} xcb_randr_get_screen_resources_current_reply_t; - -/** Opcode for xcb_randr_set_crtc_transform. */ -#define XCB_RANDR_SET_CRTC_TRANSFORM 26 - -/** - * @brief xcb_randr_set_crtc_transform_request_t - **/ -typedef struct xcb_randr_set_crtc_transform_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ - xcb_render_transform_t transform; /**< */ - uint16_t filter_len; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_randr_set_crtc_transform_request_t; - -/** - * @brief xcb_randr_get_crtc_transform_cookie_t - **/ -typedef struct xcb_randr_get_crtc_transform_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_crtc_transform_cookie_t; - -/** Opcode for xcb_randr_get_crtc_transform. */ -#define XCB_RANDR_GET_CRTC_TRANSFORM 27 - -/** - * @brief xcb_randr_get_crtc_transform_request_t - **/ -typedef struct xcb_randr_get_crtc_transform_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ -} xcb_randr_get_crtc_transform_request_t; - -/** - * @brief xcb_randr_get_crtc_transform_reply_t - **/ -typedef struct xcb_randr_get_crtc_transform_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_render_transform_t pending_transform; /**< */ - uint8_t has_transforms; /**< */ - uint8_t pad1[3]; /**< */ - xcb_render_transform_t current_transform; /**< */ - uint8_t pad2[4]; /**< */ - uint16_t pending_len; /**< */ - uint16_t pending_nparams; /**< */ - uint16_t current_len; /**< */ - uint16_t current_nparams; /**< */ -} xcb_randr_get_crtc_transform_reply_t; - -/** - * @brief xcb_randr_get_panning_cookie_t - **/ -typedef struct xcb_randr_get_panning_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_panning_cookie_t; - -/** Opcode for xcb_randr_get_panning. */ -#define XCB_RANDR_GET_PANNING 28 - -/** - * @brief xcb_randr_get_panning_request_t - **/ -typedef struct xcb_randr_get_panning_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ -} xcb_randr_get_panning_request_t; - -/** - * @brief xcb_randr_get_panning_reply_t - **/ -typedef struct xcb_randr_get_panning_reply_t { - uint8_t response_type; /**< */ - uint8_t status; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ - uint16_t left; /**< */ - uint16_t top; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint16_t track_left; /**< */ - uint16_t track_top; /**< */ - uint16_t track_width; /**< */ - uint16_t track_height; /**< */ - int16_t border_left; /**< */ - int16_t border_top; /**< */ - int16_t border_right; /**< */ - int16_t border_bottom; /**< */ -} xcb_randr_get_panning_reply_t; - -/** - * @brief xcb_randr_set_panning_cookie_t - **/ -typedef struct xcb_randr_set_panning_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_set_panning_cookie_t; - -/** Opcode for xcb_randr_set_panning. */ -#define XCB_RANDR_SET_PANNING 29 - -/** - * @brief xcb_randr_set_panning_request_t - **/ -typedef struct xcb_randr_set_panning_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_randr_crtc_t crtc; /**< */ - xcb_timestamp_t timestamp; /**< */ - uint16_t left; /**< */ - uint16_t top; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint16_t track_left; /**< */ - uint16_t track_top; /**< */ - uint16_t track_width; /**< */ - uint16_t track_height; /**< */ - int16_t border_left; /**< */ - int16_t border_top; /**< */ - int16_t border_right; /**< */ - int16_t border_bottom; /**< */ -} xcb_randr_set_panning_request_t; - -/** - * @brief xcb_randr_set_panning_reply_t - **/ -typedef struct xcb_randr_set_panning_reply_t { - uint8_t response_type; /**< */ - uint8_t status; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_timestamp_t timestamp; /**< */ -} xcb_randr_set_panning_reply_t; - -/** Opcode for xcb_randr_set_output_primary. */ -#define XCB_RANDR_SET_OUTPUT_PRIMARY 30 - -/** - * @brief xcb_randr_set_output_primary_request_t - **/ -typedef struct xcb_randr_set_output_primary_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - xcb_randr_output_t output; /**< */ -} xcb_randr_set_output_primary_request_t; - -/** - * @brief xcb_randr_get_output_primary_cookie_t - **/ -typedef struct xcb_randr_get_output_primary_cookie_t { - unsigned int sequence; /**< */ -} xcb_randr_get_output_primary_cookie_t; - -/** Opcode for xcb_randr_get_output_primary. */ -#define XCB_RANDR_GET_OUTPUT_PRIMARY 31 - -/** - * @brief xcb_randr_get_output_primary_request_t - **/ -typedef struct xcb_randr_get_output_primary_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_randr_get_output_primary_request_t; - -/** - * @brief xcb_randr_get_output_primary_reply_t - **/ -typedef struct xcb_randr_get_output_primary_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_randr_output_t output; /**< */ -} xcb_randr_get_output_primary_reply_t; - -/** Opcode for xcb_randr_screen_change_notify. */ -#define XCB_RANDR_SCREEN_CHANGE_NOTIFY 0 - -/** - * @brief xcb_randr_screen_change_notify_event_t - **/ -typedef struct xcb_randr_screen_change_notify_event_t { - uint8_t response_type; /**< */ - uint8_t rotation; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - xcb_window_t root; /**< */ - xcb_window_t request_window; /**< */ - uint16_t sizeID; /**< */ - uint16_t subpixel_order; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint16_t mwidth; /**< */ - uint16_t mheight; /**< */ -} xcb_randr_screen_change_notify_event_t; - -typedef enum xcb_randr_notify_t { - XCB_RANDR_NOTIFY_CRTC_CHANGE = 0, - XCB_RANDR_NOTIFY_OUTPUT_CHANGE = 1, - XCB_RANDR_NOTIFY_OUTPUT_PROPERTY = 2 -} xcb_randr_notify_t; - -/** - * @brief xcb_randr_crtc_change_t - **/ -typedef struct xcb_randr_crtc_change_t { - xcb_timestamp_t timestamp; /**< */ - xcb_window_t window; /**< */ - xcb_randr_crtc_t crtc; /**< */ - xcb_randr_mode_t mode; /**< */ - uint16_t rotation; /**< */ - uint8_t pad0[2]; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ -} xcb_randr_crtc_change_t; - -/** - * @brief xcb_randr_crtc_change_iterator_t - **/ -typedef struct xcb_randr_crtc_change_iterator_t { - xcb_randr_crtc_change_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_crtc_change_iterator_t; - -/** - * @brief xcb_randr_output_change_t - **/ -typedef struct xcb_randr_output_change_t { - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t config_timestamp; /**< */ - xcb_window_t window; /**< */ - xcb_randr_output_t output; /**< */ - xcb_randr_crtc_t crtc; /**< */ - xcb_randr_mode_t mode; /**< */ - uint16_t rotation; /**< */ - uint8_t connection; /**< */ - uint8_t subpixel_order; /**< */ -} xcb_randr_output_change_t; - -/** - * @brief xcb_randr_output_change_iterator_t - **/ -typedef struct xcb_randr_output_change_iterator_t { - xcb_randr_output_change_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_output_change_iterator_t; - -/** - * @brief xcb_randr_output_property_t - **/ -typedef struct xcb_randr_output_property_t { - xcb_window_t window; /**< */ - xcb_randr_output_t output; /**< */ - xcb_atom_t atom; /**< */ - xcb_timestamp_t timestamp; /**< */ - uint8_t status; /**< */ - uint8_t pad0[11]; /**< */ -} xcb_randr_output_property_t; - -/** - * @brief xcb_randr_output_property_iterator_t - **/ -typedef struct xcb_randr_output_property_iterator_t { - xcb_randr_output_property_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_output_property_iterator_t; - -/** - * @brief xcb_randr_notify_data_t - **/ -typedef union xcb_randr_notify_data_t { - xcb_randr_crtc_change_t cc; /**< */ - xcb_randr_output_change_t oc; /**< */ - xcb_randr_output_property_t op; /**< */ -} xcb_randr_notify_data_t; - -/** - * @brief xcb_randr_notify_data_iterator_t - **/ -typedef struct xcb_randr_notify_data_iterator_t { - xcb_randr_notify_data_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_randr_notify_data_iterator_t; - -/** Opcode for xcb_randr_notify. */ -#define XCB_RANDR_NOTIFY 1 - -/** - * @brief xcb_randr_notify_event_t - **/ -typedef struct xcb_randr_notify_event_t { - uint8_t response_type; /**< */ - uint8_t subCode; /**< */ - uint16_t sequence; /**< */ - xcb_randr_notify_data_t u; /**< */ -} xcb_randr_notify_event_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_mode_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_mode_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_mode_next - ** - ** @param xcb_randr_mode_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_mode_next (xcb_randr_mode_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_mode_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_mode_end - ** - ** @param xcb_randr_mode_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_mode_end (xcb_randr_mode_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_crtc_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_crtc_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_crtc_next - ** - ** @param xcb_randr_crtc_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_crtc_next (xcb_randr_crtc_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_crtc_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_crtc_end - ** - ** @param xcb_randr_crtc_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_crtc_end (xcb_randr_crtc_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_output_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_output_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_output_next - ** - ** @param xcb_randr_output_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_output_next (xcb_randr_output_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_output_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_output_end - ** - ** @param xcb_randr_output_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_output_end (xcb_randr_output_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_screen_size_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_screen_size_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_screen_size_next - ** - ** @param xcb_randr_screen_size_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_screen_size_next (xcb_randr_screen_size_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_screen_size_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_screen_size_end - ** - ** @param xcb_randr_screen_size_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_screen_size_end (xcb_randr_screen_size_iterator_t i /**< */); - -int -xcb_randr_refresh_rates_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_refresh_rates_rates - ** - ** @param const xcb_randr_refresh_rates_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_refresh_rates_rates (const xcb_randr_refresh_rates_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_refresh_rates_rates_length - ** - ** @param const xcb_randr_refresh_rates_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_refresh_rates_rates_length (const xcb_randr_refresh_rates_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_refresh_rates_rates_end - ** - ** @param const xcb_randr_refresh_rates_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_refresh_rates_rates_end (const xcb_randr_refresh_rates_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_refresh_rates_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_refresh_rates_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_refresh_rates_next - ** - ** @param xcb_randr_refresh_rates_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_refresh_rates_next (xcb_randr_refresh_rates_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_refresh_rates_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_refresh_rates_end - ** - ** @param xcb_randr_refresh_rates_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_refresh_rates_end (xcb_randr_refresh_rates_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_query_version_cookie_t xcb_randr_query_version - ** - ** @param xcb_connection_t *c - ** @param uint32_t major_version - ** @param uint32_t minor_version - ** @returns xcb_randr_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_version_cookie_t -xcb_randr_query_version (xcb_connection_t *c /**< */, - uint32_t major_version /**< */, - uint32_t minor_version /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_query_version_cookie_t xcb_randr_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t major_version - ** @param uint32_t minor_version - ** @returns xcb_randr_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_version_cookie_t -xcb_randr_query_version_unchecked (xcb_connection_t *c /**< */, - uint32_t major_version /**< */, - uint32_t minor_version /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_query_version_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_query_version_reply_t * xcb_randr_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_randr_query_version_reply_t * -xcb_randr_query_version_reply (xcb_connection_t *c /**< */, - xcb_randr_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_set_screen_config_cookie_t xcb_randr_set_screen_config - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param uint16_t sizeID - ** @param uint16_t rotation - ** @param uint16_t rate - ** @returns xcb_randr_set_screen_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_screen_config_cookie_t -xcb_randr_set_screen_config (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - uint16_t sizeID /**< */, - uint16_t rotation /**< */, - uint16_t rate /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_set_screen_config_cookie_t xcb_randr_set_screen_config_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param uint16_t sizeID - ** @param uint16_t rotation - ** @param uint16_t rate - ** @returns xcb_randr_set_screen_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_screen_config_cookie_t -xcb_randr_set_screen_config_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - uint16_t sizeID /**< */, - uint16_t rotation /**< */, - uint16_t rate /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_set_screen_config_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_set_screen_config_reply_t * xcb_randr_set_screen_config_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_set_screen_config_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_set_screen_config_reply_t * - ** - *****************************************************************************/ - -xcb_randr_set_screen_config_reply_t * -xcb_randr_set_screen_config_reply (xcb_connection_t *c /**< */, - xcb_randr_set_screen_config_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_select_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_select_input_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t enable /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_select_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_select_input (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t enable /**< */); - -int -xcb_randr_get_screen_info_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_info_cookie_t xcb_randr_get_screen_info - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_info_cookie_t -xcb_randr_get_screen_info (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_info_cookie_t xcb_randr_get_screen_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_info_cookie_t -xcb_randr_get_screen_info_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_screen_size_t * xcb_randr_get_screen_info_sizes - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns xcb_randr_screen_size_t * - ** - *****************************************************************************/ - -xcb_randr_screen_size_t * -xcb_randr_get_screen_info_sizes (const xcb_randr_get_screen_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_info_sizes_length - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_info_sizes_length (const xcb_randr_get_screen_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_screen_size_iterator_t xcb_randr_get_screen_info_sizes_iterator - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns xcb_randr_screen_size_iterator_t - ** - *****************************************************************************/ - -xcb_randr_screen_size_iterator_t -xcb_randr_get_screen_info_sizes_iterator (const xcb_randr_get_screen_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_info_rates_length - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_info_rates_length (const xcb_randr_get_screen_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_refresh_rates_iterator_t xcb_randr_get_screen_info_rates_iterator - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns xcb_randr_refresh_rates_iterator_t - ** - *****************************************************************************/ - -xcb_randr_refresh_rates_iterator_t -xcb_randr_get_screen_info_rates_iterator (const xcb_randr_get_screen_info_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_screen_info_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_info_reply_t * xcb_randr_get_screen_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_info_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_info_reply_t * -xcb_randr_get_screen_info_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_size_range_cookie_t xcb_randr_get_screen_size_range - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_size_range_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_size_range_cookie_t -xcb_randr_get_screen_size_range (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_size_range_cookie_t xcb_randr_get_screen_size_range_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_size_range_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_size_range_cookie_t -xcb_randr_get_screen_size_range_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_screen_size_range_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_size_range_reply_t * xcb_randr_get_screen_size_range_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_size_range_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_size_range_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_size_range_reply_t * -xcb_randr_get_screen_size_range_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_size_range_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_screen_size_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t mm_width - ** @param uint32_t mm_height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_screen_size_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t mm_width /**< */, - uint32_t mm_height /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_screen_size - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t mm_width - ** @param uint32_t mm_height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_screen_size (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t mm_width /**< */, - uint32_t mm_height /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_mode_info_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_mode_info_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_mode_info_next - ** - ** @param xcb_randr_mode_info_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_mode_info_next (xcb_randr_mode_info_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_mode_info_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_mode_info_end - ** - ** @param xcb_randr_mode_info_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_mode_info_end (xcb_randr_mode_info_iterator_t i /**< */); - -int -xcb_randr_get_screen_resources_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_cookie_t xcb_randr_get_screen_resources - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_cookie_t -xcb_randr_get_screen_resources (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_cookie_t xcb_randr_get_screen_resources_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_cookie_t -xcb_randr_get_screen_resources_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_crtc_t * xcb_randr_get_screen_resources_crtcs - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_crtc_t * - ** - *****************************************************************************/ - -xcb_randr_crtc_t * -xcb_randr_get_screen_resources_crtcs (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_crtcs_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_crtcs_length (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_crtcs_end - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_crtcs_end (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_screen_resources_outputs - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_screen_resources_outputs (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_outputs_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_outputs_length (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_outputs_end - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_outputs_end (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_t * xcb_randr_get_screen_resources_modes - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_mode_info_t * - ** - *****************************************************************************/ - -xcb_randr_mode_info_t * -xcb_randr_get_screen_resources_modes (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_modes_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_modes_length (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_iterator_t xcb_randr_get_screen_resources_modes_iterator - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_mode_info_iterator_t - ** - *****************************************************************************/ - -xcb_randr_mode_info_iterator_t -xcb_randr_get_screen_resources_modes_iterator (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_screen_resources_names - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_screen_resources_names (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_names_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_names_length (const xcb_randr_get_screen_resources_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_names_end - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_names_end (const xcb_randr_get_screen_resources_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_screen_resources_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_reply_t * xcb_randr_get_screen_resources_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_resources_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_resources_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_reply_t * -xcb_randr_get_screen_resources_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_resources_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_get_output_info_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_info_cookie_t xcb_randr_get_output_info - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_output_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_info_cookie_t -xcb_randr_get_output_info (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_timestamp_t config_timestamp /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_info_cookie_t xcb_randr_get_output_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_output_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_info_cookie_t -xcb_randr_get_output_info_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_timestamp_t config_timestamp /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_crtc_t * xcb_randr_get_output_info_crtcs - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_randr_crtc_t * - ** - *****************************************************************************/ - -xcb_randr_crtc_t * -xcb_randr_get_output_info_crtcs (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_crtcs_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_crtcs_length (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_crtcs_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_crtcs_end (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_mode_t * xcb_randr_get_output_info_modes - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_randr_mode_t * - ** - *****************************************************************************/ - -xcb_randr_mode_t * -xcb_randr_get_output_info_modes (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_modes_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_modes_length (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_modes_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_modes_end (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_output_info_clones - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_output_info_clones (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_clones_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_clones_length (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_clones_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_clones_end (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_output_info_name - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_output_info_name (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_name_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_name_length (const xcb_randr_get_output_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_name_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_name_end (const xcb_randr_get_output_info_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_output_info_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_info_reply_t * xcb_randr_get_output_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_output_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_output_info_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_output_info_reply_t * -xcb_randr_get_output_info_reply (xcb_connection_t *c /**< */, - xcb_randr_get_output_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_list_output_properties_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_list_output_properties_cookie_t xcb_randr_list_output_properties - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @returns xcb_randr_list_output_properties_cookie_t - ** - *****************************************************************************/ - -xcb_randr_list_output_properties_cookie_t -xcb_randr_list_output_properties (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_list_output_properties_cookie_t xcb_randr_list_output_properties_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @returns xcb_randr_list_output_properties_cookie_t - ** - *****************************************************************************/ - -xcb_randr_list_output_properties_cookie_t -xcb_randr_list_output_properties_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_randr_list_output_properties_atoms - ** - ** @param const xcb_randr_list_output_properties_reply_t *R - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_randr_list_output_properties_atoms (const xcb_randr_list_output_properties_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_list_output_properties_atoms_length - ** - ** @param const xcb_randr_list_output_properties_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_list_output_properties_atoms_length (const xcb_randr_list_output_properties_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_list_output_properties_atoms_end - ** - ** @param const xcb_randr_list_output_properties_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_list_output_properties_atoms_end (const xcb_randr_list_output_properties_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_list_output_properties_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_list_output_properties_reply_t * xcb_randr_list_output_properties_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_list_output_properties_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_list_output_properties_reply_t * - ** - *****************************************************************************/ - -xcb_randr_list_output_properties_reply_t * -xcb_randr_list_output_properties_reply (xcb_connection_t *c /**< */, - xcb_randr_list_output_properties_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_query_output_property_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_query_output_property_cookie_t xcb_randr_query_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_randr_query_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_output_property_cookie_t -xcb_randr_query_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_query_output_property_cookie_t xcb_randr_query_output_property_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_randr_query_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_output_property_cookie_t -xcb_randr_query_output_property_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */); - - -/***************************************************************************** - ** - ** int32_t * xcb_randr_query_output_property_valid_values - ** - ** @param const xcb_randr_query_output_property_reply_t *R - ** @returns int32_t * - ** - *****************************************************************************/ - -int32_t * -xcb_randr_query_output_property_valid_values (const xcb_randr_query_output_property_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_query_output_property_valid_values_length - ** - ** @param const xcb_randr_query_output_property_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_query_output_property_valid_values_length (const xcb_randr_query_output_property_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_query_output_property_valid_values_end - ** - ** @param const xcb_randr_query_output_property_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_query_output_property_valid_values_end (const xcb_randr_query_output_property_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_query_output_property_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_query_output_property_reply_t * xcb_randr_query_output_property_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_query_output_property_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_query_output_property_reply_t * - ** - *****************************************************************************/ - -xcb_randr_query_output_property_reply_t * -xcb_randr_query_output_property_reply (xcb_connection_t *c /**< */, - xcb_randr_query_output_property_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_configure_output_property_sizeof (const void *_buffer /**< */, - uint32_t values_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_configure_output_property_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param uint8_t pending - ** @param uint8_t range - ** @param uint32_t values_len - ** @param const int32_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_configure_output_property_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - uint8_t pending /**< */, - uint8_t range /**< */, - uint32_t values_len /**< */, - const int32_t *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_configure_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param uint8_t pending - ** @param uint8_t range - ** @param uint32_t values_len - ** @param const int32_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_configure_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - uint8_t pending /**< */, - uint8_t range /**< */, - uint32_t values_len /**< */, - const int32_t *values /**< */); - -int -xcb_randr_change_output_property_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_change_output_property_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint8_t format - ** @param uint8_t mode - ** @param uint32_t num_units - ** @param const void *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_change_output_property_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint8_t format /**< */, - uint8_t mode /**< */, - uint32_t num_units /**< */, - const void *data /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_change_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint8_t format - ** @param uint8_t mode - ** @param uint32_t num_units - ** @param const void *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_change_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint8_t format /**< */, - uint8_t mode /**< */, - uint32_t num_units /**< */, - const void *data /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_property_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_property_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */); - -int -xcb_randr_get_output_property_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_property_cookie_t xcb_randr_get_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint32_t long_offset - ** @param uint32_t long_length - ** @param uint8_t _delete - ** @param uint8_t pending - ** @returns xcb_randr_get_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_property_cookie_t -xcb_randr_get_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint32_t long_offset /**< */, - uint32_t long_length /**< */, - uint8_t _delete /**< */, - uint8_t pending /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_property_cookie_t xcb_randr_get_output_property_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint32_t long_offset - ** @param uint32_t long_length - ** @param uint8_t _delete - ** @param uint8_t pending - ** @returns xcb_randr_get_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_property_cookie_t -xcb_randr_get_output_property_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint32_t long_offset /**< */, - uint32_t long_length /**< */, - uint8_t _delete /**< */, - uint8_t pending /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_output_property_data - ** - ** @param const xcb_randr_get_output_property_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_output_property_data (const xcb_randr_get_output_property_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_property_data_length - ** - ** @param const xcb_randr_get_output_property_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_property_data_length (const xcb_randr_get_output_property_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_property_data_end - ** - ** @param const xcb_randr_get_output_property_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_property_data_end (const xcb_randr_get_output_property_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_output_property_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_property_reply_t * xcb_randr_get_output_property_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_output_property_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_output_property_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_output_property_reply_t * -xcb_randr_get_output_property_reply (xcb_connection_t *c /**< */, - xcb_randr_get_output_property_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_create_mode_sizeof (const void *_buffer /**< */, - uint32_t name_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_create_mode_cookie_t xcb_randr_create_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_mode_info_t mode_info - ** @param uint32_t name_len - ** @param const char *name - ** @returns xcb_randr_create_mode_cookie_t - ** - *****************************************************************************/ - -xcb_randr_create_mode_cookie_t -xcb_randr_create_mode (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_mode_info_t mode_info /**< */, - uint32_t name_len /**< */, - const char *name /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_create_mode_cookie_t xcb_randr_create_mode_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_mode_info_t mode_info - ** @param uint32_t name_len - ** @param const char *name - ** @returns xcb_randr_create_mode_cookie_t - ** - *****************************************************************************/ - -xcb_randr_create_mode_cookie_t -xcb_randr_create_mode_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_mode_info_t mode_info /**< */, - uint32_t name_len /**< */, - const char *name /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_create_mode_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_create_mode_reply_t * xcb_randr_create_mode_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_create_mode_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_create_mode_reply_t * - ** - *****************************************************************************/ - -xcb_randr_create_mode_reply_t * -xcb_randr_create_mode_reply (xcb_connection_t *c /**< */, - xcb_randr_create_mode_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_destroy_mode_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_destroy_mode_checked (xcb_connection_t *c /**< */, - xcb_randr_mode_t mode /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_destroy_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_destroy_mode (xcb_connection_t *c /**< */, - xcb_randr_mode_t mode /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_add_output_mode_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_add_output_mode_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_add_output_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_add_output_mode (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_mode_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_mode_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_mode (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */); - -int -xcb_randr_get_crtc_info_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_info_cookie_t xcb_randr_get_crtc_info - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_crtc_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_info_cookie_t -xcb_randr_get_crtc_info (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t config_timestamp /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_info_cookie_t xcb_randr_get_crtc_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_crtc_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_info_cookie_t -xcb_randr_get_crtc_info_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t config_timestamp /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_crtc_info_outputs - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_crtc_info_outputs (const xcb_randr_get_crtc_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_info_outputs_length - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_info_outputs_length (const xcb_randr_get_crtc_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_info_outputs_end - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_info_outputs_end (const xcb_randr_get_crtc_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_crtc_info_possible - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_crtc_info_possible (const xcb_randr_get_crtc_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_info_possible_length - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_info_possible_length (const xcb_randr_get_crtc_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_info_possible_end - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_info_possible_end (const xcb_randr_get_crtc_info_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_crtc_info_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_info_reply_t * xcb_randr_get_crtc_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_info_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_info_reply_t * -xcb_randr_get_crtc_info_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_set_crtc_config_sizeof (const void *_buffer /**< */, - uint32_t outputs_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_set_crtc_config_cookie_t xcb_randr_set_crtc_config - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param int16_t x - ** @param int16_t y - ** @param xcb_randr_mode_t mode - ** @param uint16_t rotation - ** @param uint32_t outputs_len - ** @param const xcb_randr_output_t *outputs - ** @returns xcb_randr_set_crtc_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_crtc_config_cookie_t -xcb_randr_set_crtc_config (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - int16_t x /**< */, - int16_t y /**< */, - xcb_randr_mode_t mode /**< */, - uint16_t rotation /**< */, - uint32_t outputs_len /**< */, - const xcb_randr_output_t *outputs /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_set_crtc_config_cookie_t xcb_randr_set_crtc_config_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param int16_t x - ** @param int16_t y - ** @param xcb_randr_mode_t mode - ** @param uint16_t rotation - ** @param uint32_t outputs_len - ** @param const xcb_randr_output_t *outputs - ** @returns xcb_randr_set_crtc_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_crtc_config_cookie_t -xcb_randr_set_crtc_config_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - int16_t x /**< */, - int16_t y /**< */, - xcb_randr_mode_t mode /**< */, - uint16_t rotation /**< */, - uint32_t outputs_len /**< */, - const xcb_randr_output_t *outputs /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_set_crtc_config_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_set_crtc_config_reply_t * xcb_randr_set_crtc_config_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_set_crtc_config_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_set_crtc_config_reply_t * - ** - *****************************************************************************/ - -xcb_randr_set_crtc_config_reply_t * -xcb_randr_set_crtc_config_reply (xcb_connection_t *c /**< */, - xcb_randr_set_crtc_config_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_size_cookie_t xcb_randr_get_crtc_gamma_size - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_size_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_size_cookie_t -xcb_randr_get_crtc_gamma_size (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_size_cookie_t xcb_randr_get_crtc_gamma_size_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_size_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_size_cookie_t -xcb_randr_get_crtc_gamma_size_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_crtc_gamma_size_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_size_reply_t * xcb_randr_get_crtc_gamma_size_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_gamma_size_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_gamma_size_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_size_reply_t * -xcb_randr_get_crtc_gamma_size_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_gamma_size_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_get_crtc_gamma_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_cookie_t xcb_randr_get_crtc_gamma - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_cookie_t -xcb_randr_get_crtc_gamma (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_cookie_t xcb_randr_get_crtc_gamma_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_cookie_t -xcb_randr_get_crtc_gamma_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_get_crtc_gamma_red - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_get_crtc_gamma_red (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_gamma_red_length - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_gamma_red_length (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_gamma_red_end - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_gamma_red_end (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_get_crtc_gamma_green - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_get_crtc_gamma_green (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_gamma_green_length - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_gamma_green_length (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_gamma_green_end - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_gamma_green_end (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_get_crtc_gamma_blue - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_get_crtc_gamma_blue (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_gamma_blue_length - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_gamma_blue_length (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_gamma_blue_end - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_gamma_blue_end (const xcb_randr_get_crtc_gamma_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_crtc_gamma_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_reply_t * xcb_randr_get_crtc_gamma_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_gamma_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_gamma_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_reply_t * -xcb_randr_get_crtc_gamma_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_gamma_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_set_crtc_gamma_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_gamma_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param uint16_t size - ** @param const uint16_t *red - ** @param const uint16_t *green - ** @param const uint16_t *blue - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_gamma_checked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - uint16_t size /**< */, - const uint16_t *red /**< */, - const uint16_t *green /**< */, - const uint16_t *blue /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_gamma - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param uint16_t size - ** @param const uint16_t *red - ** @param const uint16_t *green - ** @param const uint16_t *blue - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_gamma (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - uint16_t size /**< */, - const uint16_t *red /**< */, - const uint16_t *green /**< */, - const uint16_t *blue /**< */); - -int -xcb_randr_get_screen_resources_current_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_current_cookie_t xcb_randr_get_screen_resources_current - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_current_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_current_cookie_t -xcb_randr_get_screen_resources_current (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_current_cookie_t xcb_randr_get_screen_resources_current_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_current_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_current_cookie_t -xcb_randr_get_screen_resources_current_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_crtc_t * xcb_randr_get_screen_resources_current_crtcs - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_crtc_t * - ** - *****************************************************************************/ - -xcb_randr_crtc_t * -xcb_randr_get_screen_resources_current_crtcs (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_crtcs_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_crtcs_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_current_crtcs_end - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_current_crtcs_end (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_screen_resources_current_outputs - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_screen_resources_current_outputs (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_outputs_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_outputs_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_current_outputs_end - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_current_outputs_end (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_t * xcb_randr_get_screen_resources_current_modes - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_mode_info_t * - ** - *****************************************************************************/ - -xcb_randr_mode_info_t * -xcb_randr_get_screen_resources_current_modes (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_modes_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_modes_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_iterator_t xcb_randr_get_screen_resources_current_modes_iterator - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_mode_info_iterator_t - ** - *****************************************************************************/ - -xcb_randr_mode_info_iterator_t -xcb_randr_get_screen_resources_current_modes_iterator (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_screen_resources_current_names - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_screen_resources_current_names (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_names_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_names_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_current_names_end - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_current_names_end (const xcb_randr_get_screen_resources_current_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_screen_resources_current_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_current_reply_t * xcb_randr_get_screen_resources_current_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_resources_current_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_resources_current_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_current_reply_t * -xcb_randr_get_screen_resources_current_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_resources_current_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_randr_set_crtc_transform_sizeof (const void *_buffer /**< */, - uint32_t filter_params_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_transform_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_render_transform_t transform - ** @param uint16_t filter_len - ** @param const char *filter_name - ** @param uint32_t filter_params_len - ** @param const xcb_render_fixed_t *filter_params - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_transform_checked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_render_transform_t transform /**< */, - uint16_t filter_len /**< */, - const char *filter_name /**< */, - uint32_t filter_params_len /**< */, - const xcb_render_fixed_t *filter_params /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_transform - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_render_transform_t transform - ** @param uint16_t filter_len - ** @param const char *filter_name - ** @param uint32_t filter_params_len - ** @param const xcb_render_fixed_t *filter_params - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_transform (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_render_transform_t transform /**< */, - uint16_t filter_len /**< */, - const char *filter_name /**< */, - uint32_t filter_params_len /**< */, - const xcb_render_fixed_t *filter_params /**< */); - -int -xcb_randr_get_crtc_transform_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_transform_cookie_t xcb_randr_get_crtc_transform - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_transform_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_transform_cookie_t -xcb_randr_get_crtc_transform (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_transform_cookie_t xcb_randr_get_crtc_transform_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_transform_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_transform_cookie_t -xcb_randr_get_crtc_transform_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - - -/***************************************************************************** - ** - ** char * xcb_randr_get_crtc_transform_pending_filter_name - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_randr_get_crtc_transform_pending_filter_name (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_pending_filter_name_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_pending_filter_name_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_pending_filter_name_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_pending_filter_name_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_fixed_t * xcb_randr_get_crtc_transform_pending_params - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_render_fixed_t * - ** - *****************************************************************************/ - -xcb_render_fixed_t * -xcb_randr_get_crtc_transform_pending_params (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_pending_params_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_pending_params_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_pending_params_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_pending_params_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** char * xcb_randr_get_crtc_transform_current_filter_name - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_randr_get_crtc_transform_current_filter_name (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_current_filter_name_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_current_filter_name_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_current_filter_name_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_current_filter_name_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_fixed_t * xcb_randr_get_crtc_transform_current_params - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_render_fixed_t * - ** - *****************************************************************************/ - -xcb_render_fixed_t * -xcb_randr_get_crtc_transform_current_params (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_current_params_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_current_params_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_current_params_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_current_params_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_crtc_transform_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_transform_reply_t * xcb_randr_get_crtc_transform_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_transform_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_transform_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_transform_reply_t * -xcb_randr_get_crtc_transform_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_transform_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_panning_cookie_t xcb_randr_get_panning - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_panning_cookie_t -xcb_randr_get_panning (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_panning_cookie_t xcb_randr_get_panning_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_panning_cookie_t -xcb_randr_get_panning_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_panning_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_panning_reply_t * xcb_randr_get_panning_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_panning_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_panning_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_panning_reply_t * -xcb_randr_get_panning_reply (xcb_connection_t *c /**< */, - xcb_randr_get_panning_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_set_panning_cookie_t xcb_randr_set_panning - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param uint16_t left - ** @param uint16_t top - ** @param uint16_t width - ** @param uint16_t height - ** @param uint16_t track_left - ** @param uint16_t track_top - ** @param uint16_t track_width - ** @param uint16_t track_height - ** @param int16_t border_left - ** @param int16_t border_top - ** @param int16_t border_right - ** @param int16_t border_bottom - ** @returns xcb_randr_set_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_panning_cookie_t -xcb_randr_set_panning (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - uint16_t left /**< */, - uint16_t top /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint16_t track_left /**< */, - uint16_t track_top /**< */, - uint16_t track_width /**< */, - uint16_t track_height /**< */, - int16_t border_left /**< */, - int16_t border_top /**< */, - int16_t border_right /**< */, - int16_t border_bottom /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_set_panning_cookie_t xcb_randr_set_panning_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param uint16_t left - ** @param uint16_t top - ** @param uint16_t width - ** @param uint16_t height - ** @param uint16_t track_left - ** @param uint16_t track_top - ** @param uint16_t track_width - ** @param uint16_t track_height - ** @param int16_t border_left - ** @param int16_t border_top - ** @param int16_t border_right - ** @param int16_t border_bottom - ** @returns xcb_randr_set_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_panning_cookie_t -xcb_randr_set_panning_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - uint16_t left /**< */, - uint16_t top /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint16_t track_left /**< */, - uint16_t track_top /**< */, - uint16_t track_width /**< */, - uint16_t track_height /**< */, - int16_t border_left /**< */, - int16_t border_top /**< */, - int16_t border_right /**< */, - int16_t border_bottom /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_set_panning_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_set_panning_reply_t * xcb_randr_set_panning_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_set_panning_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_set_panning_reply_t * - ** - *****************************************************************************/ - -xcb_randr_set_panning_reply_t * -xcb_randr_set_panning_reply (xcb_connection_t *c /**< */, - xcb_randr_set_panning_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_output_primary_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_output_t output - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_output_primary_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_output_t output /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_output_primary - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_output_t output - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_output_primary (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_output_t output /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_primary_cookie_t xcb_randr_get_output_primary - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_output_primary_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_primary_cookie_t -xcb_randr_get_output_primary (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_primary_cookie_t xcb_randr_get_output_primary_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_output_primary_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_primary_cookie_t -xcb_randr_get_output_primary_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_randr_get_output_primary_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_randr_get_output_primary_reply_t * xcb_randr_get_output_primary_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_output_primary_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_output_primary_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_output_primary_reply_t * -xcb_randr_get_output_primary_reply (xcb_connection_t *c /**< */, - xcb_randr_get_output_primary_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_crtc_change_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_crtc_change_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_crtc_change_next - ** - ** @param xcb_randr_crtc_change_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_crtc_change_next (xcb_randr_crtc_change_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_crtc_change_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_crtc_change_end - ** - ** @param xcb_randr_crtc_change_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_crtc_change_end (xcb_randr_crtc_change_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_output_change_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_output_change_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_output_change_next - ** - ** @param xcb_randr_output_change_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_output_change_next (xcb_randr_output_change_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_output_change_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_output_change_end - ** - ** @param xcb_randr_output_change_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_output_change_end (xcb_randr_output_change_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_output_property_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_output_property_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_output_property_next - ** - ** @param xcb_randr_output_property_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_output_property_next (xcb_randr_output_property_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_output_property_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_output_property_end - ** - ** @param xcb_randr_output_property_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_output_property_end (xcb_randr_output_property_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_randr_notify_data_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_randr_notify_data_t) - */ - -/***************************************************************************** - ** - ** void xcb_randr_notify_data_next - ** - ** @param xcb_randr_notify_data_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_notify_data_next (xcb_randr_notify_data_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_randr_notify_data_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_notify_data_end - ** - ** @param xcb_randr_notify_data_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_notify_data_end (xcb_randr_notify_data_iterator_t i /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/render.h b/src/3rdparty/xcb/include/xcb/render.h deleted file mode 100644 index eb7f0424d5..0000000000 --- a/src/3rdparty/xcb/include/xcb/render.h +++ /dev/null @@ -1,4513 +0,0 @@ -/* - * This file generated automatically from render.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_Render_API XCB Render API - * @brief Render XCB Protocol Implementation. - * @{ - **/ - -#ifndef __RENDER_H -#define __RENDER_H - -#include "xcb.h" -#include "xproto.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_RENDER_MAJOR_VERSION 0 -#define XCB_RENDER_MINOR_VERSION 11 - -extern xcb_extension_t xcb_render_id; - -typedef enum xcb_render_pict_type_t { - XCB_RENDER_PICT_TYPE_INDEXED, - XCB_RENDER_PICT_TYPE_DIRECT -} xcb_render_pict_type_t; - -typedef enum xcb_render_picture_enum_t { - XCB_RENDER_PICTURE_NONE -} xcb_render_picture_enum_t; - -typedef enum xcb_render_pict_op_t { - XCB_RENDER_PICT_OP_CLEAR, - XCB_RENDER_PICT_OP_SRC, - XCB_RENDER_PICT_OP_DST, - XCB_RENDER_PICT_OP_OVER, - XCB_RENDER_PICT_OP_OVER_REVERSE, - XCB_RENDER_PICT_OP_IN, - XCB_RENDER_PICT_OP_IN_REVERSE, - XCB_RENDER_PICT_OP_OUT, - XCB_RENDER_PICT_OP_OUT_REVERSE, - XCB_RENDER_PICT_OP_ATOP, - XCB_RENDER_PICT_OP_ATOP_REVERSE, - XCB_RENDER_PICT_OP_XOR, - XCB_RENDER_PICT_OP_ADD, - XCB_RENDER_PICT_OP_SATURATE, - XCB_RENDER_PICT_OP_DISJOINT_CLEAR = 16, - XCB_RENDER_PICT_OP_DISJOINT_SRC, - XCB_RENDER_PICT_OP_DISJOINT_DST, - XCB_RENDER_PICT_OP_DISJOINT_OVER, - XCB_RENDER_PICT_OP_DISJOINT_OVER_REVERSE, - XCB_RENDER_PICT_OP_DISJOINT_IN, - XCB_RENDER_PICT_OP_DISJOINT_IN_REVERSE, - XCB_RENDER_PICT_OP_DISJOINT_OUT, - XCB_RENDER_PICT_OP_DISJOINT_OUT_REVERSE, - XCB_RENDER_PICT_OP_DISJOINT_ATOP, - XCB_RENDER_PICT_OP_DISJOINT_ATOP_REVERSE, - XCB_RENDER_PICT_OP_DISJOINT_XOR, - XCB_RENDER_PICT_OP_CONJOINT_CLEAR = 32, - XCB_RENDER_PICT_OP_CONJOINT_SRC, - XCB_RENDER_PICT_OP_CONJOINT_DST, - XCB_RENDER_PICT_OP_CONJOINT_OVER, - XCB_RENDER_PICT_OP_CONJOINT_OVER_REVERSE, - XCB_RENDER_PICT_OP_CONJOINT_IN, - XCB_RENDER_PICT_OP_CONJOINT_IN_REVERSE, - XCB_RENDER_PICT_OP_CONJOINT_OUT, - XCB_RENDER_PICT_OP_CONJOINT_OUT_REVERSE, - XCB_RENDER_PICT_OP_CONJOINT_ATOP, - XCB_RENDER_PICT_OP_CONJOINT_ATOP_REVERSE, - XCB_RENDER_PICT_OP_CONJOINT_XOR, - XCB_RENDER_PICT_OP_MULTIPLY = 48, - XCB_RENDER_PICT_OP_SCREEN, - XCB_RENDER_PICT_OP_OVERLAY, - XCB_RENDER_PICT_OP_DARKEN, - XCB_RENDER_PICT_OP_LIGHTEN, - XCB_RENDER_PICT_OP_COLOR_DODGE, - XCB_RENDER_PICT_OP_COLOR_BURN, - XCB_RENDER_PICT_OP_HARD_LIGHT, - XCB_RENDER_PICT_OP_SOFT_LIGHT, - XCB_RENDER_PICT_OP_DIFFERENCE, - XCB_RENDER_PICT_OP_EXCLUSION, - XCB_RENDER_PICT_OP_HSL_HUE, - XCB_RENDER_PICT_OP_HSL_SATURATION, - XCB_RENDER_PICT_OP_HSL_COLOR, - XCB_RENDER_PICT_OP_HSL_LUMINOSITY -} xcb_render_pict_op_t; - -typedef enum xcb_render_poly_edge_t { - XCB_RENDER_POLY_EDGE_SHARP, - XCB_RENDER_POLY_EDGE_SMOOTH -} xcb_render_poly_edge_t; - -typedef enum xcb_render_poly_mode_t { - XCB_RENDER_POLY_MODE_PRECISE, - XCB_RENDER_POLY_MODE_IMPRECISE -} xcb_render_poly_mode_t; - -typedef enum xcb_render_cp_t { - XCB_RENDER_CP_REPEAT = 1, - XCB_RENDER_CP_ALPHA_MAP = 2, - XCB_RENDER_CP_ALPHA_X_ORIGIN = 4, - XCB_RENDER_CP_ALPHA_Y_ORIGIN = 8, - XCB_RENDER_CP_CLIP_X_ORIGIN = 16, - XCB_RENDER_CP_CLIP_Y_ORIGIN = 32, - XCB_RENDER_CP_CLIP_MASK = 64, - XCB_RENDER_CP_GRAPHICS_EXPOSURE = 128, - XCB_RENDER_CP_SUBWINDOW_MODE = 256, - XCB_RENDER_CP_POLY_EDGE = 512, - XCB_RENDER_CP_POLY_MODE = 1024, - XCB_RENDER_CP_DITHER = 2048, - XCB_RENDER_CP_COMPONENT_ALPHA = 4096 -} xcb_render_cp_t; - -typedef enum xcb_render_sub_pixel_t { - XCB_RENDER_SUB_PIXEL_UNKNOWN, - XCB_RENDER_SUB_PIXEL_HORIZONTAL_RGB, - XCB_RENDER_SUB_PIXEL_HORIZONTAL_BGR, - XCB_RENDER_SUB_PIXEL_VERTICAL_RGB, - XCB_RENDER_SUB_PIXEL_VERTICAL_BGR, - XCB_RENDER_SUB_PIXEL_NONE -} xcb_render_sub_pixel_t; - -typedef enum xcb_render_repeat_t { - XCB_RENDER_REPEAT_NONE, - XCB_RENDER_REPEAT_NORMAL, - XCB_RENDER_REPEAT_PAD, - XCB_RENDER_REPEAT_REFLECT -} xcb_render_repeat_t; - -typedef uint32_t xcb_render_glyph_t; - -/** - * @brief xcb_render_glyph_iterator_t - **/ -typedef struct xcb_render_glyph_iterator_t { - xcb_render_glyph_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_glyph_iterator_t; - -typedef uint32_t xcb_render_glyphset_t; - -/** - * @brief xcb_render_glyphset_iterator_t - **/ -typedef struct xcb_render_glyphset_iterator_t { - xcb_render_glyphset_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_glyphset_iterator_t; - -typedef uint32_t xcb_render_picture_t; - -/** - * @brief xcb_render_picture_iterator_t - **/ -typedef struct xcb_render_picture_iterator_t { - xcb_render_picture_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_picture_iterator_t; - -typedef uint32_t xcb_render_pictformat_t; - -/** - * @brief xcb_render_pictformat_iterator_t - **/ -typedef struct xcb_render_pictformat_iterator_t { - xcb_render_pictformat_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_pictformat_iterator_t; - -typedef int32_t xcb_render_fixed_t; - -/** - * @brief xcb_render_fixed_iterator_t - **/ -typedef struct xcb_render_fixed_iterator_t { - xcb_render_fixed_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_fixed_iterator_t; - -/** Opcode for xcb_render_pict_format. */ -#define XCB_RENDER_PICT_FORMAT 0 - -/** - * @brief xcb_render_pict_format_error_t - **/ -typedef struct xcb_render_pict_format_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_render_pict_format_error_t; - -/** Opcode for xcb_render_picture. */ -#define XCB_RENDER_PICTURE 1 - -/** - * @brief xcb_render_picture_error_t - **/ -typedef struct xcb_render_picture_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_render_picture_error_t; - -/** Opcode for xcb_render_pict_op. */ -#define XCB_RENDER_PICT_OP 2 - -/** - * @brief xcb_render_pict_op_error_t - **/ -typedef struct xcb_render_pict_op_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_render_pict_op_error_t; - -/** Opcode for xcb_render_glyph_set. */ -#define XCB_RENDER_GLYPH_SET 3 - -/** - * @brief xcb_render_glyph_set_error_t - **/ -typedef struct xcb_render_glyph_set_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_render_glyph_set_error_t; - -/** Opcode for xcb_render_glyph. */ -#define XCB_RENDER_GLYPH 4 - -/** - * @brief xcb_render_glyph_error_t - **/ -typedef struct xcb_render_glyph_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_render_glyph_error_t; - -/** - * @brief xcb_render_directformat_t - **/ -typedef struct xcb_render_directformat_t { - uint16_t red_shift; /**< */ - uint16_t red_mask; /**< */ - uint16_t green_shift; /**< */ - uint16_t green_mask; /**< */ - uint16_t blue_shift; /**< */ - uint16_t blue_mask; /**< */ - uint16_t alpha_shift; /**< */ - uint16_t alpha_mask; /**< */ -} xcb_render_directformat_t; - -/** - * @brief xcb_render_directformat_iterator_t - **/ -typedef struct xcb_render_directformat_iterator_t { - xcb_render_directformat_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_directformat_iterator_t; - -/** - * @brief xcb_render_pictforminfo_t - **/ -typedef struct xcb_render_pictforminfo_t { - xcb_render_pictformat_t id; /**< */ - uint8_t type; /**< */ - uint8_t depth; /**< */ - uint8_t pad0[2]; /**< */ - xcb_render_directformat_t direct; /**< */ - xcb_colormap_t colormap; /**< */ -} xcb_render_pictforminfo_t; - -/** - * @brief xcb_render_pictforminfo_iterator_t - **/ -typedef struct xcb_render_pictforminfo_iterator_t { - xcb_render_pictforminfo_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_pictforminfo_iterator_t; - -/** - * @brief xcb_render_pictvisual_t - **/ -typedef struct xcb_render_pictvisual_t { - xcb_visualid_t visual; /**< */ - xcb_render_pictformat_t format; /**< */ -} xcb_render_pictvisual_t; - -/** - * @brief xcb_render_pictvisual_iterator_t - **/ -typedef struct xcb_render_pictvisual_iterator_t { - xcb_render_pictvisual_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_pictvisual_iterator_t; - -/** - * @brief xcb_render_pictdepth_t - **/ -typedef struct xcb_render_pictdepth_t { - uint8_t depth; /**< */ - uint8_t pad0; /**< */ - uint16_t num_visuals; /**< */ - uint8_t pad1[4]; /**< */ -} xcb_render_pictdepth_t; - -/** - * @brief xcb_render_pictdepth_iterator_t - **/ -typedef struct xcb_render_pictdepth_iterator_t { - xcb_render_pictdepth_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_pictdepth_iterator_t; - -/** - * @brief xcb_render_pictscreen_t - **/ -typedef struct xcb_render_pictscreen_t { - uint32_t num_depths; /**< */ - xcb_render_pictformat_t fallback; /**< */ -} xcb_render_pictscreen_t; - -/** - * @brief xcb_render_pictscreen_iterator_t - **/ -typedef struct xcb_render_pictscreen_iterator_t { - xcb_render_pictscreen_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_pictscreen_iterator_t; - -/** - * @brief xcb_render_indexvalue_t - **/ -typedef struct xcb_render_indexvalue_t { - uint32_t pixel; /**< */ - uint16_t red; /**< */ - uint16_t green; /**< */ - uint16_t blue; /**< */ - uint16_t alpha; /**< */ -} xcb_render_indexvalue_t; - -/** - * @brief xcb_render_indexvalue_iterator_t - **/ -typedef struct xcb_render_indexvalue_iterator_t { - xcb_render_indexvalue_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_indexvalue_iterator_t; - -/** - * @brief xcb_render_color_t - **/ -typedef struct xcb_render_color_t { - uint16_t red; /**< */ - uint16_t green; /**< */ - uint16_t blue; /**< */ - uint16_t alpha; /**< */ -} xcb_render_color_t; - -/** - * @brief xcb_render_color_iterator_t - **/ -typedef struct xcb_render_color_iterator_t { - xcb_render_color_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_color_iterator_t; - -/** - * @brief xcb_render_pointfix_t - **/ -typedef struct xcb_render_pointfix_t { - xcb_render_fixed_t x; /**< */ - xcb_render_fixed_t y; /**< */ -} xcb_render_pointfix_t; - -/** - * @brief xcb_render_pointfix_iterator_t - **/ -typedef struct xcb_render_pointfix_iterator_t { - xcb_render_pointfix_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_pointfix_iterator_t; - -/** - * @brief xcb_render_linefix_t - **/ -typedef struct xcb_render_linefix_t { - xcb_render_pointfix_t p1; /**< */ - xcb_render_pointfix_t p2; /**< */ -} xcb_render_linefix_t; - -/** - * @brief xcb_render_linefix_iterator_t - **/ -typedef struct xcb_render_linefix_iterator_t { - xcb_render_linefix_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_linefix_iterator_t; - -/** - * @brief xcb_render_triangle_t - **/ -typedef struct xcb_render_triangle_t { - xcb_render_pointfix_t p1; /**< */ - xcb_render_pointfix_t p2; /**< */ - xcb_render_pointfix_t p3; /**< */ -} xcb_render_triangle_t; - -/** - * @brief xcb_render_triangle_iterator_t - **/ -typedef struct xcb_render_triangle_iterator_t { - xcb_render_triangle_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_triangle_iterator_t; - -/** - * @brief xcb_render_trapezoid_t - **/ -typedef struct xcb_render_trapezoid_t { - xcb_render_fixed_t top; /**< */ - xcb_render_fixed_t bottom; /**< */ - xcb_render_linefix_t left; /**< */ - xcb_render_linefix_t right; /**< */ -} xcb_render_trapezoid_t; - -/** - * @brief xcb_render_trapezoid_iterator_t - **/ -typedef struct xcb_render_trapezoid_iterator_t { - xcb_render_trapezoid_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_trapezoid_iterator_t; - -/** - * @brief xcb_render_glyphinfo_t - **/ -typedef struct xcb_render_glyphinfo_t { - uint16_t width; /**< */ - uint16_t height; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - int16_t x_off; /**< */ - int16_t y_off; /**< */ -} xcb_render_glyphinfo_t; - -/** - * @brief xcb_render_glyphinfo_iterator_t - **/ -typedef struct xcb_render_glyphinfo_iterator_t { - xcb_render_glyphinfo_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_glyphinfo_iterator_t; - -/** - * @brief xcb_render_query_version_cookie_t - **/ -typedef struct xcb_render_query_version_cookie_t { - unsigned int sequence; /**< */ -} xcb_render_query_version_cookie_t; - -/** Opcode for xcb_render_query_version. */ -#define XCB_RENDER_QUERY_VERSION 0 - -/** - * @brief xcb_render_query_version_request_t - **/ -typedef struct xcb_render_query_version_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint32_t client_major_version; /**< */ - uint32_t client_minor_version; /**< */ -} xcb_render_query_version_request_t; - -/** - * @brief xcb_render_query_version_reply_t - **/ -typedef struct xcb_render_query_version_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t major_version; /**< */ - uint32_t minor_version; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_render_query_version_reply_t; - -/** - * @brief xcb_render_query_pict_formats_cookie_t - **/ -typedef struct xcb_render_query_pict_formats_cookie_t { - unsigned int sequence; /**< */ -} xcb_render_query_pict_formats_cookie_t; - -/** Opcode for xcb_render_query_pict_formats. */ -#define XCB_RENDER_QUERY_PICT_FORMATS 1 - -/** - * @brief xcb_render_query_pict_formats_request_t - **/ -typedef struct xcb_render_query_pict_formats_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_render_query_pict_formats_request_t; - -/** - * @brief xcb_render_query_pict_formats_reply_t - **/ -typedef struct xcb_render_query_pict_formats_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t num_formats; /**< */ - uint32_t num_screens; /**< */ - uint32_t num_depths; /**< */ - uint32_t num_visuals; /**< */ - uint32_t num_subpixel; /**< */ - uint8_t pad1[4]; /**< */ -} xcb_render_query_pict_formats_reply_t; - -/** - * @brief xcb_render_query_pict_index_values_cookie_t - **/ -typedef struct xcb_render_query_pict_index_values_cookie_t { - unsigned int sequence; /**< */ -} xcb_render_query_pict_index_values_cookie_t; - -/** Opcode for xcb_render_query_pict_index_values. */ -#define XCB_RENDER_QUERY_PICT_INDEX_VALUES 2 - -/** - * @brief xcb_render_query_pict_index_values_request_t - **/ -typedef struct xcb_render_query_pict_index_values_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_pictformat_t format; /**< */ -} xcb_render_query_pict_index_values_request_t; - -/** - * @brief xcb_render_query_pict_index_values_reply_t - **/ -typedef struct xcb_render_query_pict_index_values_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t num_values; /**< */ - uint8_t pad1[20]; /**< */ -} xcb_render_query_pict_index_values_reply_t; - -/** Opcode for xcb_render_create_picture. */ -#define XCB_RENDER_CREATE_PICTURE 4 - -/** - * @brief xcb_render_create_picture_request_t - **/ -typedef struct xcb_render_create_picture_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t pid; /**< */ - xcb_drawable_t drawable; /**< */ - xcb_render_pictformat_t format; /**< */ - uint32_t value_mask; /**< */ -} xcb_render_create_picture_request_t; - -/** Opcode for xcb_render_change_picture. */ -#define XCB_RENDER_CHANGE_PICTURE 5 - -/** - * @brief xcb_render_change_picture_request_t - **/ -typedef struct xcb_render_change_picture_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - uint32_t value_mask; /**< */ -} xcb_render_change_picture_request_t; - -/** Opcode for xcb_render_set_picture_clip_rectangles. */ -#define XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES 6 - -/** - * @brief xcb_render_set_picture_clip_rectangles_request_t - **/ -typedef struct xcb_render_set_picture_clip_rectangles_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - int16_t clip_x_origin; /**< */ - int16_t clip_y_origin; /**< */ -} xcb_render_set_picture_clip_rectangles_request_t; - -/** Opcode for xcb_render_free_picture. */ -#define XCB_RENDER_FREE_PICTURE 7 - -/** - * @brief xcb_render_free_picture_request_t - **/ -typedef struct xcb_render_free_picture_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ -} xcb_render_free_picture_request_t; - -/** Opcode for xcb_render_composite. */ -#define XCB_RENDER_COMPOSITE 8 - -/** - * @brief xcb_render_composite_request_t - **/ -typedef struct xcb_render_composite_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t mask; /**< */ - xcb_render_picture_t dst; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ - int16_t mask_x; /**< */ - int16_t mask_y; /**< */ - int16_t dst_x; /**< */ - int16_t dst_y; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ -} xcb_render_composite_request_t; - -/** Opcode for xcb_render_trapezoids. */ -#define XCB_RENDER_TRAPEZOIDS 10 - -/** - * @brief xcb_render_trapezoids_request_t - **/ -typedef struct xcb_render_trapezoids_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_trapezoids_request_t; - -/** Opcode for xcb_render_triangles. */ -#define XCB_RENDER_TRIANGLES 11 - -/** - * @brief xcb_render_triangles_request_t - **/ -typedef struct xcb_render_triangles_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_triangles_request_t; - -/** Opcode for xcb_render_tri_strip. */ -#define XCB_RENDER_TRI_STRIP 12 - -/** - * @brief xcb_render_tri_strip_request_t - **/ -typedef struct xcb_render_tri_strip_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_tri_strip_request_t; - -/** Opcode for xcb_render_tri_fan. */ -#define XCB_RENDER_TRI_FAN 13 - -/** - * @brief xcb_render_tri_fan_request_t - **/ -typedef struct xcb_render_tri_fan_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_tri_fan_request_t; - -/** Opcode for xcb_render_create_glyph_set. */ -#define XCB_RENDER_CREATE_GLYPH_SET 17 - -/** - * @brief xcb_render_create_glyph_set_request_t - **/ -typedef struct xcb_render_create_glyph_set_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_glyphset_t gsid; /**< */ - xcb_render_pictformat_t format; /**< */ -} xcb_render_create_glyph_set_request_t; - -/** Opcode for xcb_render_reference_glyph_set. */ -#define XCB_RENDER_REFERENCE_GLYPH_SET 18 - -/** - * @brief xcb_render_reference_glyph_set_request_t - **/ -typedef struct xcb_render_reference_glyph_set_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_glyphset_t gsid; /**< */ - xcb_render_glyphset_t existing; /**< */ -} xcb_render_reference_glyph_set_request_t; - -/** Opcode for xcb_render_free_glyph_set. */ -#define XCB_RENDER_FREE_GLYPH_SET 19 - -/** - * @brief xcb_render_free_glyph_set_request_t - **/ -typedef struct xcb_render_free_glyph_set_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_glyphset_t glyphset; /**< */ -} xcb_render_free_glyph_set_request_t; - -/** Opcode for xcb_render_add_glyphs. */ -#define XCB_RENDER_ADD_GLYPHS 20 - -/** - * @brief xcb_render_add_glyphs_request_t - **/ -typedef struct xcb_render_add_glyphs_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_glyphset_t glyphset; /**< */ - uint32_t glyphs_len; /**< */ -} xcb_render_add_glyphs_request_t; - -/** Opcode for xcb_render_free_glyphs. */ -#define XCB_RENDER_FREE_GLYPHS 22 - -/** - * @brief xcb_render_free_glyphs_request_t - **/ -typedef struct xcb_render_free_glyphs_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_glyphset_t glyphset; /**< */ -} xcb_render_free_glyphs_request_t; - -/** Opcode for xcb_render_composite_glyphs_8. */ -#define XCB_RENDER_COMPOSITE_GLYPHS_8 23 - -/** - * @brief xcb_render_composite_glyphs_8_request_t - **/ -typedef struct xcb_render_composite_glyphs_8_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - xcb_render_glyphset_t glyphset; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_composite_glyphs_8_request_t; - -/** Opcode for xcb_render_composite_glyphs_16. */ -#define XCB_RENDER_COMPOSITE_GLYPHS_16 24 - -/** - * @brief xcb_render_composite_glyphs_16_request_t - **/ -typedef struct xcb_render_composite_glyphs_16_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - xcb_render_glyphset_t glyphset; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_composite_glyphs_16_request_t; - -/** Opcode for xcb_render_composite_glyphs_32. */ -#define XCB_RENDER_COMPOSITE_GLYPHS_32 25 - -/** - * @brief xcb_render_composite_glyphs_32_request_t - **/ -typedef struct xcb_render_composite_glyphs_32_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t src; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_pictformat_t mask_format; /**< */ - xcb_render_glyphset_t glyphset; /**< */ - int16_t src_x; /**< */ - int16_t src_y; /**< */ -} xcb_render_composite_glyphs_32_request_t; - -/** Opcode for xcb_render_fill_rectangles. */ -#define XCB_RENDER_FILL_RECTANGLES 26 - -/** - * @brief xcb_render_fill_rectangles_request_t - **/ -typedef struct xcb_render_fill_rectangles_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t op; /**< */ - uint8_t pad0[3]; /**< */ - xcb_render_picture_t dst; /**< */ - xcb_render_color_t color; /**< */ -} xcb_render_fill_rectangles_request_t; - -/** Opcode for xcb_render_create_cursor. */ -#define XCB_RENDER_CREATE_CURSOR 27 - -/** - * @brief xcb_render_create_cursor_request_t - **/ -typedef struct xcb_render_create_cursor_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_cursor_t cid; /**< */ - xcb_render_picture_t source; /**< */ - uint16_t x; /**< */ - uint16_t y; /**< */ -} xcb_render_create_cursor_request_t; - -/** - * @brief xcb_render_transform_t - **/ -typedef struct xcb_render_transform_t { - xcb_render_fixed_t matrix11; /**< */ - xcb_render_fixed_t matrix12; /**< */ - xcb_render_fixed_t matrix13; /**< */ - xcb_render_fixed_t matrix21; /**< */ - xcb_render_fixed_t matrix22; /**< */ - xcb_render_fixed_t matrix23; /**< */ - xcb_render_fixed_t matrix31; /**< */ - xcb_render_fixed_t matrix32; /**< */ - xcb_render_fixed_t matrix33; /**< */ -} xcb_render_transform_t; - -/** - * @brief xcb_render_transform_iterator_t - **/ -typedef struct xcb_render_transform_iterator_t { - xcb_render_transform_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_transform_iterator_t; - -/** Opcode for xcb_render_set_picture_transform. */ -#define XCB_RENDER_SET_PICTURE_TRANSFORM 28 - -/** - * @brief xcb_render_set_picture_transform_request_t - **/ -typedef struct xcb_render_set_picture_transform_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - xcb_render_transform_t transform; /**< */ -} xcb_render_set_picture_transform_request_t; - -/** - * @brief xcb_render_query_filters_cookie_t - **/ -typedef struct xcb_render_query_filters_cookie_t { - unsigned int sequence; /**< */ -} xcb_render_query_filters_cookie_t; - -/** Opcode for xcb_render_query_filters. */ -#define XCB_RENDER_QUERY_FILTERS 29 - -/** - * @brief xcb_render_query_filters_request_t - **/ -typedef struct xcb_render_query_filters_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_drawable_t drawable; /**< */ -} xcb_render_query_filters_request_t; - -/** - * @brief xcb_render_query_filters_reply_t - **/ -typedef struct xcb_render_query_filters_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t num_aliases; /**< */ - uint32_t num_filters; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_render_query_filters_reply_t; - -/** Opcode for xcb_render_set_picture_filter. */ -#define XCB_RENDER_SET_PICTURE_FILTER 30 - -/** - * @brief xcb_render_set_picture_filter_request_t - **/ -typedef struct xcb_render_set_picture_filter_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - uint16_t filter_len; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_render_set_picture_filter_request_t; - -/** - * @brief xcb_render_animcursorelt_t - **/ -typedef struct xcb_render_animcursorelt_t { - xcb_cursor_t cursor; /**< */ - uint32_t delay; /**< */ -} xcb_render_animcursorelt_t; - -/** - * @brief xcb_render_animcursorelt_iterator_t - **/ -typedef struct xcb_render_animcursorelt_iterator_t { - xcb_render_animcursorelt_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_animcursorelt_iterator_t; - -/** Opcode for xcb_render_create_anim_cursor. */ -#define XCB_RENDER_CREATE_ANIM_CURSOR 31 - -/** - * @brief xcb_render_create_anim_cursor_request_t - **/ -typedef struct xcb_render_create_anim_cursor_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_cursor_t cid; /**< */ -} xcb_render_create_anim_cursor_request_t; - -/** - * @brief xcb_render_spanfix_t - **/ -typedef struct xcb_render_spanfix_t { - xcb_render_fixed_t l; /**< */ - xcb_render_fixed_t r; /**< */ - xcb_render_fixed_t y; /**< */ -} xcb_render_spanfix_t; - -/** - * @brief xcb_render_spanfix_iterator_t - **/ -typedef struct xcb_render_spanfix_iterator_t { - xcb_render_spanfix_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_spanfix_iterator_t; - -/** - * @brief xcb_render_trap_t - **/ -typedef struct xcb_render_trap_t { - xcb_render_spanfix_t top; /**< */ - xcb_render_spanfix_t bot; /**< */ -} xcb_render_trap_t; - -/** - * @brief xcb_render_trap_iterator_t - **/ -typedef struct xcb_render_trap_iterator_t { - xcb_render_trap_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_render_trap_iterator_t; - -/** Opcode for xcb_render_add_traps. */ -#define XCB_RENDER_ADD_TRAPS 32 - -/** - * @brief xcb_render_add_traps_request_t - **/ -typedef struct xcb_render_add_traps_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - int16_t x_off; /**< */ - int16_t y_off; /**< */ -} xcb_render_add_traps_request_t; - -/** Opcode for xcb_render_create_solid_fill. */ -#define XCB_RENDER_CREATE_SOLID_FILL 33 - -/** - * @brief xcb_render_create_solid_fill_request_t - **/ -typedef struct xcb_render_create_solid_fill_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - xcb_render_color_t color; /**< */ -} xcb_render_create_solid_fill_request_t; - -/** Opcode for xcb_render_create_linear_gradient. */ -#define XCB_RENDER_CREATE_LINEAR_GRADIENT 34 - -/** - * @brief xcb_render_create_linear_gradient_request_t - **/ -typedef struct xcb_render_create_linear_gradient_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - xcb_render_pointfix_t p1; /**< */ - xcb_render_pointfix_t p2; /**< */ - uint32_t num_stops; /**< */ -} xcb_render_create_linear_gradient_request_t; - -/** Opcode for xcb_render_create_radial_gradient. */ -#define XCB_RENDER_CREATE_RADIAL_GRADIENT 35 - -/** - * @brief xcb_render_create_radial_gradient_request_t - **/ -typedef struct xcb_render_create_radial_gradient_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - xcb_render_pointfix_t inner; /**< */ - xcb_render_pointfix_t outer; /**< */ - xcb_render_fixed_t inner_radius; /**< */ - xcb_render_fixed_t outer_radius; /**< */ - uint32_t num_stops; /**< */ -} xcb_render_create_radial_gradient_request_t; - -/** Opcode for xcb_render_create_conical_gradient. */ -#define XCB_RENDER_CREATE_CONICAL_GRADIENT 36 - -/** - * @brief xcb_render_create_conical_gradient_request_t - **/ -typedef struct xcb_render_create_conical_gradient_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - xcb_render_pointfix_t center; /**< */ - xcb_render_fixed_t angle; /**< */ - uint32_t num_stops; /**< */ -} xcb_render_create_conical_gradient_request_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_glyph_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_glyph_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_glyph_next - ** - ** @param xcb_render_glyph_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_glyph_next (xcb_render_glyph_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_glyph_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_glyph_end - ** - ** @param xcb_render_glyph_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_glyph_end (xcb_render_glyph_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_glyphset_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_glyphset_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_glyphset_next - ** - ** @param xcb_render_glyphset_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_glyphset_next (xcb_render_glyphset_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_glyphset_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_glyphset_end - ** - ** @param xcb_render_glyphset_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_glyphset_end (xcb_render_glyphset_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_picture_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_picture_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_picture_next - ** - ** @param xcb_render_picture_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_picture_next (xcb_render_picture_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_picture_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_picture_end - ** - ** @param xcb_render_picture_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_picture_end (xcb_render_picture_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_pictformat_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_pictformat_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_pictformat_next - ** - ** @param xcb_render_pictformat_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictformat_next (xcb_render_pictformat_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_pictformat_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictformat_end - ** - ** @param xcb_render_pictformat_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictformat_end (xcb_render_pictformat_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_fixed_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_fixed_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_fixed_next - ** - ** @param xcb_render_fixed_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_fixed_next (xcb_render_fixed_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_fixed_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_fixed_end - ** - ** @param xcb_render_fixed_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_fixed_end (xcb_render_fixed_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_directformat_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_directformat_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_directformat_next - ** - ** @param xcb_render_directformat_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_directformat_next (xcb_render_directformat_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_directformat_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_directformat_end - ** - ** @param xcb_render_directformat_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_directformat_end (xcb_render_directformat_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_pictforminfo_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_pictforminfo_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_pictforminfo_next - ** - ** @param xcb_render_pictforminfo_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictforminfo_next (xcb_render_pictforminfo_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_pictforminfo_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictforminfo_end - ** - ** @param xcb_render_pictforminfo_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictforminfo_end (xcb_render_pictforminfo_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_pictvisual_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_pictvisual_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_pictvisual_next - ** - ** @param xcb_render_pictvisual_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictvisual_next (xcb_render_pictvisual_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_pictvisual_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictvisual_end - ** - ** @param xcb_render_pictvisual_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictvisual_end (xcb_render_pictvisual_iterator_t i /**< */); - -int -xcb_render_pictdepth_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_render_pictvisual_t * xcb_render_pictdepth_visuals - ** - ** @param const xcb_render_pictdepth_t *R - ** @returns xcb_render_pictvisual_t * - ** - *****************************************************************************/ - -xcb_render_pictvisual_t * -xcb_render_pictdepth_visuals (const xcb_render_pictdepth_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_pictdepth_visuals_length - ** - ** @param const xcb_render_pictdepth_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_pictdepth_visuals_length (const xcb_render_pictdepth_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_pictvisual_iterator_t xcb_render_pictdepth_visuals_iterator - ** - ** @param const xcb_render_pictdepth_t *R - ** @returns xcb_render_pictvisual_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictvisual_iterator_t -xcb_render_pictdepth_visuals_iterator (const xcb_render_pictdepth_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_pictdepth_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_pictdepth_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_pictdepth_next - ** - ** @param xcb_render_pictdepth_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictdepth_next (xcb_render_pictdepth_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_pictdepth_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictdepth_end - ** - ** @param xcb_render_pictdepth_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictdepth_end (xcb_render_pictdepth_iterator_t i /**< */); - -int -xcb_render_pictscreen_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_pictscreen_depths_length - ** - ** @param const xcb_render_pictscreen_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_pictscreen_depths_length (const xcb_render_pictscreen_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_pictdepth_iterator_t xcb_render_pictscreen_depths_iterator - ** - ** @param const xcb_render_pictscreen_t *R - ** @returns xcb_render_pictdepth_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictdepth_iterator_t -xcb_render_pictscreen_depths_iterator (const xcb_render_pictscreen_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_pictscreen_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_pictscreen_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_pictscreen_next - ** - ** @param xcb_render_pictscreen_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictscreen_next (xcb_render_pictscreen_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_pictscreen_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictscreen_end - ** - ** @param xcb_render_pictscreen_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictscreen_end (xcb_render_pictscreen_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_indexvalue_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_indexvalue_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_indexvalue_next - ** - ** @param xcb_render_indexvalue_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_indexvalue_next (xcb_render_indexvalue_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_indexvalue_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_indexvalue_end - ** - ** @param xcb_render_indexvalue_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_indexvalue_end (xcb_render_indexvalue_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_color_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_color_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_color_next - ** - ** @param xcb_render_color_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_color_next (xcb_render_color_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_color_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_color_end - ** - ** @param xcb_render_color_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_color_end (xcb_render_color_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_pointfix_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_pointfix_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_pointfix_next - ** - ** @param xcb_render_pointfix_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pointfix_next (xcb_render_pointfix_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_pointfix_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pointfix_end - ** - ** @param xcb_render_pointfix_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pointfix_end (xcb_render_pointfix_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_linefix_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_linefix_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_linefix_next - ** - ** @param xcb_render_linefix_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_linefix_next (xcb_render_linefix_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_linefix_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_linefix_end - ** - ** @param xcb_render_linefix_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_linefix_end (xcb_render_linefix_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_triangle_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_triangle_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_triangle_next - ** - ** @param xcb_render_triangle_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_triangle_next (xcb_render_triangle_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_triangle_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_triangle_end - ** - ** @param xcb_render_triangle_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_triangle_end (xcb_render_triangle_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_trapezoid_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_trapezoid_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_trapezoid_next - ** - ** @param xcb_render_trapezoid_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_trapezoid_next (xcb_render_trapezoid_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_trapezoid_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_trapezoid_end - ** - ** @param xcb_render_trapezoid_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_trapezoid_end (xcb_render_trapezoid_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_glyphinfo_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_glyphinfo_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_glyphinfo_next - ** - ** @param xcb_render_glyphinfo_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_glyphinfo_next (xcb_render_glyphinfo_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_glyphinfo_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_glyphinfo_end - ** - ** @param xcb_render_glyphinfo_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_glyphinfo_end (xcb_render_glyphinfo_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_render_query_version_cookie_t xcb_render_query_version - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_render_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_version_cookie_t -xcb_render_query_version (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_render_query_version_cookie_t xcb_render_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_render_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_version_cookie_t -xcb_render_query_version_unchecked (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_render_query_version_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_render_query_version_reply_t * xcb_render_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_version_reply_t * -xcb_render_query_version_reply (xcb_connection_t *c /**< */, - xcb_render_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_render_query_pict_formats_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats - ** - ** @param xcb_connection_t *c - ** @returns xcb_render_query_pict_formats_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_formats_cookie_t -xcb_render_query_pict_formats (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_render_query_pict_formats_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_formats_cookie_t -xcb_render_query_pict_formats_unchecked (xcb_connection_t *c /**< */); - - -/***************************************************************************** - ** - ** xcb_render_pictforminfo_t * xcb_render_query_pict_formats_formats - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_render_pictforminfo_t * - ** - *****************************************************************************/ - -xcb_render_pictforminfo_t * -xcb_render_query_pict_formats_formats (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_formats_formats_length - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_formats_formats_length (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_pictforminfo_iterator_t xcb_render_query_pict_formats_formats_iterator - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_render_pictforminfo_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictforminfo_iterator_t -xcb_render_query_pict_formats_formats_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_formats_screens_length - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_formats_screens_length (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_pictscreen_iterator_t xcb_render_query_pict_formats_screens_iterator - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_render_pictscreen_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictscreen_iterator_t -xcb_render_query_pict_formats_screens_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint32_t * xcb_render_query_pict_formats_subpixels - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns uint32_t * - ** - *****************************************************************************/ - -uint32_t * -xcb_render_query_pict_formats_subpixels (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_formats_subpixels_length - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_formats_subpixels_length (const xcb_render_query_pict_formats_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_query_pict_formats_subpixels_end - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_query_pict_formats_subpixels_end (const xcb_render_query_pict_formats_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_render_query_pict_formats_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_render_query_pict_formats_reply_t * xcb_render_query_pict_formats_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_pict_formats_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_pict_formats_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_pict_formats_reply_t * -xcb_render_query_pict_formats_reply (xcb_connection_t *c /**< */, - xcb_render_query_pict_formats_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_render_query_pict_index_values_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values - ** - ** @param xcb_connection_t *c - ** @param xcb_render_pictformat_t format - ** @returns xcb_render_query_pict_index_values_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_index_values_cookie_t -xcb_render_query_pict_index_values (xcb_connection_t *c /**< */, - xcb_render_pictformat_t format /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_pictformat_t format - ** @returns xcb_render_query_pict_index_values_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_index_values_cookie_t -xcb_render_query_pict_index_values_unchecked (xcb_connection_t *c /**< */, - xcb_render_pictformat_t format /**< */); - - -/***************************************************************************** - ** - ** xcb_render_indexvalue_t * xcb_render_query_pict_index_values_values - ** - ** @param const xcb_render_query_pict_index_values_reply_t *R - ** @returns xcb_render_indexvalue_t * - ** - *****************************************************************************/ - -xcb_render_indexvalue_t * -xcb_render_query_pict_index_values_values (const xcb_render_query_pict_index_values_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_index_values_values_length - ** - ** @param const xcb_render_query_pict_index_values_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_index_values_values_length (const xcb_render_query_pict_index_values_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_render_indexvalue_iterator_t xcb_render_query_pict_index_values_values_iterator - ** - ** @param const xcb_render_query_pict_index_values_reply_t *R - ** @returns xcb_render_indexvalue_iterator_t - ** - *****************************************************************************/ - -xcb_render_indexvalue_iterator_t -xcb_render_query_pict_index_values_values_iterator (const xcb_render_query_pict_index_values_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_render_query_pict_index_values_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_render_query_pict_index_values_reply_t * xcb_render_query_pict_index_values_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_pict_index_values_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_pict_index_values_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_pict_index_values_reply_t * -xcb_render_query_pict_index_values_reply (xcb_connection_t *c /**< */, - xcb_render_query_pict_index_values_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_render_create_picture_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t pid - ** @param xcb_drawable_t drawable - ** @param xcb_render_pictformat_t format - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_picture_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t pid /**< */, - xcb_drawable_t drawable /**< */, - xcb_render_pictformat_t format /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t pid - ** @param xcb_drawable_t drawable - ** @param xcb_render_pictformat_t format - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_picture (xcb_connection_t *c /**< */, - xcb_render_picture_t pid /**< */, - xcb_drawable_t drawable /**< */, - xcb_render_pictformat_t format /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -int -xcb_render_change_picture_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_change_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_change_picture_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_change_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_change_picture (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -int -xcb_render_set_picture_clip_rectangles_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t clip_x_origin - ** @param int16_t clip_y_origin - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_clip_rectangles_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t clip_x_origin /**< */, - int16_t clip_y_origin /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t clip_x_origin - ** @param int16_t clip_y_origin - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_clip_rectangles (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t clip_x_origin /**< */, - int16_t clip_y_origin /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_picture_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_picture (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t mask - ** @param xcb_render_picture_t dst - ** @param int16_t src_x - ** @param int16_t src_y - ** @param int16_t mask_x - ** @param int16_t mask_y - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint16_t width - ** @param uint16_t height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t mask /**< */, - xcb_render_picture_t dst /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - int16_t mask_x /**< */, - int16_t mask_y /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint16_t width /**< */, - uint16_t height /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t mask - ** @param xcb_render_picture_t dst - ** @param int16_t src_x - ** @param int16_t src_y - ** @param int16_t mask_x - ** @param int16_t mask_y - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint16_t width - ** @param uint16_t height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t mask /**< */, - xcb_render_picture_t dst /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - int16_t mask_x /**< */, - int16_t mask_y /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint16_t width /**< */, - uint16_t height /**< */); - -int -xcb_render_trapezoids_sizeof (const void *_buffer /**< */, - uint32_t traps_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_trapezoids_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t traps_len - ** @param const xcb_render_trapezoid_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_trapezoids_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t traps_len /**< */, - const xcb_render_trapezoid_t *traps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_trapezoids - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t traps_len - ** @param const xcb_render_trapezoid_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_trapezoids (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t traps_len /**< */, - const xcb_render_trapezoid_t *traps /**< */); - -int -xcb_render_triangles_sizeof (const void *_buffer /**< */, - uint32_t triangles_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_triangles_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t triangles_len - ** @param const xcb_render_triangle_t *triangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_triangles_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t triangles_len /**< */, - const xcb_render_triangle_t *triangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_triangles - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t triangles_len - ** @param const xcb_render_triangle_t *triangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_triangles (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t triangles_len /**< */, - const xcb_render_triangle_t *triangles /**< */); - -int -xcb_render_tri_strip_sizeof (const void *_buffer /**< */, - uint32_t points_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_strip_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_strip_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_strip - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_strip (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */); - -int -xcb_render_tri_fan_sizeof (const void *_buffer /**< */, - uint32_t points_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_fan_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_fan_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_fan - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_fan (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_glyph_set_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_pictformat_t format - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_glyph_set_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_pictformat_t format /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_glyph_set - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_pictformat_t format - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_glyph_set (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_pictformat_t format /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_reference_glyph_set_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_glyphset_t existing - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_reference_glyph_set_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_glyphset_t existing /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_reference_glyph_set - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_glyphset_t existing - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_reference_glyph_set (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_glyphset_t existing /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyph_set_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyph_set_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyph_set - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyph_set (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */); - -int -xcb_render_add_glyphs_sizeof (const void *_buffer /**< */, - uint32_t data_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_glyphs_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const uint32_t *glyphids - ** @param const xcb_render_glyphinfo_t *glyphs - ** @param uint32_t data_len - ** @param const uint8_t *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_glyphs_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const uint32_t *glyphids /**< */, - const xcb_render_glyphinfo_t *glyphs /**< */, - uint32_t data_len /**< */, - const uint8_t *data /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_glyphs - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const uint32_t *glyphids - ** @param const xcb_render_glyphinfo_t *glyphs - ** @param uint32_t data_len - ** @param const uint8_t *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_glyphs (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const uint32_t *glyphids /**< */, - const xcb_render_glyphinfo_t *glyphs /**< */, - uint32_t data_len /**< */, - const uint8_t *data /**< */); - -int -xcb_render_free_glyphs_sizeof (const void *_buffer /**< */, - uint32_t glyphs_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyphs_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const xcb_render_glyph_t *glyphs - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyphs_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const xcb_render_glyph_t *glyphs /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyphs - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const xcb_render_glyph_t *glyphs - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyphs (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const xcb_render_glyph_t *glyphs /**< */); - -int -xcb_render_composite_glyphs_8_sizeof (const void *_buffer /**< */, - uint32_t glyphcmds_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_8_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_8_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_8 - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_8 (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */); - -int -xcb_render_composite_glyphs_16_sizeof (const void *_buffer /**< */, - uint32_t glyphcmds_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_16_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_16_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_16 - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_16 (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */); - -int -xcb_render_composite_glyphs_32_sizeof (const void *_buffer /**< */, - uint32_t glyphcmds_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_32_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_32_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_32 - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_32 (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */); - -int -xcb_render_fill_rectangles_sizeof (const void *_buffer /**< */, - uint32_t rects_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_fill_rectangles_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t dst - ** @param xcb_render_color_t color - ** @param uint32_t rects_len - ** @param const xcb_rectangle_t *rects - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_fill_rectangles_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_color_t color /**< */, - uint32_t rects_len /**< */, - const xcb_rectangle_t *rects /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_fill_rectangles - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t dst - ** @param xcb_render_color_t color - ** @param uint32_t rects_len - ** @param const xcb_rectangle_t *rects - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_fill_rectangles (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_color_t color /**< */, - uint32_t rects_len /**< */, - const xcb_rectangle_t *rects /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param xcb_render_picture_t source - ** @param uint16_t x - ** @param uint16_t y - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_cursor_checked (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - xcb_render_picture_t source /**< */, - uint16_t x /**< */, - uint16_t y /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param xcb_render_picture_t source - ** @param uint16_t x - ** @param uint16_t y - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_cursor (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - xcb_render_picture_t source /**< */, - uint16_t x /**< */, - uint16_t y /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_transform_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_transform_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_transform_next - ** - ** @param xcb_render_transform_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_transform_next (xcb_render_transform_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_transform_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_transform_end - ** - ** @param xcb_render_transform_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_transform_end (xcb_render_transform_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_transform_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_transform_t transform - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_transform_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_transform_t transform /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_transform - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_transform_t transform - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_transform (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_transform_t transform /**< */); - -int -xcb_render_query_filters_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_render_query_filters_cookie_t xcb_render_query_filters - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @returns xcb_render_query_filters_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_filters_cookie_t -xcb_render_query_filters (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_render_query_filters_cookie_t xcb_render_query_filters_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @returns xcb_render_query_filters_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_filters_cookie_t -xcb_render_query_filters_unchecked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_render_query_filters_aliases - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_render_query_filters_aliases (const xcb_render_query_filters_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_query_filters_aliases_length - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_filters_aliases_length (const xcb_render_query_filters_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_query_filters_aliases_end - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_query_filters_aliases_end (const xcb_render_query_filters_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_render_query_filters_filters_length - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_filters_filters_length (const xcb_render_query_filters_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_str_iterator_t xcb_render_query_filters_filters_iterator - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns xcb_str_iterator_t - ** - *****************************************************************************/ - -xcb_str_iterator_t -xcb_render_query_filters_filters_iterator (const xcb_render_query_filters_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_render_query_filters_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_render_query_filters_reply_t * xcb_render_query_filters_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_filters_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_filters_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_filters_reply_t * -xcb_render_query_filters_reply (xcb_connection_t *c /**< */, - xcb_render_query_filters_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_render_set_picture_filter_sizeof (const void *_buffer /**< */, - uint32_t values_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_filter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint16_t filter_len - ** @param const char *filter - ** @param uint32_t values_len - ** @param const xcb_render_fixed_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_filter_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint16_t filter_len /**< */, - const char *filter /**< */, - uint32_t values_len /**< */, - const xcb_render_fixed_t *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_filter - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint16_t filter_len - ** @param const char *filter - ** @param uint32_t values_len - ** @param const xcb_render_fixed_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_filter (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint16_t filter_len /**< */, - const char *filter /**< */, - uint32_t values_len /**< */, - const xcb_render_fixed_t *values /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_animcursorelt_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_animcursorelt_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_animcursorelt_next - ** - ** @param xcb_render_animcursorelt_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_animcursorelt_next (xcb_render_animcursorelt_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_animcursorelt_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_animcursorelt_end - ** - ** @param xcb_render_animcursorelt_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_animcursorelt_end (xcb_render_animcursorelt_iterator_t i /**< */); - -int -xcb_render_create_anim_cursor_sizeof (const void *_buffer /**< */, - uint32_t cursors_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_anim_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param uint32_t cursors_len - ** @param const xcb_render_animcursorelt_t *cursors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_anim_cursor_checked (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - uint32_t cursors_len /**< */, - const xcb_render_animcursorelt_t *cursors /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_anim_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param uint32_t cursors_len - ** @param const xcb_render_animcursorelt_t *cursors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_anim_cursor (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - uint32_t cursors_len /**< */, - const xcb_render_animcursorelt_t *cursors /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_spanfix_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_spanfix_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_spanfix_next - ** - ** @param xcb_render_spanfix_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_spanfix_next (xcb_render_spanfix_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_spanfix_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_spanfix_end - ** - ** @param xcb_render_spanfix_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_spanfix_end (xcb_render_spanfix_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_render_trap_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_render_trap_t) - */ - -/***************************************************************************** - ** - ** void xcb_render_trap_next - ** - ** @param xcb_render_trap_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_trap_next (xcb_render_trap_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_render_trap_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_trap_end - ** - ** @param xcb_render_trap_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_trap_end (xcb_render_trap_iterator_t i /**< */); - -int -xcb_render_add_traps_sizeof (const void *_buffer /**< */, - uint32_t traps_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_traps_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t x_off - ** @param int16_t y_off - ** @param uint32_t traps_len - ** @param const xcb_render_trap_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_traps_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t x_off /**< */, - int16_t y_off /**< */, - uint32_t traps_len /**< */, - const xcb_render_trap_t *traps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_traps - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t x_off - ** @param int16_t y_off - ** @param uint32_t traps_len - ** @param const xcb_render_trap_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_traps (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t x_off /**< */, - int16_t y_off /**< */, - uint32_t traps_len /**< */, - const xcb_render_trap_t *traps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_solid_fill_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_color_t color - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_solid_fill_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_color_t color /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_solid_fill - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_color_t color - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_solid_fill (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_color_t color /**< */); - -int -xcb_render_create_linear_gradient_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_linear_gradient_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t p1 - ** @param xcb_render_pointfix_t p2 - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_linear_gradient_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t p1 /**< */, - xcb_render_pointfix_t p2 /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_linear_gradient - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t p1 - ** @param xcb_render_pointfix_t p2 - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_linear_gradient (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t p1 /**< */, - xcb_render_pointfix_t p2 /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */); - -int -xcb_render_create_radial_gradient_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_radial_gradient_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t inner - ** @param xcb_render_pointfix_t outer - ** @param xcb_render_fixed_t inner_radius - ** @param xcb_render_fixed_t outer_radius - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_radial_gradient_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t inner /**< */, - xcb_render_pointfix_t outer /**< */, - xcb_render_fixed_t inner_radius /**< */, - xcb_render_fixed_t outer_radius /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_radial_gradient - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t inner - ** @param xcb_render_pointfix_t outer - ** @param xcb_render_fixed_t inner_radius - ** @param xcb_render_fixed_t outer_radius - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_radial_gradient (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t inner /**< */, - xcb_render_pointfix_t outer /**< */, - xcb_render_fixed_t inner_radius /**< */, - xcb_render_fixed_t outer_radius /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */); - -int -xcb_render_create_conical_gradient_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_conical_gradient_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t center - ** @param xcb_render_fixed_t angle - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_conical_gradient_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t center /**< */, - xcb_render_fixed_t angle /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_conical_gradient - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t center - ** @param xcb_render_fixed_t angle - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_conical_gradient (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t center /**< */, - xcb_render_fixed_t angle /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/shape.h b/src/3rdparty/xcb/include/xcb/shape.h deleted file mode 100644 index 63919b42c7..0000000000 --- a/src/3rdparty/xcb/include/xcb/shape.h +++ /dev/null @@ -1,1103 +0,0 @@ -/* - * This file generated automatically from shape.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_Shape_API XCB Shape API - * @brief Shape XCB Protocol Implementation. - * @{ - **/ - -#ifndef __SHAPE_H -#define __SHAPE_H - -#include "xcb.h" -#include "xproto.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_SHAPE_MAJOR_VERSION 1 -#define XCB_SHAPE_MINOR_VERSION 1 - -extern xcb_extension_t xcb_shape_id; - -typedef uint8_t xcb_shape_op_t; - -/** - * @brief xcb_shape_op_iterator_t - **/ -typedef struct xcb_shape_op_iterator_t { - xcb_shape_op_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_shape_op_iterator_t; - -typedef uint8_t xcb_shape_kind_t; - -/** - * @brief xcb_shape_kind_iterator_t - **/ -typedef struct xcb_shape_kind_iterator_t { - xcb_shape_kind_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_shape_kind_iterator_t; - -typedef enum xcb_shape_so_t { - XCB_SHAPE_SO_SET, - XCB_SHAPE_SO_UNION, - XCB_SHAPE_SO_INTERSECT, - XCB_SHAPE_SO_SUBTRACT, - XCB_SHAPE_SO_INVERT -} xcb_shape_so_t; - -typedef enum xcb_shape_sk_t { - XCB_SHAPE_SK_BOUNDING, - XCB_SHAPE_SK_CLIP, - XCB_SHAPE_SK_INPUT -} xcb_shape_sk_t; - -/** Opcode for xcb_shape_notify. */ -#define XCB_SHAPE_NOTIFY 0 - -/** - * @brief xcb_shape_notify_event_t - **/ -typedef struct xcb_shape_notify_event_t { - uint8_t response_type; /**< */ - xcb_shape_kind_t shape_kind; /**< */ - uint16_t sequence; /**< */ - xcb_window_t affected_window; /**< */ - int16_t extents_x; /**< */ - int16_t extents_y; /**< */ - uint16_t extents_width; /**< */ - uint16_t extents_height; /**< */ - xcb_timestamp_t server_time; /**< */ - uint8_t shaped; /**< */ - uint8_t pad0[11]; /**< */ -} xcb_shape_notify_event_t; - -/** - * @brief xcb_shape_query_version_cookie_t - **/ -typedef struct xcb_shape_query_version_cookie_t { - unsigned int sequence; /**< */ -} xcb_shape_query_version_cookie_t; - -/** Opcode for xcb_shape_query_version. */ -#define XCB_SHAPE_QUERY_VERSION 0 - -/** - * @brief xcb_shape_query_version_request_t - **/ -typedef struct xcb_shape_query_version_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_shape_query_version_request_t; - -/** - * @brief xcb_shape_query_version_reply_t - **/ -typedef struct xcb_shape_query_version_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t major_version; /**< */ - uint16_t minor_version; /**< */ -} xcb_shape_query_version_reply_t; - -/** Opcode for xcb_shape_rectangles. */ -#define XCB_SHAPE_RECTANGLES 1 - -/** - * @brief xcb_shape_rectangles_request_t - **/ -typedef struct xcb_shape_rectangles_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_shape_op_t operation; /**< */ - xcb_shape_kind_t destination_kind; /**< */ - uint8_t ordering; /**< */ - uint8_t pad0; /**< */ - xcb_window_t destination_window; /**< */ - int16_t x_offset; /**< */ - int16_t y_offset; /**< */ -} xcb_shape_rectangles_request_t; - -/** Opcode for xcb_shape_mask. */ -#define XCB_SHAPE_MASK 2 - -/** - * @brief xcb_shape_mask_request_t - **/ -typedef struct xcb_shape_mask_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_shape_op_t operation; /**< */ - xcb_shape_kind_t destination_kind; /**< */ - uint8_t pad0[2]; /**< */ - xcb_window_t destination_window; /**< */ - int16_t x_offset; /**< */ - int16_t y_offset; /**< */ - xcb_pixmap_t source_bitmap; /**< */ -} xcb_shape_mask_request_t; - -/** Opcode for xcb_shape_combine. */ -#define XCB_SHAPE_COMBINE 3 - -/** - * @brief xcb_shape_combine_request_t - **/ -typedef struct xcb_shape_combine_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_shape_op_t operation; /**< */ - xcb_shape_kind_t destination_kind; /**< */ - xcb_shape_kind_t source_kind; /**< */ - uint8_t pad0; /**< */ - xcb_window_t destination_window; /**< */ - int16_t x_offset; /**< */ - int16_t y_offset; /**< */ - xcb_window_t source_window; /**< */ -} xcb_shape_combine_request_t; - -/** Opcode for xcb_shape_offset. */ -#define XCB_SHAPE_OFFSET 4 - -/** - * @brief xcb_shape_offset_request_t - **/ -typedef struct xcb_shape_offset_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_shape_kind_t destination_kind; /**< */ - uint8_t pad0[3]; /**< */ - xcb_window_t destination_window; /**< */ - int16_t x_offset; /**< */ - int16_t y_offset; /**< */ -} xcb_shape_offset_request_t; - -/** - * @brief xcb_shape_query_extents_cookie_t - **/ -typedef struct xcb_shape_query_extents_cookie_t { - unsigned int sequence; /**< */ -} xcb_shape_query_extents_cookie_t; - -/** Opcode for xcb_shape_query_extents. */ -#define XCB_SHAPE_QUERY_EXTENTS 5 - -/** - * @brief xcb_shape_query_extents_request_t - **/ -typedef struct xcb_shape_query_extents_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t destination_window; /**< */ -} xcb_shape_query_extents_request_t; - -/** - * @brief xcb_shape_query_extents_reply_t - **/ -typedef struct xcb_shape_query_extents_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t bounding_shaped; /**< */ - uint8_t clip_shaped; /**< */ - uint8_t pad1[2]; /**< */ - int16_t bounding_shape_extents_x; /**< */ - int16_t bounding_shape_extents_y; /**< */ - uint16_t bounding_shape_extents_width; /**< */ - uint16_t bounding_shape_extents_height; /**< */ - int16_t clip_shape_extents_x; /**< */ - int16_t clip_shape_extents_y; /**< */ - uint16_t clip_shape_extents_width; /**< */ - uint16_t clip_shape_extents_height; /**< */ -} xcb_shape_query_extents_reply_t; - -/** Opcode for xcb_shape_select_input. */ -#define XCB_SHAPE_SELECT_INPUT 6 - -/** - * @brief xcb_shape_select_input_request_t - **/ -typedef struct xcb_shape_select_input_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t destination_window; /**< */ - uint8_t enable; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_shape_select_input_request_t; - -/** - * @brief xcb_shape_input_selected_cookie_t - **/ -typedef struct xcb_shape_input_selected_cookie_t { - unsigned int sequence; /**< */ -} xcb_shape_input_selected_cookie_t; - -/** Opcode for xcb_shape_input_selected. */ -#define XCB_SHAPE_INPUT_SELECTED 7 - -/** - * @brief xcb_shape_input_selected_request_t - **/ -typedef struct xcb_shape_input_selected_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t destination_window; /**< */ -} xcb_shape_input_selected_request_t; - -/** - * @brief xcb_shape_input_selected_reply_t - **/ -typedef struct xcb_shape_input_selected_reply_t { - uint8_t response_type; /**< */ - uint8_t enabled; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ -} xcb_shape_input_selected_reply_t; - -/** - * @brief xcb_shape_get_rectangles_cookie_t - **/ -typedef struct xcb_shape_get_rectangles_cookie_t { - unsigned int sequence; /**< */ -} xcb_shape_get_rectangles_cookie_t; - -/** Opcode for xcb_shape_get_rectangles. */ -#define XCB_SHAPE_GET_RECTANGLES 8 - -/** - * @brief xcb_shape_get_rectangles_request_t - **/ -typedef struct xcb_shape_get_rectangles_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - xcb_shape_kind_t source_kind; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_shape_get_rectangles_request_t; - -/** - * @brief xcb_shape_get_rectangles_reply_t - **/ -typedef struct xcb_shape_get_rectangles_reply_t { - uint8_t response_type; /**< */ - uint8_t ordering; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t rectangles_len; /**< */ - uint8_t pad0[20]; /**< */ -} xcb_shape_get_rectangles_reply_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_shape_op_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_shape_op_t) - */ - -/***************************************************************************** - ** - ** void xcb_shape_op_next - ** - ** @param xcb_shape_op_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_shape_op_next (xcb_shape_op_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_shape_op_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_shape_op_end - ** - ** @param xcb_shape_op_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_shape_op_end (xcb_shape_op_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_shape_kind_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_shape_kind_t) - */ - -/***************************************************************************** - ** - ** void xcb_shape_kind_next - ** - ** @param xcb_shape_kind_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_shape_kind_next (xcb_shape_kind_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_shape_kind_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_shape_kind_end - ** - ** @param xcb_shape_kind_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_shape_kind_end (xcb_shape_kind_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_shape_query_version_cookie_t xcb_shape_query_version - ** - ** @param xcb_connection_t *c - ** @returns xcb_shape_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_version_cookie_t -xcb_shape_query_version (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_shape_query_version_cookie_t xcb_shape_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_shape_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_version_cookie_t -xcb_shape_query_version_unchecked (xcb_connection_t *c /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_shape_query_version_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_shape_query_version_reply_t * xcb_shape_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_shape_query_version_reply_t * -xcb_shape_query_version_reply (xcb_connection_t *c /**< */, - xcb_shape_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_shape_rectangles_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_rectangles_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param uint8_t ordering - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_rectangles_checked (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - uint8_t ordering /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_rectangles - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param uint8_t ordering - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_rectangles (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - uint8_t ordering /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_mask_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_pixmap_t source_bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_mask_checked (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_pixmap_t source_bitmap /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_mask - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_pixmap_t source_bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_mask (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_pixmap_t source_bitmap /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_combine_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_shape_kind_t source_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_window_t source_window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_combine_checked (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_shape_kind_t source_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_window_t source_window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_combine - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_shape_kind_t source_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_window_t source_window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_combine (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_shape_kind_t source_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_window_t source_window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_offset_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_offset_checked (xcb_connection_t *c /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_offset - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_offset (xcb_connection_t *c /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_query_extents_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_extents_cookie_t -xcb_shape_query_extents (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_query_extents_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_extents_cookie_t -xcb_shape_query_extents_unchecked (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_shape_query_extents_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_shape_query_extents_reply_t * xcb_shape_query_extents_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_query_extents_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_query_extents_reply_t * - ** - *****************************************************************************/ - -xcb_shape_query_extents_reply_t * -xcb_shape_query_extents_reply (xcb_connection_t *c /**< */, - xcb_shape_query_extents_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_select_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @param uint8_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_select_input_checked (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */, - uint8_t enable /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_select_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @param uint8_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_select_input (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */, - uint8_t enable /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_input_selected_cookie_t - ** - *****************************************************************************/ - -xcb_shape_input_selected_cookie_t -xcb_shape_input_selected (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_input_selected_cookie_t - ** - *****************************************************************************/ - -xcb_shape_input_selected_cookie_t -xcb_shape_input_selected_unchecked (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_shape_input_selected_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_shape_input_selected_reply_t * xcb_shape_input_selected_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_input_selected_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_input_selected_reply_t * - ** - *****************************************************************************/ - -xcb_shape_input_selected_reply_t * -xcb_shape_input_selected_reply (xcb_connection_t *c /**< */, - xcb_shape_input_selected_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_shape_get_rectangles_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_shape_kind_t source_kind - ** @returns xcb_shape_get_rectangles_cookie_t - ** - *****************************************************************************/ - -xcb_shape_get_rectangles_cookie_t -xcb_shape_get_rectangles (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t source_kind /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_shape_kind_t source_kind - ** @returns xcb_shape_get_rectangles_cookie_t - ** - *****************************************************************************/ - -xcb_shape_get_rectangles_cookie_t -xcb_shape_get_rectangles_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t source_kind /**< */); - - -/***************************************************************************** - ** - ** xcb_rectangle_t * xcb_shape_get_rectangles_rectangles - ** - ** @param const xcb_shape_get_rectangles_reply_t *R - ** @returns xcb_rectangle_t * - ** - *****************************************************************************/ - -xcb_rectangle_t * -xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_shape_get_rectangles_rectangles_length - ** - ** @param const xcb_shape_get_rectangles_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_rectangle_iterator_t xcb_shape_get_rectangles_rectangles_iterator - ** - ** @param const xcb_shape_get_rectangles_reply_t *R - ** @returns xcb_rectangle_iterator_t - ** - *****************************************************************************/ - -xcb_rectangle_iterator_t -xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_shape_get_rectangles_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_shape_get_rectangles_reply_t * xcb_shape_get_rectangles_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_get_rectangles_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_get_rectangles_reply_t * - ** - *****************************************************************************/ - -xcb_shape_get_rectangles_reply_t * -xcb_shape_get_rectangles_reply (xcb_connection_t *c /**< */, - xcb_shape_get_rectangles_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/shm.h b/src/3rdparty/xcb/include/xcb/shm.h deleted file mode 100644 index 315f37e9b9..0000000000 --- a/src/3rdparty/xcb/include/xcb/shm.h +++ /dev/null @@ -1,738 +0,0 @@ -/* - * This file generated automatically from shm.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_Shm_API XCB Shm API - * @brief Shm XCB Protocol Implementation. - * @{ - **/ - -#ifndef __SHM_H -#define __SHM_H - -#include "xcb.h" -#include "xproto.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_SHM_MAJOR_VERSION 1 -#define XCB_SHM_MINOR_VERSION 1 - -extern xcb_extension_t xcb_shm_id; - -typedef uint32_t xcb_shm_seg_t; - -/** - * @brief xcb_shm_seg_iterator_t - **/ -typedef struct xcb_shm_seg_iterator_t { - xcb_shm_seg_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_shm_seg_iterator_t; - -/** Opcode for xcb_shm_completion. */ -#define XCB_SHM_COMPLETION 0 - -/** - * @brief xcb_shm_completion_event_t - **/ -typedef struct xcb_shm_completion_event_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - xcb_drawable_t drawable; /**< */ - uint16_t minor_event; /**< */ - uint8_t major_event; /**< */ - uint8_t pad1; /**< */ - xcb_shm_seg_t shmseg; /**< */ - uint32_t offset; /**< */ -} xcb_shm_completion_event_t; - -/** Opcode for xcb_shm_bad_seg. */ -#define XCB_SHM_BAD_SEG 0 - -typedef xcb_value_error_t xcb_shm_bad_seg_error_t; - -/** - * @brief xcb_shm_query_version_cookie_t - **/ -typedef struct xcb_shm_query_version_cookie_t { - unsigned int sequence; /**< */ -} xcb_shm_query_version_cookie_t; - -/** Opcode for xcb_shm_query_version. */ -#define XCB_SHM_QUERY_VERSION 0 - -/** - * @brief xcb_shm_query_version_request_t - **/ -typedef struct xcb_shm_query_version_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_shm_query_version_request_t; - -/** - * @brief xcb_shm_query_version_reply_t - **/ -typedef struct xcb_shm_query_version_reply_t { - uint8_t response_type; /**< */ - uint8_t shared_pixmaps; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t major_version; /**< */ - uint16_t minor_version; /**< */ - uint16_t uid; /**< */ - uint16_t gid; /**< */ - uint8_t pixmap_format; /**< */ - uint8_t pad0[15]; /**< */ -} xcb_shm_query_version_reply_t; - -/** Opcode for xcb_shm_attach. */ -#define XCB_SHM_ATTACH 1 - -/** - * @brief xcb_shm_attach_request_t - **/ -typedef struct xcb_shm_attach_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_shm_seg_t shmseg; /**< */ - uint32_t shmid; /**< */ - uint8_t read_only; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_shm_attach_request_t; - -/** Opcode for xcb_shm_detach. */ -#define XCB_SHM_DETACH 2 - -/** - * @brief xcb_shm_detach_request_t - **/ -typedef struct xcb_shm_detach_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_shm_seg_t shmseg; /**< */ -} xcb_shm_detach_request_t; - -/** Opcode for xcb_shm_put_image. */ -#define XCB_SHM_PUT_IMAGE 3 - -/** - * @brief xcb_shm_put_image_request_t - **/ -typedef struct xcb_shm_put_image_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_drawable_t drawable; /**< */ - xcb_gcontext_t gc; /**< */ - uint16_t total_width; /**< */ - uint16_t total_height; /**< */ - uint16_t src_x; /**< */ - uint16_t src_y; /**< */ - uint16_t src_width; /**< */ - uint16_t src_height; /**< */ - int16_t dst_x; /**< */ - int16_t dst_y; /**< */ - uint8_t depth; /**< */ - uint8_t format; /**< */ - uint8_t send_event; /**< */ - uint8_t pad0; /**< */ - xcb_shm_seg_t shmseg; /**< */ - uint32_t offset; /**< */ -} xcb_shm_put_image_request_t; - -/** - * @brief xcb_shm_get_image_cookie_t - **/ -typedef struct xcb_shm_get_image_cookie_t { - unsigned int sequence; /**< */ -} xcb_shm_get_image_cookie_t; - -/** Opcode for xcb_shm_get_image. */ -#define XCB_SHM_GET_IMAGE 4 - -/** - * @brief xcb_shm_get_image_request_t - **/ -typedef struct xcb_shm_get_image_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_drawable_t drawable; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint32_t plane_mask; /**< */ - uint8_t format; /**< */ - uint8_t pad0[3]; /**< */ - xcb_shm_seg_t shmseg; /**< */ - uint32_t offset; /**< */ -} xcb_shm_get_image_request_t; - -/** - * @brief xcb_shm_get_image_reply_t - **/ -typedef struct xcb_shm_get_image_reply_t { - uint8_t response_type; /**< */ - uint8_t depth; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_visualid_t visual; /**< */ - uint32_t size; /**< */ -} xcb_shm_get_image_reply_t; - -/** Opcode for xcb_shm_create_pixmap. */ -#define XCB_SHM_CREATE_PIXMAP 5 - -/** - * @brief xcb_shm_create_pixmap_request_t - **/ -typedef struct xcb_shm_create_pixmap_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_pixmap_t pid; /**< */ - xcb_drawable_t drawable; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint8_t depth; /**< */ - uint8_t pad0[3]; /**< */ - xcb_shm_seg_t shmseg; /**< */ - uint32_t offset; /**< */ -} xcb_shm_create_pixmap_request_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_shm_seg_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_shm_seg_t) - */ - -/***************************************************************************** - ** - ** void xcb_shm_seg_next - ** - ** @param xcb_shm_seg_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_shm_seg_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_shm_seg_end - ** - ** @param xcb_shm_seg_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_shm_query_version_cookie_t xcb_shm_query_version - ** - ** @param xcb_connection_t *c - ** @returns xcb_shm_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shm_query_version_cookie_t -xcb_shm_query_version (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_shm_query_version_cookie_t xcb_shm_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_shm_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shm_query_version_cookie_t -xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_shm_query_version_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_shm_query_version_reply_t * xcb_shm_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shm_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_shm_query_version_reply_t * -xcb_shm_query_version_reply (xcb_connection_t *c /**< */, - xcb_shm_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_attach_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t shmid - ** @param uint8_t read_only - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_attach_checked (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t shmid /**< */, - uint8_t read_only /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_attach - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t shmid - ** @param uint8_t read_only - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_attach (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t shmid /**< */, - uint8_t read_only /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_detach_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_detach_checked (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_detach - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_detach (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_put_image_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_gcontext_t gc - ** @param uint16_t total_width - ** @param uint16_t total_height - ** @param uint16_t src_x - ** @param uint16_t src_y - ** @param uint16_t src_width - ** @param uint16_t src_height - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint8_t depth - ** @param uint8_t format - ** @param uint8_t send_event - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_put_image_checked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_gcontext_t gc /**< */, - uint16_t total_width /**< */, - uint16_t total_height /**< */, - uint16_t src_x /**< */, - uint16_t src_y /**< */, - uint16_t src_width /**< */, - uint16_t src_height /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint8_t depth /**< */, - uint8_t format /**< */, - uint8_t send_event /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_put_image - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_gcontext_t gc - ** @param uint16_t total_width - ** @param uint16_t total_height - ** @param uint16_t src_x - ** @param uint16_t src_y - ** @param uint16_t src_width - ** @param uint16_t src_height - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint8_t depth - ** @param uint8_t format - ** @param uint8_t send_event - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_put_image (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_gcontext_t gc /**< */, - uint16_t total_width /**< */, - uint16_t total_height /**< */, - uint16_t src_x /**< */, - uint16_t src_y /**< */, - uint16_t src_width /**< */, - uint16_t src_height /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint8_t depth /**< */, - uint8_t format /**< */, - uint8_t send_event /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_shm_get_image_cookie_t xcb_shm_get_image - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param int16_t x - ** @param int16_t y - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t plane_mask - ** @param uint8_t format - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_shm_get_image_cookie_t - ** - *****************************************************************************/ - -xcb_shm_get_image_cookie_t -xcb_shm_get_image (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - int16_t x /**< */, - int16_t y /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t plane_mask /**< */, - uint8_t format /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_shm_get_image_cookie_t xcb_shm_get_image_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param int16_t x - ** @param int16_t y - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t plane_mask - ** @param uint8_t format - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_shm_get_image_cookie_t - ** - *****************************************************************************/ - -xcb_shm_get_image_cookie_t -xcb_shm_get_image_unchecked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - int16_t x /**< */, - int16_t y /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t plane_mask /**< */, - uint8_t format /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_shm_get_image_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_shm_get_image_reply_t * xcb_shm_get_image_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_get_image_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shm_get_image_reply_t * - ** - *****************************************************************************/ - -xcb_shm_get_image_reply_t * -xcb_shm_get_image_reply (xcb_connection_t *c /**< */, - xcb_shm_get_image_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_create_pixmap_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_pixmap_t pid - ** @param xcb_drawable_t drawable - ** @param uint16_t width - ** @param uint16_t height - ** @param uint8_t depth - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_create_pixmap_checked (xcb_connection_t *c /**< */, - xcb_pixmap_t pid /**< */, - xcb_drawable_t drawable /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint8_t depth /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_create_pixmap - ** - ** @param xcb_connection_t *c - ** @param xcb_pixmap_t pid - ** @param xcb_drawable_t drawable - ** @param uint16_t width - ** @param uint16_t height - ** @param uint8_t depth - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_create_pixmap (xcb_connection_t *c /**< */, - xcb_pixmap_t pid /**< */, - xcb_drawable_t drawable /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint8_t depth /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/sync.h b/src/3rdparty/xcb/include/xcb/sync.h deleted file mode 100644 index 3d0069d7ef..0000000000 --- a/src/3rdparty/xcb/include/xcb/sync.h +++ /dev/null @@ -1,2216 +0,0 @@ -/* - * This file generated automatically from sync.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_Sync_API XCB Sync API - * @brief Sync XCB Protocol Implementation. - * @{ - **/ - -#ifndef __SYNC_H -#define __SYNC_H - -#include "xcb.h" -#include "xproto.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_SYNC_MAJOR_VERSION 3 -#define XCB_SYNC_MINOR_VERSION 1 - -extern xcb_extension_t xcb_sync_id; - -typedef uint32_t xcb_sync_alarm_t; - -/** - * @brief xcb_sync_alarm_iterator_t - **/ -typedef struct xcb_sync_alarm_iterator_t { - xcb_sync_alarm_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_alarm_iterator_t; - -typedef enum xcb_sync_alarmstate_t { - XCB_SYNC_ALARMSTATE_ACTIVE, - XCB_SYNC_ALARMSTATE_INACTIVE, - XCB_SYNC_ALARMSTATE_DESTROYED -} xcb_sync_alarmstate_t; - -typedef uint32_t xcb_sync_counter_t; - -/** - * @brief xcb_sync_counter_iterator_t - **/ -typedef struct xcb_sync_counter_iterator_t { - xcb_sync_counter_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_counter_iterator_t; - -typedef uint32_t xcb_sync_fence_t; - -/** - * @brief xcb_sync_fence_iterator_t - **/ -typedef struct xcb_sync_fence_iterator_t { - xcb_sync_fence_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_fence_iterator_t; - -typedef enum xcb_sync_testtype_t { - XCB_SYNC_TESTTYPE_POSITIVE_TRANSITION, - XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION, - XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON, - XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON -} xcb_sync_testtype_t; - -typedef enum xcb_sync_valuetype_t { - XCB_SYNC_VALUETYPE_ABSOLUTE, - XCB_SYNC_VALUETYPE_RELATIVE -} xcb_sync_valuetype_t; - -typedef enum xcb_sync_ca_t { - XCB_SYNC_CA_COUNTER = 1, - XCB_SYNC_CA_VALUE_TYPE = 2, - XCB_SYNC_CA_VALUE = 4, - XCB_SYNC_CA_TEST_TYPE = 8, - XCB_SYNC_CA_DELTA = 16, - XCB_SYNC_CA_EVENTS = 32 -} xcb_sync_ca_t; - -/** - * @brief xcb_sync_int64_t - **/ -typedef struct xcb_sync_int64_t { - int32_t hi; /**< */ - uint32_t lo; /**< */ -} xcb_sync_int64_t; - -/** - * @brief xcb_sync_int64_iterator_t - **/ -typedef struct xcb_sync_int64_iterator_t { - xcb_sync_int64_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_int64_iterator_t; - -/** - * @brief xcb_sync_systemcounter_t - **/ -typedef struct xcb_sync_systemcounter_t { - xcb_sync_counter_t counter; /**< */ - xcb_sync_int64_t resolution; /**< */ - uint16_t name_len; /**< */ -} xcb_sync_systemcounter_t; - -/** - * @brief xcb_sync_systemcounter_iterator_t - **/ -typedef struct xcb_sync_systemcounter_iterator_t { - xcb_sync_systemcounter_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_systemcounter_iterator_t; - -/** - * @brief xcb_sync_trigger_t - **/ -typedef struct xcb_sync_trigger_t { - xcb_sync_counter_t counter; /**< */ - uint32_t wait_type; /**< */ - xcb_sync_int64_t wait_value; /**< */ - uint32_t test_type; /**< */ -} xcb_sync_trigger_t; - -/** - * @brief xcb_sync_trigger_iterator_t - **/ -typedef struct xcb_sync_trigger_iterator_t { - xcb_sync_trigger_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_trigger_iterator_t; - -/** - * @brief xcb_sync_waitcondition_t - **/ -typedef struct xcb_sync_waitcondition_t { - xcb_sync_trigger_t trigger; /**< */ - xcb_sync_int64_t event_threshold; /**< */ -} xcb_sync_waitcondition_t; - -/** - * @brief xcb_sync_waitcondition_iterator_t - **/ -typedef struct xcb_sync_waitcondition_iterator_t { - xcb_sync_waitcondition_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_sync_waitcondition_iterator_t; - -/** Opcode for xcb_sync_counter. */ -#define XCB_SYNC_COUNTER 0 - -/** - * @brief xcb_sync_counter_error_t - **/ -typedef struct xcb_sync_counter_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ - uint32_t bad_counter; /**< */ - uint16_t minor_opcode; /**< */ - uint8_t major_opcode; /**< */ -} xcb_sync_counter_error_t; - -/** Opcode for xcb_sync_alarm. */ -#define XCB_SYNC_ALARM 1 - -/** - * @brief xcb_sync_alarm_error_t - **/ -typedef struct xcb_sync_alarm_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ - uint32_t bad_alarm; /**< */ - uint16_t minor_opcode; /**< */ - uint8_t major_opcode; /**< */ -} xcb_sync_alarm_error_t; - -/** - * @brief xcb_sync_initialize_cookie_t - **/ -typedef struct xcb_sync_initialize_cookie_t { - unsigned int sequence; /**< */ -} xcb_sync_initialize_cookie_t; - -/** Opcode for xcb_sync_initialize. */ -#define XCB_SYNC_INITIALIZE 0 - -/** - * @brief xcb_sync_initialize_request_t - **/ -typedef struct xcb_sync_initialize_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t desired_major_version; /**< */ - uint8_t desired_minor_version; /**< */ -} xcb_sync_initialize_request_t; - -/** - * @brief xcb_sync_initialize_reply_t - **/ -typedef struct xcb_sync_initialize_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t major_version; /**< */ - uint8_t minor_version; /**< */ - uint8_t pad1[22]; /**< */ -} xcb_sync_initialize_reply_t; - -/** - * @brief xcb_sync_list_system_counters_cookie_t - **/ -typedef struct xcb_sync_list_system_counters_cookie_t { - unsigned int sequence; /**< */ -} xcb_sync_list_system_counters_cookie_t; - -/** Opcode for xcb_sync_list_system_counters. */ -#define XCB_SYNC_LIST_SYSTEM_COUNTERS 1 - -/** - * @brief xcb_sync_list_system_counters_request_t - **/ -typedef struct xcb_sync_list_system_counters_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_sync_list_system_counters_request_t; - -/** - * @brief xcb_sync_list_system_counters_reply_t - **/ -typedef struct xcb_sync_list_system_counters_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t counters_len; /**< */ - uint8_t pad1[20]; /**< */ -} xcb_sync_list_system_counters_reply_t; - -/** Opcode for xcb_sync_create_counter. */ -#define XCB_SYNC_CREATE_COUNTER 2 - -/** - * @brief xcb_sync_create_counter_request_t - **/ -typedef struct xcb_sync_create_counter_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_counter_t id; /**< */ - xcb_sync_int64_t initial_value; /**< */ -} xcb_sync_create_counter_request_t; - -/** Opcode for xcb_sync_destroy_counter. */ -#define XCB_SYNC_DESTROY_COUNTER 6 - -/** - * @brief xcb_sync_destroy_counter_request_t - **/ -typedef struct xcb_sync_destroy_counter_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_counter_t counter; /**< */ -} xcb_sync_destroy_counter_request_t; - -/** - * @brief xcb_sync_query_counter_cookie_t - **/ -typedef struct xcb_sync_query_counter_cookie_t { - unsigned int sequence; /**< */ -} xcb_sync_query_counter_cookie_t; - -/** Opcode for xcb_sync_query_counter. */ -#define XCB_SYNC_QUERY_COUNTER 5 - -/** - * @brief xcb_sync_query_counter_request_t - **/ -typedef struct xcb_sync_query_counter_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_counter_t counter; /**< */ -} xcb_sync_query_counter_request_t; - -/** - * @brief xcb_sync_query_counter_reply_t - **/ -typedef struct xcb_sync_query_counter_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_sync_int64_t counter_value; /**< */ -} xcb_sync_query_counter_reply_t; - -/** Opcode for xcb_sync_await. */ -#define XCB_SYNC_AWAIT 7 - -/** - * @brief xcb_sync_await_request_t - **/ -typedef struct xcb_sync_await_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_sync_await_request_t; - -/** Opcode for xcb_sync_change_counter. */ -#define XCB_SYNC_CHANGE_COUNTER 4 - -/** - * @brief xcb_sync_change_counter_request_t - **/ -typedef struct xcb_sync_change_counter_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_counter_t counter; /**< */ - xcb_sync_int64_t amount; /**< */ -} xcb_sync_change_counter_request_t; - -/** Opcode for xcb_sync_set_counter. */ -#define XCB_SYNC_SET_COUNTER 3 - -/** - * @brief xcb_sync_set_counter_request_t - **/ -typedef struct xcb_sync_set_counter_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_counter_t counter; /**< */ - xcb_sync_int64_t value; /**< */ -} xcb_sync_set_counter_request_t; - -/** Opcode for xcb_sync_create_alarm. */ -#define XCB_SYNC_CREATE_ALARM 8 - -/** - * @brief xcb_sync_create_alarm_request_t - **/ -typedef struct xcb_sync_create_alarm_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_alarm_t id; /**< */ - uint32_t value_mask; /**< */ -} xcb_sync_create_alarm_request_t; - -/** Opcode for xcb_sync_change_alarm. */ -#define XCB_SYNC_CHANGE_ALARM 9 - -/** - * @brief xcb_sync_change_alarm_request_t - **/ -typedef struct xcb_sync_change_alarm_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_alarm_t id; /**< */ - uint32_t value_mask; /**< */ -} xcb_sync_change_alarm_request_t; - -/** Opcode for xcb_sync_destroy_alarm. */ -#define XCB_SYNC_DESTROY_ALARM 11 - -/** - * @brief xcb_sync_destroy_alarm_request_t - **/ -typedef struct xcb_sync_destroy_alarm_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_alarm_t alarm; /**< */ -} xcb_sync_destroy_alarm_request_t; - -/** - * @brief xcb_sync_query_alarm_cookie_t - **/ -typedef struct xcb_sync_query_alarm_cookie_t { - unsigned int sequence; /**< */ -} xcb_sync_query_alarm_cookie_t; - -/** Opcode for xcb_sync_query_alarm. */ -#define XCB_SYNC_QUERY_ALARM 10 - -/** - * @brief xcb_sync_query_alarm_request_t - **/ -typedef struct xcb_sync_query_alarm_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_alarm_t alarm; /**< */ -} xcb_sync_query_alarm_request_t; - -/** - * @brief xcb_sync_query_alarm_reply_t - **/ -typedef struct xcb_sync_query_alarm_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_sync_trigger_t trigger; /**< */ - xcb_sync_int64_t delta; /**< */ - uint8_t events; /**< */ - uint8_t state; /**< */ - uint8_t pad1[2]; /**< */ -} xcb_sync_query_alarm_reply_t; - -/** Opcode for xcb_sync_set_priority. */ -#define XCB_SYNC_SET_PRIORITY 12 - -/** - * @brief xcb_sync_set_priority_request_t - **/ -typedef struct xcb_sync_set_priority_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint32_t id; /**< */ - int32_t priority; /**< */ -} xcb_sync_set_priority_request_t; - -/** - * @brief xcb_sync_get_priority_cookie_t - **/ -typedef struct xcb_sync_get_priority_cookie_t { - unsigned int sequence; /**< */ -} xcb_sync_get_priority_cookie_t; - -/** Opcode for xcb_sync_get_priority. */ -#define XCB_SYNC_GET_PRIORITY 13 - -/** - * @brief xcb_sync_get_priority_request_t - **/ -typedef struct xcb_sync_get_priority_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint32_t id; /**< */ -} xcb_sync_get_priority_request_t; - -/** - * @brief xcb_sync_get_priority_reply_t - **/ -typedef struct xcb_sync_get_priority_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - int32_t priority; /**< */ -} xcb_sync_get_priority_reply_t; - -/** Opcode for xcb_sync_create_fence. */ -#define XCB_SYNC_CREATE_FENCE 14 - -/** - * @brief xcb_sync_create_fence_request_t - **/ -typedef struct xcb_sync_create_fence_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_drawable_t drawable; /**< */ - xcb_sync_fence_t fence; /**< */ - uint8_t initially_triggered; /**< */ -} xcb_sync_create_fence_request_t; - -/** Opcode for xcb_sync_trigger_fence. */ -#define XCB_SYNC_TRIGGER_FENCE 15 - -/** - * @brief xcb_sync_trigger_fence_request_t - **/ -typedef struct xcb_sync_trigger_fence_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_fence_t fence; /**< */ -} xcb_sync_trigger_fence_request_t; - -/** Opcode for xcb_sync_reset_fence. */ -#define XCB_SYNC_RESET_FENCE 16 - -/** - * @brief xcb_sync_reset_fence_request_t - **/ -typedef struct xcb_sync_reset_fence_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_fence_t fence; /**< */ -} xcb_sync_reset_fence_request_t; - -/** Opcode for xcb_sync_destroy_fence. */ -#define XCB_SYNC_DESTROY_FENCE 17 - -/** - * @brief xcb_sync_destroy_fence_request_t - **/ -typedef struct xcb_sync_destroy_fence_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_fence_t fence; /**< */ -} xcb_sync_destroy_fence_request_t; - -/** - * @brief xcb_sync_query_fence_cookie_t - **/ -typedef struct xcb_sync_query_fence_cookie_t { - unsigned int sequence; /**< */ -} xcb_sync_query_fence_cookie_t; - -/** Opcode for xcb_sync_query_fence. */ -#define XCB_SYNC_QUERY_FENCE 18 - -/** - * @brief xcb_sync_query_fence_request_t - **/ -typedef struct xcb_sync_query_fence_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_sync_fence_t fence; /**< */ -} xcb_sync_query_fence_request_t; - -/** - * @brief xcb_sync_query_fence_reply_t - **/ -typedef struct xcb_sync_query_fence_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t triggered; /**< */ - uint8_t pad1[23]; /**< */ -} xcb_sync_query_fence_reply_t; - -/** Opcode for xcb_sync_await_fence. */ -#define XCB_SYNC_AWAIT_FENCE 19 - -/** - * @brief xcb_sync_await_fence_request_t - **/ -typedef struct xcb_sync_await_fence_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_sync_await_fence_request_t; - -/** Opcode for xcb_sync_counter_notify. */ -#define XCB_SYNC_COUNTER_NOTIFY 0 - -/** - * @brief xcb_sync_counter_notify_event_t - **/ -typedef struct xcb_sync_counter_notify_event_t { - uint8_t response_type; /**< */ - uint8_t kind; /**< */ - uint16_t sequence; /**< */ - xcb_sync_counter_t counter; /**< */ - xcb_sync_int64_t wait_value; /**< */ - xcb_sync_int64_t counter_value; /**< */ - xcb_timestamp_t timestamp; /**< */ - uint16_t count; /**< */ - uint8_t destroyed; /**< */ - uint8_t pad0; /**< */ -} xcb_sync_counter_notify_event_t; - -/** Opcode for xcb_sync_alarm_notify. */ -#define XCB_SYNC_ALARM_NOTIFY 1 - -/** - * @brief xcb_sync_alarm_notify_event_t - **/ -typedef struct xcb_sync_alarm_notify_event_t { - uint8_t response_type; /**< */ - uint8_t kind; /**< */ - uint16_t sequence; /**< */ - xcb_sync_alarm_t alarm; /**< */ - xcb_sync_int64_t counter_value; /**< */ - xcb_sync_int64_t alarm_value; /**< */ - xcb_timestamp_t timestamp; /**< */ - uint8_t state; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_sync_alarm_notify_event_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_alarm_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_alarm_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_alarm_next - ** - ** @param xcb_sync_alarm_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_alarm_next (xcb_sync_alarm_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_alarm_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_alarm_end - ** - ** @param xcb_sync_alarm_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_alarm_end (xcb_sync_alarm_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_counter_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_counter_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_counter_next - ** - ** @param xcb_sync_counter_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_counter_next (xcb_sync_counter_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_counter_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_counter_end - ** - ** @param xcb_sync_counter_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_counter_end (xcb_sync_counter_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_fence_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_fence_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_fence_next - ** - ** @param xcb_sync_fence_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_fence_next (xcb_sync_fence_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_fence_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_fence_end - ** - ** @param xcb_sync_fence_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_fence_end (xcb_sync_fence_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_int64_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_int64_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_int64_next - ** - ** @param xcb_sync_int64_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_int64_next (xcb_sync_int64_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_int64_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_int64_end - ** - ** @param xcb_sync_int64_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_int64_end (xcb_sync_int64_iterator_t i /**< */); - -int -xcb_sync_systemcounter_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** char * xcb_sync_systemcounter_name - ** - ** @param const xcb_sync_systemcounter_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_sync_systemcounter_name_length - ** - ** @param const xcb_sync_systemcounter_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_systemcounter_name_end - ** - ** @param const xcb_sync_systemcounter_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_systemcounter_name_end (const xcb_sync_systemcounter_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_systemcounter_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_systemcounter_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_systemcounter_next - ** - ** @param xcb_sync_systemcounter_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_systemcounter_next (xcb_sync_systemcounter_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_systemcounter_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_systemcounter_end - ** - ** @param xcb_sync_systemcounter_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_systemcounter_end (xcb_sync_systemcounter_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_trigger_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_trigger_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_trigger_next - ** - ** @param xcb_sync_trigger_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_trigger_next (xcb_sync_trigger_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_trigger_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_trigger_end - ** - ** @param xcb_sync_trigger_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_trigger_end (xcb_sync_trigger_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_sync_waitcondition_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_sync_waitcondition_t) - */ - -/***************************************************************************** - ** - ** void xcb_sync_waitcondition_next - ** - ** @param xcb_sync_waitcondition_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_waitcondition_next (xcb_sync_waitcondition_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_sync_waitcondition_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_waitcondition_end - ** - ** @param xcb_sync_waitcondition_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_waitcondition_end (xcb_sync_waitcondition_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_sync_initialize_cookie_t xcb_sync_initialize - ** - ** @param xcb_connection_t *c - ** @param uint8_t desired_major_version - ** @param uint8_t desired_minor_version - ** @returns xcb_sync_initialize_cookie_t - ** - *****************************************************************************/ - -xcb_sync_initialize_cookie_t -xcb_sync_initialize (xcb_connection_t *c /**< */, - uint8_t desired_major_version /**< */, - uint8_t desired_minor_version /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_sync_initialize_cookie_t xcb_sync_initialize_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint8_t desired_major_version - ** @param uint8_t desired_minor_version - ** @returns xcb_sync_initialize_cookie_t - ** - *****************************************************************************/ - -xcb_sync_initialize_cookie_t -xcb_sync_initialize_unchecked (xcb_connection_t *c /**< */, - uint8_t desired_major_version /**< */, - uint8_t desired_minor_version /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_sync_initialize_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_sync_initialize_reply_t * xcb_sync_initialize_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_initialize_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_initialize_reply_t * - ** - *****************************************************************************/ - -xcb_sync_initialize_reply_t * -xcb_sync_initialize_reply (xcb_connection_t *c /**< */, - xcb_sync_initialize_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_sync_list_system_counters_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters - ** - ** @param xcb_connection_t *c - ** @returns xcb_sync_list_system_counters_cookie_t - ** - *****************************************************************************/ - -xcb_sync_list_system_counters_cookie_t -xcb_sync_list_system_counters (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_sync_list_system_counters_cookie_t - ** - *****************************************************************************/ - -xcb_sync_list_system_counters_cookie_t -xcb_sync_list_system_counters_unchecked (xcb_connection_t *c /**< */); - - -/***************************************************************************** - ** - ** int xcb_sync_list_system_counters_counters_length - ** - ** @param const xcb_sync_list_system_counters_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_sync_systemcounter_iterator_t xcb_sync_list_system_counters_counters_iterator - ** - ** @param const xcb_sync_list_system_counters_reply_t *R - ** @returns xcb_sync_systemcounter_iterator_t - ** - *****************************************************************************/ - -xcb_sync_systemcounter_iterator_t -xcb_sync_list_system_counters_counters_iterator (const xcb_sync_list_system_counters_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_sync_list_system_counters_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_sync_list_system_counters_reply_t * xcb_sync_list_system_counters_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_list_system_counters_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_list_system_counters_reply_t * - ** - *****************************************************************************/ - -xcb_sync_list_system_counters_reply_t * -xcb_sync_list_system_counters_reply (xcb_connection_t *c /**< */, - xcb_sync_list_system_counters_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t id - ** @param xcb_sync_int64_t initial_value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t id /**< */, - xcb_sync_int64_t initial_value /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t id - ** @param xcb_sync_int64_t initial_value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t id /**< */, - xcb_sync_int64_t initial_value /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_sync_query_counter_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_counter_cookie_t -xcb_sync_query_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_sync_query_counter_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_counter_cookie_t -xcb_sync_query_counter_unchecked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_sync_query_counter_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_sync_query_counter_reply_t * xcb_sync_query_counter_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_query_counter_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_query_counter_reply_t * - ** - *****************************************************************************/ - -xcb_sync_query_counter_reply_t * -xcb_sync_query_counter_reply (xcb_connection_t *c /**< */, - xcb_sync_query_counter_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_sync_await_sizeof (const void *_buffer /**< */, - uint32_t wait_list_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await_checked - ** - ** @param xcb_connection_t *c - ** @param uint32_t wait_list_len - ** @param const xcb_sync_waitcondition_t *wait_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await_checked (xcb_connection_t *c /**< */, - uint32_t wait_list_len /**< */, - const xcb_sync_waitcondition_t *wait_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await - ** - ** @param xcb_connection_t *c - ** @param uint32_t wait_list_len - ** @param const xcb_sync_waitcondition_t *wait_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await (xcb_connection_t *c /**< */, - uint32_t wait_list_len /**< */, - const xcb_sync_waitcondition_t *wait_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t amount - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t amount /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t amount - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t amount /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t value /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t value /**< */); - -int -xcb_sync_create_alarm_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_alarm_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_alarm_checked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -int -xcb_sync_change_alarm_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_alarm_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_alarm_checked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_alarm_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_alarm_checked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_sync_query_alarm_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_alarm_cookie_t -xcb_sync_query_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_sync_query_alarm_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_alarm_cookie_t -xcb_sync_query_alarm_unchecked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_sync_query_alarm_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_sync_query_alarm_reply_t * xcb_sync_query_alarm_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_query_alarm_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_query_alarm_reply_t * - ** - *****************************************************************************/ - -xcb_sync_query_alarm_reply_t * -xcb_sync_query_alarm_reply (xcb_connection_t *c /**< */, - xcb_sync_query_alarm_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_priority_checked - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @param int32_t priority - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_priority_checked (xcb_connection_t *c /**< */, - uint32_t id /**< */, - int32_t priority /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_priority - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @param int32_t priority - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_priority (xcb_connection_t *c /**< */, - uint32_t id /**< */, - int32_t priority /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @returns xcb_sync_get_priority_cookie_t - ** - *****************************************************************************/ - -xcb_sync_get_priority_cookie_t -xcb_sync_get_priority (xcb_connection_t *c /**< */, - uint32_t id /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @returns xcb_sync_get_priority_cookie_t - ** - *****************************************************************************/ - -xcb_sync_get_priority_cookie_t -xcb_sync_get_priority_unchecked (xcb_connection_t *c /**< */, - uint32_t id /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_sync_get_priority_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_sync_get_priority_reply_t * xcb_sync_get_priority_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_get_priority_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_get_priority_reply_t * - ** - *****************************************************************************/ - -xcb_sync_get_priority_reply_t * -xcb_sync_get_priority_reply (xcb_connection_t *c /**< */, - xcb_sync_get_priority_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_sync_fence_t fence - ** @param uint8_t initially_triggered - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_fence_checked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_sync_fence_t fence /**< */, - uint8_t initially_triggered /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_sync_fence_t fence - ** @param uint8_t initially_triggered - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_fence (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_sync_fence_t fence /**< */, - uint8_t initially_triggered /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_trigger_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_trigger_fence_checked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_trigger_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_trigger_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_reset_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_reset_fence_checked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_reset_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_reset_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_fence_checked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_sync_query_fence_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_fence_cookie_t -xcb_sync_query_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_sync_query_fence_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_fence_cookie_t -xcb_sync_query_fence_unchecked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_sync_query_fence_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_sync_query_fence_reply_t * xcb_sync_query_fence_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_query_fence_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_query_fence_reply_t * - ** - *****************************************************************************/ - -xcb_sync_query_fence_reply_t * -xcb_sync_query_fence_reply (xcb_connection_t *c /**< */, - xcb_sync_query_fence_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_sync_await_fence_sizeof (const void *_buffer /**< */, - uint32_t fence_list_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await_fence_checked - ** - ** @param xcb_connection_t *c - ** @param uint32_t fence_list_len - ** @param const xcb_sync_fence_t *fence_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await_fence_checked (xcb_connection_t *c /**< */, - uint32_t fence_list_len /**< */, - const xcb_sync_fence_t *fence_list /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await_fence - ** - ** @param xcb_connection_t *c - ** @param uint32_t fence_list_len - ** @param const xcb_sync_fence_t *fence_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await_fence (xcb_connection_t *c /**< */, - uint32_t fence_list_len /**< */, - const xcb_sync_fence_t *fence_list /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_atom.h b/src/3rdparty/xcb/include/xcb/xcb_atom.h deleted file mode 100644 index d5c4d6baa7..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_atom.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef __XCB_ATOM_H__ -#define __XCB_ATOM_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -char *xcb_atom_name_by_screen(const char *base, uint8_t screen); -char *xcb_atom_name_by_resource(const char *base, uint32_t resource); -char *xcb_atom_name_unique(const char *base, uint32_t id); - -#ifdef __cplusplus -} -#endif - -#endif /* __XCB_ATOM_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_aux.h b/src/3rdparty/xcb/include/xcb/xcb_aux.h deleted file mode 100644 index d49d4383e9..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_aux.h +++ /dev/null @@ -1,214 +0,0 @@ -#ifndef __XCB_AUX_H__ -#define __XCB_AUX_H__ - - -#ifdef __cplusplus -extern "C" { -#endif - - -uint8_t xcb_aux_get_depth (xcb_connection_t *c, - xcb_screen_t *screen); - -uint8_t xcb_aux_get_depth_of_visual (xcb_screen_t *screen, - xcb_visualid_t id); - -xcb_screen_t *xcb_aux_get_screen (xcb_connection_t *c, - int screen); - -xcb_visualtype_t *xcb_aux_get_visualtype (xcb_connection_t *c, - int screen, - xcb_visualid_t vid); - -xcb_visualtype_t * -xcb_aux_find_visual_by_id (xcb_screen_t *screen, - xcb_visualid_t id); - -xcb_visualtype_t * -xcb_aux_find_visual_by_attrs (xcb_screen_t *screen, - int8_t class_, - int8_t depth); - -void xcb_aux_sync (xcb_connection_t *c); - -/* internal helper macro for XCB_AUX_ADD_PARAM -It gives the offset of the field 'param' in the structure pointed to by -'paramsp' in multiples of an uint32_t's size. */ -#define XCB_AUX_INTERNAL_OFFSETOF(paramsp, param) \ - ((uint32_t const*)(&((paramsp)->param))-(uint32_t const*)(paramsp)) - -/* add an optional parameter to an xcb_params_* structure -parameters: - maskp: pointer to bitmask whos bits mark used parameters - paramsp: pointer to structure with parameters - param: parameter to set - value: value to set the parameter to -*/ -#define XCB_AUX_ADD_PARAM(maskp, paramsp, param, value) \ - ((*(maskp)|=1<param=(value))) - -typedef struct { - uint32_t back_pixmap; - uint32_t back_pixel; - uint32_t border_pixmap; - uint32_t border_pixel; - uint32_t bit_gravity; - uint32_t win_gravity; - uint32_t backing_store; - uint32_t backing_planes; - uint32_t backing_pixel; - uint32_t override_redirect; - uint32_t save_under; - uint32_t event_mask; - uint32_t dont_propagate; - uint32_t colormap; - uint32_t cursor; -} xcb_params_cw_t; - -xcb_void_cookie_t -xcb_aux_create_window (xcb_connection_t *c, - uint8_t depth, - xcb_window_t wid, - xcb_window_t parent, - int16_t x, - int16_t y, - uint16_t width, - uint16_t height, - uint16_t border_width, - uint16_t class_, - xcb_visualid_t visual, - uint32_t mask, - const xcb_params_cw_t *params); - -xcb_void_cookie_t -xcb_aux_create_window_checked (xcb_connection_t *c, - uint8_t depth, - xcb_window_t wid, - xcb_window_t parent, - int16_t x, - int16_t y, - uint16_t width, - uint16_t height, - uint16_t border_width, - uint16_t class_, - xcb_visualid_t visual, - uint32_t mask, - const xcb_params_cw_t *params); - -xcb_void_cookie_t -xcb_aux_change_window_attributes (xcb_connection_t *c, - xcb_window_t window, - uint32_t mask, - const xcb_params_cw_t *params); - -xcb_void_cookie_t -xcb_aux_change_window_attributes_checked (xcb_connection_t *c, - xcb_window_t window, - uint32_t mask, - const xcb_params_cw_t *params); - -typedef struct { - int32_t x; - int32_t y; - uint32_t width; - uint32_t height; - uint32_t border_width; - uint32_t sibling; - uint32_t stack_mode; -} xcb_params_configure_window_t; - -xcb_void_cookie_t -xcb_aux_configure_window (xcb_connection_t *c, - xcb_window_t window, - uint16_t mask, - const xcb_params_configure_window_t *params); - -typedef struct { - uint32_t function; - uint32_t plane_mask; - uint32_t foreground; - uint32_t background; - uint32_t line_width; - uint32_t line_style; - uint32_t cap_style; - uint32_t join_style; - uint32_t fill_style; - uint32_t fill_rule; - uint32_t tile; - uint32_t stipple; - uint32_t tile_stipple_origin_x; - uint32_t tile_stipple_origin_y; - uint32_t font; - uint32_t subwindow_mode; - uint32_t graphics_exposures; - uint32_t clip_originX; - uint32_t clip_originY; - uint32_t mask; - uint32_t dash_offset; - uint32_t dash_list; - uint32_t arc_mode; -} xcb_params_gc_t; - -xcb_void_cookie_t -xcb_aux_create_gc (xcb_connection_t *c, - xcb_gcontext_t cid, - xcb_drawable_t drawable, - uint32_t mask, - const xcb_params_gc_t *params); - -xcb_void_cookie_t -xcb_aux_create_gc_checked (xcb_connection_t *c, - xcb_gcontext_t gid, - xcb_drawable_t drawable, - uint32_t mask, - const xcb_params_gc_t *params); -xcb_void_cookie_t -xcb_aux_change_gc (xcb_connection_t *c, - xcb_gcontext_t gc, - uint32_t mask, - const xcb_params_gc_t *params); - -xcb_void_cookie_t -xcb_aux_change_gc_checked (xcb_connection_t *c, - xcb_gcontext_t gc, - uint32_t mask, - const xcb_params_gc_t *params); -typedef struct { - uint32_t key_click_percent; - uint32_t bell_percent; - uint32_t bell_pitch; - uint32_t bell_duration; - uint32_t led; - uint32_t led_mode; - uint32_t key; - uint32_t auto_repeat_mode; -} xcb_params_keyboard_t; - -xcb_void_cookie_t -xcb_aux_change_keyboard_control (xcb_connection_t *c, - uint32_t mask, - const xcb_params_keyboard_t *params); - -int -xcb_aux_parse_color(char *color_name, - uint16_t *red, uint16_t *green, uint16_t *blue); - -xcb_void_cookie_t -xcb_aux_set_line_attributes_checked (xcb_connection_t *dpy, - xcb_gcontext_t gc, - uint16_t linewidth, - int32_t linestyle, - int32_t capstyle, - int32_t joinstyle); - -xcb_void_cookie_t -xcb_aux_clear_window(xcb_connection_t * dpy, - xcb_window_t w); - -#ifdef __cplusplus -} -#endif - - -#endif /* __XCB_AUX_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_bitops.h b/src/3rdparty/xcb/include/xcb/xcb_bitops.h deleted file mode 100644 index a6872a1f30..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_bitops.h +++ /dev/null @@ -1,212 +0,0 @@ -#ifndef __XCB_BITOPS_H__ -#define __XCB_BITOPS_H__ - -/* Copyright (C) 2007 Bart Massey - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or their - * institutions shall not be used in advertising or otherwise to promote the - * sale, use or other dealings in this Software without prior written - * authorization from the authors. - */ - -#include -#include -#include - -/** - * @defgroup xcb__bitops XCB Bit Operations - * - * Inline functions for common bit ops used in XCB and elsewhere. - * - * @{ - */ - - -/** - * Create a low-order bitmask. - * @param n Mask size. - * @return Mask. - * - * Create a bitmask with the lower @p n bits set and the - * rest of the word clear. - * @ingroup xcb__bitops - */ -_X_INLINE static uint32_t -xcb_mask(uint32_t n) -{ - return n == 32 ? ~0 : (1 << n) - 1; -} - - -/** - * Population count. - * @param n Integer representing a bitset. - * @return Number of 1 bits in the bitset. - * - * This is a reasonably fast algorithm for counting the bits - * in a 32-bit word. Currently a classic binary - * divide-and-conquer popcount: popcount_2() from - * http://en.wikipedia.org/wiki/Hamming_weight. - * @ingroup xcb__bitops - */ - - -/* 15 ops, 3 long immediates, 14 stages, 9 alu ops, 9 alu stages */ -_X_INLINE static uint32_t -xcb_popcount(uint32_t x) -{ - uint32_t m1 = 0x55555555; - uint32_t m2 = 0x33333333; - uint32_t m4 = 0x0f0f0f0f; - x -= (x >> 1) & m1; - x = (x & m2) + ((x >> 2) & m2); - x = (x + (x >> 4)) & m4; - x += x >> 8; - return (x + (x >> 16)) & 0x3f; -} - - -/** - * Round up to the next power-of-two unit size. - * @param base Number to be rounded up. - * @param pad Multiple to be rounded to; must be a power of two. - * @return Rounded-up number. - * - * Rounds @p base up to a multiple of @p pad, where @p pad - * is a power of two. The more general case is handled by - * xcb_roundup(). - * @ingroup xcb__bitops - */ -_X_INLINE static uint32_t -xcb_roundup_2 (uint32_t base, uint32_t pad) -{ - return (base + pad - 1) & -pad; -} - -/** - * Round down to the next power-of-two unit size. - * @param base Number to be rounded down. - * @param pad Multiple to be rounded to; must be a power of two. - * @return Rounded-down number. - * - * Rounds @p base down to a multiple of @p pad, where @p pad - * is a power of two. The more general case is handled by - * xcb_rounddown(). - * @ingroup xcb__bitops - */ -_X_INLINE static uint32_t -xcb_rounddown_2 (uint32_t base, uint32_t pad) -{ - return base & -pad; -} - -/** - * Round up to the next unit size. - * @param base Number to be rounded up. - * @param pad Multiple to be rounded to. - * @return Rounded-up number. - * - * This is a general routine for rounding @p base up - * to a multiple of @p pad. If you know that @p pad - * is a power of two, you should probably call xcb_roundup_2() - * instead. - * @ingroup xcb__bitops - */ -_X_INLINE static uint32_t -xcb_roundup (uint32_t base, uint32_t pad) -{ - uint32_t b = base + pad - 1; - /* faster if pad is a power of two */ - if (((pad - 1) & pad) == 0) - return b & -pad; - return b - b % pad; -} - - -/** - * Round down to the next unit size. - * @param base Number to be rounded down. - * @param pad Multiple to be rounded to. - * @return Rounded-down number. - * - * This is a general routine for rounding @p base down - * to a multiple of @p pad. If you know that @p pad - * is a power of two, you should probably call xcb_rounddown_2() - * instead. - * @ingroup xcb__bitops - */ -_X_INLINE static uint32_t -xcb_rounddown (uint32_t base, uint32_t pad) -{ - /* faster if pad is a power of two */ - if (((pad - 1) & pad) == 0) - return base & -pad; - return base - base % pad; -} - - -/** - * Reverse bits of word. - * @param x Target word. - * @param n Number of low-order bits to reverse. - * @return Word with low @p n bits reversed, all others 0. - * - * Reverses the bottom @p n bits of @p x. - * @ingroup xcb__bitops - */ -_X_INLINE static uint32_t -xcb_bit_reverse(uint32_t x, uint8_t n) { - uint32_t m1 = 0x00ff00ff; - uint32_t m2 = 0x0f0f0f0f; - uint32_t m3 = 0x33333333; - uint32_t m4 = 0x55555555; - x = ((x << 16) | (x >> 16)); - x = ((x & m1) << 8) | ((x >> 8) & m1); - x = ((x & m2) << 4) | ((x >> 4) & m2); - x = ((x & m3) << 2) | ((x >> 2) & m3); - x = ((x & m4) << 1) | ((x >> 1) & m4); - x >>= 32 - n; - return x; -} - - -/** - * Host byte order. - * @return The byte order of the host. - * - * Tests the host's byte order and returns either - * XCB_IMAGE_ORDER_MSB_FIRST or XCB_IMAGE_ORDER_LSB_FIRST - * as appropriate. - * @ingroup xcb__bitops - */ -_X_INLINE static xcb_image_order_t -xcb_host_byte_order(void) { - uint32_t endian_test = 0x01020304; - - switch (*(char *)&endian_test) { - case 0x01: - return XCB_IMAGE_ORDER_MSB_FIRST; - case 0x04: - return XCB_IMAGE_ORDER_LSB_FIRST; - } - assert(0); -} - -#endif /* __XCB_BITOPS_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_event.h b/src/3rdparty/xcb/include/xcb/xcb_event.h deleted file mode 100644 index ee911fce51..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_event.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2008-2009 Julien Danjou - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or - * their institutions shall not be used in advertising or otherwise to - * promote the sale, use or other dealings in this Software without - * prior written authorization from the authors. - */ - -/** - * @defgroup xcb__event_t XCB Event Functions - * - * These functions ease the handling of X events received. - * - * @{ - */ - -#ifndef __XCB_EVENT_H__ -#define __XCB_EVENT_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Bit mask to find event type regardless of event source. - * - * Each event in the X11 protocol contains an 8-bit type code. - * The most-significant bit in this code is set if the event was - * generated from a SendEvent request. This mask can be used to - * determine the type of event regardless of how the event was - * generated. See the X11R6 protocol specification for details. - */ -#define XCB_EVENT_RESPONSE_TYPE_MASK (0x7f) -#define XCB_EVENT_RESPONSE_TYPE(e) (e->response_type & XCB_EVENT_RESPONSE_TYPE_MASK) -#define XCB_EVENT_SENT(e) (e->response_type & ~XCB_EVENT_RESPONSE_TYPE_MASK) - -/** - * @brief Convert an event response type to a label. - * @param type The event type. - * @return A string with the event name, or NULL if unknown. - */ -const char * xcb_event_get_label(uint8_t type); - -/** - * @brief Convert an event error type to a label. - * @param type The error type. - * @return A string with the event name, or NULL if unknown or if the event is - * not an error. - */ -const char * xcb_event_get_error_label(uint8_t type); - -/** - * @brief Convert an event request type to a label. - * @param type The request type. - * @return A string with the event name, or NULL if unknown or if the event is - * not an error. - */ -const char * xcb_event_get_request_label(uint8_t type); - -#ifdef __cplusplus -} -#endif - -/** - * @} - */ - -#endif /* __XCB_EVENT_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_icccm.h b/src/3rdparty/xcb/include/xcb/xcb_icccm.h deleted file mode 100644 index 449a5c88ca..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_icccm.h +++ /dev/null @@ -1,1049 +0,0 @@ -#ifndef __XCB_ICCCM_H__ -#define __XCB_ICCCM_H__ - -/* - * Copyright (C) 2008 Arnaud Fontaine - * Copyright (C) 2007-2008 Vincent Torri - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or - * their institutions shall not be used in advertising or otherwise to - * promote the sale, use or other dealings in this Software without - * prior written authorization from the authors. - */ - -/** - * @defgroup xcb__icccm_t XCB ICCCM Functions - * - * These functions allow easy handling of the protocol described in the - * Inter-Client Communication Conventions Manual. - * - * @{ - */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief TextProperty reply structure. - */ -typedef struct { -/** Store reply to avoid memory allocation, should normally not be - used directly */ -xcb_get_property_reply_t *_reply; -/** Encoding used */ -xcb_atom_t encoding; -/** Length of the name field above */ -uint32_t name_len; -/** Property value */ -char *name; -/** Format, may be 8, 16 or 32 */ -uint8_t format; -} xcb_icccm_get_text_property_reply_t; - -/** - * @brief Deliver a GetProperty request to the X server. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param property Property atom to get. - * @return The request cookie. - * - * Allow to get a window property, in most case you might want to use - * above functions to get an ICCCM property for a given window. - */ -xcb_get_property_cookie_t xcb_icccm_get_text_property(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property); - -/** - * @see xcb_icccm_get_text_property() - */ -xcb_get_property_cookie_t xcb_icccm_get_text_property_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property); - -/** - * @brief Fill given structure with the property value of a window. - * @param c The connection to the X server. - * @param cookie TextProperty request cookie. - * @param prop TextProperty reply which is to be filled. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * If the function return 0 (failure), the content of prop is unmodified and - * therefore the structure must not be wiped. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_text_property_unchecked() is used. Otherwise, it stores - * the error if any. prop structure members should be freed by - * xcb_icccm_get_text_property_reply_wipe(). - */ -uint8_t xcb_icccm_get_text_property_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e); - -/** - * @brief Wipe prop structure members previously allocated by - * xcb_icccm_get_text_property_reply(). - * @param prop prop structure whose members is going to be freed. - */ -void xcb_icccm_get_text_property_reply_wipe(xcb_icccm_get_text_property_reply_t *prop); - -/* WM_NAME */ - -/** - * @brief Deliver a SetProperty request to set WM_NAME property value. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type. - * @param format Encoding format. - * @param name_len Length of name value to set. - * @param name Name value to set. - */ -xcb_void_cookie_t xcb_icccm_set_wm_name_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t encoding, - uint8_t format, - uint32_t name_len, - const char *name); - -/** - * @see xcb_icccm_set_wm_name_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_name(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t encoding, uint8_t format, - uint32_t name_len, const char *name); - -/** - * @brief Deliver a GetProperty request to the X server for WM_NAME. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_name(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_name() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_name_unchecked(xcb_connection_t *c, - xcb_window_t window); - -/** - * @brief Fill given structure with the WM_NAME property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param prop WM_NAME property value. - * @param e Error if any. - * @see xcb_icccm_get_text_property_reply() - * @return Return 1 on success, 0 otherwise. - */ -uint8_t xcb_icccm_get_wm_name_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e); - -/* WM_ICON_NAME */ - -/** - * @brief Deliver a SetProperty request to set WM_ICON_NAME property value. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type. - * @param format Encoding format. - * @param name_len Length of name value to set. - * @param name Name value to set. - */ -xcb_void_cookie_t xcb_icccm_set_wm_icon_name_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t encoding, - uint8_t format, - uint32_t name_len, - const char *name); - -/** - * @see xcb_icccm_set_wm_icon_name_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_icon_name(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t encoding, - uint8_t format, - uint32_t name_len, - const char *name); - -/** - * @brief Send request to get WM_ICON_NAME property of a window. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_icon_name(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_icon_name() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_icon_name_unchecked(xcb_connection_t *c, - xcb_window_t window); - -/** - * @brief Fill given structure with the WM_ICON_NAME property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param prop WM_ICON_NAME property value. - * @param e Error if any. - * @see xcb_icccm_get_text_property_reply() - * @return Return 1 on success, 0 otherwise. - */ -uint8_t xcb_icccm_get_wm_icon_name_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e); - -/* WM_COLORMAP_WINDOWS */ - -/** - * @brief Deliver a ChangeProperty request to set WM_COLORMAP_WINDOWS property value. - * @param c The connection to the X server. - * @param wm_colormap_windows The WM_COLORMAP_WINDOWS atom - * @param window Window X identifier. - * @param list_len Windows list len. - * @param list Windows list. - * @return The request cookie. - */ -xcb_void_cookie_t xcb_icccm_set_wm_colormap_windows_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom, - uint32_t list_len, - const xcb_window_t *list); - -/** - * @see xcb_icccm_set_wm_colormap_windows_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_colormap_windows(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom, - uint32_t list_len, - const xcb_window_t *list); - -/** - * @brief WM_COLORMAP_WINDOWS structure. - */ -typedef struct { -/** Length of the windows list */ -uint32_t windows_len; -/** Windows list */ -xcb_window_t *windows; -/** Store reply to avoid memory allocation, should normally not be - used directly */ -xcb_get_property_reply_t *_reply; -} xcb_icccm_get_wm_colormap_windows_reply_t; - -/** - * @brief Send request to get WM_COLORMAP_WINDOWS property of a given window. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_colormap_windows(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom); - -/** - * @see xcb_icccm_get_wm_colormap_windows() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_colormap_windows_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom); - -/** - * @brief Fill the given structure with the WM_COLORMAP_WINDOWS property of a window. - * @param reply The reply of the GetProperty request. - * @param colormap_windows WM_COLORMAP property value. - * @return Return 1 on success, 0 otherwise. - * - * protocols structure members should be freed by - * xcb_icccm_get_wm_protocols_reply_wipe(). - */ -uint8_t xcb_icccm_get_wm_colormap_windows_from_reply(xcb_get_property_reply_t *reply, - xcb_icccm_get_wm_colormap_windows_reply_t *colormap_windows); -/** - * @brief Fill the given structure with the WM_COLORMAP_WINDOWS property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param protocols WM_COLORMAP_WINDOWS property value. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_colormap_windows_unchecked() is used. Otherwise, it - * stores the error if any. protocols structure members should be - * freed by xcb_icccm_get_wm_colormap_windows_reply_wipe(). - */ -uint8_t xcb_icccm_get_wm_colormap_windows_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_wm_colormap_windows_reply_t *windows, - xcb_generic_error_t **e); - -/** - * @brief Wipe protocols structure members previously allocated by - * xcb_icccm_get_wm_colormap_windows_reply(). - * @param windows windows structure whose members is going to be freed. - */ -void xcb_icccm_get_wm_colormap_windows_reply_wipe(xcb_icccm_get_wm_colormap_windows_reply_t *windows); - -/* WM_CLIENT_MACHINE */ - -/** - * @brief Deliver a SetProperty request to set WM_CLIENT_MACHINE property value. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param encoding Encoding used for the data passed in the name parameter, the set property will also have this encoding as its type. - * @param format Encoding format. - * @param name_len Length of name value to set. - * @param name Name value to set. - */ -xcb_void_cookie_t xcb_icccm_set_wm_client_machine_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t encoding, - uint8_t format, - uint32_t name_len, - const char *name); - -/** - * @see xcb_icccm_set_wm_client_machine_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_client_machine(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t encoding, - uint8_t format, - uint32_t name_len, - const char *name); - -/** - * @brief Send request to get WM_CLIENT_MACHINE property of a window. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_client_machine(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_client_machine() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_client_machine_unchecked(xcb_connection_t *c, - xcb_window_t window); - -/** - * @brief Fill given structure with the WM_CLIENT_MACHINE property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param prop WM_CLIENT_MACHINE property value. - * @param e Error if any. - * @see xcb_icccm_get_text_property_reply() - * @return Return 1 on success, 0 otherwise. - */ -uint8_t xcb_icccm_get_wm_client_machine_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e); - -/* WM_CLASS */ - -/** - * @brief WM_CLASS hint structure - */ - -/** - * @brief Deliver a SetProperty request to set WM_CLASS property value. - * - * WM_CLASS string is a concatenation of the instance and class name - * strings respectively (including null character). - * - * @param c The connection to the X server. - * @param window Window X identifier. - * @param class_len Length of WM_CLASS string. - * @param class_name WM_CLASS string. - * @return The request cookie. - */ -xcb_void_cookie_t xcb_icccm_set_wm_class_checked(xcb_connection_t *c, - xcb_window_t window, - uint32_t class_len, - const char *class_name); - -/** - * @see xcb_icccm_set_wm_class_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_class(xcb_connection_t *c, - xcb_window_t window, - uint32_t class_len, - const char *class_name); - -typedef struct { -/** Instance name */ -char *instance_name; -/** Class of application */ -char *class_name; -/** Store reply to avoid memory allocation, should normally not be - used directly */ -xcb_get_property_reply_t *_reply; -} xcb_icccm_get_wm_class_reply_t; - -/** - * @brief Deliver a GetProperty request to the X server for WM_CLASS. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_class(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_class() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_class_unchecked(xcb_connection_t *c, - xcb_window_t window); - - -/** - * @brief Fill give structure with the WM_CLASS property of a window. - * @param prop The property structure to fill. - * @param reply The property request reply. - * @return Return 1 on success, 0 otherwise. - */ -uint8_t -xcb_icccm_get_wm_class_from_reply(xcb_icccm_get_wm_class_reply_t *prop, - xcb_get_property_reply_t *reply); - -/** - * @brief Fill given structure with the WM_CLASS property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param prop WM_CLASS property value. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_class_unchecked() is used. Otherwise, it stores the - * error if any. prop structure members should be freed by - * xcb_icccm_get_wm_class_reply_wipe(). - */ -uint8_t xcb_icccm_get_wm_class_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_wm_class_reply_t *prop, - xcb_generic_error_t **e); - -/** - * @brief Wipe prop structure members previously allocated by - * xcb_icccm_get_wm_class_reply(). - * @param prop prop structure whose members is going to be freed. - */ -void xcb_icccm_get_wm_class_reply_wipe(xcb_icccm_get_wm_class_reply_t *prop); - -/* WM_TRANSIENT_FOR */ - -/** - * @brief Deliver a SetProperty request to set WM_TRANSIENT_FOR property value. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param transient_for_window The WM_TRANSIENT_FOR window X identifier. - * @return The request cookie. - */ -xcb_void_cookie_t xcb_icccm_set_wm_transient_for_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_window_t transient_for_window); - -/** - * @see xcb_icccm_set_wm_transient_for - */ -xcb_void_cookie_t xcb_icccm_set_wm_transient_for(xcb_connection_t *c, - xcb_window_t window, - xcb_window_t transient_for_window); - -/** - * @brief Send request to get WM_TRANSIENT_FOR property of a window. - * @param c The connection to the X server - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_transient_for(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_transient_for_unchecked() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_transient_for_unchecked(xcb_connection_t *c, - xcb_window_t window); - -/** - * @brief Fill given window pointer with the WM_TRANSIENT_FOR property of a window. - * @param prop WM_TRANSIENT_FOR property value. - * @param reply The get property request reply. - * @return Return 1 on success, 0 otherwise. - */ -uint8_t -xcb_icccm_get_wm_transient_for_from_reply(xcb_window_t *prop, - xcb_get_property_reply_t *reply); -/** - * @brief Fill given structure with the WM_TRANSIENT_FOR property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param prop WM_TRANSIENT_FOR property value. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_transient_for_unchecked() is used. Otherwise, it stores - * the error if any. - */ -uint8_t xcb_icccm_get_wm_transient_for_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_window_t *prop, - xcb_generic_error_t **e); - -/* WM_SIZE_HINTS */ - -typedef enum { -XCB_ICCCM_SIZE_HINT_US_POSITION = 1 << 0, - XCB_ICCCM_SIZE_HINT_US_SIZE = 1 << 1, - XCB_ICCCM_SIZE_HINT_P_POSITION = 1 << 2, - XCB_ICCCM_SIZE_HINT_P_SIZE = 1 << 3, - XCB_ICCCM_SIZE_HINT_P_MIN_SIZE = 1 << 4, - XCB_ICCCM_SIZE_HINT_P_MAX_SIZE = 1 << 5, - XCB_ICCCM_SIZE_HINT_P_RESIZE_INC = 1 << 6, - XCB_ICCCM_SIZE_HINT_P_ASPECT = 1 << 7, - XCB_ICCCM_SIZE_HINT_BASE_SIZE = 1 << 8, - XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY = 1 << 9 - } xcb_icccm_size_hints_flags_t; - -/** - * @brief Size hints structure. - */ -typedef struct { -/** User specified flags */ -uint32_t flags; -/** User-specified position */ -int32_t x, y; -/** User-specified size */ -int32_t width, height; -/** Program-specified minimum size */ -int32_t min_width, min_height; -/** Program-specified maximum size */ -int32_t max_width, max_height; -/** Program-specified resize increments */ -int32_t width_inc, height_inc; -/** Program-specified minimum aspect ratios */ -int32_t min_aspect_num, min_aspect_den; -/** Program-specified maximum aspect ratios */ -int32_t max_aspect_num, max_aspect_den; -/** Program-specified base size */ -int32_t base_width, base_height; -/** Program-specified window gravity */ -uint32_t win_gravity; -} xcb_size_hints_t; - -/** Number of elements in this structure */ -#define XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS 18 - -/** - * @brief Set size hints to a given position. - * @param hints SIZE_HINTS structure. - * @param user_specified Is the size user-specified? - * @param x The X position. - * @param y The Y position. - */ -void xcb_icccm_size_hints_set_position(xcb_size_hints_t *hints, int user_specified, - int32_t x, int32_t y); - -/** - * @brief Set size hints to a given size. - * @param hints SIZE_HINTS structure. - * @param user_specified is the size user-specified? - * @param width The width. - * @param height The height. - */ -void xcb_icccm_size_hints_set_size(xcb_size_hints_t *hints, int user_specified, - int32_t width, int32_t height); - -/** - * @brief Set size hints to a given minimum size. - * @param hints SIZE_HINTS structure. - * @param width The minimum width. - * @param height The minimum height. - */ -void xcb_icccm_size_hints_set_min_size(xcb_size_hints_t *hints, int32_t min_width, - int32_t min_height); - -/** - * @brief Set size hints to a given maximum size. - * @param hints SIZE_HINTS structure. - * @param width The maximum width. - * @param height The maximum height. - */ -void xcb_icccm_size_hints_set_max_size(xcb_size_hints_t *hints, int32_t max_width, - int32_t max_height); - -/** - * @brief Set size hints to a given resize increments. - * @param hints SIZE_HINTS structure. - * @param width The resize increments width. - * @param height The resize increments height. - */ -void xcb_icccm_size_hints_set_resize_inc(xcb_size_hints_t *hints, int32_t width_inc, - int32_t height_inc); - -/** - * @brief Set size hints to a given aspect ratios. - * @param hints SIZE_HINTS structure. - * @param min_aspect_num The minimum aspect ratios for the width. - * @param min_aspect_den The minimum aspect ratios for the height. - * @param max_aspect_num The maximum aspect ratios for the width. - * @param max_aspect_den The maximum aspect ratios for the height. - */ -void xcb_icccm_size_hints_set_aspect(xcb_size_hints_t *hints, int32_t min_aspect_num, - int32_t min_aspect_den, int32_t max_aspect_num, - int32_t max_aspect_den); - -/** - * @brief Set size hints to a given base size. - * @param hints SIZE_HINTS structure. - * @param base_width Base width. - * @param base_height Base height. - */ -void xcb_icccm_size_hints_set_base_size(xcb_size_hints_t *hints, int32_t base_width, - int32_t base_height); - -/** - * @brief Set size hints to a given window gravity. - * @param hints SIZE_HINTS structure. - * @param win_gravity Window gravity value. - */ -void xcb_icccm_size_hints_set_win_gravity(xcb_size_hints_t *hints, - xcb_gravity_t win_gravity); - -/** - * @brief Deliver a ChangeProperty request to set a value to a given property. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param property Property to set value for. - * @param hints Hints value to set. - */ -xcb_void_cookie_t xcb_icccm_set_wm_size_hints_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property, - xcb_size_hints_t *hints); - -/** - * @see xcb_icccm_set_wm_size_hints_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_size_hints(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property, - xcb_size_hints_t *hints); - -/** - * @brief Send request to get size hints structure for the named property. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param property Specify the property name. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_size_hints(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property); - -/** - * @see xcb_icccm_get_wm_size_hints() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_size_hints_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property); - -/** - * @brief Fill given structure with the size hints of the named property. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param hints Size hints structure. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_size_hints_unchecked() is used. Otherwise, it stores - * the error if any. The returned pointer should be freed. - */ -uint8_t xcb_icccm_get_wm_size_hints_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_size_hints_t *hints, - xcb_generic_error_t **e); - -/* WM_NORMAL_HINTS */ - -/** - * @brief Deliver a ChangeProperty request to set WM_NORMAL_HINTS property value. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param hints Hints value to set. - */ -xcb_void_cookie_t xcb_icccm_set_wm_normal_hints_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_size_hints_t *hints); - -/** - * @see xcb_icccm_set_wm_normal_hints_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_normal_hints(xcb_connection_t *c, - xcb_window_t window, - xcb_size_hints_t *hints); - -/** - * @brief Send request to get WM_NORMAL_HINTS property of a window. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_normal_hints(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_normal_hints() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_normal_hints_unchecked(xcb_connection_t *c, - xcb_window_t window); - -/** - * @brief Fill given structure with the WM_NORMAL_HINTS property of a window. - * @param hints WM_NORMAL_HINTS property value. - * @param reply The get property request reply. - * @return Return 1 on success, 0 otherwise. - */ -uint8_t -xcb_icccm_get_wm_size_hints_from_reply(xcb_size_hints_t *hints, - xcb_get_property_reply_t *reply); - -/** - * @brief Fill given structure with the WM_NORMAL_HINTS property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param hints WM_NORMAL_HINTS property value. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_normal_hints_unchecked() is used. Otherwise, it stores - * the error if any. The returned pointer should be freed. - */ -uint8_t xcb_icccm_get_wm_normal_hints_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_size_hints_t *hints, - xcb_generic_error_t **e); - -/* WM_HINTS */ - -/** - * @brief WM hints structure (may be extended in the future). - */ -typedef struct { -/** Marks which fields in this structure are defined */ -int32_t flags; -/** Does this application rely on the window manager to get keyboard - input? */ - uint32_t input; - /** See below */ - int32_t initial_state; - /** Pixmap to be used as icon */ - xcb_pixmap_t icon_pixmap; - /** Window to be used as icon */ - xcb_window_t icon_window; - /** Initial position of icon */ - int32_t icon_x, icon_y; - /** Icon mask bitmap */ - xcb_pixmap_t icon_mask; - /* Identifier of related window group */ - xcb_window_t window_group; -} xcb_icccm_wm_hints_t; - -/** Number of elements in this structure */ -#define XCB_ICCCM_NUM_WM_HINTS_ELEMENTS 9 - -/** - * @brief WM_HINTS window states. - */ -typedef enum { - XCB_ICCCM_WM_STATE_WITHDRAWN = 0, - XCB_ICCCM_WM_STATE_NORMAL = 1, - XCB_ICCCM_WM_STATE_ICONIC = 3 -} xcb_icccm_wm_state_t; - -typedef enum { - XCB_ICCCM_WM_HINT_INPUT = (1L << 0), - XCB_ICCCM_WM_HINT_STATE = (1L << 1), - XCB_ICCCM_WM_HINT_ICON_PIXMAP = (1L << 2), - XCB_ICCCM_WM_HINT_ICON_WINDOW = (1L << 3), - XCB_ICCCM_WM_HINT_ICON_POSITION = (1L << 4), - XCB_ICCCM_WM_HINT_ICON_MASK = (1L << 5), - XCB_ICCCM_WM_HINT_WINDOW_GROUP = (1L << 6), - XCB_ICCCM_WM_HINT_X_URGENCY = (1L << 8) -} xcb_icccm_wm_t; - -#define XCB_ICCCM_WM_ALL_HINTS (XCB_ICCCM_WM_HINT_INPUT | XCB_ICCCM_WM_HINT_STATE | \ - XCB_ICCCM_WM_HINT_ICON_PIXMAP | XCB_ICCCM_WM_HINT_ICON_WINDOW | \ - XCB_ICCCM_WM_HINT_ICON_POSITION | XCB_ICCCM_WM_HINT_ICON_MASK | \ - XCB_ICCCM_WM_HINT_WINDOW_GROUP) - -/** - * @brief Get urgency hint. - * @param hints WM_HINTS structure. - * @return Urgency hint value. - */ -uint32_t xcb_icccm_wm_hints_get_urgency(xcb_icccm_wm_hints_t *hints); - -/** - * @brief Set input focus. - * @param hints WM_HINTS structure. - * @param input Input focus. - */ -void xcb_icccm_wm_hints_set_input(xcb_icccm_wm_hints_t *hints, uint8_t input); - -/** - * @brief Set hints state to 'iconic'. - * @param hints WM_HINTS structure. - */ -void xcb_icccm_wm_hints_set_iconic(xcb_icccm_wm_hints_t *hints); - -/** - * @brief Set hints state to 'normal'. - * @param hints WM_HINTS structure. - */ -void xcb_icccm_wm_hints_set_normal(xcb_icccm_wm_hints_t *hints); - -/** - * @brief Set hints state to 'withdrawn'. - * @param hints WM_HINTS structure. - */ -void xcb_icccm_wm_hints_set_withdrawn(xcb_icccm_wm_hints_t *hints); - -/** - * @brief Set hints state to none. - * @param hints WM_HINTS structure. - */ -void xcb_icccm_wm_hints_set_none(xcb_icccm_wm_hints_t *hints); - -/** - * @brief Set pixmap to be used as icon. - * @param hints WM_HINTS structure. - * @param icon_pixmap Pixmap. - */ -void xcb_icccm_wm_hints_set_icon_pixmap(xcb_icccm_wm_hints_t *hints, - xcb_pixmap_t icon_pixmap); - -/** - * @brief Set icon mask bitmap. - * @param hints WM_HINTS structure. - * @param icon_mask Pixmap. - */ -void xcb_icccm_wm_hints_set_icon_mask(xcb_icccm_wm_hints_t *hints, xcb_pixmap_t icon_mask); - -/** - * @brief Set window identifier to be used as icon. - * @param hints WM_HINTS structure. - * @param icon_window Window X identifier. - */ -void xcb_icccm_wm_hints_set_icon_window(xcb_icccm_wm_hints_t *hints, - xcb_window_t icon_window); - -/** - * @brief Set identifier of related window group. - * @param hints WM_HINTS structure. - * @param window_group Window X identifier. - */ -void xcb_icccm_wm_hints_set_window_group(xcb_icccm_wm_hints_t *hints, - xcb_window_t window_group); - -/** - * @brief Set urgency hints flag. - * @param hints WM_HINTS structure. - */ -void xcb_icccm_wm_hints_set_urgency(xcb_icccm_wm_hints_t *hints); - -/** - * @brief Deliver a SetProperty request to set WM_HINTS property value. - * @param c The connection to the X server. - * @param window Window X identifier. - * @param hints Hints value to set. - */ -xcb_void_cookie_t xcb_icccm_set_wm_hints_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_icccm_wm_hints_t *hints); - -/** - * @see xcb_icccm_set_wm_hints_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_hints(xcb_connection_t *c, - xcb_window_t window, - xcb_icccm_wm_hints_t *hints); - -/** - * @brief Send request to get WM_HINTS property of a window. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_hints(xcb_connection_t *c, - xcb_window_t window); - -/** - * @see xcb_icccm_get_wm_hints() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_hints_unchecked(xcb_connection_t *c, - xcb_window_t window); - -/** - * @brief Fill given structure with the WM_HINTS property of a window. - * @param hints WM_HINTS property value. - * @param reply The get property request reply. - * @return Return 1 on success, 0 otherwise. - */ -uint8_t -xcb_icccm_get_wm_hints_from_reply(xcb_icccm_wm_hints_t *hints, - xcb_get_property_reply_t *reply); - -/** - * @brief Fill given structure with the WM_HINTS property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param hints WM_HINTS property value. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_hints_unchecked() is used. Otherwise, it stores the - * error if any. The returned pointer should be freed. - */ -uint8_t xcb_icccm_get_wm_hints_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_wm_hints_t *hints, - xcb_generic_error_t **e); - -/* WM_PROTOCOLS */ - -/** - * @brief Deliver a SetProperty request to set WM_PROTOCOLS property value. - * @param c The connection to the X server. - * @param wm_protocols The WM_PROTOCOLS atom. - * @param window Window X identifier. - * @param list_len Atom list len. - * @param list Atom list. - */ -xcb_void_cookie_t xcb_icccm_set_wm_protocols_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_protocols, - uint32_t list_len, - xcb_atom_t *list); - -/** - * @see xcb_icccm_set_wm_protocols_checked() - */ -xcb_void_cookie_t xcb_icccm_set_wm_protocols(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_protocols, - uint32_t list_len, - xcb_atom_t *list); - -/** - * @brief WM_PROTOCOLS structure. - */ -typedef struct { - /** Length of the atoms list */ - uint32_t atoms_len; - /** Atoms list */ - xcb_atom_t *atoms; - /** Store reply to avoid memory allocation, should normally not be - used directly */ - xcb_get_property_reply_t *_reply; -} xcb_icccm_get_wm_protocols_reply_t; - -/** - * @brief Send request to get WM_PROTOCOLS property of a given window. - * @param c The connection to the X server. - * @param window Window X identifier. - * @return The request cookie. - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_protocols(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_protocol_atom); - -/** - * @see xcb_icccm_get_wm_protocols() - */ -xcb_get_property_cookie_t xcb_icccm_get_wm_protocols_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_protocol_atom); - -/** - * @brief Fill the given structure with the WM_PROTOCOLS property of a window. - * @param reply The reply of the GetProperty request. - * @param protocols WM_PROTOCOLS property value. - * @return Return 1 on success, 0 otherwise. - * - * protocols structure members should be freed by - * xcb_icccm_get_wm_protocols_reply_wipe(). - */ -uint8_t xcb_icccm_get_wm_protocols_from_reply(xcb_get_property_reply_t *reply, - xcb_icccm_get_wm_protocols_reply_t *protocols); -/** - * @brief Fill the given structure with the WM_PROTOCOLS property of a window. - * @param c The connection to the X server. - * @param cookie Request cookie. - * @param protocols WM_PROTOCOLS property value. - * @param e Error if any. - * @return Return 1 on success, 0 otherwise. - * - * The parameter e supplied to this function must be NULL if - * xcb_icccm_get_wm_protocols_unchecked() is used. Otherwise, it stores the - * error if any. protocols structure members should be freed by - * xcb_icccm_get_wm_protocols_reply_wipe(). - */ -uint8_t xcb_icccm_get_wm_protocols_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_wm_protocols_reply_t *protocols, - xcb_generic_error_t **e); - -/** - * @brief Wipe protocols structure members previously allocated by - * xcb_icccm_get_wm_protocols_reply(). - * @param protocols protocols structure whose members is going to be freed. - */ -void xcb_icccm_get_wm_protocols_reply_wipe(xcb_icccm_get_wm_protocols_reply_t *protocols); - -#ifdef __cplusplus -} -#endif - -/** - * @} - */ - -#endif /* __XCB_ICCCM_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_image.h b/src/3rdparty/xcb/include/xcb/xcb_image.h deleted file mode 100644 index f41187d394..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_image.h +++ /dev/null @@ -1,630 +0,0 @@ -#ifndef __XCB_IMAGE_H__ -#define __XCB_IMAGE_H__ - -/* Copyright (C) 2007 Bart Massey - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or their - * institutions shall not be used in advertising or otherwise to promote the - * sale, use or other dealings in this Software without prior written - * authorization from the authors. - */ - -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/** - * @defgroup xcb__image_t XCB Image Functions - * - * These are functions used to create and manipulate X images. - * - * The X image format we use is specific to this software, - * which is probably a bug; it represents an intermediate - * position between the wire format used by the X GetImage - * and PutImage requests and standard formats like PBM. An - * image consists of a header of type @ref xcb_image_t - * describing the properties of the image, together with a - * pointer to the image data itself. - * - * X wire images come in three formats. An xy-bitmap is a - * bit-packed format that will be expanded to a two-color - * pixmap using a GC when sent over the wire by PutImage. - * An xy-pixmap is one or more bit-planes, each in the same - * format as xy-bitmap. A z-pixmap is a more conventional - * pixmap representation, with each pixel packed into a - * word. Pixmaps are sent and received over the wire only - * to/from drawables of their depth. - * - * Each X server defines, for each depth and format, - * properties of images in that format that are sent and - * received on the wire. We refer to this as a "native" - * image for a given X server. It is not uncommon to want - * to work with non-native images on the client side, or to - * convert between the native images of different servers. - * - * This library provides several things. Facilities for - * creating and destroying images are, of course, provided. - * Wrappers for xcb_get_image() and xcb_put_image() are - * provided; these utilize the image header to simplify the - * interface. Routines for getting and putting image pixels - * are provided: both a generic form that works with - * arbitrary images, and fastpath forms for some common - * cases. Conversion routines are provided for X images; - * these routines have been fairly well optimized for the - * common cases, and should run fast even on older hardware. - * A routine analogous to Xlib's XCreate*FromBitmapData() is - * provided for creating X images from xbm-format data; this - * routine is in this library only because it is a trivial - * use case for the library. - * - * @{ - */ - - -typedef struct xcb_image_t xcb_image_t; - -/** - * @struct xcb_image_t - * A structure that describes an xcb_image_t. - */ -struct xcb_image_t -{ - uint16_t width; /**< Width in pixels, excluding pads etc. */ - uint16_t height; /**< Height in pixels. */ - xcb_image_format_t format; /**< Format. */ - uint8_t scanline_pad; /**< Right pad in bits. Valid pads - * are 8, 16, 32. - */ - uint8_t depth; /**< Depth in bits. Valid depths - * are 1, 4, 8, 16, 24 for z format, - * 1 for xy-bitmap-format, anything - * for xy-pixmap-format. - */ - uint8_t bpp; /**< Storage per pixel in bits. - * Must be >= depth. Valid bpp - * are 1, 4, 8, 16, 24, 32 for z - * format, 1 for xy-bitmap format, - * anything for xy-pixmap-format. - */ - uint8_t unit; /**< Scanline unit in bits for - * xy formats and for bpp == 1, - * in which case valid scanline - * units are 8, 16, 32. Otherwise, - * will be max(8, bpp). Must be >= bpp. - */ - uint32_t plane_mask; /**< When format is - * xy-pixmap and depth > - * 1, this says which - * planes are "valid" in - * some vague sense. - * Currently used only - * by xcb_image_get/put_pixel(), - * and set only by - * xcb_image_get(). - */ - xcb_image_order_t byte_order; /**< Component byte order - * for z-pixmap, byte - * order of scanline unit - * for xy-bitmap and - * xy-pixmap. Nybble - * order for z-pixmap - * when bpp == 4. - */ - xcb_image_order_t bit_order; /**< Bit order of - * scanline unit for - * xy-bitmap and - * xy-pixmap. - */ - uint32_t stride; /**< Bytes per image row. - * Computable from other - * data, but cached for - * convenience/performance. - */ - uint32_t size; /**< Size of image data in bytes. - * Computable from other - * data, but cached for - * convenience/performance. - */ - void * base; /**< Malloced block of storage that - * will be freed by - * @ref xcb_image_destroy() if non-null. - */ - uint8_t * data; /**< The actual image. */ -}; - -typedef struct xcb_shm_segment_info_t xcb_shm_segment_info_t; - -/** - * @struct xcb_shm_segment_info_t - * A structure that stores the informations needed by the MIT Shm - * Extension. - */ -struct xcb_shm_segment_info_t -{ - xcb_shm_seg_t shmseg; - uint32_t shmid; - uint8_t *shmaddr; -}; - - -/** - * Update the cached data of an image. - * @param image The image. - * - * An image's size and stride, among other things, are - * cached in its structure. This function recomputes those - * cached values for the given image. - * @ingroup xcb__image_t - */ -void -xcb_image_annotate (xcb_image_t *image); - -/** - * Create a new image. - * @param width The width of the image, in pixels. - * @param height The height of the image, in pixels. - * @param format The format of the image. - * @param xpad The scanline pad of the image. - * @param depth The depth of the image. - * @param bpp The depth of the image storage. - * @param unit The unit of image representation, in bits. - * @param byte_order The byte order of the image. - * @param bit_order The bit order of the image. - * @param base The base address of malloced image data. - * @param bytes The size in bytes of the storage pointed to by base. - * If base == 0 and bytes == ~0 and data == 0 on - * entry, no storage will be auto-allocated. - * @param data The image data. If data is null and bytes != ~0, then - * an attempt will be made to fill in data; from - * base if it is non-null (and bytes is large enough), else - * by mallocing sufficient storage and filling in base. - * @return The new image. - * - * This function allocates the memory needed for an @ref xcb_image_t structure - * with the given properties. See the description of xcb_image_t for details. - * This function initializes and returns a pointer to the - * xcb_image_t structure. It may try to allocate or reserve data for the - * structure, depending on how @p base, @p bytes and @p data are set. - * - * The image must be destroyed with xcb_image_destroy(). - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_create (uint16_t width, - uint16_t height, - xcb_image_format_t format, - uint8_t xpad, - uint8_t depth, - uint8_t bpp, - uint8_t unit, - xcb_image_order_t byte_order, - xcb_image_order_t bit_order, - void * base, - uint32_t bytes, - uint8_t * data); - - -/** - * Create a new image in connection-native format. - * @param c The connection. - * @param width The width of the image, in pixels. - * @param height The height of the image, in pixels. - * @param format The format of the image. - * @param depth The depth of the image. - * @param base The base address of malloced image data. - * @param bytes The size in bytes of the storage pointed to by base. - * If base == 0 and bytes == ~0 and data == 0 on - * entry, no storage will be auto-allocated. - * @param data The image data. If data is null and bytes != ~0, then - * an attempt will be made to fill in data; from - * base if it is non-null (and bytes is large enough), else - * by mallocing sufficient storage and filling in base. - * @return The new image. - * - * This function calls @ref xcb_image_create() with the given - * properties, and with the remaining properties chosen - * according to the "native format" with the given - * properties on the current connection. - * - * It is usual to use this rather - * than calling xcb_image_create() directly. - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_create_native (xcb_connection_t * c, - uint16_t width, - uint16_t height, - xcb_image_format_t format, - uint8_t depth, - void * base, - uint32_t bytes, - uint8_t * data); - - -/** - * Destroy an image. - * @param image The image to be destroyed. - * - * This function frees the memory associated with the @p image - * parameter. If its base pointer is non-null, it frees - * that also. - * @ingroup xcb__image_t - */ -void -xcb_image_destroy (xcb_image_t *image); - - -/** - * Get an image from the X server. - * @param conn The connection to the X server. - * @param draw The drawable to get the image from. - * @param x The x coordinate in pixels, relative to the origin of the - * drawable and defining the upper-left corner of the rectangle. - * @param y The y coordinate in pixels, relative to the origin of the - * drawable and defining the upper-left corner of the rectangle. - * @param width The width of the subimage in pixels. - * @param height The height of the subimage in pixels. - * @param plane_mask The plane mask. See the protocol document for details. - * @param format The format of the image. - * @return The subimage of @p draw defined by @p x, @p y, @p w, @p h. - * - - * This function returns a new image taken from the - * given drawable @p draw. - * The image will be in connection native format. If the @p format - * is xy-bitmap and the @p plane_mask masks bit planes out, those - * bit planes will be made part of the returned image anyway, - * by zero-filling them; this will require a fresh memory allocation - * and some copying. Otherwise, the resulting image will use the - * xcb_get_image_reply() record as its backing store. - * - * If a problem occurs, the function returns null. - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_get (xcb_connection_t * conn, - xcb_drawable_t draw, - int16_t x, - int16_t y, - uint16_t width, - uint16_t height, - uint32_t plane_mask, - xcb_image_format_t format); - - -/** - * Put an image onto the X server. - * @param conn The connection to the X server. - * @param draw The draw you get the image from. - * @param gc The graphic context. - * @param image The image you want to combine with the rectangle. - * @param x The x coordinate, which is relative to the origin of the - * drawable and defines the x coordinate of the upper-left corner of the - * rectangle. - * @param y The y coordinate, which is relative to the origin of the - * drawable and defines the x coordinate of the upper-left corner of - * the rectangle. - * @param left_pad Notionally shift an xy-bitmap or xy-pixmap image - * to the right some small amount, for some reason. XXX Not clear - * this is currently supported correctly. - * @return The cookie returned by xcb_put_image(). - * - * This function combines an image with a rectangle of the - * specified drawable @p draw. The image must be in native - * format for the connection. The image is drawn at the - * specified location in the drawable. For the xy-bitmap - * format, the foreground pixel in @p gc defines the source - * for the one bits in the image, and the background pixel - * defines the source for the zero bits. For xy-pixmap and - * z-pixmap formats, the depth of the image must match the - * depth of the drawable; the gc is ignored. - * - * @ingroup xcb__image_t - */ -xcb_void_cookie_t -xcb_image_put (xcb_connection_t * conn, - xcb_drawable_t draw, - xcb_gcontext_t gc, - xcb_image_t * image, - int16_t x, - int16_t y, - uint8_t left_pad); - - -/** - * Check image for or convert image to native format. - * @param c The connection to the X server. - * @param image The image. - * @param convert If 0, just check the image for native format. - * Otherwise, actually convert it. - * @return Null if the image is not in native format and can or will not - * be converted. Otherwise, the native format image. - * - * Each X display has its own "native format" for images of a given - * format and depth. This function either checks whether the given - * @p image is in native format for the given connection @p c, or - * actually tries to convert the image to native format, depending - * on whether @p convert is true or false. - * - * When @p convert is true, and the image is not in native format - * but can be converted, it will be, and a pointer to the new image - * will be returned. The image passed in will be unharmed in this - * case; it is the caller's responsibility to check that the returned - * pointer is different and to dispose of the old image if desired. - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_native (xcb_connection_t * c, - xcb_image_t * image, - int convert); - - -/** - * Put a pixel to an image. - * @param image The image. - * @param x The x coordinate of the pixel. - * @param y The y coordinate of the pixel. - * @param pixel The new pixel value. - * - * This function overwrites the pixel in the given @p image with the - * specified @p pixel value (in client format). The image must contain the @p x - * and @p y coordinates, as no clipping is done. This function honors - * the plane-mask for xy-pixmap images. - * @ingroup xcb__image_t - */ -void -xcb_image_put_pixel (xcb_image_t *image, - uint32_t x, - uint32_t y, - uint32_t pixel); - -/** - * Get a pixel from an image. - * @param image The image. - * @param x The x coordinate of the pixel. - * @param y The y coordinate of the pixel. - * @return The pixel value. - * - * This function retrieves a pixel from the given @p image. - * The image must contain the @p x - * and @p y coordinates, as no clipping is done. This function honors - * the plane-mask for xy-pixmap images. - * @ingroup xcb__image_t - */ -uint32_t -xcb_image_get_pixel (xcb_image_t *image, - uint32_t x, - uint32_t y); - - -/** - * Convert an image to a new format. - * @param src Source image. - * @param dst Destination image. - * @return The @p dst image, or null on error. - * - * This function tries to convert the image data of the @p - * src image to the format implied by the @p dst image, - * overwriting the current destination image data. - * The source and destination must have the same - * width, height, and depth. When the source and destination - * are already the same format, a simple copy is done. Otherwise, - * when the destination has the same bits-per-pixel/scanline-unit - * as the source, an optimized copy routine (thanks to Keith Packard) - * is used for the conversion. Otherwise, the copy is done the - * slow, slow way with @ref xcb_image_get_pixel() and - * @ref xcb_image_put_pixel() calls. - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_convert (xcb_image_t * src, - xcb_image_t * dst); - - -/** - * Extract a subimage of an image. - * @param image Source image. - * @param x X coordinate of subimage. - * @param y Y coordinate of subimage. - * @param width Width of subimage. - * @param height Height of subimage. - * @param base Base of memory allocation. - * @param bytes Size of base allocation. - * @param data Memory allocation. - * @return The subimage, or null on error. - * - * Given an image, this function extracts the subimage at the - * given coordinates. The requested subimage must be entirely - * contained in the source @p image. The resulting image will have the same - * general image parameters as the source image. The @p base, @p bytes, - * and @p data arguments are passed to @ref xcb_create_image() unaltered - * to create the destination image---see its documentation for details. - * - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_subimage(xcb_image_t * image, - uint32_t x, - uint32_t y, - uint32_t width, - uint32_t height, - void * base, - uint32_t bytes, - uint8_t * data); - - -/* - * Shm stuff - */ - -/** - * Put the data of an xcb_image_t onto a drawable using the MIT Shm - * Extension. - * @param conn The connection to the X server. - * @param draw The draw you get the image from. - * @param gc The graphic context. - * @param image The image you want to combine with the rectangle. - * @param shminfo A @ref xcb_shm_segment_info_t structure. - * @param src_x The offset in x from the left edge of the image - * defined by the xcb_image_t structure. - * @param src_y The offset in y from the left edge of the image - * defined by the xcb_image_t structure. - * @param dest_x The x coordinate, which is relative to the origin of the - * drawable and defines the x coordinate of the upper-left corner of the - * rectangle. - * @param dest_y The y coordinate, which is relative to the origin of the - * drawable and defines the x coordinate of the upper-left corner of - * the rectangle. - * @param src_width The width of the subimage, in pixels. - * @param src_height The height of the subimage, in pixels. - * @param send_event Indicates whether or not a completion event - * should occur when the image write is complete. - * @return 1 is no problems occurs. - * - * This function combines an image in memory with a shape of the - * specified drawable. The section of the image defined by the @p x, @p y, - * @p width, and @p height arguments is drawn on the specified part of - * the drawable. If XYBitmap format is used, the depth must be - * one, or a``BadMatch'' error results. The foreground pixel in the - * Graphic Context @p gc defines the source for the one bits in the - * image, and the background pixel defines the source for the zero - * bits. For XYPixmap and ZPixmap, the depth must match the depth of - * the drawable, or a ``BadMatch'' error results. - * - * If a problem occurs, the function returns @c 0. Otherwise, it - * returns @c 1. - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_shm_put (xcb_connection_t * conn, - xcb_drawable_t draw, - xcb_gcontext_t gc, - xcb_image_t * image, - xcb_shm_segment_info_t shminfo, - int16_t src_x, - int16_t src_y, - int16_t dest_x, - int16_t dest_y, - uint16_t src_width, - uint16_t src_height, - uint8_t send_event); - - -/** - * Read image data into a shared memory xcb_image_t. - * @param conn The connection to the X server. - * @param draw The draw you get the image from. - * @param image The image you want to combine with the rectangle. - * @param shminfo A @ref xcb_shm_segment_info_t structure. - * @param x The x coordinate, which are relative to the origin of the - * drawable and define the upper-left corner of the rectangle. - * @param y The y coordinate, which are relative to the origin of the - * drawable and define the upper-left corner of the rectangle. - * @param plane_mask The plane mask. - * @return The subimage of @p draw defined by @p x, @p y, @p w, @p h. - * - * This function reads image data into a shared memory xcb_image_t where - * @p conn is the connection to the X server, @p draw is the source - * drawable, @p image is the destination xcb_image_t, @p x and @p y are offsets - * within the drawable, and @p plane_mask defines which planes are to be - * read. - * - * If a problem occurs, the function returns @c 0. It returns 1 - * otherwise. - * @ingroup xcb__image_t - */ -int xcb_image_shm_get (xcb_connection_t * conn, - xcb_drawable_t draw, - xcb_image_t * image, - xcb_shm_segment_info_t shminfo, - int16_t x, - int16_t y, - uint32_t plane_mask); - - -/** - * Create an image from user-supplied bitmap data. - * @param data Image data in packed bitmap format. - * @param width Width in bits of image data. - * @param height Height in bits of image data. - * @return The image constructed from the image data, or 0 on error. - * - * This function creates an image from the user-supplied - * bitmap @p data. The bitmap data is assumed to be in - * xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad). - * @ingroup xcb__image_t - */ -xcb_image_t * -xcb_image_create_from_bitmap_data (uint8_t * data, - uint32_t width, - uint32_t height); - -/** - * Create a pixmap from user-supplied bitmap data. - * @param display The connection to the X server. - * @param d The parent drawable for the pixmap. - * @param data Image data in packed bitmap format. - * @param width Width in bits of image data. - * @param height Height in bits of image data. - * @param depth Depth of the desired pixmap. - * @param fg Pixel for one-bits of pixmaps with depth larger than one. - * @param bg Pixel for zero-bits of pixmaps with depth larger than one. - * @param gcp If this pointer is non-null, the GC created to - * fill in the pixmap is stored here; it will have its foreground - * and background set to the supplied value. Otherwise, the GC - * will be freed. - * @return The pixmap constructed from the image data, or 0 on error. - * - * This function creates a pixmap from the user-supplied - * bitmap @p data. The bitmap data is assumed to be in - * xbm format (i.e., 8-bit scanline unit, LSB-first, 8-bit pad). - * If @p depth is greater than 1, the - * bitmap will be expanded to a pixmap using the given - * foreground and background pixels @p fg and @p bg. - * @ingroup xcb__image_t - */ -xcb_pixmap_t -xcb_create_pixmap_from_bitmap_data (xcb_connection_t * display, - xcb_drawable_t d, - uint8_t * data, - uint32_t width, - uint32_t height, - uint32_t depth, - uint32_t fg, - uint32_t bg, - xcb_gcontext_t * gcp); - - -/** - * @} - */ - - -#ifdef __cplusplus -} -#endif - - -#endif /* __XCB_IMAGE_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_keysyms.h b/src/3rdparty/xcb/include/xcb/xcb_keysyms.h deleted file mode 100644 index 9d34a50ad1..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_keysyms.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef __XCB_KEYSYMS_H__ -#define __XCB_KEYSYMS_H__ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -typedef struct _XCBKeySymbols xcb_key_symbols_t; - -xcb_key_symbols_t *xcb_key_symbols_alloc (xcb_connection_t *c); - -void xcb_key_symbols_free (xcb_key_symbols_t *syms); - -xcb_keysym_t xcb_key_symbols_get_keysym (xcb_key_symbols_t *syms, - xcb_keycode_t keycode, - int col); - -/** - * @brief Get the keycodes attached to a keysyms. - * There can be several value, so what is returned is an array of keycode - * terminated by XCB_NO_SYMBOL. You are responsible to free it. - * Be aware that this function can be slow. It will convert all - * combinations of all available keycodes to keysyms to find the ones that - * match. - * @param syms Key symbols. - * @param keysym The keysym to look for. - * @return A XCB_NO_SYMBOL terminated array of keycode, or NULL if nothing is found. - */ -xcb_keycode_t * xcb_key_symbols_get_keycode(xcb_key_symbols_t *syms, - xcb_keysym_t keysym); - -xcb_keysym_t xcb_key_press_lookup_keysym (xcb_key_symbols_t *syms, - xcb_key_press_event_t *event, - int col); - -xcb_keysym_t xcb_key_release_lookup_keysym (xcb_key_symbols_t *syms, - xcb_key_release_event_t *event, - int col); - -int xcb_refresh_keyboard_mapping (xcb_key_symbols_t *syms, - xcb_mapping_notify_event_t *event); - -/* TODO: need XLookupString equivalent */ - -/* Tests for classes of symbols */ - -int xcb_is_keypad_key (xcb_keysym_t keysym); - -int xcb_is_private_keypad_key (xcb_keysym_t keysym); - -int xcb_is_cursor_key (xcb_keysym_t keysym); - -int xcb_is_pf_key (xcb_keysym_t keysym); - -int xcb_is_function_key (xcb_keysym_t keysym); - -int xcb_is_misc_function_key (xcb_keysym_t keysym); - -int xcb_is_modifier_key (xcb_keysym_t keysym); - - -#ifdef __cplusplus -} -#endif - - -#endif /* __XCB_KEYSYMS_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_pixel.h b/src/3rdparty/xcb/include/xcb/xcb_pixel.h deleted file mode 100644 index fcb22b4826..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_pixel.h +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef __XCB_PIXEL_H__ -#define __XCB_PIXEL_H__ - -/* Copyright (C) 2007 Bart Massey - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or their - * institutions shall not be used in advertising or otherwise to promote the - * sale, use or other dealings in this Software without prior written - * authorization from the authors. - */ - -#include -#include -#ifndef BUILD -#include -#include -#endif - -/** - * XCB Image fast pixel ops. - * - * Fast inline versions of xcb_image_get_pixel() and - * xcb_image_put_pixel() for various common cases. - * The naming convention is xcb_image_put_pixel_FUB() - * where F is the format and is either XY for bitmaps - * or Z for pixmaps, U is the bitmap unit size or pixmap - * bits-per-pixel, and B is the endianness (if needed) - * and is either M for most-significant-first or L for - * least-significant-first. Note that no checking - * is done on the arguments to these routines---caller beware. - * Also note that the pixel type is chosen to be appropriate - * to the unit; bitmaps use int and pixmaps use the appropriate - * size of unsigned. - * @ingroup xcb__image_t - */ - -_X_INLINE static void -xcb_image_put_pixel_XY32M (xcb_image_t *image, - uint32_t x, - uint32_t y, - int pixel) -{ - uint32_t unit = (x >> 3) & ~xcb_mask(2); - uint32_t byte = xcb_mask(2) - ((x >> 3) & xcb_mask(2)); - uint32_t bit = xcb_mask(3) - (x & xcb_mask(3)); - uint8_t m = 1 << bit; - uint8_t p = pixel << bit; - uint8_t * bp = image->data + (y * image->stride) + (unit | byte); - *bp = (*bp & ~m) | p; -} - -_X_INLINE static void -xcb_image_put_pixel_XY32L (xcb_image_t *image, - uint32_t x, - uint32_t y, - int pixel) -{ - uint32_t bit = x & xcb_mask(3); - uint8_t m = 1 << bit; - uint8_t p = pixel << bit; - uint8_t * bp = image->data + (y * image->stride) + (x >> 3); - *bp = (*bp & ~m) | p; -} - -_X_INLINE static int -xcb_image_get_pixel_XY32M (xcb_image_t *image, - uint32_t x, - uint32_t y) -{ - uint32_t unit = (x >> 3) & ~xcb_mask(2); - uint32_t byte = xcb_mask(2) - ((x >> 3) & xcb_mask(2)); - uint32_t bit = xcb_mask(3) - (x & xcb_mask(3)); - uint8_t * bp = image->data + (y * image->stride) + (unit | byte); - return (*bp >> bit) & 1; -} - -_X_INLINE static int -xcb_image_get_pixel_XY32L (xcb_image_t *image, - uint32_t x, - uint32_t y) -{ - uint32_t bit = x & xcb_mask(3); - uint8_t * bp = image->data + (y * image->stride) + (x >> 3); - return (*bp >> bit) & 1; -} - -_X_INLINE static void -xcb_image_put_pixel_Z8 (xcb_image_t *image, - uint32_t x, - uint32_t y, - uint8_t pixel) -{ - image->data[x + y * image->stride] = pixel; -} - -_X_INLINE static uint8_t -xcb_image_get_pixel_Z8 (xcb_image_t *image, - uint32_t x, - uint32_t y) -{ - return image->data[x + y * image->stride]; -} - -_X_INLINE static void -xcb_image_put_pixel_Z32M (xcb_image_t *image, - uint32_t x, - uint32_t y, - uint32_t pixel) -{ - uint8_t * row = image->data + (y * image->stride); - row[x << 2] = pixel >> 24; - row[(x << 2) + 1] = pixel >> 16; - row[(x << 2) + 2] = pixel >> 8; - row[(x << 2) + 3] = pixel; -} - -_X_INLINE static void -xcb_image_put_pixel_Z32L (xcb_image_t *image, - uint32_t x, - uint32_t y, - uint32_t pixel) -{ - uint8_t * row = image->data + (y * image->stride); - row[x << 2] = pixel; - row[(x << 2) + 1] = pixel >> 8; - row[(x << 2) + 2] = pixel >> 16; - row[(x << 2) + 3] = pixel >> 24; -} - -_X_INLINE static uint32_t -xcb_image_get_pixel_Z32M (xcb_image_t *image, - uint32_t x, - uint32_t y) -{ - uint8_t * row = image->data + (y * image->stride); - uint32_t pixel = row[x << 2] << 24; - pixel |= row[(x << 2) + 1] << 16; - pixel |= row[(x << 2) + 2] << 8; - return pixel | row[(x << 2) + 3]; -} - -_X_INLINE static uint32_t -xcb_image_get_pixel_Z32L (xcb_image_t *image, - uint32_t x, - uint32_t y) -{ - uint8_t * row = image->data + (y * image->stride); - uint32_t pixel = row[x << 2]; - pixel |= row[(x << 2) + 1] << 8; - pixel |= row[(x << 2) + 2] << 16; - return pixel | row[(x << 2) + 3] << 24; -} - -#endif /* __XCB_PIXEL_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_renderutil.h b/src/3rdparty/xcb/include/xcb/xcb_renderutil.h deleted file mode 100644 index 77c5b7f054..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_renderutil.h +++ /dev/null @@ -1,150 +0,0 @@ -/* Copyright © 2006 Jamey Sharp. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or their - * institutions shall not be used in advertising or otherwise to promote the - * sale, use or other dealings in this Software without prior written - * authorization from the authors. - */ - -#ifndef XCB_RENDERUTIL -#define XCB_RENDERUTIL -#include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum xcb_pict_format_t { - XCB_PICT_FORMAT_ID = (1 << 0), - XCB_PICT_FORMAT_TYPE = (1 << 1), - XCB_PICT_FORMAT_DEPTH = (1 << 2), - XCB_PICT_FORMAT_RED = (1 << 3), - XCB_PICT_FORMAT_RED_MASK = (1 << 4), - XCB_PICT_FORMAT_GREEN = (1 << 5), - XCB_PICT_FORMAT_GREEN_MASK = (1 << 6), - XCB_PICT_FORMAT_BLUE = (1 << 7), - XCB_PICT_FORMAT_BLUE_MASK = (1 << 8), - XCB_PICT_FORMAT_ALPHA = (1 << 9), - XCB_PICT_FORMAT_ALPHA_MASK = (1 << 10), - XCB_PICT_FORMAT_COLORMAP = (1 << 11) -} xcb_pict_format_t; - -typedef enum xcb_pict_standard_t { - XCB_PICT_STANDARD_ARGB_32, - XCB_PICT_STANDARD_RGB_24, - XCB_PICT_STANDARD_A_8, - XCB_PICT_STANDARD_A_4, - XCB_PICT_STANDARD_A_1 -} xcb_pict_standard_t; - - -xcb_render_pictvisual_t * -xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t *formats, - const xcb_visualid_t visual); - -xcb_render_pictforminfo_t * -xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats, - unsigned long mask, - const xcb_render_pictforminfo_t *ptemplate, - int count); - -xcb_render_pictforminfo_t * -xcb_render_util_find_standard_format (const xcb_render_query_pict_formats_reply_t *formats, - xcb_pict_standard_t format); - -const xcb_render_query_version_reply_t * -xcb_render_util_query_version (xcb_connection_t *c); - -const xcb_render_query_pict_formats_reply_t * -xcb_render_util_query_formats (xcb_connection_t *c); - -int -xcb_render_util_disconnect (xcb_connection_t *c); - -/* wrappers for xcb_render_composite_glyphs_8/16/32 */ - -typedef struct xcb_render_util_composite_text_stream_t xcb_render_util_composite_text_stream_t; - -xcb_render_util_composite_text_stream_t * -xcb_render_util_composite_text_stream ( - xcb_render_glyphset_t initial_glyphset, - uint32_t total_glyphs, - uint32_t total_glyphset_changes ); - -void -xcb_render_util_glyphs_8 ( - xcb_render_util_composite_text_stream_t *stream, - int16_t dx, - int16_t dy, - uint32_t count, - const uint8_t *glyphs ); - -void -xcb_render_util_glyphs_16 ( - xcb_render_util_composite_text_stream_t *stream, - int16_t dx, - int16_t dy, - uint32_t count, - const uint16_t *glyphs ); - -void -xcb_render_util_glyphs_32 ( - xcb_render_util_composite_text_stream_t *stream, - int16_t dx, - int16_t dy, - uint32_t count, - const uint32_t *glyphs ); - -void -xcb_render_util_change_glyphset ( - xcb_render_util_composite_text_stream_t *stream, - xcb_render_glyphset_t glyphset ); - -xcb_void_cookie_t -xcb_render_util_composite_text ( - xcb_connection_t *xc, - uint8_t op, - xcb_render_picture_t src, - xcb_render_picture_t dst, - xcb_render_pictformat_t mask_format, - int16_t src_x, - int16_t src_y, - xcb_render_util_composite_text_stream_t *stream ); - -xcb_void_cookie_t -xcb_render_util_composite_text_checked ( - xcb_connection_t *xc, - uint8_t op, - xcb_render_picture_t src, - xcb_render_picture_t dst, - xcb_render_pictformat_t mask_format, - int16_t src_x, - int16_t src_y, - xcb_render_util_composite_text_stream_t *stream ); - -void -xcb_render_util_composite_text_free ( - xcb_render_util_composite_text_stream_t *stream ); - -#ifdef __cplusplus -} -#endif - -#endif /* XCB_RENDERUTIL */ diff --git a/src/3rdparty/xcb/include/xcb/xcb_util.h b/src/3rdparty/xcb/include/xcb/xcb_util.h deleted file mode 100644 index 0f06f1b06e..0000000000 --- a/src/3rdparty/xcb/include/xcb/xcb_util.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __XCB_UTIL_H__ -#define __XCB_UTIL_H__ - -#include -#include -#include - -#endif /* __XCB_UTIL_H__ */ diff --git a/src/3rdparty/xcb/include/xcb/xfixes.h b/src/3rdparty/xcb/include/xcb/xfixes.h deleted file mode 100644 index b67aa85135..0000000000 --- a/src/3rdparty/xcb/include/xcb/xfixes.h +++ /dev/null @@ -1,2816 +0,0 @@ -/* - * This file generated automatically from xfixes.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_XFixes_API XCB XFixes API - * @brief XFixes XCB Protocol Implementation. - * @{ - **/ - -#ifndef __XFIXES_H -#define __XFIXES_H - -#include "xcb.h" -#include "xproto.h" -#include "render.h" -#include "shape.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_XFIXES_MAJOR_VERSION 4 -#define XCB_XFIXES_MINOR_VERSION 0 - -extern xcb_extension_t xcb_xfixes_id; - -/** - * @brief xcb_xfixes_query_version_cookie_t - **/ -typedef struct xcb_xfixes_query_version_cookie_t { - unsigned int sequence; /**< */ -} xcb_xfixes_query_version_cookie_t; - -/** Opcode for xcb_xfixes_query_version. */ -#define XCB_XFIXES_QUERY_VERSION 0 - -/** - * @brief xcb_xfixes_query_version_request_t - **/ -typedef struct xcb_xfixes_query_version_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint32_t client_major_version; /**< */ - uint32_t client_minor_version; /**< */ -} xcb_xfixes_query_version_request_t; - -/** - * @brief xcb_xfixes_query_version_reply_t - **/ -typedef struct xcb_xfixes_query_version_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t major_version; /**< */ - uint32_t minor_version; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_xfixes_query_version_reply_t; - -typedef enum xcb_xfixes_save_set_mode_t { - XCB_XFIXES_SAVE_SET_MODE_INSERT, - XCB_XFIXES_SAVE_SET_MODE_DELETE -} xcb_xfixes_save_set_mode_t; - -typedef enum xcb_xfixes_save_set_target_t { - XCB_XFIXES_SAVE_SET_TARGET_NEAREST, - XCB_XFIXES_SAVE_SET_TARGET_ROOT -} xcb_xfixes_save_set_target_t; - -typedef enum xcb_xfixes_save_set_mapping_t { - XCB_XFIXES_SAVE_SET_MAPPING_MAP, - XCB_XFIXES_SAVE_SET_MAPPING_UNMAP -} xcb_xfixes_save_set_mapping_t; - -/** Opcode for xcb_xfixes_change_save_set. */ -#define XCB_XFIXES_CHANGE_SAVE_SET 1 - -/** - * @brief xcb_xfixes_change_save_set_request_t - **/ -typedef struct xcb_xfixes_change_save_set_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t mode; /**< */ - uint8_t target; /**< */ - uint8_t map; /**< */ - uint8_t pad0; /**< */ - xcb_window_t window; /**< */ -} xcb_xfixes_change_save_set_request_t; - -typedef enum xcb_xfixes_selection_event_t { - XCB_XFIXES_SELECTION_EVENT_SET_SELECTION_OWNER, - XCB_XFIXES_SELECTION_EVENT_SELECTION_WINDOW_DESTROY, - XCB_XFIXES_SELECTION_EVENT_SELECTION_CLIENT_CLOSE -} xcb_xfixes_selection_event_t; - -typedef enum xcb_xfixes_selection_event_mask_t { - XCB_XFIXES_SELECTION_EVENT_MASK_SET_SELECTION_OWNER = 1, - XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_WINDOW_DESTROY = 2, - XCB_XFIXES_SELECTION_EVENT_MASK_SELECTION_CLIENT_CLOSE = 4 -} xcb_xfixes_selection_event_mask_t; - -/** Opcode for xcb_xfixes_selection_notify. */ -#define XCB_XFIXES_SELECTION_NOTIFY 0 - -/** - * @brief xcb_xfixes_selection_notify_event_t - **/ -typedef struct xcb_xfixes_selection_notify_event_t { - uint8_t response_type; /**< */ - uint8_t subtype; /**< */ - uint16_t sequence; /**< */ - xcb_window_t window; /**< */ - xcb_window_t owner; /**< */ - xcb_atom_t selection; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_timestamp_t selection_timestamp; /**< */ - uint8_t pad0[8]; /**< */ -} xcb_xfixes_selection_notify_event_t; - -/** Opcode for xcb_xfixes_select_selection_input. */ -#define XCB_XFIXES_SELECT_SELECTION_INPUT 2 - -/** - * @brief xcb_xfixes_select_selection_input_request_t - **/ -typedef struct xcb_xfixes_select_selection_input_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - xcb_atom_t selection; /**< */ - uint32_t event_mask; /**< */ -} xcb_xfixes_select_selection_input_request_t; - -typedef enum xcb_xfixes_cursor_notify_t { - XCB_XFIXES_CURSOR_NOTIFY_DISPLAY_CURSOR -} xcb_xfixes_cursor_notify_t; - -typedef enum xcb_xfixes_cursor_notify_mask_t { - XCB_XFIXES_CURSOR_NOTIFY_MASK_DISPLAY_CURSOR = 1 -} xcb_xfixes_cursor_notify_mask_t; - -/** Opcode for xcb_xfixes_cursor_notify. */ -#define XCB_XFIXES_CURSOR_NOTIFY 1 - -/** - * @brief xcb_xfixes_cursor_notify_event_t - **/ -typedef struct xcb_xfixes_cursor_notify_event_t { - uint8_t response_type; /**< */ - uint8_t subtype; /**< */ - uint16_t sequence; /**< */ - xcb_window_t window; /**< */ - uint32_t cursor_serial; /**< */ - xcb_timestamp_t timestamp; /**< */ - xcb_atom_t name; /**< */ - uint8_t pad0[12]; /**< */ -} xcb_xfixes_cursor_notify_event_t; - -/** Opcode for xcb_xfixes_select_cursor_input. */ -#define XCB_XFIXES_SELECT_CURSOR_INPUT 3 - -/** - * @brief xcb_xfixes_select_cursor_input_request_t - **/ -typedef struct xcb_xfixes_select_cursor_input_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - uint32_t event_mask; /**< */ -} xcb_xfixes_select_cursor_input_request_t; - -/** - * @brief xcb_xfixes_get_cursor_image_cookie_t - **/ -typedef struct xcb_xfixes_get_cursor_image_cookie_t { - unsigned int sequence; /**< */ -} xcb_xfixes_get_cursor_image_cookie_t; - -/** Opcode for xcb_xfixes_get_cursor_image. */ -#define XCB_XFIXES_GET_CURSOR_IMAGE 4 - -/** - * @brief xcb_xfixes_get_cursor_image_request_t - **/ -typedef struct xcb_xfixes_get_cursor_image_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_xfixes_get_cursor_image_request_t; - -/** - * @brief xcb_xfixes_get_cursor_image_reply_t - **/ -typedef struct xcb_xfixes_get_cursor_image_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint16_t xhot; /**< */ - uint16_t yhot; /**< */ - uint32_t cursor_serial; /**< */ - uint8_t pad1[8]; /**< */ -} xcb_xfixes_get_cursor_image_reply_t; - -typedef uint32_t xcb_xfixes_region_t; - -/** - * @brief xcb_xfixes_region_iterator_t - **/ -typedef struct xcb_xfixes_region_iterator_t { - xcb_xfixes_region_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xfixes_region_iterator_t; - -/** Opcode for xcb_xfixes_bad_region. */ -#define XCB_XFIXES_BAD_REGION 0 - -/** - * @brief xcb_xfixes_bad_region_error_t - **/ -typedef struct xcb_xfixes_bad_region_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ -} xcb_xfixes_bad_region_error_t; - -typedef enum xcb_xfixes_region_enum_t { - XCB_XFIXES_REGION_NONE -} xcb_xfixes_region_enum_t; - -/** Opcode for xcb_xfixes_create_region. */ -#define XCB_XFIXES_CREATE_REGION 5 - -/** - * @brief xcb_xfixes_create_region_request_t - **/ -typedef struct xcb_xfixes_create_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ -} xcb_xfixes_create_region_request_t; - -/** Opcode for xcb_xfixes_create_region_from_bitmap. */ -#define XCB_XFIXES_CREATE_REGION_FROM_BITMAP 6 - -/** - * @brief xcb_xfixes_create_region_from_bitmap_request_t - **/ -typedef struct xcb_xfixes_create_region_from_bitmap_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ - xcb_pixmap_t bitmap; /**< */ -} xcb_xfixes_create_region_from_bitmap_request_t; - -/** Opcode for xcb_xfixes_create_region_from_window. */ -#define XCB_XFIXES_CREATE_REGION_FROM_WINDOW 7 - -/** - * @brief xcb_xfixes_create_region_from_window_request_t - **/ -typedef struct xcb_xfixes_create_region_from_window_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ - xcb_window_t window; /**< */ - xcb_shape_kind_t kind; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_xfixes_create_region_from_window_request_t; - -/** Opcode for xcb_xfixes_create_region_from_gc. */ -#define XCB_XFIXES_CREATE_REGION_FROM_GC 8 - -/** - * @brief xcb_xfixes_create_region_from_gc_request_t - **/ -typedef struct xcb_xfixes_create_region_from_gc_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ - xcb_gcontext_t gc; /**< */ -} xcb_xfixes_create_region_from_gc_request_t; - -/** Opcode for xcb_xfixes_create_region_from_picture. */ -#define XCB_XFIXES_CREATE_REGION_FROM_PICTURE 9 - -/** - * @brief xcb_xfixes_create_region_from_picture_request_t - **/ -typedef struct xcb_xfixes_create_region_from_picture_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ - xcb_render_picture_t picture; /**< */ -} xcb_xfixes_create_region_from_picture_request_t; - -/** Opcode for xcb_xfixes_destroy_region. */ -#define XCB_XFIXES_DESTROY_REGION 10 - -/** - * @brief xcb_xfixes_destroy_region_request_t - **/ -typedef struct xcb_xfixes_destroy_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ -} xcb_xfixes_destroy_region_request_t; - -/** Opcode for xcb_xfixes_set_region. */ -#define XCB_XFIXES_SET_REGION 11 - -/** - * @brief xcb_xfixes_set_region_request_t - **/ -typedef struct xcb_xfixes_set_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ -} xcb_xfixes_set_region_request_t; - -/** Opcode for xcb_xfixes_copy_region. */ -#define XCB_XFIXES_COPY_REGION 12 - -/** - * @brief xcb_xfixes_copy_region_request_t - **/ -typedef struct xcb_xfixes_copy_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source; /**< */ - xcb_xfixes_region_t destination; /**< */ -} xcb_xfixes_copy_region_request_t; - -/** Opcode for xcb_xfixes_union_region. */ -#define XCB_XFIXES_UNION_REGION 13 - -/** - * @brief xcb_xfixes_union_region_request_t - **/ -typedef struct xcb_xfixes_union_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source1; /**< */ - xcb_xfixes_region_t source2; /**< */ - xcb_xfixes_region_t destination; /**< */ -} xcb_xfixes_union_region_request_t; - -/** Opcode for xcb_xfixes_intersect_region. */ -#define XCB_XFIXES_INTERSECT_REGION 14 - -/** - * @brief xcb_xfixes_intersect_region_request_t - **/ -typedef struct xcb_xfixes_intersect_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source1; /**< */ - xcb_xfixes_region_t source2; /**< */ - xcb_xfixes_region_t destination; /**< */ -} xcb_xfixes_intersect_region_request_t; - -/** Opcode for xcb_xfixes_subtract_region. */ -#define XCB_XFIXES_SUBTRACT_REGION 15 - -/** - * @brief xcb_xfixes_subtract_region_request_t - **/ -typedef struct xcb_xfixes_subtract_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source1; /**< */ - xcb_xfixes_region_t source2; /**< */ - xcb_xfixes_region_t destination; /**< */ -} xcb_xfixes_subtract_region_request_t; - -/** Opcode for xcb_xfixes_invert_region. */ -#define XCB_XFIXES_INVERT_REGION 16 - -/** - * @brief xcb_xfixes_invert_region_request_t - **/ -typedef struct xcb_xfixes_invert_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source; /**< */ - xcb_rectangle_t bounds; /**< */ - xcb_xfixes_region_t destination; /**< */ -} xcb_xfixes_invert_region_request_t; - -/** Opcode for xcb_xfixes_translate_region. */ -#define XCB_XFIXES_TRANSLATE_REGION 17 - -/** - * @brief xcb_xfixes_translate_region_request_t - **/ -typedef struct xcb_xfixes_translate_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ - int16_t dx; /**< */ - int16_t dy; /**< */ -} xcb_xfixes_translate_region_request_t; - -/** Opcode for xcb_xfixes_region_extents. */ -#define XCB_XFIXES_REGION_EXTENTS 18 - -/** - * @brief xcb_xfixes_region_extents_request_t - **/ -typedef struct xcb_xfixes_region_extents_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source; /**< */ - xcb_xfixes_region_t destination; /**< */ -} xcb_xfixes_region_extents_request_t; - -/** - * @brief xcb_xfixes_fetch_region_cookie_t - **/ -typedef struct xcb_xfixes_fetch_region_cookie_t { - unsigned int sequence; /**< */ -} xcb_xfixes_fetch_region_cookie_t; - -/** Opcode for xcb_xfixes_fetch_region. */ -#define XCB_XFIXES_FETCH_REGION 19 - -/** - * @brief xcb_xfixes_fetch_region_request_t - **/ -typedef struct xcb_xfixes_fetch_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t region; /**< */ -} xcb_xfixes_fetch_region_request_t; - -/** - * @brief xcb_xfixes_fetch_region_reply_t - **/ -typedef struct xcb_xfixes_fetch_region_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_rectangle_t extents; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_xfixes_fetch_region_reply_t; - -/** Opcode for xcb_xfixes_set_gc_clip_region. */ -#define XCB_XFIXES_SET_GC_CLIP_REGION 20 - -/** - * @brief xcb_xfixes_set_gc_clip_region_request_t - **/ -typedef struct xcb_xfixes_set_gc_clip_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_gcontext_t gc; /**< */ - xcb_xfixes_region_t region; /**< */ - int16_t x_origin; /**< */ - int16_t y_origin; /**< */ -} xcb_xfixes_set_gc_clip_region_request_t; - -/** Opcode for xcb_xfixes_set_window_shape_region. */ -#define XCB_XFIXES_SET_WINDOW_SHAPE_REGION 21 - -/** - * @brief xcb_xfixes_set_window_shape_region_request_t - **/ -typedef struct xcb_xfixes_set_window_shape_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t dest; /**< */ - xcb_shape_kind_t dest_kind; /**< */ - uint8_t pad0[3]; /**< */ - int16_t x_offset; /**< */ - int16_t y_offset; /**< */ - xcb_xfixes_region_t region; /**< */ -} xcb_xfixes_set_window_shape_region_request_t; - -/** Opcode for xcb_xfixes_set_picture_clip_region. */ -#define XCB_XFIXES_SET_PICTURE_CLIP_REGION 22 - -/** - * @brief xcb_xfixes_set_picture_clip_region_request_t - **/ -typedef struct xcb_xfixes_set_picture_clip_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_render_picture_t picture; /**< */ - xcb_xfixes_region_t region; /**< */ - int16_t x_origin; /**< */ - int16_t y_origin; /**< */ -} xcb_xfixes_set_picture_clip_region_request_t; - -/** Opcode for xcb_xfixes_set_cursor_name. */ -#define XCB_XFIXES_SET_CURSOR_NAME 23 - -/** - * @brief xcb_xfixes_set_cursor_name_request_t - **/ -typedef struct xcb_xfixes_set_cursor_name_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_cursor_t cursor; /**< */ - uint16_t nbytes; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xfixes_set_cursor_name_request_t; - -/** - * @brief xcb_xfixes_get_cursor_name_cookie_t - **/ -typedef struct xcb_xfixes_get_cursor_name_cookie_t { - unsigned int sequence; /**< */ -} xcb_xfixes_get_cursor_name_cookie_t; - -/** Opcode for xcb_xfixes_get_cursor_name. */ -#define XCB_XFIXES_GET_CURSOR_NAME 24 - -/** - * @brief xcb_xfixes_get_cursor_name_request_t - **/ -typedef struct xcb_xfixes_get_cursor_name_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_cursor_t cursor; /**< */ -} xcb_xfixes_get_cursor_name_request_t; - -/** - * @brief xcb_xfixes_get_cursor_name_reply_t - **/ -typedef struct xcb_xfixes_get_cursor_name_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_atom_t atom; /**< */ - uint16_t nbytes; /**< */ - uint8_t pad1[18]; /**< */ -} xcb_xfixes_get_cursor_name_reply_t; - -/** - * @brief xcb_xfixes_get_cursor_image_and_name_cookie_t - **/ -typedef struct xcb_xfixes_get_cursor_image_and_name_cookie_t { - unsigned int sequence; /**< */ -} xcb_xfixes_get_cursor_image_and_name_cookie_t; - -/** Opcode for xcb_xfixes_get_cursor_image_and_name. */ -#define XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME 25 - -/** - * @brief xcb_xfixes_get_cursor_image_and_name_request_t - **/ -typedef struct xcb_xfixes_get_cursor_image_and_name_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_xfixes_get_cursor_image_and_name_request_t; - -/** - * @brief xcb_xfixes_get_cursor_image_and_name_reply_t - **/ -typedef struct xcb_xfixes_get_cursor_image_and_name_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - int16_t x; /**< */ - int16_t y; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ - uint16_t xhot; /**< */ - uint16_t yhot; /**< */ - uint32_t cursor_serial; /**< */ - xcb_atom_t cursor_atom; /**< */ - uint16_t nbytes; /**< */ - uint8_t pad1[2]; /**< */ -} xcb_xfixes_get_cursor_image_and_name_reply_t; - -/** Opcode for xcb_xfixes_change_cursor. */ -#define XCB_XFIXES_CHANGE_CURSOR 26 - -/** - * @brief xcb_xfixes_change_cursor_request_t - **/ -typedef struct xcb_xfixes_change_cursor_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_cursor_t source; /**< */ - xcb_cursor_t destination; /**< */ -} xcb_xfixes_change_cursor_request_t; - -/** Opcode for xcb_xfixes_change_cursor_by_name. */ -#define XCB_XFIXES_CHANGE_CURSOR_BY_NAME 27 - -/** - * @brief xcb_xfixes_change_cursor_by_name_request_t - **/ -typedef struct xcb_xfixes_change_cursor_by_name_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_cursor_t src; /**< */ - uint16_t nbytes; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xfixes_change_cursor_by_name_request_t; - -/** Opcode for xcb_xfixes_expand_region. */ -#define XCB_XFIXES_EXPAND_REGION 28 - -/** - * @brief xcb_xfixes_expand_region_request_t - **/ -typedef struct xcb_xfixes_expand_region_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xfixes_region_t source; /**< */ - xcb_xfixes_region_t destination; /**< */ - uint16_t left; /**< */ - uint16_t right; /**< */ - uint16_t top; /**< */ - uint16_t bottom; /**< */ -} xcb_xfixes_expand_region_request_t; - -/** Opcode for xcb_xfixes_hide_cursor. */ -#define XCB_XFIXES_HIDE_CURSOR 29 - -/** - * @brief xcb_xfixes_hide_cursor_request_t - **/ -typedef struct xcb_xfixes_hide_cursor_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_xfixes_hide_cursor_request_t; - -/** Opcode for xcb_xfixes_show_cursor. */ -#define XCB_XFIXES_SHOW_CURSOR 30 - -/** - * @brief xcb_xfixes_show_cursor_request_t - **/ -typedef struct xcb_xfixes_show_cursor_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_xfixes_show_cursor_request_t; - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xfixes_query_version_cookie_t xcb_xfixes_query_version - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_xfixes_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_query_version_cookie_t -xcb_xfixes_query_version (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xfixes_query_version_cookie_t xcb_xfixes_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_xfixes_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_query_version_cookie_t -xcb_xfixes_query_version_unchecked (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xfixes_query_version_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xfixes_query_version_reply_t * xcb_xfixes_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_query_version_reply_t * -xcb_xfixes_query_version_reply (xcb_connection_t *c /**< */, - xcb_xfixes_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_save_set_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t mode - ** @param uint8_t target - ** @param uint8_t map - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_save_set_checked (xcb_connection_t *c /**< */, - uint8_t mode /**< */, - uint8_t target /**< */, - uint8_t map /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_save_set - ** - ** @param xcb_connection_t *c - ** @param uint8_t mode - ** @param uint8_t target - ** @param uint8_t map - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_save_set (xcb_connection_t *c /**< */, - uint8_t mode /**< */, - uint8_t target /**< */, - uint8_t map /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_selection_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_atom_t selection - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_selection_input_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_atom_t selection /**< */, - uint32_t event_mask /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_selection_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_atom_t selection - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_selection_input (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_atom_t selection /**< */, - uint32_t event_mask /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_cursor_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_cursor_input_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t event_mask /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_cursor_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_cursor_input (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t event_mask /**< */); - -int -xcb_xfixes_get_cursor_image_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_cookie_t xcb_xfixes_get_cursor_image - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_cookie_t -xcb_xfixes_get_cursor_image (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_cookie_t xcb_xfixes_get_cursor_image_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_cookie_t -xcb_xfixes_get_cursor_image_unchecked (xcb_connection_t *c /**< */); - - -/***************************************************************************** - ** - ** uint32_t * xcb_xfixes_get_cursor_image_cursor_image - ** - ** @param const xcb_xfixes_get_cursor_image_reply_t *R - ** @returns uint32_t * - ** - *****************************************************************************/ - -uint32_t * -xcb_xfixes_get_cursor_image_cursor_image (const xcb_xfixes_get_cursor_image_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_image_cursor_image_length - ** - ** @param const xcb_xfixes_get_cursor_image_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_image_cursor_image_length (const xcb_xfixes_get_cursor_image_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_image_cursor_image_end - ** - ** @param const xcb_xfixes_get_cursor_image_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_image_cursor_image_end (const xcb_xfixes_get_cursor_image_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xfixes_get_cursor_image_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_reply_t * xcb_xfixes_get_cursor_image_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_get_cursor_image_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_get_cursor_image_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_reply_t * -xcb_xfixes_get_cursor_image_reply (xcb_connection_t *c /**< */, - xcb_xfixes_get_cursor_image_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xfixes_region_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xfixes_region_t) - */ - -/***************************************************************************** - ** - ** void xcb_xfixes_region_next - ** - ** @param xcb_xfixes_region_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xfixes_region_next (xcb_xfixes_region_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xfixes_region_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_region_end - ** - ** @param xcb_xfixes_region_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_region_end (xcb_xfixes_region_iterator_t i /**< */); - -int -xcb_xfixes_create_region_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_bitmap_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_pixmap_t bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_bitmap_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_pixmap_t bitmap /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_bitmap - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_pixmap_t bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_bitmap (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_pixmap_t bitmap /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_window_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_window_t window - ** @param xcb_shape_kind_t kind - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_window_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t kind /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_window - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_window_t window - ** @param xcb_shape_kind_t kind - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_window (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t kind /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_gc_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_gcontext_t gc - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_gc_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_gcontext_t gc /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_gc - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_gcontext_t gc - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_gc (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_gcontext_t gc /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_picture_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_render_picture_t picture /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_picture (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_render_picture_t picture /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_destroy_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_destroy_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_destroy_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_destroy_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */); - -int -xcb_xfixes_set_region_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_copy_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_copy_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_copy_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_copy_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_union_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_union_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_union_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_union_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_intersect_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_intersect_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_intersect_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_intersect_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_subtract_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_subtract_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_subtract_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_subtract_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_invert_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_rectangle_t bounds - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_invert_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_rectangle_t bounds /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_invert_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_rectangle_t bounds - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_invert_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_rectangle_t bounds /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_translate_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param int16_t dx - ** @param int16_t dy - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_translate_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - int16_t dx /**< */, - int16_t dy /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_translate_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param int16_t dx - ** @param int16_t dy - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_translate_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - int16_t dx /**< */, - int16_t dy /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_region_extents_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_region_extents_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_region_extents - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_region_extents (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */); - -int -xcb_xfixes_fetch_region_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xfixes_fetch_region_cookie_t xcb_xfixes_fetch_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_xfixes_fetch_region_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_fetch_region_cookie_t -xcb_xfixes_fetch_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xfixes_fetch_region_cookie_t xcb_xfixes_fetch_region_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_xfixes_fetch_region_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_fetch_region_cookie_t -xcb_xfixes_fetch_region_unchecked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */); - - -/***************************************************************************** - ** - ** xcb_rectangle_t * xcb_xfixes_fetch_region_rectangles - ** - ** @param const xcb_xfixes_fetch_region_reply_t *R - ** @returns xcb_rectangle_t * - ** - *****************************************************************************/ - -xcb_rectangle_t * -xcb_xfixes_fetch_region_rectangles (const xcb_xfixes_fetch_region_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xfixes_fetch_region_rectangles_length - ** - ** @param const xcb_xfixes_fetch_region_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_fetch_region_rectangles_length (const xcb_xfixes_fetch_region_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_rectangle_iterator_t xcb_xfixes_fetch_region_rectangles_iterator - ** - ** @param const xcb_xfixes_fetch_region_reply_t *R - ** @returns xcb_rectangle_iterator_t - ** - *****************************************************************************/ - -xcb_rectangle_iterator_t -xcb_xfixes_fetch_region_rectangles_iterator (const xcb_xfixes_fetch_region_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xfixes_fetch_region_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xfixes_fetch_region_reply_t * xcb_xfixes_fetch_region_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_fetch_region_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_fetch_region_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_fetch_region_reply_t * -xcb_xfixes_fetch_region_reply (xcb_connection_t *c /**< */, - xcb_xfixes_fetch_region_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_gc_clip_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_gcontext_t gc - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_gc_clip_region_checked (xcb_connection_t *c /**< */, - xcb_gcontext_t gc /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_gc_clip_region - ** - ** @param xcb_connection_t *c - ** @param xcb_gcontext_t gc - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_gc_clip_region (xcb_connection_t *c /**< */, - xcb_gcontext_t gc /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_window_shape_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t dest - ** @param xcb_shape_kind_t dest_kind - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_window_shape_region_checked (xcb_connection_t *c /**< */, - xcb_window_t dest /**< */, - xcb_shape_kind_t dest_kind /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_xfixes_region_t region /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_window_shape_region - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t dest - ** @param xcb_shape_kind_t dest_kind - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_window_shape_region (xcb_connection_t *c /**< */, - xcb_window_t dest /**< */, - xcb_shape_kind_t dest_kind /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_xfixes_region_t region /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_picture_clip_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_picture_clip_region_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_picture_clip_region - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_picture_clip_region (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */); - -int -xcb_xfixes_set_cursor_name_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_cursor_name_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_cursor_name_checked (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */, - uint16_t nbytes /**< */, - const char *name /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_cursor_name - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_cursor_name (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */, - uint16_t nbytes /**< */, - const char *name /**< */); - -int -xcb_xfixes_get_cursor_name_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_name_cookie_t xcb_xfixes_get_cursor_name - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @returns xcb_xfixes_get_cursor_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_name_cookie_t -xcb_xfixes_get_cursor_name (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_name_cookie_t xcb_xfixes_get_cursor_name_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @returns xcb_xfixes_get_cursor_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_name_cookie_t -xcb_xfixes_get_cursor_name_unchecked (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */); - - -/***************************************************************************** - ** - ** char * xcb_xfixes_get_cursor_name_name - ** - ** @param const xcb_xfixes_get_cursor_name_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_xfixes_get_cursor_name_name (const xcb_xfixes_get_cursor_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_name_name_length - ** - ** @param const xcb_xfixes_get_cursor_name_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_name_name_length (const xcb_xfixes_get_cursor_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_name_name_end - ** - ** @param const xcb_xfixes_get_cursor_name_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_name_name_end (const xcb_xfixes_get_cursor_name_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xfixes_get_cursor_name_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_name_reply_t * xcb_xfixes_get_cursor_name_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_get_cursor_name_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_get_cursor_name_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_name_reply_t * -xcb_xfixes_get_cursor_name_reply (xcb_connection_t *c /**< */, - xcb_xfixes_get_cursor_name_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xfixes_get_cursor_image_and_name_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_and_name_cookie_t xcb_xfixes_get_cursor_image_and_name - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_and_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_and_name_cookie_t -xcb_xfixes_get_cursor_image_and_name (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_and_name_cookie_t xcb_xfixes_get_cursor_image_and_name_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_and_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_and_name_cookie_t -xcb_xfixes_get_cursor_image_and_name_unchecked (xcb_connection_t *c /**< */); - - -/***************************************************************************** - ** - ** char * xcb_xfixes_get_cursor_image_and_name_name - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_xfixes_get_cursor_image_and_name_name (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_image_and_name_name_length - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_image_and_name_name_length (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_image_and_name_name_end - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_image_and_name_name_end (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** uint32_t * xcb_xfixes_get_cursor_image_and_name_cursor_image - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns uint32_t * - ** - *****************************************************************************/ - -uint32_t * -xcb_xfixes_get_cursor_image_and_name_cursor_image (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_image_and_name_cursor_image_length - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_image_and_name_cursor_image_length (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_image_and_name_cursor_image_end - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_image_and_name_cursor_image_end (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xfixes_get_cursor_image_and_name_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_and_name_reply_t * xcb_xfixes_get_cursor_image_and_name_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_get_cursor_image_and_name_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_get_cursor_image_and_name_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_and_name_reply_t * -xcb_xfixes_get_cursor_image_and_name_reply (xcb_connection_t *c /**< */, - xcb_xfixes_get_cursor_image_and_name_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t source - ** @param xcb_cursor_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor_checked (xcb_connection_t *c /**< */, - xcb_cursor_t source /**< */, - xcb_cursor_t destination /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t source - ** @param xcb_cursor_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor (xcb_connection_t *c /**< */, - xcb_cursor_t source /**< */, - xcb_cursor_t destination /**< */); - -int -xcb_xfixes_change_cursor_by_name_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor_by_name_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t src - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor_by_name_checked (xcb_connection_t *c /**< */, - xcb_cursor_t src /**< */, - uint16_t nbytes /**< */, - const char *name /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor_by_name - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t src - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor_by_name (xcb_connection_t *c /**< */, - xcb_cursor_t src /**< */, - uint16_t nbytes /**< */, - const char *name /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_expand_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @param uint16_t left - ** @param uint16_t right - ** @param uint16_t top - ** @param uint16_t bottom - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_expand_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */, - uint16_t left /**< */, - uint16_t right /**< */, - uint16_t top /**< */, - uint16_t bottom /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_expand_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @param uint16_t left - ** @param uint16_t right - ** @param uint16_t top - ** @param uint16_t bottom - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_expand_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */, - uint16_t left /**< */, - uint16_t right /**< */, - uint16_t top /**< */, - uint16_t bottom /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_hide_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_hide_cursor_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_hide_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_hide_cursor (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_show_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_show_cursor_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_show_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_show_cursor (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/xinerama.h b/src/3rdparty/xcb/include/xcb/xinerama.h deleted file mode 100644 index f18a96c791..0000000000 --- a/src/3rdparty/xcb/include/xcb/xinerama.h +++ /dev/null @@ -1,811 +0,0 @@ -/* - * This file generated automatically from xinerama.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_Xinerama_API XCB Xinerama API - * @brief Xinerama XCB Protocol Implementation. - * @{ - **/ - -#ifndef __XINERAMA_H -#define __XINERAMA_H - -#include "xcb.h" -#include "xproto.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_XINERAMA_MAJOR_VERSION 1 -#define XCB_XINERAMA_MINOR_VERSION 1 - -extern xcb_extension_t xcb_xinerama_id; - -/** - * @brief xcb_xinerama_screen_info_t - **/ -typedef struct xcb_xinerama_screen_info_t { - int16_t x_org; /**< */ - int16_t y_org; /**< */ - uint16_t width; /**< */ - uint16_t height; /**< */ -} xcb_xinerama_screen_info_t; - -/** - * @brief xcb_xinerama_screen_info_iterator_t - **/ -typedef struct xcb_xinerama_screen_info_iterator_t { - xcb_xinerama_screen_info_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xinerama_screen_info_iterator_t; - -/** - * @brief xcb_xinerama_query_version_cookie_t - **/ -typedef struct xcb_xinerama_query_version_cookie_t { - unsigned int sequence; /**< */ -} xcb_xinerama_query_version_cookie_t; - -/** Opcode for xcb_xinerama_query_version. */ -#define XCB_XINERAMA_QUERY_VERSION 0 - -/** - * @brief xcb_xinerama_query_version_request_t - **/ -typedef struct xcb_xinerama_query_version_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint8_t major; /**< */ - uint8_t minor; /**< */ -} xcb_xinerama_query_version_request_t; - -/** - * @brief xcb_xinerama_query_version_reply_t - **/ -typedef struct xcb_xinerama_query_version_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t major; /**< */ - uint16_t minor; /**< */ -} xcb_xinerama_query_version_reply_t; - -/** - * @brief xcb_xinerama_get_state_cookie_t - **/ -typedef struct xcb_xinerama_get_state_cookie_t { - unsigned int sequence; /**< */ -} xcb_xinerama_get_state_cookie_t; - -/** Opcode for xcb_xinerama_get_state. */ -#define XCB_XINERAMA_GET_STATE 1 - -/** - * @brief xcb_xinerama_get_state_request_t - **/ -typedef struct xcb_xinerama_get_state_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_xinerama_get_state_request_t; - -/** - * @brief xcb_xinerama_get_state_reply_t - **/ -typedef struct xcb_xinerama_get_state_reply_t { - uint8_t response_type; /**< */ - uint8_t state; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_xinerama_get_state_reply_t; - -/** - * @brief xcb_xinerama_get_screen_count_cookie_t - **/ -typedef struct xcb_xinerama_get_screen_count_cookie_t { - unsigned int sequence; /**< */ -} xcb_xinerama_get_screen_count_cookie_t; - -/** Opcode for xcb_xinerama_get_screen_count. */ -#define XCB_XINERAMA_GET_SCREEN_COUNT 2 - -/** - * @brief xcb_xinerama_get_screen_count_request_t - **/ -typedef struct xcb_xinerama_get_screen_count_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_xinerama_get_screen_count_request_t; - -/** - * @brief xcb_xinerama_get_screen_count_reply_t - **/ -typedef struct xcb_xinerama_get_screen_count_reply_t { - uint8_t response_type; /**< */ - uint8_t screen_count; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_window_t window; /**< */ -} xcb_xinerama_get_screen_count_reply_t; - -/** - * @brief xcb_xinerama_get_screen_size_cookie_t - **/ -typedef struct xcb_xinerama_get_screen_size_cookie_t { - unsigned int sequence; /**< */ -} xcb_xinerama_get_screen_size_cookie_t; - -/** Opcode for xcb_xinerama_get_screen_size. */ -#define XCB_XINERAMA_GET_SCREEN_SIZE 3 - -/** - * @brief xcb_xinerama_get_screen_size_request_t - **/ -typedef struct xcb_xinerama_get_screen_size_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_window_t window; /**< */ - uint32_t screen; /**< */ -} xcb_xinerama_get_screen_size_request_t; - -/** - * @brief xcb_xinerama_get_screen_size_reply_t - **/ -typedef struct xcb_xinerama_get_screen_size_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t width; /**< */ - uint32_t height; /**< */ - xcb_window_t window; /**< */ - uint32_t screen; /**< */ -} xcb_xinerama_get_screen_size_reply_t; - -/** - * @brief xcb_xinerama_is_active_cookie_t - **/ -typedef struct xcb_xinerama_is_active_cookie_t { - unsigned int sequence; /**< */ -} xcb_xinerama_is_active_cookie_t; - -/** Opcode for xcb_xinerama_is_active. */ -#define XCB_XINERAMA_IS_ACTIVE 4 - -/** - * @brief xcb_xinerama_is_active_request_t - **/ -typedef struct xcb_xinerama_is_active_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_xinerama_is_active_request_t; - -/** - * @brief xcb_xinerama_is_active_reply_t - **/ -typedef struct xcb_xinerama_is_active_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t state; /**< */ -} xcb_xinerama_is_active_reply_t; - -/** - * @brief xcb_xinerama_query_screens_cookie_t - **/ -typedef struct xcb_xinerama_query_screens_cookie_t { - unsigned int sequence; /**< */ -} xcb_xinerama_query_screens_cookie_t; - -/** Opcode for xcb_xinerama_query_screens. */ -#define XCB_XINERAMA_QUERY_SCREENS 5 - -/** - * @brief xcb_xinerama_query_screens_request_t - **/ -typedef struct xcb_xinerama_query_screens_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ -} xcb_xinerama_query_screens_request_t; - -/** - * @brief xcb_xinerama_query_screens_reply_t - **/ -typedef struct xcb_xinerama_query_screens_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t number; /**< */ - uint8_t pad1[20]; /**< */ -} xcb_xinerama_query_screens_reply_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xinerama_screen_info_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xinerama_screen_info_t) - */ - -/***************************************************************************** - ** - ** void xcb_xinerama_screen_info_next - ** - ** @param xcb_xinerama_screen_info_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xinerama_screen_info_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xinerama_screen_info_end - ** - ** @param xcb_xinerama_screen_info_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version - ** - ** @param xcb_connection_t *c - ** @param uint8_t major - ** @param uint8_t minor - ** @returns xcb_xinerama_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_version_cookie_t -xcb_xinerama_query_version (xcb_connection_t *c /**< */, - uint8_t major /**< */, - uint8_t minor /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint8_t major - ** @param uint8_t minor - ** @returns xcb_xinerama_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_version_cookie_t -xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */, - uint8_t major /**< */, - uint8_t minor /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xinerama_query_version_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_query_version_reply_t * -xcb_xinerama_query_version_reply (xcb_connection_t *c /**< */, - xcb_xinerama_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_state_cookie_t -xcb_xinerama_get_state (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_state_cookie_t -xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xinerama_get_state_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_get_state_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_get_state_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_get_state_reply_t * -xcb_xinerama_get_state_reply (xcb_connection_t *c /**< */, - xcb_xinerama_get_state_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_screen_count_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_count_cookie_t -xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_screen_count_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_count_cookie_t -xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xinerama_get_screen_count_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_get_screen_count_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_get_screen_count_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_count_reply_t * -xcb_xinerama_get_screen_count_reply (xcb_connection_t *c /**< */, - xcb_xinerama_get_screen_count_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t screen - ** @returns xcb_xinerama_get_screen_size_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_size_cookie_t -xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t screen /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t screen - ** @returns xcb_xinerama_get_screen_size_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_size_cookie_t -xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t screen /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xinerama_get_screen_size_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_get_screen_size_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_get_screen_size_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_size_reply_t * -xcb_xinerama_get_screen_size_reply (xcb_connection_t *c /**< */, - xcb_xinerama_get_screen_size_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_is_active_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_is_active_cookie_t -xcb_xinerama_is_active (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_is_active_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_is_active_cookie_t -xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xinerama_is_active_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_is_active_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_is_active_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_is_active_reply_t * -xcb_xinerama_is_active_reply (xcb_connection_t *c /**< */, - xcb_xinerama_is_active_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xinerama_query_screens_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_query_screens_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_screens_cookie_t -xcb_xinerama_query_screens (xcb_connection_t *c /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_query_screens_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_screens_cookie_t -xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */); - - -/***************************************************************************** - ** - ** xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info - ** - ** @param const xcb_xinerama_query_screens_reply_t *R - ** @returns xcb_xinerama_screen_info_t * - ** - *****************************************************************************/ - -xcb_xinerama_screen_info_t * -xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xinerama_query_screens_screen_info_length - ** - ** @param const xcb_xinerama_query_screens_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator - ** - ** @param const xcb_xinerama_query_screens_reply_t *R - ** @returns xcb_xinerama_screen_info_iterator_t - ** - *****************************************************************************/ - -xcb_xinerama_screen_info_iterator_t -xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xinerama_query_screens_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_query_screens_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_query_screens_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_query_screens_reply_t * -xcb_xinerama_query_screens_reply (xcb_connection_t *c /**< */, - xcb_xinerama_query_screens_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/include/xcb/xinput.h b/src/3rdparty/xcb/include/xcb/xinput.h index 9420047c71..729c0b5169 100644 --- a/src/3rdparty/xcb/include/xcb/xinput.h +++ b/src/3rdparty/xcb/include/xcb/xinput.h @@ -12,8 +12,8 @@ #ifndef __XINPUT_H #define __XINPUT_H -#include "xcb.h" -#include "xfixes.h" +#include +#include #ifdef __cplusplus extern "C" { diff --git a/src/3rdparty/xcb/include/xcb/xkb.h b/src/3rdparty/xcb/include/xcb/xkb.h deleted file mode 100644 index 66b4712194..0000000000 --- a/src/3rdparty/xcb/include/xcb/xkb.h +++ /dev/null @@ -1,12085 +0,0 @@ -/* - * This file generated automatically from xkb.xml by c_client.py. - * Edit at your peril. - */ - -/** - * @defgroup XCB_xkb_API XCB xkb API - * @brief xkb XCB Protocol Implementation. - * @{ - **/ - -#ifndef __XKB_H -#define __XKB_H - -#include "xcb.h" -#include "xproto.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define XCB_XKB_MAJOR_VERSION 1 -#define XCB_XKB_MINOR_VERSION 0 - -extern xcb_extension_t xcb_xkb_id; - -typedef enum xcb_xkb_const_t { - XCB_XKB_CONST_MAX_LEGAL_KEY_CODE = 255, - XCB_XKB_CONST_PER_KEY_BIT_ARRAY_SIZE = 32, - XCB_XKB_CONST_KEY_NAME_LENGTH = 4 -} xcb_xkb_const_t; - -typedef enum xcb_xkb_event_type_t { - XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY = 1, - XCB_XKB_EVENT_TYPE_MAP_NOTIFY = 2, - XCB_XKB_EVENT_TYPE_STATE_NOTIFY = 4, - XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY = 8, - XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY = 16, - XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY = 32, - XCB_XKB_EVENT_TYPE_NAMES_NOTIFY = 64, - XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY = 128, - XCB_XKB_EVENT_TYPE_BELL_NOTIFY = 256, - XCB_XKB_EVENT_TYPE_ACTION_MESSAGE = 512, - XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY = 1024, - XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY = 2048 -} xcb_xkb_event_type_t; - -typedef enum xcb_xkb_nkn_detail_t { - XCB_XKB_NKN_DETAIL_KEYCODES = 1, - XCB_XKB_NKN_DETAIL_GEOMETRY = 2, - XCB_XKB_NKN_DETAIL_DEVICE_ID = 4 -} xcb_xkb_nkn_detail_t; - -typedef enum xcb_xkb_axn_detail_t { - XCB_XKB_AXN_DETAIL_SK_PRESS = 1, - XCB_XKB_AXN_DETAIL_SK_ACCEPT = 2, - XCB_XKB_AXN_DETAIL_SK_REJECT = 4, - XCB_XKB_AXN_DETAIL_SK_RELEASE = 8, - XCB_XKB_AXN_DETAIL_BK_ACCEPT = 16, - XCB_XKB_AXN_DETAIL_BK_REJECT = 32, - XCB_XKB_AXN_DETAIL_AXK_WARNING = 64 -} xcb_xkb_axn_detail_t; - -typedef enum xcb_xkb_map_part_t { - XCB_XKB_MAP_PART_KEY_TYPES = 1, - XCB_XKB_MAP_PART_KEY_SYMS = 2, - XCB_XKB_MAP_PART_MODIFIER_MAP = 4, - XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS = 8, - XCB_XKB_MAP_PART_KEY_ACTIONS = 16, - XCB_XKB_MAP_PART_KEY_BEHAVIORS = 32, - XCB_XKB_MAP_PART_VIRTUAL_MODS = 64, - XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP = 128 -} xcb_xkb_map_part_t; - -typedef enum xcb_xkb_set_map_flags_t { - XCB_XKB_SET_MAP_FLAGS_RESIZE_TYPES = 1, - XCB_XKB_SET_MAP_FLAGS_RECOMPUTE_ACTIONS = 2 -} xcb_xkb_set_map_flags_t; - -typedef enum xcb_xkb_state_part_t { - XCB_XKB_STATE_PART_MODIFIER_STATE = 1, - XCB_XKB_STATE_PART_MODIFIER_BASE = 2, - XCB_XKB_STATE_PART_MODIFIER_LATCH = 4, - XCB_XKB_STATE_PART_MODIFIER_LOCK = 8, - XCB_XKB_STATE_PART_GROUP_STATE = 16, - XCB_XKB_STATE_PART_GROUP_BASE = 32, - XCB_XKB_STATE_PART_GROUP_LATCH = 64, - XCB_XKB_STATE_PART_GROUP_LOCK = 128, - XCB_XKB_STATE_PART_COMPAT_STATE = 256, - XCB_XKB_STATE_PART_GRAB_MODS = 512, - XCB_XKB_STATE_PART_COMPAT_GRAB_MODS = 1024, - XCB_XKB_STATE_PART_LOOKUP_MODS = 2048, - XCB_XKB_STATE_PART_COMPAT_LOOKUP_MODS = 4096, - XCB_XKB_STATE_PART_POINTER_BUTTONS = 8192 -} xcb_xkb_state_part_t; - -typedef enum xcb_xkb_bool_ctrl_t { - XCB_XKB_BOOL_CTRL_REPEAT_KEYS = 1, - XCB_XKB_BOOL_CTRL_SLOW_KEYS = 2, - XCB_XKB_BOOL_CTRL_BOUNCE_KEYS = 4, - XCB_XKB_BOOL_CTRL_STICKY_KEYS = 8, - XCB_XKB_BOOL_CTRL_MOUSE_KEYS = 16, - XCB_XKB_BOOL_CTRL_MOUSE_KEYS_ACCEL = 32, - XCB_XKB_BOOL_CTRL_ACCESS_X_KEYS = 64, - XCB_XKB_BOOL_CTRL_ACCESS_X_TIMEOUT_MASK = 128, - XCB_XKB_BOOL_CTRL_ACCESS_X_FEEDBACK_MASK = 256, - XCB_XKB_BOOL_CTRL_AUDIBLE_BELL_MASK = 512, - XCB_XKB_BOOL_CTRL_OVERLAY_1_MASK = 1024, - XCB_XKB_BOOL_CTRL_OVERLAY_2_MASK = 2048, - XCB_XKB_BOOL_CTRL_IGNORE_GROUP_LOCK_MASK = 4096 -} xcb_xkb_bool_ctrl_t; - -typedef enum xcb_xkb_control_t { - XCB_XKB_CONTROL_GROUPS_WRAP = 134217728, - XCB_XKB_CONTROL_INTERNAL_MODS = 268435456, - XCB_XKB_CONTROL_IGNORE_LOCK_MODS = 536870912, - XCB_XKB_CONTROL_PER_KEY_REPEAT = 1073741824u, - XCB_XKB_CONTROL_CONTROLS_ENABLED = 2147483648u -} xcb_xkb_control_t; - -typedef enum xcb_xkb_ax_option_t { - XCB_XKB_AX_OPTION_SK_PRESS_FB = 1, - XCB_XKB_AX_OPTION_SK_ACCEPT_FB = 2, - XCB_XKB_AX_OPTION_FEATURE_FB = 4, - XCB_XKB_AX_OPTION_SLOW_WARN_FB = 8, - XCB_XKB_AX_OPTION_INDICATOR_FB = 16, - XCB_XKB_AX_OPTION_STICKY_KEYS_FB = 32, - XCB_XKB_AX_OPTION_TWO_KEYS = 64, - XCB_XKB_AX_OPTION_LATCH_TO_LOCK = 128, - XCB_XKB_AX_OPTION_SK_RELEASE_FB = 256, - XCB_XKB_AX_OPTION_SK_REJECT_FB = 512, - XCB_XKB_AX_OPTION_BK_REJECT_FB = 1024, - XCB_XKB_AX_OPTION_DUMB_BELL = 2048 -} xcb_xkb_ax_option_t; - -typedef uint16_t xcb_xkb_device_spec_t; - -/** - * @brief xcb_xkb_device_spec_iterator_t - **/ -typedef struct xcb_xkb_device_spec_iterator_t { - xcb_xkb_device_spec_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_device_spec_iterator_t; - -typedef enum xcb_xkb_led_class_result_t { - XCB_XKB_LED_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0, - XCB_XKB_LED_CLASS_RESULT_LED_FEEDBACK_CLASS = 4 -} xcb_xkb_led_class_result_t; - -typedef enum xcb_xkb_led_class_t { - XCB_XKB_LED_CLASS_KBD_FEEDBACK_CLASS = 0, - XCB_XKB_LED_CLASS_LED_FEEDBACK_CLASS = 4, - XCB_XKB_LED_CLASS_DFLT_XI_CLASS = 768, - XCB_XKB_LED_CLASS_ALL_XI_CLASSES = 1280 -} xcb_xkb_led_class_t; - -typedef uint16_t xcb_xkb_led_class_spec_t; - -/** - * @brief xcb_xkb_led_class_spec_iterator_t - **/ -typedef struct xcb_xkb_led_class_spec_iterator_t { - xcb_xkb_led_class_spec_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_led_class_spec_iterator_t; - -typedef enum xcb_xkb_bell_class_result_t { - XCB_XKB_BELL_CLASS_RESULT_KBD_FEEDBACK_CLASS = 0, - XCB_XKB_BELL_CLASS_RESULT_BELL_FEEDBACK_CLASS = 5 -} xcb_xkb_bell_class_result_t; - -typedef enum xcb_xkb_bell_class_t { - XCB_XKB_BELL_CLASS_KBD_FEEDBACK_CLASS = 0, - XCB_XKB_BELL_CLASS_BELL_FEEDBACK_CLASS = 5, - XCB_XKB_BELL_CLASS_DFLT_XI_CLASS = 768 -} xcb_xkb_bell_class_t; - -typedef uint16_t xcb_xkb_bell_class_spec_t; - -/** - * @brief xcb_xkb_bell_class_spec_iterator_t - **/ -typedef struct xcb_xkb_bell_class_spec_iterator_t { - xcb_xkb_bell_class_spec_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_bell_class_spec_iterator_t; - -typedef enum xcb_xkb_id_t { - XCB_XKB_ID_USE_CORE_KBD = 256, - XCB_XKB_ID_USE_CORE_PTR = 512, - XCB_XKB_ID_DFLT_XI_CLASS = 768, - XCB_XKB_ID_DFLT_XI_ID = 1024, - XCB_XKB_ID_ALL_XI_CLASS = 1280, - XCB_XKB_ID_ALL_XI_ID = 1536, - XCB_XKB_ID_XI_NONE = 65280 -} xcb_xkb_id_t; - -typedef uint16_t xcb_xkb_id_spec_t; - -/** - * @brief xcb_xkb_id_spec_iterator_t - **/ -typedef struct xcb_xkb_id_spec_iterator_t { - xcb_xkb_id_spec_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_id_spec_iterator_t; - -typedef enum xcb_xkb_group_t { - XCB_XKB_GROUP_1 = 0, - XCB_XKB_GROUP_2 = 1, - XCB_XKB_GROUP_3 = 2, - XCB_XKB_GROUP_4 = 3 -} xcb_xkb_group_t; - -typedef enum xcb_xkb_groups_t { - XCB_XKB_GROUPS_ANY = 254, - XCB_XKB_GROUPS_ALL = 255 -} xcb_xkb_groups_t; - -typedef enum xcb_xkb_set_of_group_t { - XCB_XKB_SET_OF_GROUP_GROUP_1 = 1, - XCB_XKB_SET_OF_GROUP_GROUP_2 = 2, - XCB_XKB_SET_OF_GROUP_GROUP_3 = 4, - XCB_XKB_SET_OF_GROUP_GROUP_4 = 8 -} xcb_xkb_set_of_group_t; - -typedef enum xcb_xkb_set_of_groups_t { - XCB_XKB_SET_OF_GROUPS_ANY = 128 -} xcb_xkb_set_of_groups_t; - -typedef enum xcb_xkb_groups_wrap_t { - XCB_XKB_GROUPS_WRAP_WRAP_INTO_RANGE = 0, - XCB_XKB_GROUPS_WRAP_CLAMP_INTO_RANGE = 64, - XCB_XKB_GROUPS_WRAP_REDIRECT_INTO_RANGE = 128 -} xcb_xkb_groups_wrap_t; - -typedef enum xcb_xkb_v_mods_high_t { - XCB_XKB_V_MODS_HIGH_15 = 128, - XCB_XKB_V_MODS_HIGH_14 = 64, - XCB_XKB_V_MODS_HIGH_13 = 32, - XCB_XKB_V_MODS_HIGH_12 = 16, - XCB_XKB_V_MODS_HIGH_11 = 8, - XCB_XKB_V_MODS_HIGH_10 = 4, - XCB_XKB_V_MODS_HIGH_9 = 2, - XCB_XKB_V_MODS_HIGH_8 = 1 -} xcb_xkb_v_mods_high_t; - -typedef enum xcb_xkb_v_mods_low_t { - XCB_XKB_V_MODS_LOW_7 = 128, - XCB_XKB_V_MODS_LOW_6 = 64, - XCB_XKB_V_MODS_LOW_5 = 32, - XCB_XKB_V_MODS_LOW_4 = 16, - XCB_XKB_V_MODS_LOW_3 = 8, - XCB_XKB_V_MODS_LOW_2 = 4, - XCB_XKB_V_MODS_LOW_1 = 2, - XCB_XKB_V_MODS_LOW_0 = 1 -} xcb_xkb_v_mods_low_t; - -typedef enum xcb_xkb_v_mod_t { - XCB_XKB_V_MOD_15 = 32768, - XCB_XKB_V_MOD_14 = 16384, - XCB_XKB_V_MOD_13 = 8192, - XCB_XKB_V_MOD_12 = 4096, - XCB_XKB_V_MOD_11 = 2048, - XCB_XKB_V_MOD_10 = 1024, - XCB_XKB_V_MOD_9 = 512, - XCB_XKB_V_MOD_8 = 256, - XCB_XKB_V_MOD_7 = 128, - XCB_XKB_V_MOD_6 = 64, - XCB_XKB_V_MOD_5 = 32, - XCB_XKB_V_MOD_4 = 16, - XCB_XKB_V_MOD_3 = 8, - XCB_XKB_V_MOD_2 = 4, - XCB_XKB_V_MOD_1 = 2, - XCB_XKB_V_MOD_0 = 1 -} xcb_xkb_v_mod_t; - -typedef enum xcb_xkb_explicit_t { - XCB_XKB_EXPLICIT_V_MOD_MAP = 128, - XCB_XKB_EXPLICIT_BEHAVIOR = 64, - XCB_XKB_EXPLICIT_AUTO_REPEAT = 32, - XCB_XKB_EXPLICIT_INTERPRET = 16, - XCB_XKB_EXPLICIT_KEY_TYPE_4 = 8, - XCB_XKB_EXPLICIT_KEY_TYPE_3 = 4, - XCB_XKB_EXPLICIT_KEY_TYPE_2 = 2, - XCB_XKB_EXPLICIT_KEY_TYPE_1 = 1 -} xcb_xkb_explicit_t; - -typedef enum xcb_xkb_sym_interpret_match_t { - XCB_XKB_SYM_INTERPRET_MATCH_NONE_OF = 0, - XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF_OR_NONE = 1, - XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF = 2, - XCB_XKB_SYM_INTERPRET_MATCH_ALL_OF = 3, - XCB_XKB_SYM_INTERPRET_MATCH_EXACTLY = 4 -} xcb_xkb_sym_interpret_match_t; - -typedef enum xcb_xkb_sym_interp_match_t { - XCB_XKB_SYM_INTERP_MATCH_LEVEL_ONE_ONLY = 128, - XCB_XKB_SYM_INTERP_MATCH_OP_MASK = 127 -} xcb_xkb_sym_interp_match_t; - -typedef enum xcb_xkb_im_flag_t { - XCB_XKB_IM_FLAG_NO_EXPLICIT = 128, - XCB_XKB_IM_FLAG_NO_AUTOMATIC = 64, - XCB_XKB_IM_FLAG_LED_DRIVES_KB = 32 -} xcb_xkb_im_flag_t; - -typedef enum xcb_xkb_im_mods_which_t { - XCB_XKB_IM_MODS_WHICH_USE_COMPAT = 16, - XCB_XKB_IM_MODS_WHICH_USE_EFFECTIVE = 8, - XCB_XKB_IM_MODS_WHICH_USE_LOCKED = 4, - XCB_XKB_IM_MODS_WHICH_USE_LATCHED = 2, - XCB_XKB_IM_MODS_WHICH_USE_BASE = 1 -} xcb_xkb_im_mods_which_t; - -typedef enum xcb_xkb_im_groups_which_t { - XCB_XKB_IM_GROUPS_WHICH_USE_COMPAT = 16, - XCB_XKB_IM_GROUPS_WHICH_USE_EFFECTIVE = 8, - XCB_XKB_IM_GROUPS_WHICH_USE_LOCKED = 4, - XCB_XKB_IM_GROUPS_WHICH_USE_LATCHED = 2, - XCB_XKB_IM_GROUPS_WHICH_USE_BASE = 1 -} xcb_xkb_im_groups_which_t; - -/** - * @brief xcb_xkb_indicator_map_t - **/ -typedef struct xcb_xkb_indicator_map_t { - uint8_t flags; /**< */ - uint8_t whichGroups; /**< */ - uint8_t groups; /**< */ - uint8_t whichMods; /**< */ - uint8_t mods; /**< */ - uint8_t realMods; /**< */ - uint16_t vmods; /**< */ - uint32_t ctrls; /**< */ -} xcb_xkb_indicator_map_t; - -/** - * @brief xcb_xkb_indicator_map_iterator_t - **/ -typedef struct xcb_xkb_indicator_map_iterator_t { - xcb_xkb_indicator_map_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_indicator_map_iterator_t; - -typedef enum xcb_xkb_cm_detail_t { - XCB_XKB_CM_DETAIL_SYM_INTERP = 1, - XCB_XKB_CM_DETAIL_GROUP_COMPAT = 2 -} xcb_xkb_cm_detail_t; - -typedef enum xcb_xkb_name_detail_t { - XCB_XKB_NAME_DETAIL_KEYCODES = 1, - XCB_XKB_NAME_DETAIL_GEOMETRY = 2, - XCB_XKB_NAME_DETAIL_SYMBOLS = 4, - XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS = 8, - XCB_XKB_NAME_DETAIL_TYPES = 16, - XCB_XKB_NAME_DETAIL_COMPAT = 32, - XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES = 64, - XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES = 128, - XCB_XKB_NAME_DETAIL_INDICATOR_NAMES = 256, - XCB_XKB_NAME_DETAIL_KEY_NAMES = 512, - XCB_XKB_NAME_DETAIL_KEY_ALIASES = 1024, - XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES = 2048, - XCB_XKB_NAME_DETAIL_GROUP_NAMES = 4096, - XCB_XKB_NAME_DETAIL_RG_NAMES = 8192 -} xcb_xkb_name_detail_t; - -typedef enum xcb_xkb_gbn_detail_t { - XCB_XKB_GBN_DETAIL_TYPES = 1, - XCB_XKB_GBN_DETAIL_COMPAT_MAP = 2, - XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS = 4, - XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS = 8, - XCB_XKB_GBN_DETAIL_INDICATOR_MAPS = 16, - XCB_XKB_GBN_DETAIL_KEY_NAMES = 32, - XCB_XKB_GBN_DETAIL_GEOMETRY = 64, - XCB_XKB_GBN_DETAIL_OTHER_NAMES = 128 -} xcb_xkb_gbn_detail_t; - -typedef enum xcb_xkb_xi_feature_t { - XCB_XKB_XI_FEATURE_KEYBOARDS = 1, - XCB_XKB_XI_FEATURE_BUTTON_ACTIONS = 2, - XCB_XKB_XI_FEATURE_INDICATOR_NAMES = 4, - XCB_XKB_XI_FEATURE_INDICATOR_MAPS = 8, - XCB_XKB_XI_FEATURE_INDICATOR_STATE = 16 -} xcb_xkb_xi_feature_t; - -typedef enum xcb_xkb_per_client_flag_t { - XCB_XKB_PER_CLIENT_FLAG_DETECTABLE_AUTO_REPEAT = 1, - XCB_XKB_PER_CLIENT_FLAG_GRABS_USE_XKB_STATE = 2, - XCB_XKB_PER_CLIENT_FLAG_AUTO_RESET_CONTROLS = 4, - XCB_XKB_PER_CLIENT_FLAG_LOOKUP_STATE_WHEN_GRABBED = 8, - XCB_XKB_PER_CLIENT_FLAG_SEND_EVENT_USES_XKB_STATE = 16 -} xcb_xkb_per_client_flag_t; - -/** - * @brief xcb_xkb_mod_def_t - **/ -typedef struct xcb_xkb_mod_def_t { - uint8_t mask; /**< */ - uint8_t realMods; /**< */ - uint16_t vmods; /**< */ -} xcb_xkb_mod_def_t; - -/** - * @brief xcb_xkb_mod_def_iterator_t - **/ -typedef struct xcb_xkb_mod_def_iterator_t { - xcb_xkb_mod_def_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_mod_def_iterator_t; - -/** - * @brief xcb_xkb_key_name_t - **/ -typedef struct xcb_xkb_key_name_t { - char name[4]; /**< */ -} xcb_xkb_key_name_t; - -/** - * @brief xcb_xkb_key_name_iterator_t - **/ -typedef struct xcb_xkb_key_name_iterator_t { - xcb_xkb_key_name_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_name_iterator_t; - -/** - * @brief xcb_xkb_key_alias_t - **/ -typedef struct xcb_xkb_key_alias_t { - char real[4]; /**< */ - char alias[4]; /**< */ -} xcb_xkb_key_alias_t; - -/** - * @brief xcb_xkb_key_alias_iterator_t - **/ -typedef struct xcb_xkb_key_alias_iterator_t { - xcb_xkb_key_alias_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_alias_iterator_t; - -/** - * @brief xcb_xkb_counted_string_16_t - **/ -typedef struct xcb_xkb_counted_string_16_t { - uint16_t length; /**< */ -} xcb_xkb_counted_string_16_t; - -/** - * @brief xcb_xkb_counted_string_16_iterator_t - **/ -typedef struct xcb_xkb_counted_string_16_iterator_t { - xcb_xkb_counted_string_16_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_counted_string_16_iterator_t; - -/** - * @brief xcb_xkb_kt_map_entry_t - **/ -typedef struct xcb_xkb_kt_map_entry_t { - uint8_t active; /**< */ - uint8_t mods_mask; /**< */ - uint8_t level; /**< */ - uint8_t mods_mods; /**< */ - uint16_t mods_vmods; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_kt_map_entry_t; - -/** - * @brief xcb_xkb_kt_map_entry_iterator_t - **/ -typedef struct xcb_xkb_kt_map_entry_iterator_t { - xcb_xkb_kt_map_entry_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_kt_map_entry_iterator_t; - -/** - * @brief xcb_xkb_key_type_t - **/ -typedef struct xcb_xkb_key_type_t { - uint8_t mods_mask; /**< */ - uint8_t mods_mods; /**< */ - uint16_t mods_vmods; /**< */ - uint8_t numLevels; /**< */ - uint8_t nMapEntries; /**< */ - uint8_t hasPreserve; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_key_type_t; - -/** - * @brief xcb_xkb_key_type_iterator_t - **/ -typedef struct xcb_xkb_key_type_iterator_t { - xcb_xkb_key_type_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_type_iterator_t; - -/** - * @brief xcb_xkb_key_sym_map_t - **/ -typedef struct xcb_xkb_key_sym_map_t { - uint8_t kt_index[4]; /**< */ - uint8_t groupInfo; /**< */ - uint8_t width; /**< */ - uint16_t nSyms; /**< */ -} xcb_xkb_key_sym_map_t; - -/** - * @brief xcb_xkb_key_sym_map_iterator_t - **/ -typedef struct xcb_xkb_key_sym_map_iterator_t { - xcb_xkb_key_sym_map_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_sym_map_iterator_t; - -/** - * @brief xcb_xkb_common_behavior_t - **/ -typedef struct xcb_xkb_common_behavior_t { - uint8_t type; /**< */ - uint8_t data; /**< */ -} xcb_xkb_common_behavior_t; - -/** - * @brief xcb_xkb_common_behavior_iterator_t - **/ -typedef struct xcb_xkb_common_behavior_iterator_t { - xcb_xkb_common_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_common_behavior_iterator_t; - -/** - * @brief xcb_xkb_default_behavior_t - **/ -typedef struct xcb_xkb_default_behavior_t { - uint8_t type; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_default_behavior_t; - -/** - * @brief xcb_xkb_default_behavior_iterator_t - **/ -typedef struct xcb_xkb_default_behavior_iterator_t { - xcb_xkb_default_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_default_behavior_iterator_t; - -/** - * @brief xcb_xkb_lock_behavior_t - **/ -typedef struct xcb_xkb_lock_behavior_t { - uint8_t type; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_lock_behavior_t; - -/** - * @brief xcb_xkb_lock_behavior_iterator_t - **/ -typedef struct xcb_xkb_lock_behavior_iterator_t { - xcb_xkb_lock_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_lock_behavior_iterator_t; - -/** - * @brief xcb_xkb_radio_group_behavior_t - **/ -typedef struct xcb_xkb_radio_group_behavior_t { - uint8_t type; /**< */ - uint8_t group; /**< */ -} xcb_xkb_radio_group_behavior_t; - -/** - * @brief xcb_xkb_radio_group_behavior_iterator_t - **/ -typedef struct xcb_xkb_radio_group_behavior_iterator_t { - xcb_xkb_radio_group_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_radio_group_behavior_iterator_t; - -/** - * @brief xcb_xkb_overlay_behavior_t - **/ -typedef struct xcb_xkb_overlay_behavior_t { - uint8_t type; /**< */ - xcb_keycode_t key; /**< */ -} xcb_xkb_overlay_behavior_t; - -/** - * @brief xcb_xkb_overlay_behavior_iterator_t - **/ -typedef struct xcb_xkb_overlay_behavior_iterator_t { - xcb_xkb_overlay_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_overlay_behavior_iterator_t; - -/** - * @brief xcb_xkb_permament_lock_behavior_t - **/ -typedef struct xcb_xkb_permament_lock_behavior_t { - uint8_t type; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_permament_lock_behavior_t; - -/** - * @brief xcb_xkb_permament_lock_behavior_iterator_t - **/ -typedef struct xcb_xkb_permament_lock_behavior_iterator_t { - xcb_xkb_permament_lock_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_permament_lock_behavior_iterator_t; - -/** - * @brief xcb_xkb_permament_radio_group_behavior_t - **/ -typedef struct xcb_xkb_permament_radio_group_behavior_t { - uint8_t type; /**< */ - uint8_t group; /**< */ -} xcb_xkb_permament_radio_group_behavior_t; - -/** - * @brief xcb_xkb_permament_radio_group_behavior_iterator_t - **/ -typedef struct xcb_xkb_permament_radio_group_behavior_iterator_t { - xcb_xkb_permament_radio_group_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_permament_radio_group_behavior_iterator_t; - -/** - * @brief xcb_xkb_permament_overlay_behavior_t - **/ -typedef struct xcb_xkb_permament_overlay_behavior_t { - uint8_t type; /**< */ - xcb_keycode_t key; /**< */ -} xcb_xkb_permament_overlay_behavior_t; - -/** - * @brief xcb_xkb_permament_overlay_behavior_iterator_t - **/ -typedef struct xcb_xkb_permament_overlay_behavior_iterator_t { - xcb_xkb_permament_overlay_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_permament_overlay_behavior_iterator_t; - -/** - * @brief xcb_xkb_behavior_t - **/ -typedef union xcb_xkb_behavior_t { - xcb_xkb_common_behavior_t common; /**< */ - xcb_xkb_default_behavior_t _default; /**< */ - xcb_xkb_lock_behavior_t lock; /**< */ - xcb_xkb_radio_group_behavior_t radioGroup; /**< */ - xcb_xkb_overlay_behavior_t overlay1; /**< */ - xcb_xkb_overlay_behavior_t overlay2; /**< */ - xcb_xkb_permament_lock_behavior_t permamentLock; /**< */ - xcb_xkb_permament_radio_group_behavior_t permamentRadioGroup; /**< */ - xcb_xkb_permament_overlay_behavior_t permamentOverlay1; /**< */ - xcb_xkb_permament_overlay_behavior_t permamentOverlay2; /**< */ - uint8_t type; /**< */ -} xcb_xkb_behavior_t; - -/** - * @brief xcb_xkb_behavior_iterator_t - **/ -typedef struct xcb_xkb_behavior_iterator_t { - xcb_xkb_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_behavior_iterator_t; - -typedef enum xcb_xkb_behavior_type_t { - XCB_XKB_BEHAVIOR_TYPE_DEFAULT = 0, - XCB_XKB_BEHAVIOR_TYPE_LOCK = 1, - XCB_XKB_BEHAVIOR_TYPE_RADIO_GROUP = 2, - XCB_XKB_BEHAVIOR_TYPE_OVERLAY_1 = 3, - XCB_XKB_BEHAVIOR_TYPE_OVERLAY_2 = 4, - XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_LOCK = 129, - XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_RADIO_GROUP = 130, - XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_1 = 131, - XCB_XKB_BEHAVIOR_TYPE_PERMAMENT_OVERLAY_2 = 132 -} xcb_xkb_behavior_type_t; - -/** - * @brief xcb_xkb_set_behavior_t - **/ -typedef struct xcb_xkb_set_behavior_t { - xcb_keycode_t keycode; /**< */ - xcb_xkb_behavior_t behavior; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_set_behavior_t; - -/** - * @brief xcb_xkb_set_behavior_iterator_t - **/ -typedef struct xcb_xkb_set_behavior_iterator_t { - xcb_xkb_set_behavior_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_set_behavior_iterator_t; - -/** - * @brief xcb_xkb_set_explicit_t - **/ -typedef struct xcb_xkb_set_explicit_t { - xcb_keycode_t keycode; /**< */ - uint8_t explicit; /**< */ -} xcb_xkb_set_explicit_t; - -/** - * @brief xcb_xkb_set_explicit_iterator_t - **/ -typedef struct xcb_xkb_set_explicit_iterator_t { - xcb_xkb_set_explicit_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_set_explicit_iterator_t; - -/** - * @brief xcb_xkb_key_mod_map_t - **/ -typedef struct xcb_xkb_key_mod_map_t { - xcb_keycode_t keycode; /**< */ - uint8_t mods; /**< */ -} xcb_xkb_key_mod_map_t; - -/** - * @brief xcb_xkb_key_mod_map_iterator_t - **/ -typedef struct xcb_xkb_key_mod_map_iterator_t { - xcb_xkb_key_mod_map_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_mod_map_iterator_t; - -/** - * @brief xcb_xkb_key_v_mod_map_t - **/ -typedef struct xcb_xkb_key_v_mod_map_t { - xcb_keycode_t keycode; /**< */ - uint8_t pad0; /**< */ - uint16_t vmods; /**< */ -} xcb_xkb_key_v_mod_map_t; - -/** - * @brief xcb_xkb_key_v_mod_map_iterator_t - **/ -typedef struct xcb_xkb_key_v_mod_map_iterator_t { - xcb_xkb_key_v_mod_map_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_v_mod_map_iterator_t; - -/** - * @brief xcb_xkb_kt_set_map_entry_t - **/ -typedef struct xcb_xkb_kt_set_map_entry_t { - uint8_t level; /**< */ - uint8_t realMods; /**< */ - uint16_t virtualMods; /**< */ -} xcb_xkb_kt_set_map_entry_t; - -/** - * @brief xcb_xkb_kt_set_map_entry_iterator_t - **/ -typedef struct xcb_xkb_kt_set_map_entry_iterator_t { - xcb_xkb_kt_set_map_entry_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_kt_set_map_entry_iterator_t; - -/** - * @brief xcb_xkb_set_key_type_t - **/ -typedef struct xcb_xkb_set_key_type_t { - uint8_t mask; /**< */ - uint8_t realMods; /**< */ - uint16_t virtualMods; /**< */ - uint8_t numLevels; /**< */ - uint8_t nMapEntries; /**< */ - uint8_t preserve; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_set_key_type_t; - -/** - * @brief xcb_xkb_set_key_type_iterator_t - **/ -typedef struct xcb_xkb_set_key_type_iterator_t { - xcb_xkb_set_key_type_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_set_key_type_iterator_t; - -typedef char xcb_xkb_string8_t; - -/** - * @brief xcb_xkb_string8_iterator_t - **/ -typedef struct xcb_xkb_string8_iterator_t { - xcb_xkb_string8_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_string8_iterator_t; - -/** - * @brief xcb_xkb_outline_t - **/ -typedef struct xcb_xkb_outline_t { - uint8_t nPoints; /**< */ - uint8_t cornerRadius; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_outline_t; - -/** - * @brief xcb_xkb_outline_iterator_t - **/ -typedef struct xcb_xkb_outline_iterator_t { - xcb_xkb_outline_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_outline_iterator_t; - -/** - * @brief xcb_xkb_shape_t - **/ -typedef struct xcb_xkb_shape_t { - xcb_atom_t name; /**< */ - uint8_t nOutlines; /**< */ - uint8_t primaryNdx; /**< */ - uint8_t approxNdx; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_shape_t; - -/** - * @brief xcb_xkb_shape_iterator_t - **/ -typedef struct xcb_xkb_shape_iterator_t { - xcb_xkb_shape_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_shape_iterator_t; - -/** - * @brief xcb_xkb_key_t - **/ -typedef struct xcb_xkb_key_t { - xcb_xkb_string8_t name[4]; /**< */ - int16_t gap; /**< */ - uint8_t shapeNdx; /**< */ - uint8_t colorNdx; /**< */ -} xcb_xkb_key_t; - -/** - * @brief xcb_xkb_key_iterator_t - **/ -typedef struct xcb_xkb_key_iterator_t { - xcb_xkb_key_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_key_iterator_t; - -/** - * @brief xcb_xkb_overlay_key_t - **/ -typedef struct xcb_xkb_overlay_key_t { - xcb_xkb_string8_t over[4]; /**< */ - xcb_xkb_string8_t under[4]; /**< */ -} xcb_xkb_overlay_key_t; - -/** - * @brief xcb_xkb_overlay_key_iterator_t - **/ -typedef struct xcb_xkb_overlay_key_iterator_t { - xcb_xkb_overlay_key_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_overlay_key_iterator_t; - -/** - * @brief xcb_xkb_overlay_row_t - **/ -typedef struct xcb_xkb_overlay_row_t { - uint8_t rowUnder; /**< */ - uint8_t nKeys; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_overlay_row_t; - -/** - * @brief xcb_xkb_overlay_row_iterator_t - **/ -typedef struct xcb_xkb_overlay_row_iterator_t { - xcb_xkb_overlay_row_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_overlay_row_iterator_t; - -/** - * @brief xcb_xkb_overlay_t - **/ -typedef struct xcb_xkb_overlay_t { - xcb_atom_t name; /**< */ - uint8_t nRows; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_xkb_overlay_t; - -/** - * @brief xcb_xkb_overlay_iterator_t - **/ -typedef struct xcb_xkb_overlay_iterator_t { - xcb_xkb_overlay_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_overlay_iterator_t; - -/** - * @brief xcb_xkb_row_t - **/ -typedef struct xcb_xkb_row_t { - int16_t top; /**< */ - int16_t left; /**< */ - uint8_t nKeys; /**< */ - uint8_t vertical; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_row_t; - -/** - * @brief xcb_xkb_row_iterator_t - **/ -typedef struct xcb_xkb_row_iterator_t { - xcb_xkb_row_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_row_iterator_t; - -typedef enum xcb_xkb_doodad_type_t { - XCB_XKB_DOODAD_TYPE_OUTLINE = 1, - XCB_XKB_DOODAD_TYPE_SOLID = 2, - XCB_XKB_DOODAD_TYPE_TEXT = 3, - XCB_XKB_DOODAD_TYPE_INDICATOR = 4, - XCB_XKB_DOODAD_TYPE_LOGO = 5 -} xcb_xkb_doodad_type_t; - -/** - * @brief xcb_xkb_listing_t - **/ -typedef struct xcb_xkb_listing_t { - uint16_t flags; /**< */ - uint16_t length; /**< */ -} xcb_xkb_listing_t; - -/** - * @brief xcb_xkb_listing_iterator_t - **/ -typedef struct xcb_xkb_listing_iterator_t { - xcb_xkb_listing_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_listing_iterator_t; - -/** - * @brief xcb_xkb_device_led_info_t - **/ -typedef struct xcb_xkb_device_led_info_t { - xcb_xkb_led_class_spec_t ledClass; /**< */ - xcb_xkb_id_spec_t ledID; /**< */ - uint32_t namesPresent; /**< */ - uint32_t mapsPresent; /**< */ - uint32_t physIndicators; /**< */ - uint32_t state; /**< */ -} xcb_xkb_device_led_info_t; - -/** - * @brief xcb_xkb_device_led_info_iterator_t - **/ -typedef struct xcb_xkb_device_led_info_iterator_t { - xcb_xkb_device_led_info_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_device_led_info_iterator_t; - -typedef enum xcb_xkb_error_t { - XCB_XKB_ERROR_BAD_DEVICE = 255, - XCB_XKB_ERROR_BAD_CLASS = 254, - XCB_XKB_ERROR_BAD_ID = 253 -} xcb_xkb_error_t; - -/** Opcode for xcb_xkb_keyboard. */ -#define XCB_XKB_KEYBOARD 0 - -/** - * @brief xcb_xkb_keyboard_error_t - **/ -typedef struct xcb_xkb_keyboard_error_t { - uint8_t response_type; /**< */ - uint8_t error_code; /**< */ - uint16_t sequence; /**< */ - uint32_t value; /**< */ - uint16_t minorOpcode; /**< */ - uint8_t majorOpcode; /**< */ - uint8_t pad0[21]; /**< */ -} xcb_xkb_keyboard_error_t; - -typedef enum xcb_xkb_sa_t { - XCB_XKB_SA_CLEAR_LOCKS = 1, - XCB_XKB_SA_LATCH_TO_LOCK = 2, - XCB_XKB_SA_USE_MOD_MAP_MODS = 4, - XCB_XKB_SA_GROUP_ABSOLUTE = 4 -} xcb_xkb_sa_t; - -typedef enum xcb_xkb_sa_type_t { - XCB_XKB_SA_TYPE_NO_ACTION = 0, - XCB_XKB_SA_TYPE_SET_MODS = 1, - XCB_XKB_SA_TYPE_LATCH_MODS = 2, - XCB_XKB_SA_TYPE_LOCK_MODS = 3, - XCB_XKB_SA_TYPE_SET_GROUP = 4, - XCB_XKB_SA_TYPE_LATCH_GROUP = 5, - XCB_XKB_SA_TYPE_LOCK_GROUP = 6, - XCB_XKB_SA_TYPE_MOVE_PTR = 7, - XCB_XKB_SA_TYPE_PTR_BTN = 8, - XCB_XKB_SA_TYPE_LOCK_PTR_BTN = 9, - XCB_XKB_SA_TYPE_SET_PTR_DFLT = 10, - XCB_XKB_SA_TYPE_ISO_LOCK = 11, - XCB_XKB_SA_TYPE_TERMINATE = 12, - XCB_XKB_SA_TYPE_SWITCH_SCREEN = 13, - XCB_XKB_SA_TYPE_SET_CONTROLS = 14, - XCB_XKB_SA_TYPE_LOCK_CONTROLS = 15, - XCB_XKB_SA_TYPE_ACTION_MESSAGE = 16, - XCB_XKB_SA_TYPE_REDIRECT_KEY = 17, - XCB_XKB_SA_TYPE_DEVICE_BTN = 18, - XCB_XKB_SA_TYPE_LOCK_DEVICE_BTN = 19, - XCB_XKB_SA_TYPE_DEVICE_VALUATOR = 20 -} xcb_xkb_sa_type_t; - -/** - * @brief xcb_xkb_sa_no_action_t - **/ -typedef struct xcb_xkb_sa_no_action_t { - uint8_t type; /**< */ - uint8_t pad0[7]; /**< */ -} xcb_xkb_sa_no_action_t; - -/** - * @brief xcb_xkb_sa_no_action_iterator_t - **/ -typedef struct xcb_xkb_sa_no_action_iterator_t { - xcb_xkb_sa_no_action_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_no_action_iterator_t; - -/** - * @brief xcb_xkb_sa_set_mods_t - **/ -typedef struct xcb_xkb_sa_set_mods_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t mask; /**< */ - uint8_t realMods; /**< */ - uint8_t vmodsHigh; /**< */ - uint8_t vmodsLow; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_sa_set_mods_t; - -/** - * @brief xcb_xkb_sa_set_mods_iterator_t - **/ -typedef struct xcb_xkb_sa_set_mods_iterator_t { - xcb_xkb_sa_set_mods_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_set_mods_iterator_t; - -/** - * @brief xcb_xkb_sa_latch_mods_t - **/ -typedef struct xcb_xkb_sa_latch_mods_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t mask; /**< */ - uint8_t realMods; /**< */ - uint8_t vmodsHigh; /**< */ - uint8_t vmodsLow; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_sa_latch_mods_t; - -/** - * @brief xcb_xkb_sa_latch_mods_iterator_t - **/ -typedef struct xcb_xkb_sa_latch_mods_iterator_t { - xcb_xkb_sa_latch_mods_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_latch_mods_iterator_t; - -/** - * @brief xcb_xkb_sa_lock_mods_t - **/ -typedef struct xcb_xkb_sa_lock_mods_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t mask; /**< */ - uint8_t realMods; /**< */ - uint8_t vmodsHigh; /**< */ - uint8_t vmodsLow; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_sa_lock_mods_t; - -/** - * @brief xcb_xkb_sa_lock_mods_iterator_t - **/ -typedef struct xcb_xkb_sa_lock_mods_iterator_t { - xcb_xkb_sa_lock_mods_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_lock_mods_iterator_t; - -/** - * @brief xcb_xkb_sa_set_group_t - **/ -typedef struct xcb_xkb_sa_set_group_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - int8_t group; /**< */ - uint8_t pad0[5]; /**< */ -} xcb_xkb_sa_set_group_t; - -/** - * @brief xcb_xkb_sa_set_group_iterator_t - **/ -typedef struct xcb_xkb_sa_set_group_iterator_t { - xcb_xkb_sa_set_group_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_set_group_iterator_t; - -/** - * @brief xcb_xkb_sa_latch_group_t - **/ -typedef struct xcb_xkb_sa_latch_group_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - int8_t group; /**< */ - uint8_t pad0[5]; /**< */ -} xcb_xkb_sa_latch_group_t; - -/** - * @brief xcb_xkb_sa_latch_group_iterator_t - **/ -typedef struct xcb_xkb_sa_latch_group_iterator_t { - xcb_xkb_sa_latch_group_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_latch_group_iterator_t; - -/** - * @brief xcb_xkb_sa_lock_group_t - **/ -typedef struct xcb_xkb_sa_lock_group_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - int8_t group; /**< */ - uint8_t pad0[5]; /**< */ -} xcb_xkb_sa_lock_group_t; - -/** - * @brief xcb_xkb_sa_lock_group_iterator_t - **/ -typedef struct xcb_xkb_sa_lock_group_iterator_t { - xcb_xkb_sa_lock_group_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_lock_group_iterator_t; - -typedef enum xcb_xkb_sa_move_ptr_flag_t { - XCB_XKB_SA_MOVE_PTR_FLAG_NO_ACCELERATION = 1, - XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_X = 2, - XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_Y = 4 -} xcb_xkb_sa_move_ptr_flag_t; - -/** - * @brief xcb_xkb_sa_move_ptr_t - **/ -typedef struct xcb_xkb_sa_move_ptr_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - int8_t xHigh; /**< */ - uint8_t xLow; /**< */ - int8_t yHigh; /**< */ - uint8_t yLow; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_sa_move_ptr_t; - -/** - * @brief xcb_xkb_sa_move_ptr_iterator_t - **/ -typedef struct xcb_xkb_sa_move_ptr_iterator_t { - xcb_xkb_sa_move_ptr_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_move_ptr_iterator_t; - -/** - * @brief xcb_xkb_sa_ptr_btn_t - **/ -typedef struct xcb_xkb_sa_ptr_btn_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t count; /**< */ - uint8_t button; /**< */ - uint8_t pad0[4]; /**< */ -} xcb_xkb_sa_ptr_btn_t; - -/** - * @brief xcb_xkb_sa_ptr_btn_iterator_t - **/ -typedef struct xcb_xkb_sa_ptr_btn_iterator_t { - xcb_xkb_sa_ptr_btn_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_ptr_btn_iterator_t; - -/** - * @brief xcb_xkb_sa_lock_ptr_btn_t - **/ -typedef struct xcb_xkb_sa_lock_ptr_btn_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t pad0; /**< */ - uint8_t button; /**< */ - uint8_t pad1[4]; /**< */ -} xcb_xkb_sa_lock_ptr_btn_t; - -/** - * @brief xcb_xkb_sa_lock_ptr_btn_iterator_t - **/ -typedef struct xcb_xkb_sa_lock_ptr_btn_iterator_t { - xcb_xkb_sa_lock_ptr_btn_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_lock_ptr_btn_iterator_t; - -typedef enum xcb_xkb_sa_set_ptr_dflt_flag_t { - XCB_XKB_SA_SET_PTR_DFLT_FLAG_DFLT_BTN_ABSOLUTE = 4, - XCB_XKB_SA_SET_PTR_DFLT_FLAG_AFFECT_DFLT_BUTTON = 1 -} xcb_xkb_sa_set_ptr_dflt_flag_t; - -/** - * @brief xcb_xkb_sa_set_ptr_dflt_t - **/ -typedef struct xcb_xkb_sa_set_ptr_dflt_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t affect; /**< */ - int8_t value; /**< */ - uint8_t pad0[4]; /**< */ -} xcb_xkb_sa_set_ptr_dflt_t; - -/** - * @brief xcb_xkb_sa_set_ptr_dflt_iterator_t - **/ -typedef struct xcb_xkb_sa_set_ptr_dflt_iterator_t { - xcb_xkb_sa_set_ptr_dflt_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_set_ptr_dflt_iterator_t; - -typedef enum xcb_xkb_sa_iso_lock_flag_t { - XCB_XKB_SA_ISO_LOCK_FLAG_NO_LOCK = 1, - XCB_XKB_SA_ISO_LOCK_FLAG_NO_UNLOCK = 2, - XCB_XKB_SA_ISO_LOCK_FLAG_USE_MOD_MAP_MODS = 4, - XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE = 4, - XCB_XKB_SA_ISO_LOCK_FLAG_ISO_DFLT_IS_GROUP = 8 -} xcb_xkb_sa_iso_lock_flag_t; - -typedef enum xcb_xkb_sa_iso_lock_no_affect_t { - XCB_XKB_SA_ISO_LOCK_NO_AFFECT_CTRLS = 8, - XCB_XKB_SA_ISO_LOCK_NO_AFFECT_PTR = 16, - XCB_XKB_SA_ISO_LOCK_NO_AFFECT_GROUP = 32, - XCB_XKB_SA_ISO_LOCK_NO_AFFECT_MODS = 64 -} xcb_xkb_sa_iso_lock_no_affect_t; - -/** - * @brief xcb_xkb_sa_iso_lock_t - **/ -typedef struct xcb_xkb_sa_iso_lock_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t mask; /**< */ - uint8_t realMods; /**< */ - int8_t group; /**< */ - uint8_t affect; /**< */ - uint8_t vmodsHigh; /**< */ - uint8_t vmodsLow; /**< */ -} xcb_xkb_sa_iso_lock_t; - -/** - * @brief xcb_xkb_sa_iso_lock_iterator_t - **/ -typedef struct xcb_xkb_sa_iso_lock_iterator_t { - xcb_xkb_sa_iso_lock_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_iso_lock_iterator_t; - -/** - * @brief xcb_xkb_sa_terminate_t - **/ -typedef struct xcb_xkb_sa_terminate_t { - uint8_t type; /**< */ - uint8_t pad0[7]; /**< */ -} xcb_xkb_sa_terminate_t; - -/** - * @brief xcb_xkb_sa_terminate_iterator_t - **/ -typedef struct xcb_xkb_sa_terminate_iterator_t { - xcb_xkb_sa_terminate_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_terminate_iterator_t; - -typedef enum xcb_xkb_switch_screen_flag_t { - XCB_XKB_SWITCH_SCREEN_FLAG_APPLICATION = 1, - XCB_XKB_SWITCH_SCREEN_FLAG_ABSOLUTE = 4 -} xcb_xkb_switch_screen_flag_t; - -/** - * @brief xcb_xkb_sa_switch_screen_t - **/ -typedef struct xcb_xkb_sa_switch_screen_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - int8_t newScreen; /**< */ - uint8_t pad0[5]; /**< */ -} xcb_xkb_sa_switch_screen_t; - -/** - * @brief xcb_xkb_sa_switch_screen_iterator_t - **/ -typedef struct xcb_xkb_sa_switch_screen_iterator_t { - xcb_xkb_sa_switch_screen_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_switch_screen_iterator_t; - -typedef enum xcb_xkb_bool_ctrls_high_t { - XCB_XKB_BOOL_CTRLS_HIGH_ACCESS_X_FEEDBACK = 1, - XCB_XKB_BOOL_CTRLS_HIGH_AUDIBLE_BELL = 2, - XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_1 = 4, - XCB_XKB_BOOL_CTRLS_HIGH_OVERLAY_2 = 8, - XCB_XKB_BOOL_CTRLS_HIGH_IGNORE_GROUP_LOCK = 16 -} xcb_xkb_bool_ctrls_high_t; - -typedef enum xcb_xkb_bool_ctrls_low_t { - XCB_XKB_BOOL_CTRLS_LOW_REPEAT_KEYS = 1, - XCB_XKB_BOOL_CTRLS_LOW_SLOW_KEYS = 2, - XCB_XKB_BOOL_CTRLS_LOW_BOUNCE_KEYS = 4, - XCB_XKB_BOOL_CTRLS_LOW_STICKY_KEYS = 8, - XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS = 16, - XCB_XKB_BOOL_CTRLS_LOW_MOUSE_KEYS_ACCEL = 32, - XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_KEYS = 64, - XCB_XKB_BOOL_CTRLS_LOW_ACCESS_X_TIMEOUT = 128 -} xcb_xkb_bool_ctrls_low_t; - -/** - * @brief xcb_xkb_sa_set_controls_t - **/ -typedef struct xcb_xkb_sa_set_controls_t { - uint8_t type; /**< */ - uint8_t pad0[3]; /**< */ - uint8_t boolCtrlsHigh; /**< */ - uint8_t boolCtrlsLow; /**< */ - uint8_t pad1[2]; /**< */ -} xcb_xkb_sa_set_controls_t; - -/** - * @brief xcb_xkb_sa_set_controls_iterator_t - **/ -typedef struct xcb_xkb_sa_set_controls_iterator_t { - xcb_xkb_sa_set_controls_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_set_controls_iterator_t; - -/** - * @brief xcb_xkb_sa_lock_controls_t - **/ -typedef struct xcb_xkb_sa_lock_controls_t { - uint8_t type; /**< */ - uint8_t pad0[3]; /**< */ - uint8_t boolCtrlsHigh; /**< */ - uint8_t boolCtrlsLow; /**< */ - uint8_t pad1[2]; /**< */ -} xcb_xkb_sa_lock_controls_t; - -/** - * @brief xcb_xkb_sa_lock_controls_iterator_t - **/ -typedef struct xcb_xkb_sa_lock_controls_iterator_t { - xcb_xkb_sa_lock_controls_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_lock_controls_iterator_t; - -typedef enum xcb_xkb_action_message_flag_t { - XCB_XKB_ACTION_MESSAGE_FLAG_ON_PRESS = 1, - XCB_XKB_ACTION_MESSAGE_FLAG_ON_RELEASE = 2, - XCB_XKB_ACTION_MESSAGE_FLAG_GEN_KEY_EVENT = 4 -} xcb_xkb_action_message_flag_t; - -/** - * @brief xcb_xkb_sa_action_message_t - **/ -typedef struct xcb_xkb_sa_action_message_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t message[6]; /**< */ -} xcb_xkb_sa_action_message_t; - -/** - * @brief xcb_xkb_sa_action_message_iterator_t - **/ -typedef struct xcb_xkb_sa_action_message_iterator_t { - xcb_xkb_sa_action_message_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_action_message_iterator_t; - -/** - * @brief xcb_xkb_sa_redirect_key_t - **/ -typedef struct xcb_xkb_sa_redirect_key_t { - uint8_t type; /**< */ - xcb_keycode_t newkey; /**< */ - uint8_t mask; /**< */ - uint8_t realModifiers; /**< */ - uint8_t vmodsMaskHigh; /**< */ - uint8_t vmodsMaskLow; /**< */ - uint8_t vmodsHigh; /**< */ - uint8_t vmodsLow; /**< */ -} xcb_xkb_sa_redirect_key_t; - -/** - * @brief xcb_xkb_sa_redirect_key_iterator_t - **/ -typedef struct xcb_xkb_sa_redirect_key_iterator_t { - xcb_xkb_sa_redirect_key_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_redirect_key_iterator_t; - -/** - * @brief xcb_xkb_sa_device_btn_t - **/ -typedef struct xcb_xkb_sa_device_btn_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t count; /**< */ - uint8_t button; /**< */ - uint8_t device; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_xkb_sa_device_btn_t; - -/** - * @brief xcb_xkb_sa_device_btn_iterator_t - **/ -typedef struct xcb_xkb_sa_device_btn_iterator_t { - xcb_xkb_sa_device_btn_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_device_btn_iterator_t; - -typedef enum xcb_xkb_lock_device_flags_t { - XCB_XKB_LOCK_DEVICE_FLAGS_NO_LOCK = 1, - XCB_XKB_LOCK_DEVICE_FLAGS_NO_UNLOCK = 2 -} xcb_xkb_lock_device_flags_t; - -/** - * @brief xcb_xkb_sa_lock_device_btn_t - **/ -typedef struct xcb_xkb_sa_lock_device_btn_t { - uint8_t type; /**< */ - uint8_t flags; /**< */ - uint8_t pad0; /**< */ - uint8_t button; /**< */ - uint8_t device; /**< */ - uint8_t pad1[3]; /**< */ -} xcb_xkb_sa_lock_device_btn_t; - -/** - * @brief xcb_xkb_sa_lock_device_btn_iterator_t - **/ -typedef struct xcb_xkb_sa_lock_device_btn_iterator_t { - xcb_xkb_sa_lock_device_btn_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_lock_device_btn_iterator_t; - -typedef enum xcb_xkb_sa_val_what_t { - XCB_XKB_SA_VAL_WHAT_IGNORE_VAL = 0, - XCB_XKB_SA_VAL_WHAT_SET_VAL_MIN = 1, - XCB_XKB_SA_VAL_WHAT_SET_VAL_CENTER = 2, - XCB_XKB_SA_VAL_WHAT_SET_VAL_MAX = 3, - XCB_XKB_SA_VAL_WHAT_SET_VAL_RELATIVE = 4, - XCB_XKB_SA_VAL_WHAT_SET_VAL_ABSOLUTE = 5 -} xcb_xkb_sa_val_what_t; - -/** - * @brief xcb_xkb_sa_device_valuator_t - **/ -typedef struct xcb_xkb_sa_device_valuator_t { - uint8_t type; /**< */ - uint8_t device; /**< */ - uint8_t val1what; /**< */ - uint8_t val1index; /**< */ - uint8_t val1value; /**< */ - uint8_t val2what; /**< */ - uint8_t val2index; /**< */ - uint8_t val2value; /**< */ -} xcb_xkb_sa_device_valuator_t; - -/** - * @brief xcb_xkb_sa_device_valuator_iterator_t - **/ -typedef struct xcb_xkb_sa_device_valuator_iterator_t { - xcb_xkb_sa_device_valuator_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sa_device_valuator_iterator_t; - -/** - * @brief xcb_xkb_si_action_t - **/ -typedef struct xcb_xkb_si_action_t { - uint8_t type; /**< */ - uint8_t data[7]; /**< */ -} xcb_xkb_si_action_t; - -/** - * @brief xcb_xkb_si_action_iterator_t - **/ -typedef struct xcb_xkb_si_action_iterator_t { - xcb_xkb_si_action_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_si_action_iterator_t; - -/** - * @brief xcb_xkb_sym_interpret_t - **/ -typedef struct xcb_xkb_sym_interpret_t { - xcb_keysym_t sym; /**< */ - uint8_t mods; /**< */ - uint8_t match; /**< */ - uint8_t virtualMod; /**< */ - uint8_t flags; /**< */ - xcb_xkb_si_action_t action; /**< */ -} xcb_xkb_sym_interpret_t; - -/** - * @brief xcb_xkb_sym_interpret_iterator_t - **/ -typedef struct xcb_xkb_sym_interpret_iterator_t { - xcb_xkb_sym_interpret_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_sym_interpret_iterator_t; - -/** - * @brief xcb_xkb_action_t - **/ -typedef union xcb_xkb_action_t { - xcb_xkb_sa_no_action_t noaction; /**< */ - xcb_xkb_sa_set_mods_t setmods; /**< */ - xcb_xkb_sa_latch_mods_t latchmods; /**< */ - xcb_xkb_sa_lock_mods_t lockmods; /**< */ - xcb_xkb_sa_set_group_t setgroup; /**< */ - xcb_xkb_sa_latch_group_t latchgroup; /**< */ - xcb_xkb_sa_lock_group_t lockgroup; /**< */ - xcb_xkb_sa_move_ptr_t moveptr; /**< */ - xcb_xkb_sa_ptr_btn_t ptrbtn; /**< */ - xcb_xkb_sa_lock_ptr_btn_t lockptrbtn; /**< */ - xcb_xkb_sa_set_ptr_dflt_t setptrdflt; /**< */ - xcb_xkb_sa_iso_lock_t isolock; /**< */ - xcb_xkb_sa_terminate_t terminate; /**< */ - xcb_xkb_sa_switch_screen_t switchscreen; /**< */ - xcb_xkb_sa_set_controls_t setcontrols; /**< */ - xcb_xkb_sa_lock_controls_t lockcontrols; /**< */ - xcb_xkb_sa_action_message_t message; /**< */ - xcb_xkb_sa_redirect_key_t redirect; /**< */ - xcb_xkb_sa_device_btn_t devbtn; /**< */ - xcb_xkb_sa_lock_device_btn_t lockdevbtn; /**< */ - xcb_xkb_sa_device_valuator_t devval; /**< */ - uint8_t type; /**< */ -} xcb_xkb_action_t; - -/** - * @brief xcb_xkb_action_iterator_t - **/ -typedef struct xcb_xkb_action_iterator_t { - xcb_xkb_action_t *data; /**< */ - int rem; /**< */ - int index; /**< */ -} xcb_xkb_action_iterator_t; - -/** - * @brief xcb_xkb_use_extension_cookie_t - **/ -typedef struct xcb_xkb_use_extension_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_use_extension_cookie_t; - -/** Opcode for xcb_xkb_use_extension. */ -#define XCB_XKB_USE_EXTENSION 0 - -/** - * @brief xcb_xkb_use_extension_request_t - **/ -typedef struct xcb_xkb_use_extension_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint16_t wantedMajor; /**< */ - uint16_t wantedMinor; /**< */ -} xcb_xkb_use_extension_request_t; - -/** - * @brief xcb_xkb_use_extension_reply_t - **/ -typedef struct xcb_xkb_use_extension_reply_t { - uint8_t response_type; /**< */ - uint8_t supported; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t serverMajor; /**< */ - uint16_t serverMinor; /**< */ - uint8_t pad0[20]; /**< */ -} xcb_xkb_use_extension_reply_t; - -/** - * @brief xcb_xkb_select_events_details_t - **/ -typedef struct xcb_xkb_select_events_details_t { - uint16_t affectNewKeyboard; /**< */ - uint16_t newKeyboardDetails; /**< */ - uint16_t affectState; /**< */ - uint16_t stateDetails; /**< */ - uint32_t affectCtrls; /**< */ - uint32_t ctrlDetails; /**< */ - uint32_t affectIndicatorState; /**< */ - uint32_t indicatorStateDetails; /**< */ - uint32_t affectIndicatorMap; /**< */ - uint32_t indicatorMapDetails; /**< */ - uint16_t affectNames; /**< */ - uint16_t namesDetails; /**< */ - uint8_t affectCompat; /**< */ - uint8_t compatDetails; /**< */ - uint8_t affectBell; /**< */ - uint8_t bellDetails; /**< */ - uint8_t affectMsgDetails; /**< */ - uint8_t msgDetails; /**< */ - uint16_t affectAccessX; /**< */ - uint16_t accessXDetails; /**< */ - uint16_t affectExtDev; /**< */ - uint16_t extdevDetails; /**< */ -} xcb_xkb_select_events_details_t; - -/** Opcode for xcb_xkb_select_events. */ -#define XCB_XKB_SELECT_EVENTS 1 - -/** - * @brief xcb_xkb_select_events_request_t - **/ -typedef struct xcb_xkb_select_events_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t affectWhich; /**< */ - uint16_t clear; /**< */ - uint16_t selectAll; /**< */ - uint16_t affectMap; /**< */ - uint16_t map; /**< */ -} xcb_xkb_select_events_request_t; - -/** Opcode for xcb_xkb_bell. */ -#define XCB_XKB_BELL 3 - -/** - * @brief xcb_xkb_bell_request_t - **/ -typedef struct xcb_xkb_bell_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - xcb_xkb_bell_class_spec_t bellClass; /**< */ - xcb_xkb_id_spec_t bellID; /**< */ - int8_t percent; /**< */ - uint8_t forceSound; /**< */ - uint8_t eventOnly; /**< */ - uint8_t pad0; /**< */ - int16_t pitch; /**< */ - int16_t duration; /**< */ - uint8_t pad1[2]; /**< */ - xcb_atom_t name; /**< */ - xcb_window_t window; /**< */ -} xcb_xkb_bell_request_t; - -/** - * @brief xcb_xkb_get_state_cookie_t - **/ -typedef struct xcb_xkb_get_state_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_state_cookie_t; - -/** Opcode for xcb_xkb_get_state. */ -#define XCB_XKB_GET_STATE 4 - -/** - * @brief xcb_xkb_get_state_request_t - **/ -typedef struct xcb_xkb_get_state_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_get_state_request_t; - -/** - * @brief xcb_xkb_get_state_reply_t - **/ -typedef struct xcb_xkb_get_state_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t mods; /**< */ - uint8_t baseMods; /**< */ - uint8_t latchedMods; /**< */ - uint8_t lockedMods; /**< */ - uint8_t group; /**< */ - uint8_t lockedGroup; /**< */ - int16_t baseGroup; /**< */ - int16_t latchedGroup; /**< */ - uint8_t compatState; /**< */ - uint8_t grabMods; /**< */ - uint8_t compatGrabMods; /**< */ - uint8_t lookupMods; /**< */ - uint8_t compatLookupMods; /**< */ - uint8_t pad0; /**< */ - uint16_t ptrBtnState; /**< */ - uint8_t pad1[6]; /**< */ -} xcb_xkb_get_state_reply_t; - -/** Opcode for xcb_xkb_latch_lock_state. */ -#define XCB_XKB_LATCH_LOCK_STATE 5 - -/** - * @brief xcb_xkb_latch_lock_state_request_t - **/ -typedef struct xcb_xkb_latch_lock_state_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t affectModLocks; /**< */ - uint8_t modLocks; /**< */ - uint8_t lockGroup; /**< */ - uint8_t groupLock; /**< */ - uint8_t affectModLatches; /**< */ - uint8_t pad0; /**< */ - uint8_t latchGroup; /**< */ - uint16_t groupLatch; /**< */ -} xcb_xkb_latch_lock_state_request_t; - -/** - * @brief xcb_xkb_get_controls_cookie_t - **/ -typedef struct xcb_xkb_get_controls_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_controls_cookie_t; - -/** Opcode for xcb_xkb_get_controls. */ -#define XCB_XKB_GET_CONTROLS 6 - -/** - * @brief xcb_xkb_get_controls_request_t - **/ -typedef struct xcb_xkb_get_controls_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_get_controls_request_t; - -/** - * @brief xcb_xkb_get_controls_reply_t - **/ -typedef struct xcb_xkb_get_controls_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t mouseKeysDfltBtn; /**< */ - uint8_t numGroups; /**< */ - uint8_t groupsWrap; /**< */ - uint8_t internalModsMask; /**< */ - uint8_t ignoreLockModsMask; /**< */ - uint8_t internalModsRealMods; /**< */ - uint8_t ignoreLockModsRealMods; /**< */ - uint8_t pad0; /**< */ - uint16_t internalModsVmods; /**< */ - uint16_t ignoreLockModsVmods; /**< */ - uint16_t repeatDelay; /**< */ - uint16_t repeatInterval; /**< */ - uint16_t slowKeysDelay; /**< */ - uint16_t debounceDelay; /**< */ - uint16_t mouseKeysDelay; /**< */ - uint16_t mouseKeysInterval; /**< */ - uint16_t mouseKeysTimeToMax; /**< */ - uint16_t mouseKeysMaxSpeed; /**< */ - int16_t mouseKeysCurve; /**< */ - uint16_t accessXOption; /**< */ - uint16_t accessXTimeout; /**< */ - uint16_t accessXTimeoutOptionsMask; /**< */ - uint16_t accessXTimeoutOptionsValues; /**< */ - uint8_t pad1[2]; /**< */ - uint32_t accessXTimeoutMask; /**< */ - uint32_t accessXTimeoutValues; /**< */ - uint32_t enabledControls; /**< */ - uint8_t perKeyRepeat[32]; /**< */ -} xcb_xkb_get_controls_reply_t; - -/** Opcode for xcb_xkb_set_controls. */ -#define XCB_XKB_SET_CONTROLS 7 - -/** - * @brief xcb_xkb_set_controls_request_t - **/ -typedef struct xcb_xkb_set_controls_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t affectInternalRealMods; /**< */ - uint8_t internalRealMods; /**< */ - uint8_t affectIgnoreLockRealMods; /**< */ - uint8_t ignoreLockRealMods; /**< */ - uint16_t affectInternalVirtualMods; /**< */ - uint16_t internalVirtualMods; /**< */ - uint16_t affectIgnoreLockVirtualMods; /**< */ - uint16_t ignoreLockVirtualMods; /**< */ - uint8_t mouseKeysDfltBtn; /**< */ - uint8_t groupsWrap; /**< */ - uint16_t accessXOptions; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t affectEnabledControls; /**< */ - uint32_t enabledControls; /**< */ - uint32_t changeControls; /**< */ - uint16_t repeatDelay; /**< */ - uint16_t repeatInterval; /**< */ - uint16_t slowKeysDelay; /**< */ - uint16_t debounceDelay; /**< */ - uint16_t mouseKeysDelay; /**< */ - uint16_t mouseKeysInterval; /**< */ - uint16_t mouseKeysTimeToMax; /**< */ - uint16_t mouseKeysMaxSpeed; /**< */ - int16_t mouseKeysCurve; /**< */ - uint16_t accessXTimeout; /**< */ - uint32_t accessXTimeoutMask; /**< */ - uint32_t accessXTimeoutValues; /**< */ - uint16_t accessXTimeoutOptionsMask; /**< */ - uint16_t accessXTimeoutOptionsValues; /**< */ - uint8_t perKeyRepeat[32]; /**< */ -} xcb_xkb_set_controls_request_t; - -/** - * @brief xcb_xkb_get_map_cookie_t - **/ -typedef struct xcb_xkb_get_map_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_map_cookie_t; - -/** Opcode for xcb_xkb_get_map. */ -#define XCB_XKB_GET_MAP 8 - -/** - * @brief xcb_xkb_get_map_request_t - **/ -typedef struct xcb_xkb_get_map_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t full; /**< */ - uint16_t partial; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - xcb_keycode_t firstKeySym; /**< */ - uint8_t nKeySyms; /**< */ - xcb_keycode_t firstKeyAction; /**< */ - uint8_t nKeyActions; /**< */ - xcb_keycode_t firstKeyBehavior; /**< */ - uint8_t nKeyBehaviors; /**< */ - uint16_t virtualMods; /**< */ - xcb_keycode_t firstKeyExplicit; /**< */ - uint8_t nKeyExplicit; /**< */ - xcb_keycode_t firstModMapKey; /**< */ - uint8_t nModMapKeys; /**< */ - xcb_keycode_t firstVModMapKey; /**< */ - uint8_t nVModMapKeys; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_get_map_request_t; - -/** - * @brief xcb_xkb_get_map_map_t - **/ -typedef struct xcb_xkb_get_map_map_t { - xcb_xkb_key_type_t *types_rtrn; /**< */ - xcb_xkb_key_sym_map_t *syms_rtrn; /**< */ - uint8_t *acts_rtrn_count; /**< */ - uint8_t *alignment_pad; /**< */ - xcb_xkb_action_t *acts_rtrn_acts; /**< */ - xcb_xkb_set_behavior_t *behaviors_rtrn; /**< */ - uint8_t *vmods_rtrn; /**< */ - uint8_t *alignment_pad2; /**< */ - xcb_xkb_set_explicit_t *explicit_rtrn; /**< */ - uint16_t *alignment_pad3; /**< */ - xcb_xkb_key_mod_map_t *modmap_rtrn; /**< */ - uint16_t *alignment_pad4; /**< */ - xcb_xkb_key_v_mod_map_t *vmodmap_rtrn; /**< */ -} xcb_xkb_get_map_map_t; - -/** - * @brief xcb_xkb_get_map_reply_t - **/ -typedef struct xcb_xkb_get_map_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t pad0[2]; /**< */ - xcb_keycode_t minKeyCode; /**< */ - xcb_keycode_t maxKeyCode; /**< */ - uint16_t present; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - uint8_t totalTypes; /**< */ - xcb_keycode_t firstKeySym; /**< */ - uint16_t totalSyms; /**< */ - uint8_t nKeySyms; /**< */ - xcb_keycode_t firstKeyAction; /**< */ - uint16_t totalActions; /**< */ - uint8_t nKeyActions; /**< */ - xcb_keycode_t firstKeyBehavior; /**< */ - uint8_t nKeyBehaviors; /**< */ - uint8_t totalKeyBehaviors; /**< */ - xcb_keycode_t firstKeyExplicit; /**< */ - uint8_t nKeyExplicit; /**< */ - uint8_t totalKeyExplicit; /**< */ - xcb_keycode_t firstModMapKey; /**< */ - uint8_t nModMapKeys; /**< */ - uint8_t totalModMapKeys; /**< */ - xcb_keycode_t firstVModMapKey; /**< */ - uint8_t nVModMapKeys; /**< */ - uint8_t totalVModMapKeys; /**< */ - uint8_t pad1; /**< */ - uint16_t virtualMods; /**< */ -} xcb_xkb_get_map_reply_t; - -/** - * @brief xcb_xkb_set_map_values_t - **/ -typedef struct xcb_xkb_set_map_values_t { - xcb_xkb_set_key_type_t *types; /**< */ - xcb_xkb_key_sym_map_t *syms; /**< */ - uint8_t *actionsCount; /**< */ - xcb_xkb_action_t *actions; /**< */ - xcb_xkb_set_behavior_t *behaviors; /**< */ - uint8_t *vmods; /**< */ - xcb_xkb_set_explicit_t *explicit; /**< */ - xcb_xkb_key_mod_map_t *modmap; /**< */ - xcb_xkb_key_v_mod_map_t *vmodmap; /**< */ -} xcb_xkb_set_map_values_t; - -/** Opcode for xcb_xkb_set_map. */ -#define XCB_XKB_SET_MAP 9 - -/** - * @brief xcb_xkb_set_map_request_t - **/ -typedef struct xcb_xkb_set_map_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t present; /**< */ - uint16_t flags; /**< */ - xcb_keycode_t minKeyCode; /**< */ - xcb_keycode_t maxKeyCode; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - xcb_keycode_t firstKeySym; /**< */ - uint8_t nKeySyms; /**< */ - uint16_t totalSyms; /**< */ - xcb_keycode_t firstKeyAction; /**< */ - uint8_t nKeyActions; /**< */ - uint16_t totalActions; /**< */ - xcb_keycode_t firstKeyBehavior; /**< */ - uint8_t nKeyBehaviors; /**< */ - uint8_t totalKeyBehaviors; /**< */ - xcb_keycode_t firstKeyExplicit; /**< */ - uint8_t nKeyExplicit; /**< */ - uint8_t totalKeyExplicit; /**< */ - xcb_keycode_t firstModMapKey; /**< */ - uint8_t nModMapKeys; /**< */ - uint8_t totalModMapKeys; /**< */ - xcb_keycode_t firstVModMapKey; /**< */ - uint8_t nVModMapKeys; /**< */ - uint8_t totalVModMapKeys; /**< */ - uint16_t virtualMods; /**< */ -} xcb_xkb_set_map_request_t; - -/** - * @brief xcb_xkb_get_compat_map_cookie_t - **/ -typedef struct xcb_xkb_get_compat_map_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_compat_map_cookie_t; - -/** Opcode for xcb_xkb_get_compat_map. */ -#define XCB_XKB_GET_COMPAT_MAP 10 - -/** - * @brief xcb_xkb_get_compat_map_request_t - **/ -typedef struct xcb_xkb_get_compat_map_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t groups; /**< */ - uint8_t getAllSI; /**< */ - uint16_t firstSI; /**< */ - uint16_t nSI; /**< */ -} xcb_xkb_get_compat_map_request_t; - -/** - * @brief xcb_xkb_get_compat_map_reply_t - **/ -typedef struct xcb_xkb_get_compat_map_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint8_t groupsRtrn; /**< */ - uint8_t pad0; /**< */ - uint16_t firstSIRtrn; /**< */ - uint16_t nSIRtrn; /**< */ - uint16_t nTotalSI; /**< */ - uint8_t pad1[16]; /**< */ -} xcb_xkb_get_compat_map_reply_t; - -/** Opcode for xcb_xkb_set_compat_map. */ -#define XCB_XKB_SET_COMPAT_MAP 11 - -/** - * @brief xcb_xkb_set_compat_map_request_t - **/ -typedef struct xcb_xkb_set_compat_map_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0; /**< */ - uint8_t recomputeActions; /**< */ - uint8_t truncateSI; /**< */ - uint8_t groups; /**< */ - uint16_t firstSI; /**< */ - uint16_t nSI; /**< */ - uint8_t pad1[2]; /**< */ -} xcb_xkb_set_compat_map_request_t; - -/** - * @brief xcb_xkb_get_indicator_state_cookie_t - **/ -typedef struct xcb_xkb_get_indicator_state_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_indicator_state_cookie_t; - -/** Opcode for xcb_xkb_get_indicator_state. */ -#define XCB_XKB_GET_INDICATOR_STATE 12 - -/** - * @brief xcb_xkb_get_indicator_state_request_t - **/ -typedef struct xcb_xkb_get_indicator_state_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_get_indicator_state_request_t; - -/** - * @brief xcb_xkb_get_indicator_state_reply_t - **/ -typedef struct xcb_xkb_get_indicator_state_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t state; /**< */ - uint8_t pad0[20]; /**< */ -} xcb_xkb_get_indicator_state_reply_t; - -/** - * @brief xcb_xkb_get_indicator_map_cookie_t - **/ -typedef struct xcb_xkb_get_indicator_map_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_indicator_map_cookie_t; - -/** Opcode for xcb_xkb_get_indicator_map. */ -#define XCB_XKB_GET_INDICATOR_MAP 13 - -/** - * @brief xcb_xkb_get_indicator_map_request_t - **/ -typedef struct xcb_xkb_get_indicator_map_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t which; /**< */ -} xcb_xkb_get_indicator_map_request_t; - -/** - * @brief xcb_xkb_get_indicator_map_reply_t - **/ -typedef struct xcb_xkb_get_indicator_map_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t which; /**< */ - uint32_t realIndicators; /**< */ - uint8_t nIndicators; /**< */ - uint8_t pad0[15]; /**< */ -} xcb_xkb_get_indicator_map_reply_t; - -/** Opcode for xcb_xkb_set_indicator_map. */ -#define XCB_XKB_SET_INDICATOR_MAP 14 - -/** - * @brief xcb_xkb_set_indicator_map_request_t - **/ -typedef struct xcb_xkb_set_indicator_map_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t which; /**< */ -} xcb_xkb_set_indicator_map_request_t; - -/** - * @brief xcb_xkb_get_named_indicator_cookie_t - **/ -typedef struct xcb_xkb_get_named_indicator_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_named_indicator_cookie_t; - -/** Opcode for xcb_xkb_get_named_indicator. */ -#define XCB_XKB_GET_NAMED_INDICATOR 15 - -/** - * @brief xcb_xkb_get_named_indicator_request_t - **/ -typedef struct xcb_xkb_get_named_indicator_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - xcb_xkb_led_class_spec_t ledClass; /**< */ - xcb_xkb_id_spec_t ledID; /**< */ - uint8_t pad0[2]; /**< */ - xcb_atom_t indicator; /**< */ -} xcb_xkb_get_named_indicator_request_t; - -/** - * @brief xcb_xkb_get_named_indicator_reply_t - **/ -typedef struct xcb_xkb_get_named_indicator_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_atom_t indicator; /**< */ - uint8_t found; /**< */ - uint8_t on; /**< */ - uint8_t realIndicator; /**< */ - uint8_t ndx; /**< */ - uint8_t map_flags; /**< */ - uint8_t map_whichGroups; /**< */ - uint8_t map_groups; /**< */ - uint8_t map_whichMods; /**< */ - uint8_t map_mods; /**< */ - uint8_t map_realMods; /**< */ - uint16_t map_vmod; /**< */ - uint32_t map_ctrls; /**< */ - uint8_t supported; /**< */ - uint8_t pad0[3]; /**< */ -} xcb_xkb_get_named_indicator_reply_t; - -/** Opcode for xcb_xkb_set_named_indicator. */ -#define XCB_XKB_SET_NAMED_INDICATOR 16 - -/** - * @brief xcb_xkb_set_named_indicator_request_t - **/ -typedef struct xcb_xkb_set_named_indicator_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - xcb_xkb_led_class_spec_t ledClass; /**< */ - xcb_xkb_id_spec_t ledID; /**< */ - uint8_t pad0[2]; /**< */ - xcb_atom_t indicator; /**< */ - uint8_t setState; /**< */ - uint8_t on; /**< */ - uint8_t setMap; /**< */ - uint8_t createMap; /**< */ - uint8_t pad1; /**< */ - uint8_t map_flags; /**< */ - uint8_t map_whichGroups; /**< */ - uint8_t map_groups; /**< */ - uint8_t map_whichMods; /**< */ - uint8_t map_realMods; /**< */ - uint16_t map_vmods; /**< */ - uint32_t map_ctrls; /**< */ -} xcb_xkb_set_named_indicator_request_t; - -/** - * @brief xcb_xkb_get_names_cookie_t - **/ -typedef struct xcb_xkb_get_names_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_names_cookie_t; - -/** Opcode for xcb_xkb_get_names. */ -#define XCB_XKB_GET_NAMES 17 - -/** - * @brief xcb_xkb_get_names_request_t - **/ -typedef struct xcb_xkb_get_names_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t which; /**< */ -} xcb_xkb_get_names_request_t; - -/** - * @brief xcb_xkb_get_names_value_list_t - **/ -typedef struct xcb_xkb_get_names_value_list_t { - xcb_atom_t keycodesName; /**< */ - xcb_atom_t geometryName; /**< */ - xcb_atom_t symbolsName; /**< */ - xcb_atom_t physSymbolsName; /**< */ - xcb_atom_t typesName; /**< */ - xcb_atom_t compatName; /**< */ - xcb_atom_t *typeNames; /**< */ - uint8_t *nLevelsPerType; /**< */ - uint8_t *alignment_pad; /**< */ - xcb_atom_t *ktLevelNames; /**< */ - xcb_atom_t *indicatorNames; /**< */ - xcb_atom_t *virtualModNames; /**< */ - xcb_atom_t *groups; /**< */ - xcb_xkb_key_name_t *keyNames; /**< */ - xcb_xkb_key_alias_t *keyAliases; /**< */ - xcb_atom_t *radioGroupNames; /**< */ -} xcb_xkb_get_names_value_list_t; - -/** - * @brief xcb_xkb_get_names_reply_t - **/ -typedef struct xcb_xkb_get_names_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t which; /**< */ - xcb_keycode_t minKeyCode; /**< */ - xcb_keycode_t maxKeyCode; /**< */ - uint8_t nTypes; /**< */ - uint8_t groupNames; /**< */ - uint16_t virtualMods; /**< */ - xcb_keycode_t firstKey; /**< */ - uint8_t nKeys; /**< */ - uint32_t indicators; /**< */ - uint8_t nRadioGroups; /**< */ - uint8_t nKeyAliases; /**< */ - uint16_t nKTLevels; /**< */ - uint8_t pad0[4]; /**< */ -} xcb_xkb_get_names_reply_t; - -/** - * @brief xcb_xkb_set_names_values_t - **/ -typedef struct xcb_xkb_set_names_values_t { - xcb_atom_t keycodesName; /**< */ - xcb_atom_t geometryName; /**< */ - xcb_atom_t symbolsName; /**< */ - xcb_atom_t physSymbolsName; /**< */ - xcb_atom_t typesName; /**< */ - xcb_atom_t compatName; /**< */ - xcb_atom_t *typeNames; /**< */ - uint8_t *nLevelsPerType; /**< */ - xcb_atom_t *ktLevelNames; /**< */ - xcb_atom_t *indicatorNames; /**< */ - xcb_atom_t *virtualModNames; /**< */ - xcb_atom_t *groups; /**< */ - xcb_xkb_key_name_t *keyNames; /**< */ - xcb_xkb_key_alias_t *keyAliases; /**< */ - xcb_atom_t *radioGroupNames; /**< */ -} xcb_xkb_set_names_values_t; - -/** Opcode for xcb_xkb_set_names. */ -#define XCB_XKB_SET_NAMES 18 - -/** - * @brief xcb_xkb_set_names_request_t - **/ -typedef struct xcb_xkb_set_names_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t virtualMods; /**< */ - uint32_t which; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - uint8_t firstKTLevelt; /**< */ - uint8_t nKTLevels; /**< */ - uint32_t indicators; /**< */ - uint8_t groupNames; /**< */ - uint8_t nRadioGroups; /**< */ - xcb_keycode_t firstKey; /**< */ - uint8_t nKeys; /**< */ - uint8_t nKeyAliases; /**< */ - uint8_t pad0; /**< */ - uint16_t totalKTLevelNames; /**< */ -} xcb_xkb_set_names_request_t; - -/** - * @brief xcb_xkb_per_client_flags_cookie_t - **/ -typedef struct xcb_xkb_per_client_flags_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_per_client_flags_cookie_t; - -/** Opcode for xcb_xkb_per_client_flags. */ -#define XCB_XKB_PER_CLIENT_FLAGS 21 - -/** - * @brief xcb_xkb_per_client_flags_request_t - **/ -typedef struct xcb_xkb_per_client_flags_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t change; /**< */ - uint32_t value; /**< */ - uint32_t ctrlsToChange; /**< */ - uint32_t autoCtrls; /**< */ - uint32_t autoCtrlsValues; /**< */ -} xcb_xkb_per_client_flags_request_t; - -/** - * @brief xcb_xkb_per_client_flags_reply_t - **/ -typedef struct xcb_xkb_per_client_flags_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t supported; /**< */ - uint32_t value; /**< */ - uint32_t autoCtrls; /**< */ - uint32_t autoCtrlsValues; /**< */ - uint8_t pad0[8]; /**< */ -} xcb_xkb_per_client_flags_reply_t; - -/** - * @brief xcb_xkb_list_components_cookie_t - **/ -typedef struct xcb_xkb_list_components_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_list_components_cookie_t; - -/** Opcode for xcb_xkb_list_components. */ -#define XCB_XKB_LIST_COMPONENTS 22 - -/** - * @brief xcb_xkb_list_components_request_t - **/ -typedef struct xcb_xkb_list_components_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t maxNames; /**< */ -} xcb_xkb_list_components_request_t; - -/** - * @brief xcb_xkb_list_components_reply_t - **/ -typedef struct xcb_xkb_list_components_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t nKeymaps; /**< */ - uint16_t nKeycodes; /**< */ - uint16_t nTypes; /**< */ - uint16_t nCompatMaps; /**< */ - uint16_t nSymbols; /**< */ - uint16_t nGeometries; /**< */ - uint16_t extra; /**< */ - uint8_t pad0[10]; /**< */ -} xcb_xkb_list_components_reply_t; - -/** - * @brief xcb_xkb_get_kbd_by_name_cookie_t - **/ -typedef struct xcb_xkb_get_kbd_by_name_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_kbd_by_name_cookie_t; - -/** Opcode for xcb_xkb_get_kbd_by_name. */ -#define XCB_XKB_GET_KBD_BY_NAME 23 - -/** - * @brief xcb_xkb_get_kbd_by_name_request_t - **/ -typedef struct xcb_xkb_get_kbd_by_name_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t need; /**< */ - uint16_t want; /**< */ - uint8_t load; /**< */ - uint8_t pad0; /**< */ -} xcb_xkb_get_kbd_by_name_request_t; - -/** - * @brief xcb_xkb_get_kbd_by_name_replies_types_map_t - **/ -typedef struct xcb_xkb_get_kbd_by_name_replies_types_map_t { - xcb_xkb_key_type_t *types_rtrn; /**< */ - xcb_xkb_key_sym_map_t *syms_rtrn; /**< */ - uint8_t *acts_rtrn_count; /**< */ - xcb_xkb_action_t *acts_rtrn_acts; /**< */ - xcb_xkb_set_behavior_t *behaviors_rtrn; /**< */ - uint8_t *vmods_rtrn; /**< */ - xcb_xkb_set_explicit_t *explicit_rtrn; /**< */ - xcb_xkb_key_mod_map_t *modmap_rtrn; /**< */ - xcb_xkb_key_v_mod_map_t *vmodmap_rtrn; /**< */ -} xcb_xkb_get_kbd_by_name_replies_types_map_t; - -/** - * @brief xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t - **/ -typedef struct xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t { - xcb_atom_t keycodesName; /**< */ - xcb_atom_t geometryName; /**< */ - xcb_atom_t symbolsName; /**< */ - xcb_atom_t physSymbolsName; /**< */ - xcb_atom_t typesName; /**< */ - xcb_atom_t compatName; /**< */ - xcb_atom_t *typeNames; /**< */ - uint8_t *nLevelsPerType; /**< */ - xcb_atom_t *ktLevelNames; /**< */ - xcb_atom_t *indicatorNames; /**< */ - xcb_atom_t *virtualModNames; /**< */ - xcb_atom_t *groups; /**< */ - xcb_xkb_key_name_t *keyNames; /**< */ - xcb_xkb_key_alias_t *keyAliases; /**< */ - xcb_atom_t *radioGroupNames; /**< */ -} xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t; - -/** - * @brief xcb_xkb_get_kbd_by_name_replies_t - **/ -typedef struct xcb_xkb_get_kbd_by_name_replies_t { - struct _types { - uint8_t getmap_type; /**< */ - uint8_t typeDeviceID; /**< */ - uint16_t getmap_sequence; /**< */ - uint32_t getmap_length; /**< */ - uint8_t pad0[2]; /**< */ - xcb_keycode_t typeMinKeyCode; /**< */ - xcb_keycode_t typeMaxKeyCode; /**< */ - uint16_t present; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - uint8_t totalTypes; /**< */ - xcb_keycode_t firstKeySym; /**< */ - uint16_t totalSyms; /**< */ - uint8_t nKeySyms; /**< */ - xcb_keycode_t firstKeyAction; /**< */ - uint16_t totalActions; /**< */ - uint8_t nKeyActions; /**< */ - xcb_keycode_t firstKeyBehavior; /**< */ - uint8_t nKeyBehaviors; /**< */ - uint8_t totalKeyBehaviors; /**< */ - xcb_keycode_t firstKeyExplicit; /**< */ - uint8_t nKeyExplicit; /**< */ - uint8_t totalKeyExplicit; /**< */ - xcb_keycode_t firstModMapKey; /**< */ - uint8_t nModMapKeys; /**< */ - uint8_t totalModMapKeys; /**< */ - xcb_keycode_t firstVModMapKey; /**< */ - uint8_t nVModMapKeys; /**< */ - uint8_t totalVModMapKeys; /**< */ - uint8_t pad1; /**< */ - uint16_t virtualMods; /**< */ - xcb_xkb_get_kbd_by_name_replies_types_map_t map; /**< */ - } types; - struct _compat_map { - uint8_t compatmap_type; /**< */ - uint8_t compatDeviceID; /**< */ - uint16_t compatmap_sequence; /**< */ - uint32_t compatmap_length; /**< */ - uint8_t groupsRtrn; /**< */ - uint8_t pad0; /**< */ - uint16_t firstSIRtrn; /**< */ - uint16_t nSIRtrn; /**< */ - uint16_t nTotalSI; /**< */ - uint8_t pad1[16]; /**< */ - xcb_xkb_sym_interpret_t *si_rtrn; /**< */ - xcb_xkb_mod_def_t *group_rtrn; /**< */ - } compat_map; - struct _indicator_maps { - uint8_t indicatormap_type; /**< */ - uint8_t indicatorDeviceID; /**< */ - uint16_t indicatormap_sequence; /**< */ - uint32_t indicatormap_length; /**< */ - uint32_t which; /**< */ - uint32_t realIndicators; /**< */ - uint8_t nIndicators; /**< */ - uint8_t pad0[15]; /**< */ - xcb_xkb_indicator_map_t *maps; /**< */ - } indicator_maps; - struct _key_names { - uint8_t keyname_type; /**< */ - uint8_t keyDeviceID; /**< */ - uint16_t keyname_sequence; /**< */ - uint32_t keyname_length; /**< */ - uint32_t which; /**< */ - xcb_keycode_t keyMinKeyCode; /**< */ - xcb_keycode_t keyMaxKeyCode; /**< */ - uint8_t nTypes; /**< */ - uint8_t groupNames; /**< */ - uint16_t virtualMods; /**< */ - xcb_keycode_t firstKey; /**< */ - uint8_t nKeys; /**< */ - uint32_t indicators; /**< */ - uint8_t nRadioGroups; /**< */ - uint8_t nKeyAliases; /**< */ - uint16_t nKTLevels; /**< */ - uint8_t pad0[4]; /**< */ - xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t valueList; /**< */ - } key_names; - struct _geometry { - uint8_t geometry_type; /**< */ - uint8_t geometryDeviceID; /**< */ - uint16_t geometry_sequence; /**< */ - uint32_t geometry_length; /**< */ - xcb_atom_t name; /**< */ - uint8_t geometryFound; /**< */ - uint8_t pad0; /**< */ - uint16_t widthMM; /**< */ - uint16_t heightMM; /**< */ - uint16_t nProperties; /**< */ - uint16_t nColors; /**< */ - uint16_t nShapes; /**< */ - uint16_t nSections; /**< */ - uint16_t nDoodads; /**< */ - uint16_t nKeyAliases; /**< */ - uint8_t baseColorNdx; /**< */ - uint8_t labelColorNdx; /**< */ - xcb_xkb_counted_string_16_t *labelFont; /**< */ - } geometry; -} xcb_xkb_get_kbd_by_name_replies_t; - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_replies_types_map_t * xcb_xkb_get_kbd_by_name_replies_types_map - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_get_kbd_by_name_replies_types_map_t * - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_replies_types_map_t * -xcb_xkb_get_kbd_by_name_replies_types_map (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */); - -/** - * @brief xcb_xkb_get_kbd_by_name_reply_t - **/ -typedef struct xcb_xkb_get_kbd_by_name_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - xcb_keycode_t minKeyCode; /**< */ - xcb_keycode_t maxKeyCode; /**< */ - uint8_t loaded; /**< */ - uint8_t newKeyboard; /**< */ - uint16_t found; /**< */ - uint16_t reported; /**< */ - uint8_t pad0[16]; /**< */ -} xcb_xkb_get_kbd_by_name_reply_t; - -/** - * @brief xcb_xkb_get_device_info_cookie_t - **/ -typedef struct xcb_xkb_get_device_info_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_get_device_info_cookie_t; - -/** Opcode for xcb_xkb_get_device_info. */ -#define XCB_XKB_GET_DEVICE_INFO 24 - -/** - * @brief xcb_xkb_get_device_info_request_t - **/ -typedef struct xcb_xkb_get_device_info_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint16_t wanted; /**< */ - uint8_t allButtons; /**< */ - uint8_t firstButton; /**< */ - uint8_t nButtons; /**< */ - uint8_t pad0; /**< */ - xcb_xkb_led_class_spec_t ledClass; /**< */ - xcb_xkb_id_spec_t ledID; /**< */ -} xcb_xkb_get_device_info_request_t; - -/** - * @brief xcb_xkb_get_device_info_reply_t - **/ -typedef struct xcb_xkb_get_device_info_reply_t { - uint8_t response_type; /**< */ - uint8_t deviceID; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint16_t present; /**< */ - uint16_t supported; /**< */ - uint16_t unsupported; /**< */ - uint16_t nDeviceLedFBs; /**< */ - uint8_t firstBtnWanted; /**< */ - uint8_t nBtnsWanted; /**< */ - uint8_t firstBtnRtrn; /**< */ - uint8_t nBtnsRtrn; /**< */ - uint8_t totalBtns; /**< */ - uint8_t hasOwnState; /**< */ - uint16_t dfltKbdFB; /**< */ - uint16_t dfltLedFB; /**< */ - uint8_t pad0[2]; /**< */ - xcb_atom_t devType; /**< */ - uint16_t nameLen; /**< */ -} xcb_xkb_get_device_info_reply_t; - -/** Opcode for xcb_xkb_set_device_info. */ -#define XCB_XKB_SET_DEVICE_INFO 25 - -/** - * @brief xcb_xkb_set_device_info_request_t - **/ -typedef struct xcb_xkb_set_device_info_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - xcb_xkb_device_spec_t deviceSpec; /**< */ - uint8_t firstBtn; /**< */ - uint8_t nBtns; /**< */ - uint16_t change; /**< */ - uint16_t nDeviceLedFBs; /**< */ -} xcb_xkb_set_device_info_request_t; - -/** - * @brief xcb_xkb_set_debugging_flags_cookie_t - **/ -typedef struct xcb_xkb_set_debugging_flags_cookie_t { - unsigned int sequence; /**< */ -} xcb_xkb_set_debugging_flags_cookie_t; - -/** Opcode for xcb_xkb_set_debugging_flags. */ -#define XCB_XKB_SET_DEBUGGING_FLAGS 101 - -/** - * @brief xcb_xkb_set_debugging_flags_request_t - **/ -typedef struct xcb_xkb_set_debugging_flags_request_t { - uint8_t major_opcode; /**< */ - uint8_t minor_opcode; /**< */ - uint16_t length; /**< */ - uint16_t msgLength; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t affectFlags; /**< */ - uint32_t flags; /**< */ - uint32_t affectCtrls; /**< */ - uint32_t ctrls; /**< */ -} xcb_xkb_set_debugging_flags_request_t; - -/** - * @brief xcb_xkb_set_debugging_flags_reply_t - **/ -typedef struct xcb_xkb_set_debugging_flags_reply_t { - uint8_t response_type; /**< */ - uint8_t pad0; /**< */ - uint16_t sequence; /**< */ - uint32_t length; /**< */ - uint32_t currentFlags; /**< */ - uint32_t currentCtrls; /**< */ - uint32_t supportedFlags; /**< */ - uint32_t supportedCtrls; /**< */ - uint8_t pad1[8]; /**< */ -} xcb_xkb_set_debugging_flags_reply_t; - -/** Opcode for xcb_xkb_new_keyboard_notify. */ -#define XCB_XKB_NEW_KEYBOARD_NOTIFY 0 - -/** - * @brief xcb_xkb_new_keyboard_notify_event_t - **/ -typedef struct xcb_xkb_new_keyboard_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t oldDeviceID; /**< */ - xcb_keycode_t minKeyCode; /**< */ - xcb_keycode_t maxKeyCode; /**< */ - xcb_keycode_t oldMinKeyCode; /**< */ - xcb_keycode_t oldMaxKeyCode; /**< */ - uint8_t requestMajor; /**< */ - uint8_t requestMinor; /**< */ - uint16_t changed; /**< */ - uint8_t pad0[14]; /**< */ -} xcb_xkb_new_keyboard_notify_event_t; - -/** Opcode for xcb_xkb_map_notify. */ -#define XCB_XKB_MAP_NOTIFY 1 - -/** - * @brief xcb_xkb_map_notify_event_t - **/ -typedef struct xcb_xkb_map_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t ptrBtnActions; /**< */ - uint16_t changed; /**< */ - xcb_keycode_t minKeyCode; /**< */ - xcb_keycode_t maxKeyCode; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - xcb_keycode_t firstKeySym; /**< */ - uint8_t nKeySyms; /**< */ - xcb_keycode_t firstKeyAct; /**< */ - uint8_t nKeyActs; /**< */ - xcb_keycode_t firstKeyBehavior; /**< */ - uint8_t nKeyBehavior; /**< */ - xcb_keycode_t firstKeyExplicit; /**< */ - uint8_t nKeyExplicit; /**< */ - xcb_keycode_t firstModMapKey; /**< */ - uint8_t nModMapKeys; /**< */ - xcb_keycode_t firstVModMapKey; /**< */ - uint8_t nVModMapKeys; /**< */ - uint16_t virtualMods; /**< */ - uint8_t pad0[2]; /**< */ -} xcb_xkb_map_notify_event_t; - -/** Opcode for xcb_xkb_state_notify. */ -#define XCB_XKB_STATE_NOTIFY 2 - -/** - * @brief xcb_xkb_state_notify_event_t - **/ -typedef struct xcb_xkb_state_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t mods; /**< */ - uint8_t baseMods; /**< */ - uint8_t latchedMods; /**< */ - uint8_t lockedMods; /**< */ - uint8_t group; /**< */ - int16_t baseGroup; /**< */ - int16_t latchedGroup; /**< */ - uint8_t lockedGroup; /**< */ - uint8_t compatState; /**< */ - uint8_t grabMods; /**< */ - uint8_t compatGrabMods; /**< */ - uint8_t lookupMods; /**< */ - uint8_t compatLoockupMods; /**< */ - uint16_t ptrBtnState; /**< */ - uint16_t changed; /**< */ - xcb_keycode_t keycode; /**< */ - uint8_t eventType; /**< */ - uint8_t requestMajor; /**< */ - uint8_t requestMinor; /**< */ -} xcb_xkb_state_notify_event_t; - -/** Opcode for xcb_xkb_controls_notify. */ -#define XCB_XKB_CONTROLS_NOTIFY 3 - -/** - * @brief xcb_xkb_controls_notify_event_t - **/ -typedef struct xcb_xkb_controls_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t numGroups; /**< */ - uint8_t pad0[2]; /**< */ - uint32_t changedControls; /**< */ - uint32_t enabledControls; /**< */ - uint32_t enabledControlChanges; /**< */ - xcb_keycode_t keycode; /**< */ - uint8_t eventType; /**< */ - uint8_t requestMajor; /**< */ - uint8_t requestMinor; /**< */ - uint8_t pad1[4]; /**< */ -} xcb_xkb_controls_notify_event_t; - -/** Opcode for xcb_xkb_indicator_state_notify. */ -#define XCB_XKB_INDICATOR_STATE_NOTIFY 4 - -/** - * @brief xcb_xkb_indicator_state_notify_event_t - **/ -typedef struct xcb_xkb_indicator_state_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t pad0[3]; /**< */ - uint32_t state; /**< */ - uint32_t stateChanged; /**< */ - uint8_t pad1[12]; /**< */ -} xcb_xkb_indicator_state_notify_event_t; - -/** Opcode for xcb_xkb_indicator_map_notify. */ -#define XCB_XKB_INDICATOR_MAP_NOTIFY 5 - -/** - * @brief xcb_xkb_indicator_map_notify_event_t - **/ -typedef struct xcb_xkb_indicator_map_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t pad0[3]; /**< */ - uint32_t state; /**< */ - uint32_t mapChanged; /**< */ - uint8_t pad1[12]; /**< */ -} xcb_xkb_indicator_map_notify_event_t; - -/** Opcode for xcb_xkb_names_notify. */ -#define XCB_XKB_NAMES_NOTIFY 6 - -/** - * @brief xcb_xkb_names_notify_event_t - **/ -typedef struct xcb_xkb_names_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t pad0; /**< */ - uint16_t changed; /**< */ - uint8_t firstType; /**< */ - uint8_t nTypes; /**< */ - uint8_t firstLevelName; /**< */ - uint8_t nLevelNames; /**< */ - uint8_t pad1; /**< */ - uint8_t nRadioGroups; /**< */ - uint8_t nKeyAliases; /**< */ - uint8_t changedGroupNames; /**< */ - uint16_t changedVirtualMods; /**< */ - xcb_keycode_t firstKey; /**< */ - uint8_t nKeys; /**< */ - uint32_t changedIndicators; /**< */ - uint8_t pad2[4]; /**< */ -} xcb_xkb_names_notify_event_t; - -/** Opcode for xcb_xkb_compat_map_notify. */ -#define XCB_XKB_COMPAT_MAP_NOTIFY 7 - -/** - * @brief xcb_xkb_compat_map_notify_event_t - **/ -typedef struct xcb_xkb_compat_map_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t changedGroups; /**< */ - uint16_t firstSI; /**< */ - uint16_t nSI; /**< */ - uint16_t nTotalSI; /**< */ - uint8_t pad0[16]; /**< */ -} xcb_xkb_compat_map_notify_event_t; - -/** Opcode for xcb_xkb_bell_notify. */ -#define XCB_XKB_BELL_NOTIFY 8 - -/** - * @brief xcb_xkb_bell_notify_event_t - **/ -typedef struct xcb_xkb_bell_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t bellClass; /**< */ - uint8_t bellID; /**< */ - uint8_t percent; /**< */ - uint16_t pitch; /**< */ - uint16_t duration; /**< */ - xcb_atom_t name; /**< */ - xcb_window_t window; /**< */ - uint8_t eventOnly; /**< */ - uint8_t pad0[7]; /**< */ -} xcb_xkb_bell_notify_event_t; - -/** Opcode for xcb_xkb_action_message. */ -#define XCB_XKB_ACTION_MESSAGE 9 - -/** - * @brief xcb_xkb_action_message_event_t - **/ -typedef struct xcb_xkb_action_message_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - xcb_keycode_t keycode; /**< */ - uint8_t press; /**< */ - uint8_t keyEventFollows; /**< */ - uint8_t mods; /**< */ - uint8_t group; /**< */ - xcb_xkb_string8_t message[8]; /**< */ - uint8_t pad0[10]; /**< */ -} xcb_xkb_action_message_event_t; - -/** Opcode for xcb_xkb_access_x_notify. */ -#define XCB_XKB_ACCESS_X_NOTIFY 10 - -/** - * @brief xcb_xkb_access_x_notify_event_t - **/ -typedef struct xcb_xkb_access_x_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - xcb_keycode_t keycode; /**< */ - uint16_t detailt; /**< */ - uint16_t slowKeysDelay; /**< */ - uint16_t debounceDelay; /**< */ - uint8_t pad0[16]; /**< */ -} xcb_xkb_access_x_notify_event_t; - -/** Opcode for xcb_xkb_extension_device_notify. */ -#define XCB_XKB_EXTENSION_DEVICE_NOTIFY 11 - -/** - * @brief xcb_xkb_extension_device_notify_event_t - **/ -typedef struct xcb_xkb_extension_device_notify_event_t { - uint8_t response_type; /**< */ - uint8_t xkbType; /**< */ - uint16_t sequence; /**< */ - xcb_timestamp_t time; /**< */ - uint8_t deviceID; /**< */ - uint8_t pad0; /**< */ - uint16_t reason; /**< */ - uint16_t ledClass; /**< */ - uint16_t ledID; /**< */ - uint32_t ledsDefined; /**< */ - uint32_t ledState; /**< */ - uint8_t firstButton; /**< */ - uint8_t nButtons; /**< */ - uint16_t supported; /**< */ - uint16_t unsupported; /**< */ - uint8_t pad1[2]; /**< */ -} xcb_xkb_extension_device_notify_event_t; - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_device_spec_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_device_spec_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_device_spec_next - ** - ** @param xcb_xkb_device_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_device_spec_next (xcb_xkb_device_spec_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_device_spec_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_device_spec_end - ** - ** @param xcb_xkb_device_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_device_spec_end (xcb_xkb_device_spec_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_led_class_spec_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_led_class_spec_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_led_class_spec_next - ** - ** @param xcb_xkb_led_class_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_led_class_spec_next (xcb_xkb_led_class_spec_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_led_class_spec_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_led_class_spec_end - ** - ** @param xcb_xkb_led_class_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_led_class_spec_end (xcb_xkb_led_class_spec_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_bell_class_spec_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_bell_class_spec_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_bell_class_spec_next - ** - ** @param xcb_xkb_bell_class_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_bell_class_spec_next (xcb_xkb_bell_class_spec_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_bell_class_spec_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_bell_class_spec_end - ** - ** @param xcb_xkb_bell_class_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_bell_class_spec_end (xcb_xkb_bell_class_spec_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_id_spec_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_id_spec_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_id_spec_next - ** - ** @param xcb_xkb_id_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_id_spec_next (xcb_xkb_id_spec_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_id_spec_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_id_spec_end - ** - ** @param xcb_xkb_id_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_id_spec_end (xcb_xkb_id_spec_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_indicator_map_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_indicator_map_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_indicator_map_next - ** - ** @param xcb_xkb_indicator_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_indicator_map_next (xcb_xkb_indicator_map_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_indicator_map_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_indicator_map_end - ** - ** @param xcb_xkb_indicator_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_indicator_map_end (xcb_xkb_indicator_map_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_mod_def_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_mod_def_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_mod_def_next - ** - ** @param xcb_xkb_mod_def_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_mod_def_next (xcb_xkb_mod_def_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_mod_def_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_mod_def_end - ** - ** @param xcb_xkb_mod_def_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_mod_def_end (xcb_xkb_mod_def_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_name_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_name_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_name_next - ** - ** @param xcb_xkb_key_name_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_name_next (xcb_xkb_key_name_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_name_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_name_end - ** - ** @param xcb_xkb_key_name_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_name_end (xcb_xkb_key_name_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_alias_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_alias_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_alias_next - ** - ** @param xcb_xkb_key_alias_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_alias_next (xcb_xkb_key_alias_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_alias_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_alias_end - ** - ** @param xcb_xkb_key_alias_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_alias_end (xcb_xkb_key_alias_iterator_t i /**< */); - -int -xcb_xkb_counted_string_16_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** char * xcb_xkb_counted_string_16_string - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_xkb_counted_string_16_string (const xcb_xkb_counted_string_16_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_counted_string_16_string_length - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_counted_string_16_string_length (const xcb_xkb_counted_string_16_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_counted_string_16_string_end - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_counted_string_16_string_end (const xcb_xkb_counted_string_16_t *R /**< */); - - -/***************************************************************************** - ** - ** void * xcb_xkb_counted_string_16_alignment_pad - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns void * - ** - *****************************************************************************/ - -void * -xcb_xkb_counted_string_16_alignment_pad (const xcb_xkb_counted_string_16_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_counted_string_16_alignment_pad_length - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_counted_string_16_alignment_pad_length (const xcb_xkb_counted_string_16_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_counted_string_16_alignment_pad_end - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_counted_string_16_alignment_pad_end (const xcb_xkb_counted_string_16_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_counted_string_16_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_counted_string_16_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_counted_string_16_next - ** - ** @param xcb_xkb_counted_string_16_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_counted_string_16_next (xcb_xkb_counted_string_16_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_counted_string_16_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_counted_string_16_end - ** - ** @param xcb_xkb_counted_string_16_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_counted_string_16_end (xcb_xkb_counted_string_16_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_kt_map_entry_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_kt_map_entry_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_kt_map_entry_next - ** - ** @param xcb_xkb_kt_map_entry_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_kt_map_entry_next (xcb_xkb_kt_map_entry_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_kt_map_entry_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_kt_map_entry_end - ** - ** @param xcb_xkb_kt_map_entry_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_kt_map_entry_end (xcb_xkb_kt_map_entry_iterator_t i /**< */); - -int -xcb_xkb_key_type_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_kt_map_entry_t * xcb_xkb_key_type_map - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_kt_map_entry_t * - ** - *****************************************************************************/ - -xcb_xkb_kt_map_entry_t * -xcb_xkb_key_type_map (const xcb_xkb_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_key_type_map_length - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_key_type_map_length (const xcb_xkb_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_kt_map_entry_iterator_t xcb_xkb_key_type_map_iterator - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_kt_map_entry_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_kt_map_entry_iterator_t -xcb_xkb_key_type_map_iterator (const xcb_xkb_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_t * xcb_xkb_key_type_preserve - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_mod_def_t * - ** - *****************************************************************************/ - -xcb_xkb_mod_def_t * -xcb_xkb_key_type_preserve (const xcb_xkb_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_key_type_preserve_length - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_key_type_preserve_length (const xcb_xkb_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_iterator_t xcb_xkb_key_type_preserve_iterator - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_mod_def_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_mod_def_iterator_t -xcb_xkb_key_type_preserve_iterator (const xcb_xkb_key_type_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_type_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_type_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_type_next - ** - ** @param xcb_xkb_key_type_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_type_next (xcb_xkb_key_type_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_type_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_type_end - ** - ** @param xcb_xkb_key_type_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_type_end (xcb_xkb_key_type_iterator_t i /**< */); - -int -xcb_xkb_key_sym_map_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_keysym_t * xcb_xkb_key_sym_map_syms - ** - ** @param const xcb_xkb_key_sym_map_t *R - ** @returns xcb_keysym_t * - ** - *****************************************************************************/ - -xcb_keysym_t * -xcb_xkb_key_sym_map_syms (const xcb_xkb_key_sym_map_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_key_sym_map_syms_length - ** - ** @param const xcb_xkb_key_sym_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_key_sym_map_syms_length (const xcb_xkb_key_sym_map_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_sym_map_syms_end - ** - ** @param const xcb_xkb_key_sym_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_sym_map_syms_end (const xcb_xkb_key_sym_map_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_sym_map_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_sym_map_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_sym_map_next - ** - ** @param xcb_xkb_key_sym_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_sym_map_next (xcb_xkb_key_sym_map_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_sym_map_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_sym_map_end - ** - ** @param xcb_xkb_key_sym_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_sym_map_end (xcb_xkb_key_sym_map_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_common_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_common_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_common_behavior_next - ** - ** @param xcb_xkb_common_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_common_behavior_next (xcb_xkb_common_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_common_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_common_behavior_end - ** - ** @param xcb_xkb_common_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_common_behavior_end (xcb_xkb_common_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_default_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_default_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_default_behavior_next - ** - ** @param xcb_xkb_default_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_default_behavior_next (xcb_xkb_default_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_default_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_default_behavior_end - ** - ** @param xcb_xkb_default_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_default_behavior_end (xcb_xkb_default_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_lock_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_lock_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_lock_behavior_next - ** - ** @param xcb_xkb_lock_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_lock_behavior_next (xcb_xkb_lock_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_lock_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_lock_behavior_end - ** - ** @param xcb_xkb_lock_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_lock_behavior_end (xcb_xkb_lock_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_radio_group_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_radio_group_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_radio_group_behavior_next - ** - ** @param xcb_xkb_radio_group_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_radio_group_behavior_next (xcb_xkb_radio_group_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_radio_group_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_radio_group_behavior_end - ** - ** @param xcb_xkb_radio_group_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_radio_group_behavior_end (xcb_xkb_radio_group_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_overlay_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_overlay_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_behavior_next - ** - ** @param xcb_xkb_overlay_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_behavior_next (xcb_xkb_overlay_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_overlay_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_behavior_end - ** - ** @param xcb_xkb_overlay_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_behavior_end (xcb_xkb_overlay_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_permament_lock_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_permament_lock_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_permament_lock_behavior_next - ** - ** @param xcb_xkb_permament_lock_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_permament_lock_behavior_next (xcb_xkb_permament_lock_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_permament_lock_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_permament_lock_behavior_end - ** - ** @param xcb_xkb_permament_lock_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_permament_lock_behavior_end (xcb_xkb_permament_lock_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_permament_radio_group_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_permament_radio_group_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_permament_radio_group_behavior_next - ** - ** @param xcb_xkb_permament_radio_group_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_permament_radio_group_behavior_next (xcb_xkb_permament_radio_group_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_permament_radio_group_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_permament_radio_group_behavior_end - ** - ** @param xcb_xkb_permament_radio_group_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_permament_radio_group_behavior_end (xcb_xkb_permament_radio_group_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_permament_overlay_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_permament_overlay_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_permament_overlay_behavior_next - ** - ** @param xcb_xkb_permament_overlay_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_permament_overlay_behavior_next (xcb_xkb_permament_overlay_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_permament_overlay_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_permament_overlay_behavior_end - ** - ** @param xcb_xkb_permament_overlay_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_permament_overlay_behavior_end (xcb_xkb_permament_overlay_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_behavior_next - ** - ** @param xcb_xkb_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_behavior_next (xcb_xkb_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_behavior_end - ** - ** @param xcb_xkb_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_behavior_end (xcb_xkb_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_set_behavior_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_set_behavior_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_set_behavior_next - ** - ** @param xcb_xkb_set_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_set_behavior_next (xcb_xkb_set_behavior_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_set_behavior_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_behavior_end - ** - ** @param xcb_xkb_set_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_behavior_end (xcb_xkb_set_behavior_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_set_explicit_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_set_explicit_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_set_explicit_next - ** - ** @param xcb_xkb_set_explicit_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_set_explicit_next (xcb_xkb_set_explicit_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_set_explicit_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_explicit_end - ** - ** @param xcb_xkb_set_explicit_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_explicit_end (xcb_xkb_set_explicit_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_mod_map_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_mod_map_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_mod_map_next - ** - ** @param xcb_xkb_key_mod_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_mod_map_next (xcb_xkb_key_mod_map_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_mod_map_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_mod_map_end - ** - ** @param xcb_xkb_key_mod_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_mod_map_end (xcb_xkb_key_mod_map_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_v_mod_map_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_v_mod_map_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_v_mod_map_next - ** - ** @param xcb_xkb_key_v_mod_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_v_mod_map_next (xcb_xkb_key_v_mod_map_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_v_mod_map_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_v_mod_map_end - ** - ** @param xcb_xkb_key_v_mod_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_v_mod_map_end (xcb_xkb_key_v_mod_map_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_kt_set_map_entry_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_kt_set_map_entry_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_kt_set_map_entry_next - ** - ** @param xcb_xkb_kt_set_map_entry_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_kt_set_map_entry_next (xcb_xkb_kt_set_map_entry_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_kt_set_map_entry_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_kt_set_map_entry_end - ** - ** @param xcb_xkb_kt_set_map_entry_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_kt_set_map_entry_end (xcb_xkb_kt_set_map_entry_iterator_t i /**< */); - -int -xcb_xkb_set_key_type_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_entries - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_t * - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_t * -xcb_xkb_set_key_type_entries (const xcb_xkb_set_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_key_type_entries_length - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_key_type_entries_length (const xcb_xkb_set_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_entries_iterator - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_iterator_t -xcb_xkb_set_key_type_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_preserve_entries - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_t * - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_t * -xcb_xkb_set_key_type_preserve_entries (const xcb_xkb_set_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_key_type_preserve_entries_length - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_key_type_preserve_entries_length (const xcb_xkb_set_key_type_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_preserve_entries_iterator - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_iterator_t -xcb_xkb_set_key_type_preserve_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_set_key_type_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_set_key_type_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_set_key_type_next - ** - ** @param xcb_xkb_set_key_type_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_set_key_type_next (xcb_xkb_set_key_type_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_set_key_type_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_key_type_end - ** - ** @param xcb_xkb_set_key_type_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_key_type_end (xcb_xkb_set_key_type_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_string8_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_string8_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_string8_next - ** - ** @param xcb_xkb_string8_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_string8_next (xcb_xkb_string8_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_string8_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_string8_end - ** - ** @param xcb_xkb_string8_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_string8_end (xcb_xkb_string8_iterator_t i /**< */); - -int -xcb_xkb_outline_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_point_t * xcb_xkb_outline_points - ** - ** @param const xcb_xkb_outline_t *R - ** @returns xcb_point_t * - ** - *****************************************************************************/ - -xcb_point_t * -xcb_xkb_outline_points (const xcb_xkb_outline_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_outline_points_length - ** - ** @param const xcb_xkb_outline_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_outline_points_length (const xcb_xkb_outline_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_point_iterator_t xcb_xkb_outline_points_iterator - ** - ** @param const xcb_xkb_outline_t *R - ** @returns xcb_point_iterator_t - ** - *****************************************************************************/ - -xcb_point_iterator_t -xcb_xkb_outline_points_iterator (const xcb_xkb_outline_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_outline_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_outline_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_outline_next - ** - ** @param xcb_xkb_outline_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_outline_next (xcb_xkb_outline_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_outline_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_outline_end - ** - ** @param xcb_xkb_outline_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_outline_end (xcb_xkb_outline_iterator_t i /**< */); - -int -xcb_xkb_shape_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_shape_outlines_length - ** - ** @param const xcb_xkb_shape_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_shape_outlines_length (const xcb_xkb_shape_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_outline_iterator_t xcb_xkb_shape_outlines_iterator - ** - ** @param const xcb_xkb_shape_t *R - ** @returns xcb_xkb_outline_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_outline_iterator_t -xcb_xkb_shape_outlines_iterator (const xcb_xkb_shape_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_shape_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_shape_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_shape_next - ** - ** @param xcb_xkb_shape_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_shape_next (xcb_xkb_shape_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_shape_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_shape_end - ** - ** @param xcb_xkb_shape_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_shape_end (xcb_xkb_shape_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_key_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_key_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_key_next - ** - ** @param xcb_xkb_key_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_next (xcb_xkb_key_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_key_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_end - ** - ** @param xcb_xkb_key_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_end (xcb_xkb_key_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_overlay_key_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_overlay_key_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_key_next - ** - ** @param xcb_xkb_overlay_key_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_key_next (xcb_xkb_overlay_key_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_overlay_key_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_key_end - ** - ** @param xcb_xkb_overlay_key_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_key_end (xcb_xkb_overlay_key_iterator_t i /**< */); - -int -xcb_xkb_overlay_row_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_overlay_key_t * xcb_xkb_overlay_row_keys - ** - ** @param const xcb_xkb_overlay_row_t *R - ** @returns xcb_xkb_overlay_key_t * - ** - *****************************************************************************/ - -xcb_xkb_overlay_key_t * -xcb_xkb_overlay_row_keys (const xcb_xkb_overlay_row_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_overlay_row_keys_length - ** - ** @param const xcb_xkb_overlay_row_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_overlay_row_keys_length (const xcb_xkb_overlay_row_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_overlay_key_iterator_t xcb_xkb_overlay_row_keys_iterator - ** - ** @param const xcb_xkb_overlay_row_t *R - ** @returns xcb_xkb_overlay_key_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_overlay_key_iterator_t -xcb_xkb_overlay_row_keys_iterator (const xcb_xkb_overlay_row_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_overlay_row_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_overlay_row_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_row_next - ** - ** @param xcb_xkb_overlay_row_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_row_next (xcb_xkb_overlay_row_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_overlay_row_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_row_end - ** - ** @param xcb_xkb_overlay_row_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_row_end (xcb_xkb_overlay_row_iterator_t i /**< */); - -int -xcb_xkb_overlay_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_overlay_rows_length - ** - ** @param const xcb_xkb_overlay_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_overlay_rows_length (const xcb_xkb_overlay_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_overlay_row_iterator_t xcb_xkb_overlay_rows_iterator - ** - ** @param const xcb_xkb_overlay_t *R - ** @returns xcb_xkb_overlay_row_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_overlay_row_iterator_t -xcb_xkb_overlay_rows_iterator (const xcb_xkb_overlay_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_overlay_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_overlay_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_next - ** - ** @param xcb_xkb_overlay_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_next (xcb_xkb_overlay_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_overlay_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_end - ** - ** @param xcb_xkb_overlay_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_end (xcb_xkb_overlay_iterator_t i /**< */); - -int -xcb_xkb_row_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_t * xcb_xkb_row_keys - ** - ** @param const xcb_xkb_row_t *R - ** @returns xcb_xkb_key_t * - ** - *****************************************************************************/ - -xcb_xkb_key_t * -xcb_xkb_row_keys (const xcb_xkb_row_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_row_keys_length - ** - ** @param const xcb_xkb_row_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_row_keys_length (const xcb_xkb_row_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_iterator_t xcb_xkb_row_keys_iterator - ** - ** @param const xcb_xkb_row_t *R - ** @returns xcb_xkb_key_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_iterator_t -xcb_xkb_row_keys_iterator (const xcb_xkb_row_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_row_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_row_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_row_next - ** - ** @param xcb_xkb_row_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_row_next (xcb_xkb_row_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_row_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_row_end - ** - ** @param xcb_xkb_row_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_row_end (xcb_xkb_row_iterator_t i /**< */); - -int -xcb_xkb_listing_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_string8_t * xcb_xkb_listing_string - ** - ** @param const xcb_xkb_listing_t *R - ** @returns xcb_xkb_string8_t * - ** - *****************************************************************************/ - -xcb_xkb_string8_t * -xcb_xkb_listing_string (const xcb_xkb_listing_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_listing_string_length - ** - ** @param const xcb_xkb_listing_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_listing_string_length (const xcb_xkb_listing_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_listing_string_end - ** - ** @param const xcb_xkb_listing_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_listing_string_end (const xcb_xkb_listing_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_listing_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_listing_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_listing_next - ** - ** @param xcb_xkb_listing_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_listing_next (xcb_xkb_listing_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_listing_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_listing_end - ** - ** @param xcb_xkb_listing_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_listing_end (xcb_xkb_listing_iterator_t i /**< */); - -int -xcb_xkb_device_led_info_sizeof (const void *_buffer /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_device_led_info_names - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_device_led_info_names (const xcb_xkb_device_led_info_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_device_led_info_names_length - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_device_led_info_names_length (const xcb_xkb_device_led_info_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_device_led_info_names_end - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_device_led_info_names_end (const xcb_xkb_device_led_info_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_t * xcb_xkb_device_led_info_maps - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_xkb_indicator_map_t * - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_t * -xcb_xkb_device_led_info_maps (const xcb_xkb_device_led_info_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_device_led_info_maps_length - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_device_led_info_maps_length (const xcb_xkb_device_led_info_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_iterator_t xcb_xkb_device_led_info_maps_iterator - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_xkb_indicator_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_iterator_t -xcb_xkb_device_led_info_maps_iterator (const xcb_xkb_device_led_info_t *R /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_device_led_info_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_device_led_info_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_device_led_info_next - ** - ** @param xcb_xkb_device_led_info_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_device_led_info_next (xcb_xkb_device_led_info_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_device_led_info_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_device_led_info_end - ** - ** @param xcb_xkb_device_led_info_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_device_led_info_end (xcb_xkb_device_led_info_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_no_action_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_no_action_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_no_action_next - ** - ** @param xcb_xkb_sa_no_action_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_no_action_next (xcb_xkb_sa_no_action_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_no_action_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_no_action_end - ** - ** @param xcb_xkb_sa_no_action_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_no_action_end (xcb_xkb_sa_no_action_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_set_mods_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_set_mods_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_mods_next - ** - ** @param xcb_xkb_sa_set_mods_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_mods_next (xcb_xkb_sa_set_mods_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_set_mods_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_mods_end - ** - ** @param xcb_xkb_sa_set_mods_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_mods_end (xcb_xkb_sa_set_mods_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_latch_mods_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_latch_mods_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_latch_mods_next - ** - ** @param xcb_xkb_sa_latch_mods_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_latch_mods_next (xcb_xkb_sa_latch_mods_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_latch_mods_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_latch_mods_end - ** - ** @param xcb_xkb_sa_latch_mods_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_latch_mods_end (xcb_xkb_sa_latch_mods_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_lock_mods_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_lock_mods_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_mods_next - ** - ** @param xcb_xkb_sa_lock_mods_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_mods_next (xcb_xkb_sa_lock_mods_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_lock_mods_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_mods_end - ** - ** @param xcb_xkb_sa_lock_mods_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_mods_end (xcb_xkb_sa_lock_mods_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_set_group_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_set_group_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_group_next - ** - ** @param xcb_xkb_sa_set_group_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_group_next (xcb_xkb_sa_set_group_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_set_group_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_group_end - ** - ** @param xcb_xkb_sa_set_group_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_group_end (xcb_xkb_sa_set_group_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_latch_group_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_latch_group_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_latch_group_next - ** - ** @param xcb_xkb_sa_latch_group_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_latch_group_next (xcb_xkb_sa_latch_group_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_latch_group_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_latch_group_end - ** - ** @param xcb_xkb_sa_latch_group_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_latch_group_end (xcb_xkb_sa_latch_group_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_lock_group_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_lock_group_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_group_next - ** - ** @param xcb_xkb_sa_lock_group_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_group_next (xcb_xkb_sa_lock_group_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_lock_group_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_group_end - ** - ** @param xcb_xkb_sa_lock_group_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_group_end (xcb_xkb_sa_lock_group_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_move_ptr_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_move_ptr_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_move_ptr_next - ** - ** @param xcb_xkb_sa_move_ptr_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_move_ptr_next (xcb_xkb_sa_move_ptr_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_move_ptr_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_move_ptr_end - ** - ** @param xcb_xkb_sa_move_ptr_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_move_ptr_end (xcb_xkb_sa_move_ptr_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_ptr_btn_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_ptr_btn_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_ptr_btn_next - ** - ** @param xcb_xkb_sa_ptr_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_ptr_btn_next (xcb_xkb_sa_ptr_btn_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_ptr_btn_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_ptr_btn_end - ** - ** @param xcb_xkb_sa_ptr_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_ptr_btn_end (xcb_xkb_sa_ptr_btn_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_lock_ptr_btn_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_lock_ptr_btn_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_ptr_btn_next - ** - ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_ptr_btn_next (xcb_xkb_sa_lock_ptr_btn_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_lock_ptr_btn_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_ptr_btn_end - ** - ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_ptr_btn_end (xcb_xkb_sa_lock_ptr_btn_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_set_ptr_dflt_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_set_ptr_dflt_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_ptr_dflt_next - ** - ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_ptr_dflt_next (xcb_xkb_sa_set_ptr_dflt_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_set_ptr_dflt_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_ptr_dflt_end - ** - ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_ptr_dflt_end (xcb_xkb_sa_set_ptr_dflt_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_iso_lock_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_iso_lock_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_iso_lock_next - ** - ** @param xcb_xkb_sa_iso_lock_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_iso_lock_next (xcb_xkb_sa_iso_lock_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_iso_lock_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_iso_lock_end - ** - ** @param xcb_xkb_sa_iso_lock_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_iso_lock_end (xcb_xkb_sa_iso_lock_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_terminate_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_terminate_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_terminate_next - ** - ** @param xcb_xkb_sa_terminate_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_terminate_next (xcb_xkb_sa_terminate_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_terminate_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_terminate_end - ** - ** @param xcb_xkb_sa_terminate_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_terminate_end (xcb_xkb_sa_terminate_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_switch_screen_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_switch_screen_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_switch_screen_next - ** - ** @param xcb_xkb_sa_switch_screen_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_switch_screen_next (xcb_xkb_sa_switch_screen_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_switch_screen_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_switch_screen_end - ** - ** @param xcb_xkb_sa_switch_screen_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_switch_screen_end (xcb_xkb_sa_switch_screen_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_set_controls_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_set_controls_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_controls_next - ** - ** @param xcb_xkb_sa_set_controls_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_controls_next (xcb_xkb_sa_set_controls_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_set_controls_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_controls_end - ** - ** @param xcb_xkb_sa_set_controls_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_controls_end (xcb_xkb_sa_set_controls_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_lock_controls_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_lock_controls_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_controls_next - ** - ** @param xcb_xkb_sa_lock_controls_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_controls_next (xcb_xkb_sa_lock_controls_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_lock_controls_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_controls_end - ** - ** @param xcb_xkb_sa_lock_controls_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_controls_end (xcb_xkb_sa_lock_controls_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_action_message_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_action_message_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_action_message_next - ** - ** @param xcb_xkb_sa_action_message_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_action_message_next (xcb_xkb_sa_action_message_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_action_message_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_action_message_end - ** - ** @param xcb_xkb_sa_action_message_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_action_message_end (xcb_xkb_sa_action_message_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_redirect_key_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_redirect_key_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_redirect_key_next - ** - ** @param xcb_xkb_sa_redirect_key_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_redirect_key_next (xcb_xkb_sa_redirect_key_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_redirect_key_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_redirect_key_end - ** - ** @param xcb_xkb_sa_redirect_key_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_redirect_key_end (xcb_xkb_sa_redirect_key_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_device_btn_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_device_btn_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_device_btn_next - ** - ** @param xcb_xkb_sa_device_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_device_btn_next (xcb_xkb_sa_device_btn_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_device_btn_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_device_btn_end - ** - ** @param xcb_xkb_sa_device_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_device_btn_end (xcb_xkb_sa_device_btn_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_lock_device_btn_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_lock_device_btn_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_device_btn_next - ** - ** @param xcb_xkb_sa_lock_device_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_device_btn_next (xcb_xkb_sa_lock_device_btn_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_lock_device_btn_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_device_btn_end - ** - ** @param xcb_xkb_sa_lock_device_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_device_btn_end (xcb_xkb_sa_lock_device_btn_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sa_device_valuator_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sa_device_valuator_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sa_device_valuator_next - ** - ** @param xcb_xkb_sa_device_valuator_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_device_valuator_next (xcb_xkb_sa_device_valuator_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sa_device_valuator_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_device_valuator_end - ** - ** @param xcb_xkb_sa_device_valuator_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_device_valuator_end (xcb_xkb_sa_device_valuator_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_si_action_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_si_action_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_si_action_next - ** - ** @param xcb_xkb_si_action_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_si_action_next (xcb_xkb_si_action_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_si_action_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_si_action_end - ** - ** @param xcb_xkb_si_action_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_si_action_end (xcb_xkb_si_action_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_sym_interpret_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_sym_interpret_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_sym_interpret_next - ** - ** @param xcb_xkb_sym_interpret_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sym_interpret_next (xcb_xkb_sym_interpret_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_sym_interpret_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sym_interpret_end - ** - ** @param xcb_xkb_sym_interpret_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sym_interpret_end (xcb_xkb_sym_interpret_iterator_t i /**< */); - -/** - * Get the next element of the iterator - * @param i Pointer to a xcb_xkb_action_iterator_t - * - * Get the next element in the iterator. The member rem is - * decreased by one. The member data points to the next - * element. The member index is increased by sizeof(xcb_xkb_action_t) - */ - -/***************************************************************************** - ** - ** void xcb_xkb_action_next - ** - ** @param xcb_xkb_action_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_action_next (xcb_xkb_action_iterator_t *i /**< */); - -/** - * Return the iterator pointing to the last element - * @param i An xcb_xkb_action_iterator_t - * @return The iterator pointing to the last element - * - * Set the current element in the iterator to the last element. - * The member rem is set to 0. The member data points to the - * last element. - */ - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_action_end - ** - ** @param xcb_xkb_action_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_action_end (xcb_xkb_action_iterator_t i /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension - ** - ** @param xcb_connection_t *c - ** @param uint16_t wantedMajor - ** @param uint16_t wantedMinor - ** @returns xcb_xkb_use_extension_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_use_extension_cookie_t -xcb_xkb_use_extension (xcb_connection_t *c /**< */, - uint16_t wantedMajor /**< */, - uint16_t wantedMinor /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint16_t wantedMajor - ** @param uint16_t wantedMinor - ** @returns xcb_xkb_use_extension_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_use_extension_cookie_t -xcb_xkb_use_extension_unchecked (xcb_connection_t *c /**< */, - uint16_t wantedMajor /**< */, - uint16_t wantedMinor /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_use_extension_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_use_extension_reply_t * xcb_xkb_use_extension_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_use_extension_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_use_extension_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_use_extension_reply_t * -xcb_xkb_use_extension_reply (xcb_connection_t *c /**< */, - xcb_xkb_use_extension_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_select_events_details_serialize (void **_buffer /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - const xcb_xkb_select_events_details_t *_aux /**< */); - -int -xcb_xkb_select_events_details_unpack (const void *_buffer /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - xcb_xkb_select_events_details_t *_aux /**< */); - -int -xcb_xkb_select_events_details_sizeof (const void *_buffer /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const void *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const void *details /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const void *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const void *details /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events_aux_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const xcb_xkb_select_events_details_t *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events_aux_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const xcb_xkb_select_events_details_t *details /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events_aux - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const xcb_xkb_select_events_details_t *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events_aux (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const xcb_xkb_select_events_details_t *details /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_bell_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_bell_class_spec_t bellClass - ** @param xcb_xkb_id_spec_t bellID - ** @param int8_t percent - ** @param uint8_t forceSound - ** @param uint8_t eventOnly - ** @param int16_t pitch - ** @param int16_t duration - ** @param xcb_atom_t name - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_bell_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_bell_class_spec_t bellClass /**< */, - xcb_xkb_id_spec_t bellID /**< */, - int8_t percent /**< */, - uint8_t forceSound /**< */, - uint8_t eventOnly /**< */, - int16_t pitch /**< */, - int16_t duration /**< */, - xcb_atom_t name /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_bell - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_bell_class_spec_t bellClass - ** @param xcb_xkb_id_spec_t bellID - ** @param int8_t percent - ** @param uint8_t forceSound - ** @param uint8_t eventOnly - ** @param int16_t pitch - ** @param int16_t duration - ** @param xcb_atom_t name - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_bell (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_bell_class_spec_t bellClass /**< */, - xcb_xkb_id_spec_t bellID /**< */, - int8_t percent /**< */, - uint8_t forceSound /**< */, - uint8_t eventOnly /**< */, - int16_t pitch /**< */, - int16_t duration /**< */, - xcb_atom_t name /**< */, - xcb_window_t window /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_state_cookie_t -xcb_xkb_get_state (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_state_cookie_t -xcb_xkb_get_state_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_state_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_state_reply_t * xcb_xkb_get_state_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_state_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_state_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_state_reply_t * -xcb_xkb_get_state_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_state_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_latch_lock_state_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectModLocks - ** @param uint8_t modLocks - ** @param uint8_t lockGroup - ** @param uint8_t groupLock - ** @param uint8_t affectModLatches - ** @param uint8_t latchGroup - ** @param uint16_t groupLatch - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_latch_lock_state_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectModLocks /**< */, - uint8_t modLocks /**< */, - uint8_t lockGroup /**< */, - uint8_t groupLock /**< */, - uint8_t affectModLatches /**< */, - uint8_t latchGroup /**< */, - uint16_t groupLatch /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_latch_lock_state - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectModLocks - ** @param uint8_t modLocks - ** @param uint8_t lockGroup - ** @param uint8_t groupLock - ** @param uint8_t affectModLatches - ** @param uint8_t latchGroup - ** @param uint16_t groupLatch - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_latch_lock_state (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectModLocks /**< */, - uint8_t modLocks /**< */, - uint8_t lockGroup /**< */, - uint8_t groupLock /**< */, - uint8_t affectModLatches /**< */, - uint8_t latchGroup /**< */, - uint16_t groupLatch /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_controls_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_controls_cookie_t -xcb_xkb_get_controls (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_controls_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_controls_cookie_t -xcb_xkb_get_controls_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_controls_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_controls_reply_t * xcb_xkb_get_controls_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_controls_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_controls_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_controls_reply_t * -xcb_xkb_get_controls_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_controls_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_controls_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectInternalRealMods - ** @param uint8_t internalRealMods - ** @param uint8_t affectIgnoreLockRealMods - ** @param uint8_t ignoreLockRealMods - ** @param uint16_t affectInternalVirtualMods - ** @param uint16_t internalVirtualMods - ** @param uint16_t affectIgnoreLockVirtualMods - ** @param uint16_t ignoreLockVirtualMods - ** @param uint8_t mouseKeysDfltBtn - ** @param uint8_t groupsWrap - ** @param uint16_t accessXOptions - ** @param uint32_t affectEnabledControls - ** @param uint32_t enabledControls - ** @param uint32_t changeControls - ** @param uint16_t repeatDelay - ** @param uint16_t repeatInterval - ** @param uint16_t slowKeysDelay - ** @param uint16_t debounceDelay - ** @param uint16_t mouseKeysDelay - ** @param uint16_t mouseKeysInterval - ** @param uint16_t mouseKeysTimeToMax - ** @param uint16_t mouseKeysMaxSpeed - ** @param int16_t mouseKeysCurve - ** @param uint16_t accessXTimeout - ** @param uint32_t accessXTimeoutMask - ** @param uint32_t accessXTimeoutValues - ** @param uint16_t accessXTimeoutOptionsMask - ** @param uint16_t accessXTimeoutOptionsValues - ** @param const uint8_t *perKeyRepeat - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_controls_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectInternalRealMods /**< */, - uint8_t internalRealMods /**< */, - uint8_t affectIgnoreLockRealMods /**< */, - uint8_t ignoreLockRealMods /**< */, - uint16_t affectInternalVirtualMods /**< */, - uint16_t internalVirtualMods /**< */, - uint16_t affectIgnoreLockVirtualMods /**< */, - uint16_t ignoreLockVirtualMods /**< */, - uint8_t mouseKeysDfltBtn /**< */, - uint8_t groupsWrap /**< */, - uint16_t accessXOptions /**< */, - uint32_t affectEnabledControls /**< */, - uint32_t enabledControls /**< */, - uint32_t changeControls /**< */, - uint16_t repeatDelay /**< */, - uint16_t repeatInterval /**< */, - uint16_t slowKeysDelay /**< */, - uint16_t debounceDelay /**< */, - uint16_t mouseKeysDelay /**< */, - uint16_t mouseKeysInterval /**< */, - uint16_t mouseKeysTimeToMax /**< */, - uint16_t mouseKeysMaxSpeed /**< */, - int16_t mouseKeysCurve /**< */, - uint16_t accessXTimeout /**< */, - uint32_t accessXTimeoutMask /**< */, - uint32_t accessXTimeoutValues /**< */, - uint16_t accessXTimeoutOptionsMask /**< */, - uint16_t accessXTimeoutOptionsValues /**< */, - const uint8_t *perKeyRepeat /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_controls - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectInternalRealMods - ** @param uint8_t internalRealMods - ** @param uint8_t affectIgnoreLockRealMods - ** @param uint8_t ignoreLockRealMods - ** @param uint16_t affectInternalVirtualMods - ** @param uint16_t internalVirtualMods - ** @param uint16_t affectIgnoreLockVirtualMods - ** @param uint16_t ignoreLockVirtualMods - ** @param uint8_t mouseKeysDfltBtn - ** @param uint8_t groupsWrap - ** @param uint16_t accessXOptions - ** @param uint32_t affectEnabledControls - ** @param uint32_t enabledControls - ** @param uint32_t changeControls - ** @param uint16_t repeatDelay - ** @param uint16_t repeatInterval - ** @param uint16_t slowKeysDelay - ** @param uint16_t debounceDelay - ** @param uint16_t mouseKeysDelay - ** @param uint16_t mouseKeysInterval - ** @param uint16_t mouseKeysTimeToMax - ** @param uint16_t mouseKeysMaxSpeed - ** @param int16_t mouseKeysCurve - ** @param uint16_t accessXTimeout - ** @param uint32_t accessXTimeoutMask - ** @param uint32_t accessXTimeoutValues - ** @param uint16_t accessXTimeoutOptionsMask - ** @param uint16_t accessXTimeoutOptionsValues - ** @param const uint8_t *perKeyRepeat - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_controls (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectInternalRealMods /**< */, - uint8_t internalRealMods /**< */, - uint8_t affectIgnoreLockRealMods /**< */, - uint8_t ignoreLockRealMods /**< */, - uint16_t affectInternalVirtualMods /**< */, - uint16_t internalVirtualMods /**< */, - uint16_t affectIgnoreLockVirtualMods /**< */, - uint16_t ignoreLockVirtualMods /**< */, - uint8_t mouseKeysDfltBtn /**< */, - uint8_t groupsWrap /**< */, - uint16_t accessXOptions /**< */, - uint32_t affectEnabledControls /**< */, - uint32_t enabledControls /**< */, - uint32_t changeControls /**< */, - uint16_t repeatDelay /**< */, - uint16_t repeatInterval /**< */, - uint16_t slowKeysDelay /**< */, - uint16_t debounceDelay /**< */, - uint16_t mouseKeysDelay /**< */, - uint16_t mouseKeysInterval /**< */, - uint16_t mouseKeysTimeToMax /**< */, - uint16_t mouseKeysMaxSpeed /**< */, - int16_t mouseKeysCurve /**< */, - uint16_t accessXTimeout /**< */, - uint32_t accessXTimeoutMask /**< */, - uint32_t accessXTimeoutValues /**< */, - uint16_t accessXTimeoutOptionsMask /**< */, - uint16_t accessXTimeoutOptionsValues /**< */, - const uint8_t *perKeyRepeat /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_types_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_types_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_type_iterator_t xcb_xkb_get_map_map_types_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_type_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_type_iterator_t -xcb_xkb_get_map_map_types_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_syms_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_syms_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_map_map_syms_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_sym_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_sym_map_iterator_t -xcb_xkb_get_map_map_syms_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_acts_rtrn_count - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_acts_rtrn_count (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_acts_rtrn_count_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_acts_rtrn_count_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_acts_rtrn_count_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_acts_rtrn_count_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_alignment_pad - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_alignment_pad (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_get_map_map_acts_rtrn_acts - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_get_map_map_acts_rtrn_acts (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_acts_rtrn_acts_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_acts_rtrn_acts_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_get_map_map_acts_rtrn_acts_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_get_map_map_acts_rtrn_acts_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_t * xcb_xkb_get_map_map_behaviors_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_set_behavior_t * - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_t * -xcb_xkb_get_map_map_behaviors_rtrn (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_behaviors_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_behaviors_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_map_map_behaviors_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_set_behavior_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_iterator_t -xcb_xkb_get_map_map_behaviors_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_vmods_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_vmods_rtrn (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_vmods_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_vmods_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_vmods_rtrn_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_vmods_rtrn_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_alignment_pad_2 - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_alignment_pad_2 (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_2_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_2_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_2_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_2_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_t * xcb_xkb_get_map_map_explicit_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_set_explicit_t * - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_t * -xcb_xkb_get_map_map_explicit_rtrn (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_explicit_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_explicit_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_map_map_explicit_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_set_explicit_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_iterator_t -xcb_xkb_get_map_map_explicit_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_xkb_get_map_map_alignment_pad_3 - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_xkb_get_map_map_alignment_pad_3 (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_3_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_3_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_3_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_3_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_t * xcb_xkb_get_map_map_modmap_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_key_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_t * -xcb_xkb_get_map_map_modmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_modmap_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_modmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_map_map_modmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_iterator_t -xcb_xkb_get_map_map_modmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** uint16_t * xcb_xkb_get_map_map_alignment_pad_4 - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_xkb_get_map_map_alignment_pad_4 (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_4_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_4_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_4_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_4_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_map_map_vmodmap_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_key_v_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_t * -xcb_xkb_get_map_map_vmodmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_vmodmap_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_vmodmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_map_map_vmodmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_v_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_iterator_t -xcb_xkb_get_map_map_vmodmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */); - -int -xcb_xkb_get_map_map_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - const xcb_xkb_get_map_map_t *_aux /**< */); - -int -xcb_xkb_get_map_map_unpack (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - xcb_xkb_get_map_map_t *_aux /**< */); - -int -xcb_xkb_get_map_map_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t full - ** @param uint16_t partial - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint16_t virtualMods - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @returns xcb_xkb_get_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_map_cookie_t -xcb_xkb_get_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t full /**< */, - uint16_t partial /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t full - ** @param uint16_t partial - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint16_t virtualMods - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @returns xcb_xkb_get_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_map_cookie_t -xcb_xkb_get_map_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t full /**< */, - uint16_t partial /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_get_map_map_t * xcb_xkb_get_map_map - ** - ** @param const xcb_xkb_get_map_reply_t *R - ** @returns xcb_xkb_get_map_map_t * - ** - *****************************************************************************/ - -void * -xcb_xkb_get_map_map (const xcb_xkb_get_map_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_map_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_map_reply_t * xcb_xkb_get_map_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_map_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_map_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_map_reply_t * -xcb_xkb_get_map_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_map_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_types_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_types_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_key_type_iterator_t xcb_xkb_set_map_values_types_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_set_key_type_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_key_type_iterator_t -xcb_xkb_set_map_values_types_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_syms_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_syms_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_set_map_values_syms_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_key_sym_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_sym_map_iterator_t -xcb_xkb_set_map_values_syms_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_set_map_values_actions_count - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_set_map_values_actions_count (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_actions_count_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_actions_count_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_map_values_actions_count_end - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_map_values_actions_count_end (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_set_map_values_actions - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_set_map_values_actions (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_actions_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_actions_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_set_map_values_actions_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_set_map_values_actions_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_t * xcb_xkb_set_map_values_behaviors - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_set_behavior_t * - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_t * -xcb_xkb_set_map_values_behaviors (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_behaviors_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_behaviors_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_iterator_t xcb_xkb_set_map_values_behaviors_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_set_behavior_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_iterator_t -xcb_xkb_set_map_values_behaviors_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_set_map_values_vmods - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_set_map_values_vmods (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_vmods_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_vmods_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_map_values_vmods_end - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_map_values_vmods_end (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_t * xcb_xkb_set_map_values_explicit - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_set_explicit_t * - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_t * -xcb_xkb_set_map_values_explicit (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_explicit_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_explicit_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_iterator_t xcb_xkb_set_map_values_explicit_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_set_explicit_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_iterator_t -xcb_xkb_set_map_values_explicit_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_t * xcb_xkb_set_map_values_modmap - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_key_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_t * -xcb_xkb_set_map_values_modmap (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_modmap_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_modmap_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_set_map_values_modmap_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_key_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_iterator_t -xcb_xkb_set_map_values_modmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_t * xcb_xkb_set_map_values_vmodmap - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_key_v_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_t * -xcb_xkb_set_map_values_vmodmap (const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_vmodmap_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_vmodmap_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_set_map_values_vmodmap_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_key_v_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_iterator_t -xcb_xkb_set_map_values_vmodmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */); - -int -xcb_xkb_set_map_values_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - const xcb_xkb_set_map_values_t *_aux /**< */); - -int -xcb_xkb_set_map_values_unpack (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - xcb_xkb_set_map_values_t *_aux /**< */); - -int -xcb_xkb_set_map_values_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const void *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const void *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map_aux_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const xcb_xkb_set_map_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map_aux_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const xcb_xkb_set_map_values_t *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map_aux - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const xcb_xkb_set_map_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map_aux (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const xcb_xkb_set_map_values_t *values /**< */); - -int -xcb_xkb_get_compat_map_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t groups - ** @param uint8_t getAllSI - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @returns xcb_xkb_get_compat_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_compat_map_cookie_t -xcb_xkb_get_compat_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t groups /**< */, - uint8_t getAllSI /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t groups - ** @param uint8_t getAllSI - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @returns xcb_xkb_get_compat_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_compat_map_cookie_t -xcb_xkb_get_compat_map_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t groups /**< */, - uint8_t getAllSI /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_t * xcb_xkb_get_compat_map_si_rtrn - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_sym_interpret_t * - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_t * -xcb_xkb_get_compat_map_si_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_compat_map_si_rtrn_length - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_compat_map_si_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_iterator_t xcb_xkb_get_compat_map_si_rtrn_iterator - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_sym_interpret_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_iterator_t -xcb_xkb_get_compat_map_si_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_t * xcb_xkb_get_compat_map_group_rtrn - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_mod_def_t * - ** - *****************************************************************************/ - -xcb_xkb_mod_def_t * -xcb_xkb_get_compat_map_group_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_compat_map_group_rtrn_length - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_compat_map_group_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_compat_map_group_rtrn_iterator - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_mod_def_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_mod_def_iterator_t -xcb_xkb_get_compat_map_group_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_compat_map_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_compat_map_reply_t * xcb_xkb_get_compat_map_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_compat_map_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_compat_map_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_compat_map_reply_t * -xcb_xkb_get_compat_map_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_compat_map_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_set_compat_map_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_compat_map_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t recomputeActions - ** @param uint8_t truncateSI - ** @param uint8_t groups - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @param const xcb_xkb_sym_interpret_t *si - ** @param const xcb_xkb_mod_def_t *groupMaps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_compat_map_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t recomputeActions /**< */, - uint8_t truncateSI /**< */, - uint8_t groups /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */, - const xcb_xkb_sym_interpret_t *si /**< */, - const xcb_xkb_mod_def_t *groupMaps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_compat_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t recomputeActions - ** @param uint8_t truncateSI - ** @param uint8_t groups - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @param const xcb_xkb_sym_interpret_t *si - ** @param const xcb_xkb_mod_def_t *groupMaps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_compat_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t recomputeActions /**< */, - uint8_t truncateSI /**< */, - uint8_t groups /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */, - const xcb_xkb_sym_interpret_t *si /**< */, - const xcb_xkb_mod_def_t *groupMaps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_indicator_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_state_cookie_t -xcb_xkb_get_indicator_state (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_indicator_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_state_cookie_t -xcb_xkb_get_indicator_state_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_indicator_state_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_state_reply_t * xcb_xkb_get_indicator_state_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_indicator_state_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_indicator_state_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_state_reply_t * -xcb_xkb_get_indicator_state_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_indicator_state_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_get_indicator_map_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_indicator_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_map_cookie_t -xcb_xkb_get_indicator_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_indicator_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_map_cookie_t -xcb_xkb_get_indicator_map_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_t * xcb_xkb_get_indicator_map_maps - ** - ** @param const xcb_xkb_get_indicator_map_reply_t *R - ** @returns xcb_xkb_indicator_map_t * - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_t * -xcb_xkb_get_indicator_map_maps (const xcb_xkb_get_indicator_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_indicator_map_maps_length - ** - ** @param const xcb_xkb_get_indicator_map_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_indicator_map_maps_length (const xcb_xkb_get_indicator_map_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_indicator_map_maps_iterator - ** - ** @param const xcb_xkb_get_indicator_map_reply_t *R - ** @returns xcb_xkb_indicator_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_iterator_t -xcb_xkb_get_indicator_map_maps_iterator (const xcb_xkb_get_indicator_map_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_indicator_map_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_map_reply_t * xcb_xkb_get_indicator_map_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_indicator_map_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_indicator_map_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_map_reply_t * -xcb_xkb_get_indicator_map_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_indicator_map_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_set_indicator_map_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_indicator_map_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @param const xcb_xkb_indicator_map_t *maps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_indicator_map_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */, - const xcb_xkb_indicator_map_t *maps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_indicator_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @param const xcb_xkb_indicator_map_t *maps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_indicator_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */, - const xcb_xkb_indicator_map_t *maps /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @returns xcb_xkb_get_named_indicator_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_named_indicator_cookie_t -xcb_xkb_get_named_indicator (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @returns xcb_xkb_get_named_indicator_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_named_indicator_cookie_t -xcb_xkb_get_named_indicator_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_named_indicator_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_named_indicator_reply_t * xcb_xkb_get_named_indicator_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_named_indicator_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_named_indicator_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_named_indicator_reply_t * -xcb_xkb_get_named_indicator_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_named_indicator_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_named_indicator_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @param uint8_t setState - ** @param uint8_t on - ** @param uint8_t setMap - ** @param uint8_t createMap - ** @param uint8_t map_flags - ** @param uint8_t map_whichGroups - ** @param uint8_t map_groups - ** @param uint8_t map_whichMods - ** @param uint8_t map_realMods - ** @param uint16_t map_vmods - ** @param uint32_t map_ctrls - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_named_indicator_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */, - uint8_t setState /**< */, - uint8_t on /**< */, - uint8_t setMap /**< */, - uint8_t createMap /**< */, - uint8_t map_flags /**< */, - uint8_t map_whichGroups /**< */, - uint8_t map_groups /**< */, - uint8_t map_whichMods /**< */, - uint8_t map_realMods /**< */, - uint16_t map_vmods /**< */, - uint32_t map_ctrls /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_named_indicator - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @param uint8_t setState - ** @param uint8_t on - ** @param uint8_t setMap - ** @param uint8_t createMap - ** @param uint8_t map_flags - ** @param uint8_t map_whichGroups - ** @param uint8_t map_groups - ** @param uint8_t map_whichMods - ** @param uint8_t map_realMods - ** @param uint16_t map_vmods - ** @param uint32_t map_ctrls - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_named_indicator (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */, - uint8_t setState /**< */, - uint8_t on /**< */, - uint8_t setMap /**< */, - uint8_t createMap /**< */, - uint8_t map_flags /**< */, - uint8_t map_whichGroups /**< */, - uint8_t map_groups /**< */, - uint8_t map_whichMods /**< */, - uint8_t map_realMods /**< */, - uint16_t map_vmods /**< */, - uint32_t map_ctrls /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_type_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_type_names (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_type_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_type_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_type_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_type_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_names_value_list_n_levels_per_type - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_names_value_list_n_levels_per_type (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_n_levels_per_type_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_n_levels_per_type_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_n_levels_per_type_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_n_levels_per_type_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_names_value_list_alignment_pad - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_names_value_list_alignment_pad (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_alignment_pad_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_alignment_pad_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_alignment_pad_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_alignment_pad_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_kt_level_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_kt_level_names (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_kt_level_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_kt_level_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_kt_level_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_kt_level_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_indicator_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_indicator_names (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_indicator_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_indicator_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_indicator_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_indicator_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_virtual_mod_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_virtual_mod_names (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_virtual_mod_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_virtual_mod_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_virtual_mod_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_virtual_mod_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_groups - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_groups (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_groups_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_groups_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_groups_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_groups_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_t * xcb_xkb_get_names_value_list_key_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_xkb_key_name_t * - ** - *****************************************************************************/ - -xcb_xkb_key_name_t * -xcb_xkb_get_names_value_list_key_names (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_key_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_key_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_iterator_t xcb_xkb_get_names_value_list_key_names_iterator - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_xkb_key_name_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_name_iterator_t -xcb_xkb_get_names_value_list_key_names_iterator (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_t * xcb_xkb_get_names_value_list_key_aliases - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_xkb_key_alias_t * - ** - *****************************************************************************/ - -xcb_xkb_key_alias_t * -xcb_xkb_get_names_value_list_key_aliases (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_key_aliases_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_key_aliases_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_names_value_list_key_aliases_iterator - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_xkb_key_alias_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_alias_iterator_t -xcb_xkb_get_names_value_list_key_aliases_iterator (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_radio_group_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_radio_group_names (const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_radio_group_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_radio_group_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_radio_group_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_radio_group_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */); - -int -xcb_xkb_get_names_value_list_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - const xcb_xkb_get_names_value_list_t *_aux /**< */); - -int -xcb_xkb_get_names_value_list_unpack (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - xcb_xkb_get_names_value_list_t *_aux /**< */); - -int -xcb_xkb_get_names_value_list_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_names_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_names_cookie_t -xcb_xkb_get_names (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_names_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_names_cookie_t -xcb_xkb_get_names_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_get_names_value_list_t * xcb_xkb_get_names_value_list - ** - ** @param const xcb_xkb_get_names_reply_t *R - ** @returns xcb_xkb_get_names_value_list_t * - ** - *****************************************************************************/ - -void * -xcb_xkb_get_names_value_list (const xcb_xkb_get_names_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_names_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_names_reply_t * xcb_xkb_get_names_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_names_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_names_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_names_reply_t * -xcb_xkb_get_names_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_names_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_type_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_type_names (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_type_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_type_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_type_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_type_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_set_names_values_n_levels_per_type - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_set_names_values_n_levels_per_type (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_n_levels_per_type_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_n_levels_per_type_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_n_levels_per_type_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_n_levels_per_type_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_kt_level_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_kt_level_names (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_kt_level_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_kt_level_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_kt_level_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_kt_level_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_indicator_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_indicator_names (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_indicator_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_indicator_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_indicator_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_indicator_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_virtual_mod_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_virtual_mod_names (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_virtual_mod_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_virtual_mod_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_virtual_mod_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_virtual_mod_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_groups - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_groups (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_groups_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_groups_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_groups_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_groups_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_t * xcb_xkb_set_names_values_key_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_xkb_key_name_t * - ** - *****************************************************************************/ - -xcb_xkb_key_name_t * -xcb_xkb_set_names_values_key_names (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_key_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_key_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_iterator_t xcb_xkb_set_names_values_key_names_iterator - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_xkb_key_name_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_name_iterator_t -xcb_xkb_set_names_values_key_names_iterator (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_t * xcb_xkb_set_names_values_key_aliases - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_xkb_key_alias_t * - ** - *****************************************************************************/ - -xcb_xkb_key_alias_t * -xcb_xkb_set_names_values_key_aliases (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_key_aliases_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_key_aliases_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_iterator_t xcb_xkb_set_names_values_key_aliases_iterator - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_xkb_key_alias_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_alias_iterator_t -xcb_xkb_set_names_values_key_aliases_iterator (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_radio_group_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_radio_group_names (const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_radio_group_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_radio_group_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_radio_group_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_radio_group_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */); - -int -xcb_xkb_set_names_values_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - const xcb_xkb_set_names_values_t *_aux /**< */); - -int -xcb_xkb_set_names_values_unpack (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - xcb_xkb_set_names_values_t *_aux /**< */); - -int -xcb_xkb_set_names_values_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const void *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const void *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names_aux_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const xcb_xkb_set_names_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names_aux_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const xcb_xkb_set_names_values_t *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names_aux - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const xcb_xkb_set_names_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names_aux (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const xcb_xkb_set_names_values_t *values /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t change - ** @param uint32_t value - ** @param uint32_t ctrlsToChange - ** @param uint32_t autoCtrls - ** @param uint32_t autoCtrlsValues - ** @returns xcb_xkb_per_client_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_per_client_flags_cookie_t -xcb_xkb_per_client_flags (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t change /**< */, - uint32_t value /**< */, - uint32_t ctrlsToChange /**< */, - uint32_t autoCtrls /**< */, - uint32_t autoCtrlsValues /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t change - ** @param uint32_t value - ** @param uint32_t ctrlsToChange - ** @param uint32_t autoCtrls - ** @param uint32_t autoCtrlsValues - ** @returns xcb_xkb_per_client_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_per_client_flags_cookie_t -xcb_xkb_per_client_flags_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t change /**< */, - uint32_t value /**< */, - uint32_t ctrlsToChange /**< */, - uint32_t autoCtrls /**< */, - uint32_t autoCtrlsValues /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_per_client_flags_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_per_client_flags_reply_t * xcb_xkb_per_client_flags_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_per_client_flags_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_per_client_flags_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_per_client_flags_reply_t * -xcb_xkb_per_client_flags_reply (xcb_connection_t *c /**< */, - xcb_xkb_per_client_flags_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_list_components_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t maxNames - ** @returns xcb_xkb_list_components_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_list_components_cookie_t -xcb_xkb_list_components (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t maxNames /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t maxNames - ** @returns xcb_xkb_list_components_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_list_components_cookie_t -xcb_xkb_list_components_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t maxNames /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_keymaps_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_keymaps_length (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keymaps_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_keymaps_iterator (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_keycodes_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_keycodes_length (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keycodes_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_keycodes_iterator (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_types_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_types_length (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_types_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_types_iterator (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_compat_maps_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_compat_maps_length (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_compat_maps_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_compat_maps_iterator (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_symbols_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_symbols_length (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_symbols_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_symbols_iterator (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_geometries_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_geometries_length (const xcb_xkb_list_components_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_geometries_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_geometries_iterator (const xcb_xkb_list_components_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_list_components_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_list_components_reply_t * xcb_xkb_list_components_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_list_components_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_list_components_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_list_components_reply_t * -xcb_xkb_list_components_reply (xcb_connection_t *c /**< */, - xcb_xkb_list_components_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_type_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_type_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_type_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_sym_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_sym_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_t * xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_set_behavior_t * - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_t * -xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_set_behavior_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_t * xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_set_explicit_t * - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_t * -xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_set_explicit_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_t * -xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_v_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_t * -xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_v_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_types_map_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - const xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_types_map_unpack (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_types_map_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_name_t * - ** - *****************************************************************************/ - -xcb_xkb_key_name_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_xkb_key_name_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_name_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_alias_t * - ** - *****************************************************************************/ - -xcb_xkb_key_alias_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_xkb_key_alias_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_alias_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint16_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint16_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint16_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_t * xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_sym_interpret_t * - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_t * -xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_iterator_t xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_sym_interpret_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_iterator_t -xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_t * xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_mod_def_t * - ** - *****************************************************************************/ - -xcb_xkb_mod_def_t * -xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_mod_def_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_mod_def_iterator_t -xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_t * xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_indicator_map_t * - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_t * -xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_indicator_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_counted_string_16_t * xcb_xkb_get_kbd_by_name_replies_geometry_label_font - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_counted_string_16_t * - ** - *****************************************************************************/ - -xcb_xkb_counted_string_16_t * -xcb_xkb_get_kbd_by_name_replies_geometry_label_font (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_serialize (void **_buffer /**< */, - uint16_t reported /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *_aux /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_unpack (const void *_buffer /**< */, - uint16_t reported /**< */, - xcb_xkb_get_kbd_by_name_replies_t *_aux /**< */); - -int -xcb_xkb_get_kbd_by_name_replies_sizeof (const void *_buffer /**< */, - uint16_t reported /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_cookie_t xcb_xkb_get_kbd_by_name - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t need - ** @param uint16_t want - ** @param uint8_t load - ** @returns xcb_xkb_get_kbd_by_name_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_cookie_t -xcb_xkb_get_kbd_by_name (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t need /**< */, - uint16_t want /**< */, - uint8_t load /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_cookie_t xcb_xkb_get_kbd_by_name_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t need - ** @param uint16_t want - ** @param uint8_t load - ** @returns xcb_xkb_get_kbd_by_name_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_cookie_t -xcb_xkb_get_kbd_by_name_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t need /**< */, - uint16_t want /**< */, - uint8_t load /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_replies_t * xcb_xkb_get_kbd_by_name_replies - ** - ** @param const xcb_xkb_get_kbd_by_name_reply_t *R - ** @returns xcb_xkb_get_kbd_by_name_replies_t * - ** - *****************************************************************************/ - -void * -xcb_xkb_get_kbd_by_name_replies (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_kbd_by_name_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_reply_t * xcb_xkb_get_kbd_by_name_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_kbd_by_name_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_kbd_by_name_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_reply_t * -xcb_xkb_get_kbd_by_name_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_kbd_by_name_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_get_device_info_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_device_info_cookie_t xcb_xkb_get_device_info - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t wanted - ** @param uint8_t allButtons - ** @param uint8_t firstButton - ** @param uint8_t nButtons - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @returns xcb_xkb_get_device_info_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_device_info_cookie_t -xcb_xkb_get_device_info (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t wanted /**< */, - uint8_t allButtons /**< */, - uint8_t firstButton /**< */, - uint8_t nButtons /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_device_info_cookie_t xcb_xkb_get_device_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t wanted - ** @param uint8_t allButtons - ** @param uint8_t firstButton - ** @param uint8_t nButtons - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @returns xcb_xkb_get_device_info_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_device_info_cookie_t -xcb_xkb_get_device_info_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t wanted /**< */, - uint8_t allButtons /**< */, - uint8_t firstButton /**< */, - uint8_t nButtons /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_string8_t * xcb_xkb_get_device_info_name - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_string8_t * - ** - *****************************************************************************/ - -xcb_xkb_string8_t * -xcb_xkb_get_device_info_name (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_device_info_name_length - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_device_info_name_length (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_device_info_name_end - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_device_info_name_end (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_get_device_info_btn_actions - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_get_device_info_btn_actions (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_device_info_btn_actions_length - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_device_info_btn_actions_length (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_get_device_info_btn_actions_iterator - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_get_device_info_btn_actions_iterator (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** int xcb_xkb_get_device_info_leds_length - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_device_info_leds_length (const xcb_xkb_get_device_info_reply_t *R /**< */); - - -/***************************************************************************** - ** - ** xcb_xkb_device_led_info_iterator_t xcb_xkb_get_device_info_leds_iterator - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_device_led_info_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_device_led_info_iterator_t -xcb_xkb_get_device_info_leds_iterator (const xcb_xkb_get_device_info_reply_t *R /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_get_device_info_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_get_device_info_reply_t * xcb_xkb_get_device_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_device_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_device_info_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_device_info_reply_t * -xcb_xkb_get_device_info_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_device_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - -int -xcb_xkb_set_device_info_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will not cause - * a reply to be generated. Any returned error will be - * saved for handling by xcb_request_check(). - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_device_info_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t firstBtn - ** @param uint8_t nBtns - ** @param uint16_t change - ** @param uint16_t nDeviceLedFBs - ** @param const xcb_xkb_action_t *btnActions - ** @param const xcb_xkb_device_led_info_t *leds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_device_info_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t firstBtn /**< */, - uint8_t nBtns /**< */, - uint16_t change /**< */, - uint16_t nDeviceLedFBs /**< */, - const xcb_xkb_action_t *btnActions /**< */, - const xcb_xkb_device_led_info_t *leds /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_device_info - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t firstBtn - ** @param uint8_t nBtns - ** @param uint16_t change - ** @param uint16_t nDeviceLedFBs - ** @param const xcb_xkb_action_t *btnActions - ** @param const xcb_xkb_device_led_info_t *leds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_device_info (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t firstBtn /**< */, - uint8_t nBtns /**< */, - uint16_t change /**< */, - uint16_t nDeviceLedFBs /**< */, - const xcb_xkb_action_t *btnActions /**< */, - const xcb_xkb_device_led_info_t *leds /**< */); - -int -xcb_xkb_set_debugging_flags_sizeof (const void *_buffer /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - */ - -/***************************************************************************** - ** - ** xcb_xkb_set_debugging_flags_cookie_t xcb_xkb_set_debugging_flags - ** - ** @param xcb_connection_t *c - ** @param uint16_t msgLength - ** @param uint32_t affectFlags - ** @param uint32_t flags - ** @param uint32_t affectCtrls - ** @param uint32_t ctrls - ** @param const xcb_xkb_string8_t *message - ** @returns xcb_xkb_set_debugging_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_set_debugging_flags_cookie_t -xcb_xkb_set_debugging_flags (xcb_connection_t *c /**< */, - uint16_t msgLength /**< */, - uint32_t affectFlags /**< */, - uint32_t flags /**< */, - uint32_t affectCtrls /**< */, - uint32_t ctrls /**< */, - const xcb_xkb_string8_t *message /**< */); - -/** - * - * @param c The connection - * @return A cookie - * - * Delivers a request to the X server. - * - * This form can be used only if the request will cause - * a reply to be generated. Any returned error will be - * placed in the event queue. - */ - -/***************************************************************************** - ** - ** xcb_xkb_set_debugging_flags_cookie_t xcb_xkb_set_debugging_flags_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint16_t msgLength - ** @param uint32_t affectFlags - ** @param uint32_t flags - ** @param uint32_t affectCtrls - ** @param uint32_t ctrls - ** @param const xcb_xkb_string8_t *message - ** @returns xcb_xkb_set_debugging_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_set_debugging_flags_cookie_t -xcb_xkb_set_debugging_flags_unchecked (xcb_connection_t *c /**< */, - uint16_t msgLength /**< */, - uint32_t affectFlags /**< */, - uint32_t flags /**< */, - uint32_t affectCtrls /**< */, - uint32_t ctrls /**< */, - const xcb_xkb_string8_t *message /**< */); - -/** - * Return the reply - * @param c The connection - * @param cookie The cookie - * @param e The xcb_generic_error_t supplied - * - * Returns the reply of the request asked by - * - * The parameter @p e supplied to this function must be NULL if - * xcb_xkb_set_debugging_flags_unchecked(). is used. - * Otherwise, it stores the error if any. - * - * The returned value must be freed by the caller using free(). - */ - -/***************************************************************************** - ** - ** xcb_xkb_set_debugging_flags_reply_t * xcb_xkb_set_debugging_flags_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_set_debugging_flags_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_set_debugging_flags_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_set_debugging_flags_reply_t * -xcb_xkb_set_debugging_flags_reply (xcb_connection_t *c /**< */, - xcb_xkb_set_debugging_flags_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */); - - -#ifdef __cplusplus -} -#endif - -#endif - -/** - * @} - */ diff --git a/src/3rdparty/xcb/libxcb/fix_compiler_warning_on_32bit_systems.patch b/src/3rdparty/xcb/libxcb/fix_compiler_warning_on_32bit_systems.patch deleted file mode 100644 index 240c20d2ac..0000000000 --- a/src/3rdparty/xcb/libxcb/fix_compiler_warning_on_32bit_systems.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/src/3rdparty/xcb/include/xcb/xkb.h b/src/3rdparty/xcb/include/xcb/xkb.h -index 44b0a8d..0180ec8 100644 ---- a/src/3rdparty/xcb/include/xcb/xkb.h -+++ b/src/3rdparty/xcb/include/xcb/xkb.h -@@ -114,8 +114,8 @@ typedef enum xcb_xkb_control_t { - XCB_XKB_CONTROL_GROUPS_WRAP = 134217728, - XCB_XKB_CONTROL_INTERNAL_MODS = 268435456, - XCB_XKB_CONTROL_IGNORE_LOCK_MODS = 536870912, -- XCB_XKB_CONTROL_PER_KEY_REPEAT = 1073741824, -- XCB_XKB_CONTROL_CONTROLS_ENABLED = 2147483648 -+ XCB_XKB_CONTROL_PER_KEY_REPEAT = 1073741824u, -+ XCB_XKB_CONTROL_CONTROLS_ENABLED = 2147483648u - } xcb_xkb_control_t; - - typedef enum xcb_xkb_axfb_opt_t { diff --git a/src/3rdparty/xcb/libxcb/fixup-xinput-c.patch b/src/3rdparty/xcb/libxcb/fixup-xinput-c.patch new file mode 100644 index 0000000000..9ddaf6c59a --- /dev/null +++ b/src/3rdparty/xcb/libxcb/fixup-xinput-c.patch @@ -0,0 +1,19 @@ +diff --git a/src/3rdparty/xcb/libxcb/xinput.c b/src/3rdparty/xcb/libxcb/xinput.c +index 0edfde656c..d4e3c250bc 100644 +--- a/src/3rdparty/xcb/libxcb/xinput.c ++++ b/src/3rdparty/xcb/libxcb/xinput.c +@@ -10,11 +10,11 @@ + #include + #include + #include /* for offsetof() */ +-#include "xcbext.h" +-#include "xinput.h" ++#include ++#include + + #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) +-#include "xfixes.h" ++#include + + xcb_extension_t xcb_input_id = { "XInputExtension", 0 }; + diff --git a/src/3rdparty/xcb/libxcb/randr.c b/src/3rdparty/xcb/libxcb/randr.c deleted file mode 100644 index 0232af802f..0000000000 --- a/src/3rdparty/xcb/libxcb/randr.c +++ /dev/null @@ -1,5640 +0,0 @@ -/* - * This file generated automatically from randr.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "randr.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" -#include "render.h" - -xcb_extension_t xcb_randr_id = { "RANDR", 0 }; - - -/***************************************************************************** - ** - ** void xcb_randr_mode_next - ** - ** @param xcb_randr_mode_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_mode_next (xcb_randr_mode_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_mode_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_mode_end - ** - ** @param xcb_randr_mode_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_mode_end (xcb_randr_mode_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_crtc_next - ** - ** @param xcb_randr_crtc_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_crtc_next (xcb_randr_crtc_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_crtc_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_crtc_end - ** - ** @param xcb_randr_crtc_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_crtc_end (xcb_randr_crtc_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_output_next - ** - ** @param xcb_randr_output_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_output_next (xcb_randr_output_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_output_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_output_end - ** - ** @param xcb_randr_output_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_output_end (xcb_randr_output_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_screen_size_next - ** - ** @param xcb_randr_screen_size_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_screen_size_next (xcb_randr_screen_size_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_screen_size_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_screen_size_end - ** - ** @param xcb_randr_screen_size_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_screen_size_end (xcb_randr_screen_size_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_randr_refresh_rates_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_refresh_rates_t *_aux = (xcb_randr_refresh_rates_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_refresh_rates_t); - xcb_tmp += xcb_block_len; - /* rates */ - xcb_block_len += _aux->nRates * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_refresh_rates_rates - ** - ** @param const xcb_randr_refresh_rates_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_refresh_rates_rates (const xcb_randr_refresh_rates_t *R /**< */) -{ - return (uint16_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_refresh_rates_rates_length - ** - ** @param const xcb_randr_refresh_rates_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_refresh_rates_rates_length (const xcb_randr_refresh_rates_t *R /**< */) -{ - return R->nRates; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_refresh_rates_rates_end - ** - ** @param const xcb_randr_refresh_rates_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_refresh_rates_rates_end (const xcb_randr_refresh_rates_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((uint16_t *) (R + 1)) + (R->nRates); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_randr_refresh_rates_next - ** - ** @param xcb_randr_refresh_rates_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_refresh_rates_next (xcb_randr_refresh_rates_iterator_t *i /**< */) -{ - xcb_randr_refresh_rates_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_randr_refresh_rates_t *)(((char *)R) + xcb_randr_refresh_rates_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_randr_refresh_rates_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_refresh_rates_end - ** - ** @param xcb_randr_refresh_rates_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_refresh_rates_end (xcb_randr_refresh_rates_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_randr_refresh_rates_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_query_version_cookie_t xcb_randr_query_version - ** - ** @param xcb_connection_t *c - ** @param uint32_t major_version - ** @param uint32_t minor_version - ** @returns xcb_randr_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_version_cookie_t -xcb_randr_query_version (xcb_connection_t *c /**< */, - uint32_t major_version /**< */, - uint32_t minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_query_version_cookie_t xcb_ret; - xcb_randr_query_version_request_t xcb_out; - - xcb_out.major_version = major_version; - xcb_out.minor_version = minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_query_version_cookie_t xcb_randr_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t major_version - ** @param uint32_t minor_version - ** @returns xcb_randr_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_version_cookie_t -xcb_randr_query_version_unchecked (xcb_connection_t *c /**< */, - uint32_t major_version /**< */, - uint32_t minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_query_version_cookie_t xcb_ret; - xcb_randr_query_version_request_t xcb_out; - - xcb_out.major_version = major_version; - xcb_out.minor_version = minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_query_version_reply_t * xcb_randr_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_randr_query_version_reply_t * -xcb_randr_query_version_reply (xcb_connection_t *c /**< */, - xcb_randr_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_randr_set_screen_config_cookie_t xcb_randr_set_screen_config - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param uint16_t sizeID - ** @param uint16_t rotation - ** @param uint16_t rate - ** @returns xcb_randr_set_screen_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_screen_config_cookie_t -xcb_randr_set_screen_config (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - uint16_t sizeID /**< */, - uint16_t rotation /**< */, - uint16_t rate /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_SCREEN_CONFIG, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_set_screen_config_cookie_t xcb_ret; - xcb_randr_set_screen_config_request_t xcb_out; - - xcb_out.window = window; - xcb_out.timestamp = timestamp; - xcb_out.config_timestamp = config_timestamp; - xcb_out.sizeID = sizeID; - xcb_out.rotation = rotation; - xcb_out.rate = rate; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_screen_config_cookie_t xcb_randr_set_screen_config_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param uint16_t sizeID - ** @param uint16_t rotation - ** @param uint16_t rate - ** @returns xcb_randr_set_screen_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_screen_config_cookie_t -xcb_randr_set_screen_config_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - uint16_t sizeID /**< */, - uint16_t rotation /**< */, - uint16_t rate /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_SCREEN_CONFIG, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_set_screen_config_cookie_t xcb_ret; - xcb_randr_set_screen_config_request_t xcb_out; - - xcb_out.window = window; - xcb_out.timestamp = timestamp; - xcb_out.config_timestamp = config_timestamp; - xcb_out.sizeID = sizeID; - xcb_out.rotation = rotation; - xcb_out.rate = rate; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_screen_config_reply_t * xcb_randr_set_screen_config_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_set_screen_config_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_set_screen_config_reply_t * - ** - *****************************************************************************/ - -xcb_randr_set_screen_config_reply_t * -xcb_randr_set_screen_config_reply (xcb_connection_t *c /**< */, - xcb_randr_set_screen_config_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_set_screen_config_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_select_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_select_input_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t enable /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SELECT_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_select_input_request_t xcb_out; - - xcb_out.window = window; - xcb_out.enable = enable; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_select_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_select_input (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t enable /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SELECT_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_select_input_request_t xcb_out; - - xcb_out.window = window; - xcb_out.enable = enable; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_randr_get_screen_info_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_screen_info_reply_t *_aux = (xcb_randr_get_screen_info_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_randr_get_screen_info_reply_t); - xcb_tmp += xcb_block_len; - /* sizes */ - xcb_block_len += _aux->nSizes * sizeof(xcb_randr_screen_size_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_screen_size_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* rates */ - for(i=0; i<(_aux->nInfo - _aux->nSizes); i++) { - xcb_tmp_len = xcb_randr_refresh_rates_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_randr_refresh_rates_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_info_cookie_t xcb_randr_get_screen_info - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_info_cookie_t -xcb_randr_get_screen_info (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_info_cookie_t xcb_ret; - xcb_randr_get_screen_info_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_info_cookie_t xcb_randr_get_screen_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_info_cookie_t -xcb_randr_get_screen_info_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_info_cookie_t xcb_ret; - xcb_randr_get_screen_info_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_screen_size_t * xcb_randr_get_screen_info_sizes - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns xcb_randr_screen_size_t * - ** - *****************************************************************************/ - -xcb_randr_screen_size_t * -xcb_randr_get_screen_info_sizes (const xcb_randr_get_screen_info_reply_t *R /**< */) -{ - return (xcb_randr_screen_size_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_info_sizes_length - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_info_sizes_length (const xcb_randr_get_screen_info_reply_t *R /**< */) -{ - return R->nSizes; -} - - -/***************************************************************************** - ** - ** xcb_randr_screen_size_iterator_t xcb_randr_get_screen_info_sizes_iterator - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns xcb_randr_screen_size_iterator_t - ** - *****************************************************************************/ - -xcb_randr_screen_size_iterator_t -xcb_randr_get_screen_info_sizes_iterator (const xcb_randr_get_screen_info_reply_t *R /**< */) -{ - xcb_randr_screen_size_iterator_t i; - i.data = (xcb_randr_screen_size_t *) (R + 1); - i.rem = R->nSizes; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_info_rates_length - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_info_rates_length (const xcb_randr_get_screen_info_reply_t *R /**< */) -{ - return (R->nInfo - R->nSizes); -} - - -/***************************************************************************** - ** - ** xcb_randr_refresh_rates_iterator_t xcb_randr_get_screen_info_rates_iterator - ** - ** @param const xcb_randr_get_screen_info_reply_t *R - ** @returns xcb_randr_refresh_rates_iterator_t - ** - *****************************************************************************/ - -xcb_randr_refresh_rates_iterator_t -xcb_randr_get_screen_info_rates_iterator (const xcb_randr_get_screen_info_reply_t *R /**< */) -{ - xcb_randr_refresh_rates_iterator_t i; - xcb_generic_iterator_t prev = xcb_randr_screen_size_end(xcb_randr_get_screen_info_sizes_iterator(R)); - i.data = (xcb_randr_refresh_rates_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_refresh_rates_t, prev.index)); - i.rem = (R->nInfo - R->nSizes); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_info_reply_t * xcb_randr_get_screen_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_info_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_info_reply_t * -xcb_randr_get_screen_info_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_screen_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_size_range_cookie_t xcb_randr_get_screen_size_range - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_size_range_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_size_range_cookie_t -xcb_randr_get_screen_size_range (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_SIZE_RANGE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_size_range_cookie_t xcb_ret; - xcb_randr_get_screen_size_range_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_size_range_cookie_t xcb_randr_get_screen_size_range_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_size_range_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_size_range_cookie_t -xcb_randr_get_screen_size_range_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_SIZE_RANGE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_size_range_cookie_t xcb_ret; - xcb_randr_get_screen_size_range_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_size_range_reply_t * xcb_randr_get_screen_size_range_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_size_range_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_size_range_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_size_range_reply_t * -xcb_randr_get_screen_size_range_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_size_range_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_screen_size_range_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_screen_size_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t mm_width - ** @param uint32_t mm_height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_screen_size_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t mm_width /**< */, - uint32_t mm_height /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_SCREEN_SIZE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_screen_size_request_t xcb_out; - - xcb_out.window = window; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.mm_width = mm_width; - xcb_out.mm_height = mm_height; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_screen_size - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t mm_width - ** @param uint32_t mm_height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_screen_size (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t mm_width /**< */, - uint32_t mm_height /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_SCREEN_SIZE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_screen_size_request_t xcb_out; - - xcb_out.window = window; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.mm_width = mm_width; - xcb_out.mm_height = mm_height; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_mode_info_next - ** - ** @param xcb_randr_mode_info_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_mode_info_next (xcb_randr_mode_info_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_mode_info_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_mode_info_end - ** - ** @param xcb_randr_mode_info_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_mode_info_end (xcb_randr_mode_info_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_randr_get_screen_resources_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_screen_resources_reply_t *_aux = (xcb_randr_get_screen_resources_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_screen_resources_reply_t); - xcb_tmp += xcb_block_len; - /* crtcs */ - xcb_block_len += _aux->num_crtcs * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_crtc_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* outputs */ - xcb_block_len += _aux->num_outputs * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_output_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modes */ - xcb_block_len += _aux->num_modes * sizeof(xcb_randr_mode_info_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_mode_info_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* names */ - xcb_block_len += _aux->names_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_cookie_t xcb_randr_get_screen_resources - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_cookie_t -xcb_randr_get_screen_resources (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_RESOURCES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_resources_cookie_t xcb_ret; - xcb_randr_get_screen_resources_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_cookie_t xcb_randr_get_screen_resources_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_cookie_t -xcb_randr_get_screen_resources_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_RESOURCES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_resources_cookie_t xcb_ret; - xcb_randr_get_screen_resources_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_crtc_t * xcb_randr_get_screen_resources_crtcs - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_crtc_t * - ** - *****************************************************************************/ - -xcb_randr_crtc_t * -xcb_randr_get_screen_resources_crtcs (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - return (xcb_randr_crtc_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_crtcs_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_crtcs_length (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - return R->num_crtcs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_crtcs_end - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_crtcs_end (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_screen_resources_outputs - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_screen_resources_outputs (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_crtcs_end(R); - return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_outputs_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_outputs_length (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - return R->num_outputs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_outputs_end - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_outputs_end (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_screen_resources_crtcs_end(R); - i.data = ((xcb_randr_output_t *) child.data) + (R->num_outputs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_t * xcb_randr_get_screen_resources_modes - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_mode_info_t * - ** - *****************************************************************************/ - -xcb_randr_mode_info_t * -xcb_randr_get_screen_resources_modes (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_outputs_end(R); - return (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_modes_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_modes_length (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - return R->num_modes; -} - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_iterator_t xcb_randr_get_screen_resources_modes_iterator - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_randr_mode_info_iterator_t - ** - *****************************************************************************/ - -xcb_randr_mode_info_iterator_t -xcb_randr_get_screen_resources_modes_iterator (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_randr_mode_info_iterator_t i; - xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_outputs_end(R); - i.data = (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index)); - i.rem = R->num_modes; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_screen_resources_names - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_screen_resources_names (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_modes_iterator(R)); - return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_names_length - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_names_length (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - return R->names_len; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_names_end - ** - ** @param const xcb_randr_get_screen_resources_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_names_end (const xcb_randr_get_screen_resources_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_modes_iterator(R)); - i.data = ((uint8_t *) child.data) + (R->names_len); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_reply_t * xcb_randr_get_screen_resources_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_resources_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_resources_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_reply_t * -xcb_randr_get_screen_resources_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_resources_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_screen_resources_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_get_output_info_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_output_info_reply_t *_aux = (xcb_randr_get_output_info_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_output_info_reply_t); - xcb_tmp += xcb_block_len; - /* crtcs */ - xcb_block_len += _aux->num_crtcs * sizeof(xcb_randr_output_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_crtc_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modes */ - xcb_block_len += _aux->num_modes * sizeof(xcb_randr_output_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_mode_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* clones */ - xcb_block_len += _aux->num_clones * sizeof(xcb_randr_output_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_output_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* name */ - xcb_block_len += _aux->name_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_info_cookie_t xcb_randr_get_output_info - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_output_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_info_cookie_t -xcb_randr_get_output_info (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_timestamp_t config_timestamp /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_OUTPUT_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_output_info_cookie_t xcb_ret; - xcb_randr_get_output_info_request_t xcb_out; - - xcb_out.output = output; - xcb_out.config_timestamp = config_timestamp; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_info_cookie_t xcb_randr_get_output_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_output_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_info_cookie_t -xcb_randr_get_output_info_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_timestamp_t config_timestamp /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_OUTPUT_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_output_info_cookie_t xcb_ret; - xcb_randr_get_output_info_request_t xcb_out; - - xcb_out.output = output; - xcb_out.config_timestamp = config_timestamp; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_crtc_t * xcb_randr_get_output_info_crtcs - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_randr_crtc_t * - ** - *****************************************************************************/ - -xcb_randr_crtc_t * -xcb_randr_get_output_info_crtcs (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - return (xcb_randr_crtc_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_crtcs_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_crtcs_length (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - return R->num_crtcs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_crtcs_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_crtcs_end (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_mode_t * xcb_randr_get_output_info_modes - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_randr_mode_t * - ** - *****************************************************************************/ - -xcb_randr_mode_t * -xcb_randr_get_output_info_modes (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_output_info_crtcs_end(R); - return (xcb_randr_mode_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_modes_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_modes_length (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - return R->num_modes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_modes_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_modes_end (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_output_info_crtcs_end(R); - i.data = ((xcb_randr_mode_t *) child.data) + (R->num_modes); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_output_info_clones - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_output_info_clones (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_output_info_modes_end(R); - return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_clones_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_clones_length (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - return R->num_clones; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_clones_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_clones_end (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_output_info_modes_end(R); - i.data = ((xcb_randr_output_t *) child.data) + (R->num_clones); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_output_info_name - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_output_info_name (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_output_info_clones_end(R); - return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_info_name_length - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_info_name_length (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - return R->name_len; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_info_name_end - ** - ** @param const xcb_randr_get_output_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_info_name_end (const xcb_randr_get_output_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_output_info_clones_end(R); - i.data = ((uint8_t *) child.data) + (R->name_len); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_info_reply_t * xcb_randr_get_output_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_output_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_output_info_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_output_info_reply_t * -xcb_randr_get_output_info_reply (xcb_connection_t *c /**< */, - xcb_randr_get_output_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_output_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_list_output_properties_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_list_output_properties_reply_t *_aux = (xcb_randr_list_output_properties_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_list_output_properties_reply_t); - xcb_tmp += xcb_block_len; - /* atoms */ - xcb_block_len += _aux->num_atoms * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_list_output_properties_cookie_t xcb_randr_list_output_properties - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @returns xcb_randr_list_output_properties_cookie_t - ** - *****************************************************************************/ - -xcb_randr_list_output_properties_cookie_t -xcb_randr_list_output_properties (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_LIST_OUTPUT_PROPERTIES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_list_output_properties_cookie_t xcb_ret; - xcb_randr_list_output_properties_request_t xcb_out; - - xcb_out.output = output; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_list_output_properties_cookie_t xcb_randr_list_output_properties_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @returns xcb_randr_list_output_properties_cookie_t - ** - *****************************************************************************/ - -xcb_randr_list_output_properties_cookie_t -xcb_randr_list_output_properties_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_LIST_OUTPUT_PROPERTIES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_list_output_properties_cookie_t xcb_ret; - xcb_randr_list_output_properties_request_t xcb_out; - - xcb_out.output = output; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_randr_list_output_properties_atoms - ** - ** @param const xcb_randr_list_output_properties_reply_t *R - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_randr_list_output_properties_atoms (const xcb_randr_list_output_properties_reply_t *R /**< */) -{ - return (xcb_atom_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_list_output_properties_atoms_length - ** - ** @param const xcb_randr_list_output_properties_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_list_output_properties_atoms_length (const xcb_randr_list_output_properties_reply_t *R /**< */) -{ - return R->num_atoms; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_list_output_properties_atoms_end - ** - ** @param const xcb_randr_list_output_properties_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_list_output_properties_atoms_end (const xcb_randr_list_output_properties_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_atom_t *) (R + 1)) + (R->num_atoms); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_list_output_properties_reply_t * xcb_randr_list_output_properties_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_list_output_properties_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_list_output_properties_reply_t * - ** - *****************************************************************************/ - -xcb_randr_list_output_properties_reply_t * -xcb_randr_list_output_properties_reply (xcb_connection_t *c /**< */, - xcb_randr_list_output_properties_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_list_output_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_query_output_property_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_query_output_property_reply_t *_aux = (xcb_randr_query_output_property_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_query_output_property_reply_t); - xcb_tmp += xcb_block_len; - /* validValues */ - xcb_block_len += _aux->length * sizeof(int32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(int32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_query_output_property_cookie_t xcb_randr_query_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_randr_query_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_output_property_cookie_t -xcb_randr_query_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_QUERY_OUTPUT_PROPERTY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_query_output_property_cookie_t xcb_ret; - xcb_randr_query_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_query_output_property_cookie_t xcb_randr_query_output_property_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_randr_query_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_query_output_property_cookie_t -xcb_randr_query_output_property_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_QUERY_OUTPUT_PROPERTY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_query_output_property_cookie_t xcb_ret; - xcb_randr_query_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** int32_t * xcb_randr_query_output_property_valid_values - ** - ** @param const xcb_randr_query_output_property_reply_t *R - ** @returns int32_t * - ** - *****************************************************************************/ - -int32_t * -xcb_randr_query_output_property_valid_values (const xcb_randr_query_output_property_reply_t *R /**< */) -{ - return (int32_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_query_output_property_valid_values_length - ** - ** @param const xcb_randr_query_output_property_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_query_output_property_valid_values_length (const xcb_randr_query_output_property_reply_t *R /**< */) -{ - return R->length; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_query_output_property_valid_values_end - ** - ** @param const xcb_randr_query_output_property_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_query_output_property_valid_values_end (const xcb_randr_query_output_property_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((int32_t *) (R + 1)) + (R->length); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_query_output_property_reply_t * xcb_randr_query_output_property_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_query_output_property_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_query_output_property_reply_t * - ** - *****************************************************************************/ - -xcb_randr_query_output_property_reply_t * -xcb_randr_query_output_property_reply (xcb_connection_t *c /**< */, - xcb_randr_query_output_property_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_query_output_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_configure_output_property_sizeof (const void *_buffer /**< */, - uint32_t values_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_configure_output_property_request_t); - xcb_tmp += xcb_block_len; - /* values */ - xcb_block_len += values_len * sizeof(int32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(int32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_configure_output_property_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param uint8_t pending - ** @param uint8_t range - ** @param uint32_t values_len - ** @param const int32_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_configure_output_property_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - uint8_t pending /**< */, - uint8_t range /**< */, - uint32_t values_len /**< */, - const int32_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_randr_configure_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - xcb_out.pending = pending; - xcb_out.range = range; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* int32_t values */ - xcb_parts[4].iov_base = (char *) values; - xcb_parts[4].iov_len = values_len * sizeof(int32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_configure_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param uint8_t pending - ** @param uint8_t range - ** @param uint32_t values_len - ** @param const int32_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_configure_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - uint8_t pending /**< */, - uint8_t range /**< */, - uint32_t values_len /**< */, - const int32_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_randr_configure_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - xcb_out.pending = pending; - xcb_out.range = range; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* int32_t values */ - xcb_parts[4].iov_base = (char *) values; - xcb_parts[4].iov_len = values_len * sizeof(int32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_randr_change_output_property_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_change_output_property_request_t *_aux = (xcb_randr_change_output_property_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_change_output_property_request_t); - xcb_tmp += xcb_block_len; - /* data */ - xcb_block_len += ((_aux->num_units * _aux->format) / 8) * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_change_output_property_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint8_t format - ** @param uint8_t mode - ** @param uint32_t num_units - ** @param const void *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_change_output_property_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint8_t format /**< */, - uint8_t mode /**< */, - uint32_t num_units /**< */, - const void *data /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_CHANGE_OUTPUT_PROPERTY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_randr_change_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - xcb_out.type = type; - xcb_out.format = format; - xcb_out.mode = mode; - memset(xcb_out.pad0, 0, 2); - xcb_out.num_units = num_units; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* void data */ - xcb_parts[4].iov_base = (char *) data; - xcb_parts[4].iov_len = ((num_units * format) / 8) * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_change_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint8_t format - ** @param uint8_t mode - ** @param uint32_t num_units - ** @param const void *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_change_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint8_t format /**< */, - uint8_t mode /**< */, - uint32_t num_units /**< */, - const void *data /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_CHANGE_OUTPUT_PROPERTY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_randr_change_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - xcb_out.type = type; - xcb_out.format = format; - xcb_out.mode = mode; - memset(xcb_out.pad0, 0, 2); - xcb_out.num_units = num_units; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* void data */ - xcb_parts[4].iov_base = (char *) data; - xcb_parts[4].iov_len = ((num_units * format) / 8) * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_property_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_property_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_DELETE_OUTPUT_PROPERTY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_delete_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_DELETE_OUTPUT_PROPERTY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_delete_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_randr_get_output_property_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_output_property_reply_t *_aux = (xcb_randr_get_output_property_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_output_property_reply_t); - xcb_tmp += xcb_block_len; - /* data */ - xcb_block_len += (_aux->num_items * (_aux->format / 8)) * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_property_cookie_t xcb_randr_get_output_property - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint32_t long_offset - ** @param uint32_t long_length - ** @param uint8_t _delete - ** @param uint8_t pending - ** @returns xcb_randr_get_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_property_cookie_t -xcb_randr_get_output_property (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint32_t long_offset /**< */, - uint32_t long_length /**< */, - uint8_t _delete /**< */, - uint8_t pending /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_OUTPUT_PROPERTY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_output_property_cookie_t xcb_ret; - xcb_randr_get_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - xcb_out.type = type; - xcb_out.long_offset = long_offset; - xcb_out.long_length = long_length; - xcb_out._delete = _delete; - xcb_out.pending = pending; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_property_cookie_t xcb_randr_get_output_property_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_atom_t property - ** @param xcb_atom_t type - ** @param uint32_t long_offset - ** @param uint32_t long_length - ** @param uint8_t _delete - ** @param uint8_t pending - ** @returns xcb_randr_get_output_property_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_property_cookie_t -xcb_randr_get_output_property_unchecked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_atom_t property /**< */, - xcb_atom_t type /**< */, - uint32_t long_offset /**< */, - uint32_t long_length /**< */, - uint8_t _delete /**< */, - uint8_t pending /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_OUTPUT_PROPERTY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_output_property_cookie_t xcb_ret; - xcb_randr_get_output_property_request_t xcb_out; - - xcb_out.output = output; - xcb_out.property = property; - xcb_out.type = type; - xcb_out.long_offset = long_offset; - xcb_out.long_length = long_length; - xcb_out._delete = _delete; - xcb_out.pending = pending; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_output_property_data - ** - ** @param const xcb_randr_get_output_property_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_output_property_data (const xcb_randr_get_output_property_reply_t *R /**< */) -{ - return (uint8_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_output_property_data_length - ** - ** @param const xcb_randr_get_output_property_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_output_property_data_length (const xcb_randr_get_output_property_reply_t *R /**< */) -{ - return (R->num_items * (R->format / 8)); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_output_property_data_end - ** - ** @param const xcb_randr_get_output_property_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_output_property_data_end (const xcb_randr_get_output_property_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((uint8_t *) (R + 1)) + ((R->num_items * (R->format / 8))); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_property_reply_t * xcb_randr_get_output_property_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_output_property_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_output_property_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_output_property_reply_t * -xcb_randr_get_output_property_reply (xcb_connection_t *c /**< */, - xcb_randr_get_output_property_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_output_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_create_mode_sizeof (const void *_buffer /**< */, - uint32_t name_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_create_mode_request_t); - xcb_tmp += xcb_block_len; - /* name */ - xcb_block_len += name_len * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_create_mode_cookie_t xcb_randr_create_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_mode_info_t mode_info - ** @param uint32_t name_len - ** @param const char *name - ** @returns xcb_randr_create_mode_cookie_t - ** - *****************************************************************************/ - -xcb_randr_create_mode_cookie_t -xcb_randr_create_mode (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_mode_info_t mode_info /**< */, - uint32_t name_len /**< */, - const char *name /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_CREATE_MODE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[6]; - xcb_randr_create_mode_cookie_t xcb_ret; - xcb_randr_create_mode_request_t xcb_out; - - xcb_out.window = window; - xcb_out.mode_info = mode_info; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char name */ - xcb_parts[4].iov_base = (char *) name; - xcb_parts[4].iov_len = name_len * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_create_mode_cookie_t xcb_randr_create_mode_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_mode_info_t mode_info - ** @param uint32_t name_len - ** @param const char *name - ** @returns xcb_randr_create_mode_cookie_t - ** - *****************************************************************************/ - -xcb_randr_create_mode_cookie_t -xcb_randr_create_mode_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_mode_info_t mode_info /**< */, - uint32_t name_len /**< */, - const char *name /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_CREATE_MODE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[6]; - xcb_randr_create_mode_cookie_t xcb_ret; - xcb_randr_create_mode_request_t xcb_out; - - xcb_out.window = window; - xcb_out.mode_info = mode_info; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char name */ - xcb_parts[4].iov_base = (char *) name; - xcb_parts[4].iov_len = name_len * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_create_mode_reply_t * xcb_randr_create_mode_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_create_mode_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_create_mode_reply_t * - ** - *****************************************************************************/ - -xcb_randr_create_mode_reply_t * -xcb_randr_create_mode_reply (xcb_connection_t *c /**< */, - xcb_randr_create_mode_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_create_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_destroy_mode_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_destroy_mode_checked (xcb_connection_t *c /**< */, - xcb_randr_mode_t mode /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_DESTROY_MODE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_destroy_mode_request_t xcb_out; - - xcb_out.mode = mode; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_destroy_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_destroy_mode (xcb_connection_t *c /**< */, - xcb_randr_mode_t mode /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_DESTROY_MODE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_destroy_mode_request_t xcb_out; - - xcb_out.mode = mode; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_add_output_mode_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_add_output_mode_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_ADD_OUTPUT_MODE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_add_output_mode_request_t xcb_out; - - xcb_out.output = output; - xcb_out.mode = mode; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_add_output_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_add_output_mode (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_ADD_OUTPUT_MODE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_add_output_mode_request_t xcb_out; - - xcb_out.output = output; - xcb_out.mode = mode; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_mode_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_mode_checked (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_DELETE_OUTPUT_MODE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_delete_output_mode_request_t xcb_out; - - xcb_out.output = output; - xcb_out.mode = mode; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_delete_output_mode - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_output_t output - ** @param xcb_randr_mode_t mode - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_delete_output_mode (xcb_connection_t *c /**< */, - xcb_randr_output_t output /**< */, - xcb_randr_mode_t mode /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_DELETE_OUTPUT_MODE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_delete_output_mode_request_t xcb_out; - - xcb_out.output = output; - xcb_out.mode = mode; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_randr_get_crtc_info_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_crtc_info_reply_t *_aux = (xcb_randr_get_crtc_info_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_crtc_info_reply_t); - xcb_tmp += xcb_block_len; - /* outputs */ - xcb_block_len += _aux->num_outputs * sizeof(xcb_randr_output_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_output_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* possible */ - xcb_block_len += _aux->num_possible_outputs * sizeof(xcb_randr_output_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_output_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_info_cookie_t xcb_randr_get_crtc_info - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_crtc_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_info_cookie_t -xcb_randr_get_crtc_info (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t config_timestamp /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_info_cookie_t xcb_ret; - xcb_randr_get_crtc_info_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.config_timestamp = config_timestamp; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_info_cookie_t xcb_randr_get_crtc_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t config_timestamp - ** @returns xcb_randr_get_crtc_info_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_info_cookie_t -xcb_randr_get_crtc_info_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t config_timestamp /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_info_cookie_t xcb_ret; - xcb_randr_get_crtc_info_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.config_timestamp = config_timestamp; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_crtc_info_outputs - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_crtc_info_outputs (const xcb_randr_get_crtc_info_reply_t *R /**< */) -{ - return (xcb_randr_output_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_info_outputs_length - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_info_outputs_length (const xcb_randr_get_crtc_info_reply_t *R /**< */) -{ - return R->num_outputs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_info_outputs_end - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_info_outputs_end (const xcb_randr_get_crtc_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_randr_output_t *) (R + 1)) + (R->num_outputs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_crtc_info_possible - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_crtc_info_possible (const xcb_randr_get_crtc_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_crtc_info_outputs_end(R); - return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_info_possible_length - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_info_possible_length (const xcb_randr_get_crtc_info_reply_t *R /**< */) -{ - return R->num_possible_outputs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_info_possible_end - ** - ** @param const xcb_randr_get_crtc_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_info_possible_end (const xcb_randr_get_crtc_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_crtc_info_outputs_end(R); - i.data = ((xcb_randr_output_t *) child.data) + (R->num_possible_outputs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_info_reply_t * xcb_randr_get_crtc_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_info_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_info_reply_t * -xcb_randr_get_crtc_info_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_crtc_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_set_crtc_config_sizeof (const void *_buffer /**< */, - uint32_t outputs_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_set_crtc_config_request_t); - xcb_tmp += xcb_block_len; - /* outputs */ - xcb_block_len += outputs_len * sizeof(xcb_randr_output_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_output_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_crtc_config_cookie_t xcb_randr_set_crtc_config - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param int16_t x - ** @param int16_t y - ** @param xcb_randr_mode_t mode - ** @param uint16_t rotation - ** @param uint32_t outputs_len - ** @param const xcb_randr_output_t *outputs - ** @returns xcb_randr_set_crtc_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_crtc_config_cookie_t -xcb_randr_set_crtc_config (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - int16_t x /**< */, - int16_t y /**< */, - xcb_randr_mode_t mode /**< */, - uint16_t rotation /**< */, - uint32_t outputs_len /**< */, - const xcb_randr_output_t *outputs /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_CRTC_CONFIG, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[6]; - xcb_randr_set_crtc_config_cookie_t xcb_ret; - xcb_randr_set_crtc_config_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.timestamp = timestamp; - xcb_out.config_timestamp = config_timestamp; - xcb_out.x = x; - xcb_out.y = y; - xcb_out.mode = mode; - xcb_out.rotation = rotation; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_randr_output_t outputs */ - xcb_parts[4].iov_base = (char *) outputs; - xcb_parts[4].iov_len = outputs_len * sizeof(xcb_timestamp_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_crtc_config_cookie_t xcb_randr_set_crtc_config_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param xcb_timestamp_t config_timestamp - ** @param int16_t x - ** @param int16_t y - ** @param xcb_randr_mode_t mode - ** @param uint16_t rotation - ** @param uint32_t outputs_len - ** @param const xcb_randr_output_t *outputs - ** @returns xcb_randr_set_crtc_config_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_crtc_config_cookie_t -xcb_randr_set_crtc_config_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - xcb_timestamp_t config_timestamp /**< */, - int16_t x /**< */, - int16_t y /**< */, - xcb_randr_mode_t mode /**< */, - uint16_t rotation /**< */, - uint32_t outputs_len /**< */, - const xcb_randr_output_t *outputs /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_CRTC_CONFIG, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[6]; - xcb_randr_set_crtc_config_cookie_t xcb_ret; - xcb_randr_set_crtc_config_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.timestamp = timestamp; - xcb_out.config_timestamp = config_timestamp; - xcb_out.x = x; - xcb_out.y = y; - xcb_out.mode = mode; - xcb_out.rotation = rotation; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_randr_output_t outputs */ - xcb_parts[4].iov_base = (char *) outputs; - xcb_parts[4].iov_len = outputs_len * sizeof(xcb_timestamp_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_crtc_config_reply_t * xcb_randr_set_crtc_config_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_set_crtc_config_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_set_crtc_config_reply_t * - ** - *****************************************************************************/ - -xcb_randr_set_crtc_config_reply_t * -xcb_randr_set_crtc_config_reply (xcb_connection_t *c /**< */, - xcb_randr_set_crtc_config_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_set_crtc_config_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_size_cookie_t xcb_randr_get_crtc_gamma_size - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_size_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_size_cookie_t -xcb_randr_get_crtc_gamma_size (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_GAMMA_SIZE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_gamma_size_cookie_t xcb_ret; - xcb_randr_get_crtc_gamma_size_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_size_cookie_t xcb_randr_get_crtc_gamma_size_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_size_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_size_cookie_t -xcb_randr_get_crtc_gamma_size_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_GAMMA_SIZE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_gamma_size_cookie_t xcb_ret; - xcb_randr_get_crtc_gamma_size_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_size_reply_t * xcb_randr_get_crtc_gamma_size_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_gamma_size_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_gamma_size_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_size_reply_t * -xcb_randr_get_crtc_gamma_size_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_gamma_size_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_crtc_gamma_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_get_crtc_gamma_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_crtc_gamma_reply_t *_aux = (xcb_randr_get_crtc_gamma_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_crtc_gamma_reply_t); - xcb_tmp += xcb_block_len; - /* red */ - xcb_block_len += _aux->size * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* green */ - xcb_block_len += _aux->size * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* blue */ - xcb_block_len += _aux->size * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_cookie_t xcb_randr_get_crtc_gamma - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_cookie_t -xcb_randr_get_crtc_gamma (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_GAMMA, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_gamma_cookie_t xcb_ret; - xcb_randr_get_crtc_gamma_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_cookie_t xcb_randr_get_crtc_gamma_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_gamma_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_cookie_t -xcb_randr_get_crtc_gamma_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_GAMMA, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_gamma_cookie_t xcb_ret; - xcb_randr_get_crtc_gamma_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_get_crtc_gamma_red - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_get_crtc_gamma_red (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - return (uint16_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_gamma_red_length - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_gamma_red_length (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - return R->size; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_gamma_red_end - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_gamma_red_end (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((uint16_t *) (R + 1)) + (R->size); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_get_crtc_gamma_green - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_get_crtc_gamma_green (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_crtc_gamma_red_end(R); - return (uint16_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_gamma_green_length - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_gamma_green_length (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - return R->size; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_gamma_green_end - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_gamma_green_end (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_crtc_gamma_red_end(R); - i.data = ((uint16_t *) child.data) + (R->size); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_randr_get_crtc_gamma_blue - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_randr_get_crtc_gamma_blue (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_crtc_gamma_green_end(R); - return (uint16_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_gamma_blue_length - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_gamma_blue_length (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - return R->size; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_gamma_blue_end - ** - ** @param const xcb_randr_get_crtc_gamma_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_gamma_blue_end (const xcb_randr_get_crtc_gamma_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_crtc_gamma_green_end(R); - i.data = ((uint16_t *) child.data) + (R->size); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_gamma_reply_t * xcb_randr_get_crtc_gamma_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_gamma_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_gamma_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_gamma_reply_t * -xcb_randr_get_crtc_gamma_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_gamma_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_crtc_gamma_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_set_crtc_gamma_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_set_crtc_gamma_request_t *_aux = (xcb_randr_set_crtc_gamma_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_set_crtc_gamma_request_t); - xcb_tmp += xcb_block_len; - /* red */ - xcb_block_len += _aux->size * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* green */ - xcb_block_len += _aux->size * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* blue */ - xcb_block_len += _aux->size * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_gamma_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param uint16_t size - ** @param const uint16_t *red - ** @param const uint16_t *green - ** @param const uint16_t *blue - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_gamma_checked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - uint16_t size /**< */, - const uint16_t *red /**< */, - const uint16_t *green /**< */, - const uint16_t *blue /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 8, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_CRTC_GAMMA, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[10]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_crtc_gamma_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.size = size; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint16_t red */ - xcb_parts[4].iov_base = (char *) red; - xcb_parts[4].iov_len = size * sizeof(uint16_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* uint16_t green */ - xcb_parts[6].iov_base = (char *) green; - xcb_parts[6].iov_len = size * sizeof(uint16_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - /* uint16_t blue */ - xcb_parts[8].iov_base = (char *) blue; - xcb_parts[8].iov_len = size * sizeof(uint16_t); - xcb_parts[9].iov_base = 0; - xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_gamma - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param uint16_t size - ** @param const uint16_t *red - ** @param const uint16_t *green - ** @param const uint16_t *blue - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_gamma (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - uint16_t size /**< */, - const uint16_t *red /**< */, - const uint16_t *green /**< */, - const uint16_t *blue /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 8, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_CRTC_GAMMA, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[10]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_crtc_gamma_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.size = size; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint16_t red */ - xcb_parts[4].iov_base = (char *) red; - xcb_parts[4].iov_len = size * sizeof(uint16_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* uint16_t green */ - xcb_parts[6].iov_base = (char *) green; - xcb_parts[6].iov_len = size * sizeof(uint16_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - /* uint16_t blue */ - xcb_parts[8].iov_base = (char *) blue; - xcb_parts[8].iov_len = size * sizeof(uint16_t); - xcb_parts[9].iov_base = 0; - xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_randr_get_screen_resources_current_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_screen_resources_current_reply_t *_aux = (xcb_randr_get_screen_resources_current_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_screen_resources_current_reply_t); - xcb_tmp += xcb_block_len; - /* crtcs */ - xcb_block_len += _aux->num_crtcs * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_crtc_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* outputs */ - xcb_block_len += _aux->num_outputs * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_output_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modes */ - xcb_block_len += _aux->num_modes * sizeof(xcb_randr_mode_info_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_randr_mode_info_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* names */ - xcb_block_len += _aux->names_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_current_cookie_t xcb_randr_get_screen_resources_current - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_current_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_current_cookie_t -xcb_randr_get_screen_resources_current (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_resources_current_cookie_t xcb_ret; - xcb_randr_get_screen_resources_current_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_current_cookie_t xcb_randr_get_screen_resources_current_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_screen_resources_current_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_current_cookie_t -xcb_randr_get_screen_resources_current_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_screen_resources_current_cookie_t xcb_ret; - xcb_randr_get_screen_resources_current_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_crtc_t * xcb_randr_get_screen_resources_current_crtcs - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_crtc_t * - ** - *****************************************************************************/ - -xcb_randr_crtc_t * -xcb_randr_get_screen_resources_current_crtcs (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - return (xcb_randr_crtc_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_crtcs_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_crtcs_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - return R->num_crtcs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_current_crtcs_end - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_current_crtcs_end (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_output_t * xcb_randr_get_screen_resources_current_outputs - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_output_t * - ** - *****************************************************************************/ - -xcb_randr_output_t * -xcb_randr_get_screen_resources_current_outputs (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_crtcs_end(R); - return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_outputs_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_outputs_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - return R->num_outputs; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_current_outputs_end - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_current_outputs_end (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_screen_resources_current_crtcs_end(R); - i.data = ((xcb_randr_output_t *) child.data) + (R->num_outputs); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_t * xcb_randr_get_screen_resources_current_modes - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_mode_info_t * - ** - *****************************************************************************/ - -xcb_randr_mode_info_t * -xcb_randr_get_screen_resources_current_modes (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_outputs_end(R); - return (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_modes_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_modes_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - return R->num_modes; -} - - -/***************************************************************************** - ** - ** xcb_randr_mode_info_iterator_t xcb_randr_get_screen_resources_current_modes_iterator - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_randr_mode_info_iterator_t - ** - *****************************************************************************/ - -xcb_randr_mode_info_iterator_t -xcb_randr_get_screen_resources_current_modes_iterator (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_randr_mode_info_iterator_t i; - xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_outputs_end(R); - i.data = (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index)); - i.rem = R->num_modes; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_randr_get_screen_resources_current_names - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_randr_get_screen_resources_current_names (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_current_modes_iterator(R)); - return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_screen_resources_current_names_length - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_screen_resources_current_names_length (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - return R->names_len; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_screen_resources_current_names_end - ** - ** @param const xcb_randr_get_screen_resources_current_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_screen_resources_current_names_end (const xcb_randr_get_screen_resources_current_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_current_modes_iterator(R)); - i.data = ((uint8_t *) child.data) + (R->names_len); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_screen_resources_current_reply_t * xcb_randr_get_screen_resources_current_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_screen_resources_current_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_screen_resources_current_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_screen_resources_current_reply_t * -xcb_randr_get_screen_resources_current_reply (xcb_connection_t *c /**< */, - xcb_randr_get_screen_resources_current_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_screen_resources_current_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_randr_set_crtc_transform_sizeof (const void *_buffer /**< */, - uint32_t filter_params_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_set_crtc_transform_request_t *_aux = (xcb_randr_set_crtc_transform_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_set_crtc_transform_request_t); - xcb_tmp += xcb_block_len; - /* filter_name */ - xcb_block_len += _aux->filter_len * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* filter_params */ - xcb_block_len += filter_params_len * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_transform_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_render_transform_t transform - ** @param uint16_t filter_len - ** @param const char *filter_name - ** @param uint32_t filter_params_len - ** @param const xcb_render_fixed_t *filter_params - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_transform_checked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_render_transform_t transform /**< */, - uint16_t filter_len /**< */, - const char *filter_name /**< */, - uint32_t filter_params_len /**< */, - const xcb_render_fixed_t *filter_params /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_CRTC_TRANSFORM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_crtc_transform_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.transform = transform; - xcb_out.filter_len = filter_len; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char filter_name */ - xcb_parts[4].iov_base = (char *) filter_name; - xcb_parts[4].iov_len = filter_len * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_fixed_t filter_params */ - xcb_parts[6].iov_base = (char *) filter_params; - xcb_parts[6].iov_len = filter_params_len * sizeof(xcb_render_fixed_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_crtc_transform - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_render_transform_t transform - ** @param uint16_t filter_len - ** @param const char *filter_name - ** @param uint32_t filter_params_len - ** @param const xcb_render_fixed_t *filter_params - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_crtc_transform (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_render_transform_t transform /**< */, - uint16_t filter_len /**< */, - const char *filter_name /**< */, - uint32_t filter_params_len /**< */, - const xcb_render_fixed_t *filter_params /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_CRTC_TRANSFORM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_crtc_transform_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.transform = transform; - xcb_out.filter_len = filter_len; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char filter_name */ - xcb_parts[4].iov_base = (char *) filter_name; - xcb_parts[4].iov_len = filter_len * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_fixed_t filter_params */ - xcb_parts[6].iov_base = (char *) filter_params; - xcb_parts[6].iov_len = filter_params_len * sizeof(xcb_render_fixed_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_randr_get_crtc_transform_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_randr_get_crtc_transform_reply_t *_aux = (xcb_randr_get_crtc_transform_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_randr_get_crtc_transform_reply_t); - xcb_tmp += xcb_block_len; - /* pending_filter_name */ - xcb_block_len += _aux->pending_len * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* pending_params */ - xcb_block_len += _aux->pending_nparams * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* current_filter_name */ - xcb_block_len += _aux->current_len * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* current_params */ - xcb_block_len += _aux->current_nparams * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_transform_cookie_t xcb_randr_get_crtc_transform - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_transform_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_transform_cookie_t -xcb_randr_get_crtc_transform (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_TRANSFORM, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_transform_cookie_t xcb_ret; - xcb_randr_get_crtc_transform_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_transform_cookie_t xcb_randr_get_crtc_transform_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_crtc_transform_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_crtc_transform_cookie_t -xcb_randr_get_crtc_transform_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_CRTC_TRANSFORM, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_crtc_transform_cookie_t xcb_ret; - xcb_randr_get_crtc_transform_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** char * xcb_randr_get_crtc_transform_pending_filter_name - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_randr_get_crtc_transform_pending_filter_name (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - return (char *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_pending_filter_name_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_pending_filter_name_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - return R->pending_len; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_pending_filter_name_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_pending_filter_name_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((char *) (R + 1)) + (R->pending_len); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_render_fixed_t * xcb_randr_get_crtc_transform_pending_params - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_render_fixed_t * - ** - *****************************************************************************/ - -xcb_render_fixed_t * -xcb_randr_get_crtc_transform_pending_params (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_pending_filter_name_end(R); - return (xcb_render_fixed_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_render_fixed_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_pending_params_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_pending_params_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - return R->pending_nparams; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_pending_params_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_pending_params_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_crtc_transform_pending_filter_name_end(R); - i.data = ((xcb_render_fixed_t *) child.data) + (R->pending_nparams); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** char * xcb_randr_get_crtc_transform_current_filter_name - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_randr_get_crtc_transform_current_filter_name (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_pending_params_end(R); - return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_current_filter_name_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_current_filter_name_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - return R->current_len; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_current_filter_name_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_current_filter_name_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_crtc_transform_pending_params_end(R); - i.data = ((char *) child.data) + (R->current_len); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_render_fixed_t * xcb_randr_get_crtc_transform_current_params - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_render_fixed_t * - ** - *****************************************************************************/ - -xcb_render_fixed_t * -xcb_randr_get_crtc_transform_current_params (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_current_filter_name_end(R); - return (xcb_render_fixed_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_render_fixed_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_randr_get_crtc_transform_current_params_length - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_randr_get_crtc_transform_current_params_length (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - return R->current_nparams; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_get_crtc_transform_current_params_end - ** - ** @param const xcb_randr_get_crtc_transform_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_get_crtc_transform_current_params_end (const xcb_randr_get_crtc_transform_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_randr_get_crtc_transform_current_filter_name_end(R); - i.data = ((xcb_render_fixed_t *) child.data) + (R->current_nparams); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_crtc_transform_reply_t * xcb_randr_get_crtc_transform_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_crtc_transform_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_crtc_transform_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_crtc_transform_reply_t * -xcb_randr_get_crtc_transform_reply (xcb_connection_t *c /**< */, - xcb_randr_get_crtc_transform_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_crtc_transform_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_randr_get_panning_cookie_t xcb_randr_get_panning - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_panning_cookie_t -xcb_randr_get_panning (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_PANNING, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_panning_cookie_t xcb_ret; - xcb_randr_get_panning_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_panning_cookie_t xcb_randr_get_panning_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @returns xcb_randr_get_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_panning_cookie_t -xcb_randr_get_panning_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_PANNING, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_panning_cookie_t xcb_ret; - xcb_randr_get_panning_request_t xcb_out; - - xcb_out.crtc = crtc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_panning_reply_t * xcb_randr_get_panning_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_panning_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_panning_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_panning_reply_t * -xcb_randr_get_panning_reply (xcb_connection_t *c /**< */, - xcb_randr_get_panning_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_panning_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_randr_set_panning_cookie_t xcb_randr_set_panning - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param uint16_t left - ** @param uint16_t top - ** @param uint16_t width - ** @param uint16_t height - ** @param uint16_t track_left - ** @param uint16_t track_top - ** @param uint16_t track_width - ** @param uint16_t track_height - ** @param int16_t border_left - ** @param int16_t border_top - ** @param int16_t border_right - ** @param int16_t border_bottom - ** @returns xcb_randr_set_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_panning_cookie_t -xcb_randr_set_panning (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - uint16_t left /**< */, - uint16_t top /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint16_t track_left /**< */, - uint16_t track_top /**< */, - uint16_t track_width /**< */, - uint16_t track_height /**< */, - int16_t border_left /**< */, - int16_t border_top /**< */, - int16_t border_right /**< */, - int16_t border_bottom /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_PANNING, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_set_panning_cookie_t xcb_ret; - xcb_randr_set_panning_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.timestamp = timestamp; - xcb_out.left = left; - xcb_out.top = top; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.track_left = track_left; - xcb_out.track_top = track_top; - xcb_out.track_width = track_width; - xcb_out.track_height = track_height; - xcb_out.border_left = border_left; - xcb_out.border_top = border_top; - xcb_out.border_right = border_right; - xcb_out.border_bottom = border_bottom; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_panning_cookie_t xcb_randr_set_panning_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_crtc_t crtc - ** @param xcb_timestamp_t timestamp - ** @param uint16_t left - ** @param uint16_t top - ** @param uint16_t width - ** @param uint16_t height - ** @param uint16_t track_left - ** @param uint16_t track_top - ** @param uint16_t track_width - ** @param uint16_t track_height - ** @param int16_t border_left - ** @param int16_t border_top - ** @param int16_t border_right - ** @param int16_t border_bottom - ** @returns xcb_randr_set_panning_cookie_t - ** - *****************************************************************************/ - -xcb_randr_set_panning_cookie_t -xcb_randr_set_panning_unchecked (xcb_connection_t *c /**< */, - xcb_randr_crtc_t crtc /**< */, - xcb_timestamp_t timestamp /**< */, - uint16_t left /**< */, - uint16_t top /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint16_t track_left /**< */, - uint16_t track_top /**< */, - uint16_t track_width /**< */, - uint16_t track_height /**< */, - int16_t border_left /**< */, - int16_t border_top /**< */, - int16_t border_right /**< */, - int16_t border_bottom /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_PANNING, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_set_panning_cookie_t xcb_ret; - xcb_randr_set_panning_request_t xcb_out; - - xcb_out.crtc = crtc; - xcb_out.timestamp = timestamp; - xcb_out.left = left; - xcb_out.top = top; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.track_left = track_left; - xcb_out.track_top = track_top; - xcb_out.track_width = track_width; - xcb_out.track_height = track_height; - xcb_out.border_left = border_left; - xcb_out.border_top = border_top; - xcb_out.border_right = border_right; - xcb_out.border_bottom = border_bottom; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_set_panning_reply_t * xcb_randr_set_panning_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_set_panning_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_set_panning_reply_t * - ** - *****************************************************************************/ - -xcb_randr_set_panning_reply_t * -xcb_randr_set_panning_reply (xcb_connection_t *c /**< */, - xcb_randr_set_panning_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_set_panning_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_output_primary_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_output_t output - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_output_primary_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_output_t output /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_OUTPUT_PRIMARY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_output_primary_request_t xcb_out; - - xcb_out.window = window; - xcb_out.output = output; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_randr_set_output_primary - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_randr_output_t output - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_randr_set_output_primary (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_randr_output_t output /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_SET_OUTPUT_PRIMARY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_randr_set_output_primary_request_t xcb_out; - - xcb_out.window = window; - xcb_out.output = output; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_primary_cookie_t xcb_randr_get_output_primary - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_output_primary_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_primary_cookie_t -xcb_randr_get_output_primary (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_OUTPUT_PRIMARY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_output_primary_cookie_t xcb_ret; - xcb_randr_get_output_primary_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_primary_cookie_t xcb_randr_get_output_primary_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_randr_get_output_primary_cookie_t - ** - *****************************************************************************/ - -xcb_randr_get_output_primary_cookie_t -xcb_randr_get_output_primary_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_randr_id, - /* opcode */ XCB_RANDR_GET_OUTPUT_PRIMARY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_randr_get_output_primary_cookie_t xcb_ret; - xcb_randr_get_output_primary_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_randr_get_output_primary_reply_t * xcb_randr_get_output_primary_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_randr_get_output_primary_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_randr_get_output_primary_reply_t * - ** - *****************************************************************************/ - -xcb_randr_get_output_primary_reply_t * -xcb_randr_get_output_primary_reply (xcb_connection_t *c /**< */, - xcb_randr_get_output_primary_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_randr_get_output_primary_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** void xcb_randr_crtc_change_next - ** - ** @param xcb_randr_crtc_change_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_crtc_change_next (xcb_randr_crtc_change_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_crtc_change_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_crtc_change_end - ** - ** @param xcb_randr_crtc_change_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_crtc_change_end (xcb_randr_crtc_change_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_output_change_next - ** - ** @param xcb_randr_output_change_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_output_change_next (xcb_randr_output_change_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_output_change_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_output_change_end - ** - ** @param xcb_randr_output_change_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_output_change_end (xcb_randr_output_change_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_output_property_next - ** - ** @param xcb_randr_output_property_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_output_property_next (xcb_randr_output_property_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_output_property_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_output_property_end - ** - ** @param xcb_randr_output_property_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_output_property_end (xcb_randr_output_property_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_randr_notify_data_next - ** - ** @param xcb_randr_notify_data_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_randr_notify_data_next (xcb_randr_notify_data_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_randr_notify_data_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_randr_notify_data_end - ** - ** @param xcb_randr_notify_data_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_randr_notify_data_end (xcb_randr_notify_data_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - diff --git a/src/3rdparty/xcb/libxcb/render.c b/src/3rdparty/xcb/libxcb/render.c deleted file mode 100644 index 7e5379cfcf..0000000000 --- a/src/3rdparty/xcb/libxcb/render.c +++ /dev/null @@ -1,5295 +0,0 @@ -/* - * This file generated automatically from render.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "render.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" - -xcb_extension_t xcb_render_id = { "RENDER", 0 }; - - -/***************************************************************************** - ** - ** void xcb_render_glyph_next - ** - ** @param xcb_render_glyph_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_glyph_next (xcb_render_glyph_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_glyph_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_glyph_end - ** - ** @param xcb_render_glyph_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_glyph_end (xcb_render_glyph_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_glyphset_next - ** - ** @param xcb_render_glyphset_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_glyphset_next (xcb_render_glyphset_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_glyphset_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_glyphset_end - ** - ** @param xcb_render_glyphset_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_glyphset_end (xcb_render_glyphset_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_picture_next - ** - ** @param xcb_render_picture_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_picture_next (xcb_render_picture_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_picture_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_picture_end - ** - ** @param xcb_render_picture_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_picture_end (xcb_render_picture_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_pictformat_next - ** - ** @param xcb_render_pictformat_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictformat_next (xcb_render_pictformat_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_pictformat_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictformat_end - ** - ** @param xcb_render_pictformat_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictformat_end (xcb_render_pictformat_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_fixed_next - ** - ** @param xcb_render_fixed_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_fixed_next (xcb_render_fixed_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_fixed_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_fixed_end - ** - ** @param xcb_render_fixed_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_fixed_end (xcb_render_fixed_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_directformat_next - ** - ** @param xcb_render_directformat_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_directformat_next (xcb_render_directformat_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_directformat_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_directformat_end - ** - ** @param xcb_render_directformat_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_directformat_end (xcb_render_directformat_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_pictforminfo_next - ** - ** @param xcb_render_pictforminfo_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictforminfo_next (xcb_render_pictforminfo_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_pictforminfo_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictforminfo_end - ** - ** @param xcb_render_pictforminfo_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictforminfo_end (xcb_render_pictforminfo_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_pictvisual_next - ** - ** @param xcb_render_pictvisual_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictvisual_next (xcb_render_pictvisual_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_pictvisual_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictvisual_end - ** - ** @param xcb_render_pictvisual_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictvisual_end (xcb_render_pictvisual_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_render_pictdepth_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_pictdepth_t *_aux = (xcb_render_pictdepth_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_pictdepth_t); - xcb_tmp += xcb_block_len; - /* visuals */ - xcb_block_len += _aux->num_visuals * sizeof(xcb_render_pictvisual_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_pictvisual_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_render_pictvisual_t * xcb_render_pictdepth_visuals - ** - ** @param const xcb_render_pictdepth_t *R - ** @returns xcb_render_pictvisual_t * - ** - *****************************************************************************/ - -xcb_render_pictvisual_t * -xcb_render_pictdepth_visuals (const xcb_render_pictdepth_t *R /**< */) -{ - return (xcb_render_pictvisual_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_render_pictdepth_visuals_length - ** - ** @param const xcb_render_pictdepth_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_pictdepth_visuals_length (const xcb_render_pictdepth_t *R /**< */) -{ - return R->num_visuals; -} - - -/***************************************************************************** - ** - ** xcb_render_pictvisual_iterator_t xcb_render_pictdepth_visuals_iterator - ** - ** @param const xcb_render_pictdepth_t *R - ** @returns xcb_render_pictvisual_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictvisual_iterator_t -xcb_render_pictdepth_visuals_iterator (const xcb_render_pictdepth_t *R /**< */) -{ - xcb_render_pictvisual_iterator_t i; - i.data = (xcb_render_pictvisual_t *) (R + 1); - i.rem = R->num_visuals; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_render_pictdepth_next - ** - ** @param xcb_render_pictdepth_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictdepth_next (xcb_render_pictdepth_iterator_t *i /**< */) -{ - xcb_render_pictdepth_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_render_pictdepth_t *)(((char *)R) + xcb_render_pictdepth_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_render_pictdepth_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictdepth_end - ** - ** @param xcb_render_pictdepth_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictdepth_end (xcb_render_pictdepth_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_render_pictdepth_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_render_pictscreen_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_pictscreen_t *_aux = (xcb_render_pictscreen_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_render_pictscreen_t); - xcb_tmp += xcb_block_len; - /* depths */ - for(i=0; i<_aux->num_depths; i++) { - xcb_tmp_len = xcb_render_pictdepth_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_render_pictdepth_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** int xcb_render_pictscreen_depths_length - ** - ** @param const xcb_render_pictscreen_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_pictscreen_depths_length (const xcb_render_pictscreen_t *R /**< */) -{ - return R->num_depths; -} - - -/***************************************************************************** - ** - ** xcb_render_pictdepth_iterator_t xcb_render_pictscreen_depths_iterator - ** - ** @param const xcb_render_pictscreen_t *R - ** @returns xcb_render_pictdepth_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictdepth_iterator_t -xcb_render_pictscreen_depths_iterator (const xcb_render_pictscreen_t *R /**< */) -{ - xcb_render_pictdepth_iterator_t i; - i.data = (xcb_render_pictdepth_t *) (R + 1); - i.rem = R->num_depths; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_render_pictscreen_next - ** - ** @param xcb_render_pictscreen_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pictscreen_next (xcb_render_pictscreen_iterator_t *i /**< */) -{ - xcb_render_pictscreen_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_render_pictscreen_t *)(((char *)R) + xcb_render_pictscreen_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_render_pictscreen_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pictscreen_end - ** - ** @param xcb_render_pictscreen_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pictscreen_end (xcb_render_pictscreen_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_render_pictscreen_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_indexvalue_next - ** - ** @param xcb_render_indexvalue_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_indexvalue_next (xcb_render_indexvalue_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_indexvalue_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_indexvalue_end - ** - ** @param xcb_render_indexvalue_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_indexvalue_end (xcb_render_indexvalue_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_color_next - ** - ** @param xcb_render_color_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_color_next (xcb_render_color_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_color_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_color_end - ** - ** @param xcb_render_color_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_color_end (xcb_render_color_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_pointfix_next - ** - ** @param xcb_render_pointfix_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_pointfix_next (xcb_render_pointfix_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_pointfix_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_pointfix_end - ** - ** @param xcb_render_pointfix_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_pointfix_end (xcb_render_pointfix_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_linefix_next - ** - ** @param xcb_render_linefix_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_linefix_next (xcb_render_linefix_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_linefix_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_linefix_end - ** - ** @param xcb_render_linefix_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_linefix_end (xcb_render_linefix_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_triangle_next - ** - ** @param xcb_render_triangle_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_triangle_next (xcb_render_triangle_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_triangle_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_triangle_end - ** - ** @param xcb_render_triangle_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_triangle_end (xcb_render_triangle_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_trapezoid_next - ** - ** @param xcb_render_trapezoid_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_trapezoid_next (xcb_render_trapezoid_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_trapezoid_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_trapezoid_end - ** - ** @param xcb_render_trapezoid_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_trapezoid_end (xcb_render_trapezoid_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_glyphinfo_next - ** - ** @param xcb_render_glyphinfo_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_glyphinfo_next (xcb_render_glyphinfo_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_glyphinfo_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_glyphinfo_end - ** - ** @param xcb_render_glyphinfo_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_glyphinfo_end (xcb_render_glyphinfo_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_render_query_version_cookie_t xcb_render_query_version - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_render_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_version_cookie_t -xcb_render_query_version (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_version_cookie_t xcb_ret; - xcb_render_query_version_request_t xcb_out; - - xcb_out.client_major_version = client_major_version; - xcb_out.client_minor_version = client_minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_query_version_cookie_t xcb_render_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_render_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_version_cookie_t -xcb_render_query_version_unchecked (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_version_cookie_t xcb_ret; - xcb_render_query_version_request_t xcb_out; - - xcb_out.client_major_version = client_major_version; - xcb_out.client_minor_version = client_minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_query_version_reply_t * xcb_render_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_version_reply_t * -xcb_render_query_version_reply (xcb_connection_t *c /**< */, - xcb_render_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_render_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_render_query_pict_formats_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_query_pict_formats_reply_t *_aux = (xcb_render_query_pict_formats_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_render_query_pict_formats_reply_t); - xcb_tmp += xcb_block_len; - /* formats */ - xcb_block_len += _aux->num_formats * sizeof(xcb_render_pictforminfo_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_pictforminfo_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* screens */ - for(i=0; i<_aux->num_screens; i++) { - xcb_tmp_len = xcb_render_pictscreen_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_render_pictscreen_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* subpixels */ - xcb_block_len += _aux->num_subpixel * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats - ** - ** @param xcb_connection_t *c - ** @returns xcb_render_query_pict_formats_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_formats_cookie_t -xcb_render_query_pict_formats (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_PICT_FORMATS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_pict_formats_cookie_t xcb_ret; - xcb_render_query_pict_formats_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_query_pict_formats_cookie_t xcb_render_query_pict_formats_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_render_query_pict_formats_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_formats_cookie_t -xcb_render_query_pict_formats_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_PICT_FORMATS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_pict_formats_cookie_t xcb_ret; - xcb_render_query_pict_formats_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_pictforminfo_t * xcb_render_query_pict_formats_formats - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_render_pictforminfo_t * - ** - *****************************************************************************/ - -xcb_render_pictforminfo_t * -xcb_render_query_pict_formats_formats (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - return (xcb_render_pictforminfo_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_formats_formats_length - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_formats_formats_length (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - return R->num_formats; -} - - -/***************************************************************************** - ** - ** xcb_render_pictforminfo_iterator_t xcb_render_query_pict_formats_formats_iterator - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_render_pictforminfo_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictforminfo_iterator_t -xcb_render_query_pict_formats_formats_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - xcb_render_pictforminfo_iterator_t i; - i.data = (xcb_render_pictforminfo_t *) (R + 1); - i.rem = R->num_formats; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_formats_screens_length - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_formats_screens_length (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - return R->num_screens; -} - - -/***************************************************************************** - ** - ** xcb_render_pictscreen_iterator_t xcb_render_query_pict_formats_screens_iterator - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_render_pictscreen_iterator_t - ** - *****************************************************************************/ - -xcb_render_pictscreen_iterator_t -xcb_render_query_pict_formats_screens_iterator (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - xcb_render_pictscreen_iterator_t i; - xcb_generic_iterator_t prev = xcb_render_pictforminfo_end(xcb_render_query_pict_formats_formats_iterator(R)); - i.data = (xcb_render_pictscreen_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_render_pictscreen_t, prev.index)); - i.rem = R->num_screens; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint32_t * xcb_render_query_pict_formats_subpixels - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns uint32_t * - ** - *****************************************************************************/ - -uint32_t * -xcb_render_query_pict_formats_subpixels (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_render_pictscreen_end(xcb_render_query_pict_formats_screens_iterator(R)); - return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_formats_subpixels_length - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_formats_subpixels_length (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - return R->num_subpixel; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_query_pict_formats_subpixels_end - ** - ** @param const xcb_render_query_pict_formats_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_query_pict_formats_subpixels_end (const xcb_render_query_pict_formats_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_render_pictscreen_end(xcb_render_query_pict_formats_screens_iterator(R)); - i.data = ((uint32_t *) child.data) + (R->num_subpixel); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_render_query_pict_formats_reply_t * xcb_render_query_pict_formats_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_pict_formats_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_pict_formats_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_pict_formats_reply_t * -xcb_render_query_pict_formats_reply (xcb_connection_t *c /**< */, - xcb_render_query_pict_formats_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_render_query_pict_formats_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_render_query_pict_index_values_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_query_pict_index_values_reply_t *_aux = (xcb_render_query_pict_index_values_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_query_pict_index_values_reply_t); - xcb_tmp += xcb_block_len; - /* values */ - xcb_block_len += _aux->num_values * sizeof(xcb_render_indexvalue_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_indexvalue_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values - ** - ** @param xcb_connection_t *c - ** @param xcb_render_pictformat_t format - ** @returns xcb_render_query_pict_index_values_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_index_values_cookie_t -xcb_render_query_pict_index_values (xcb_connection_t *c /**< */, - xcb_render_pictformat_t format /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_PICT_INDEX_VALUES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_pict_index_values_cookie_t xcb_ret; - xcb_render_query_pict_index_values_request_t xcb_out; - - xcb_out.format = format; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_query_pict_index_values_cookie_t xcb_render_query_pict_index_values_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_pictformat_t format - ** @returns xcb_render_query_pict_index_values_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_pict_index_values_cookie_t -xcb_render_query_pict_index_values_unchecked (xcb_connection_t *c /**< */, - xcb_render_pictformat_t format /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_PICT_INDEX_VALUES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_pict_index_values_cookie_t xcb_ret; - xcb_render_query_pict_index_values_request_t xcb_out; - - xcb_out.format = format; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_indexvalue_t * xcb_render_query_pict_index_values_values - ** - ** @param const xcb_render_query_pict_index_values_reply_t *R - ** @returns xcb_render_indexvalue_t * - ** - *****************************************************************************/ - -xcb_render_indexvalue_t * -xcb_render_query_pict_index_values_values (const xcb_render_query_pict_index_values_reply_t *R /**< */) -{ - return (xcb_render_indexvalue_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_render_query_pict_index_values_values_length - ** - ** @param const xcb_render_query_pict_index_values_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_pict_index_values_values_length (const xcb_render_query_pict_index_values_reply_t *R /**< */) -{ - return R->num_values; -} - - -/***************************************************************************** - ** - ** xcb_render_indexvalue_iterator_t xcb_render_query_pict_index_values_values_iterator - ** - ** @param const xcb_render_query_pict_index_values_reply_t *R - ** @returns xcb_render_indexvalue_iterator_t - ** - *****************************************************************************/ - -xcb_render_indexvalue_iterator_t -xcb_render_query_pict_index_values_values_iterator (const xcb_render_query_pict_index_values_reply_t *R /**< */) -{ - xcb_render_indexvalue_iterator_t i; - i.data = (xcb_render_indexvalue_t *) (R + 1); - i.rem = R->num_values; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_render_query_pict_index_values_reply_t * xcb_render_query_pict_index_values_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_pict_index_values_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_pict_index_values_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_pict_index_values_reply_t * -xcb_render_query_pict_index_values_reply (xcb_connection_t *c /**< */, - xcb_render_query_pict_index_values_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_render_query_pict_index_values_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_render_create_picture_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_create_picture_request_t *_aux = (xcb_render_create_picture_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_create_picture_request_t); - xcb_tmp += xcb_block_len; - /* value_list */ - xcb_block_len += xcb_popcount(_aux->value_mask) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t pid - ** @param xcb_drawable_t drawable - ** @param xcb_render_pictformat_t format - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_picture_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t pid /**< */, - xcb_drawable_t drawable /**< */, - xcb_render_pictformat_t format /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_picture_request_t xcb_out; - - xcb_out.pid = pid; - xcb_out.drawable = drawable; - xcb_out.format = format; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t pid - ** @param xcb_drawable_t drawable - ** @param xcb_render_pictformat_t format - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_picture (xcb_connection_t *c /**< */, - xcb_render_picture_t pid /**< */, - xcb_drawable_t drawable /**< */, - xcb_render_pictformat_t format /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_picture_request_t xcb_out; - - xcb_out.pid = pid; - xcb_out.drawable = drawable; - xcb_out.format = format; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_change_picture_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_change_picture_request_t *_aux = (xcb_render_change_picture_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_change_picture_request_t); - xcb_tmp += xcb_block_len; - /* value_list */ - xcb_block_len += xcb_popcount(_aux->value_mask) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_change_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_change_picture_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CHANGE_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_change_picture_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_change_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_change_picture (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CHANGE_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_change_picture_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_set_picture_clip_rectangles_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_set_picture_clip_rectangles_request_t); - xcb_tmp += xcb_block_len; - /* rectangles */ - xcb_block_len += rectangles_len * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t clip_x_origin - ** @param int16_t clip_y_origin - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_clip_rectangles_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t clip_x_origin /**< */, - int16_t clip_y_origin /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_set_picture_clip_rectangles_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.clip_x_origin = clip_x_origin; - xcb_out.clip_y_origin = clip_y_origin; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_clip_rectangles - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t clip_x_origin - ** @param int16_t clip_y_origin - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_clip_rectangles (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t clip_x_origin /**< */, - int16_t clip_y_origin /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_SET_PICTURE_CLIP_RECTANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_set_picture_clip_rectangles_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.clip_x_origin = clip_x_origin; - xcb_out.clip_y_origin = clip_y_origin; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_picture_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FREE_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_free_picture_request_t xcb_out; - - xcb_out.picture = picture; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_picture (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FREE_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_free_picture_request_t xcb_out; - - xcb_out.picture = picture; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t mask - ** @param xcb_render_picture_t dst - ** @param int16_t src_x - ** @param int16_t src_y - ** @param int16_t mask_x - ** @param int16_t mask_y - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint16_t width - ** @param uint16_t height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t mask /**< */, - xcb_render_picture_t dst /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - int16_t mask_x /**< */, - int16_t mask_y /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint16_t width /**< */, - uint16_t height /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.mask = mask; - xcb_out.dst = dst; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - xcb_out.mask_x = mask_x; - xcb_out.mask_y = mask_y; - xcb_out.dst_x = dst_x; - xcb_out.dst_y = dst_y; - xcb_out.width = width; - xcb_out.height = height; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t mask - ** @param xcb_render_picture_t dst - ** @param int16_t src_x - ** @param int16_t src_y - ** @param int16_t mask_x - ** @param int16_t mask_y - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint16_t width - ** @param uint16_t height - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t mask /**< */, - xcb_render_picture_t dst /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - int16_t mask_x /**< */, - int16_t mask_y /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint16_t width /**< */, - uint16_t height /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.mask = mask; - xcb_out.dst = dst; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - xcb_out.mask_x = mask_x; - xcb_out.mask_y = mask_y; - xcb_out.dst_x = dst_x; - xcb_out.dst_y = dst_y; - xcb_out.width = width; - xcb_out.height = height; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_trapezoids_sizeof (const void *_buffer /**< */, - uint32_t traps_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_trapezoids_request_t); - xcb_tmp += xcb_block_len; - /* traps */ - xcb_block_len += traps_len * sizeof(xcb_render_trapezoid_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_trapezoid_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_trapezoids_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t traps_len - ** @param const xcb_render_trapezoid_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_trapezoids_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t traps_len /**< */, - const xcb_render_trapezoid_t *traps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRAPEZOIDS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_trapezoids_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_trapezoid_t traps */ - xcb_parts[4].iov_base = (char *) traps; - xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trapezoid_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_trapezoids - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t traps_len - ** @param const xcb_render_trapezoid_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_trapezoids (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t traps_len /**< */, - const xcb_render_trapezoid_t *traps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRAPEZOIDS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_trapezoids_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_trapezoid_t traps */ - xcb_parts[4].iov_base = (char *) traps; - xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trapezoid_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_triangles_sizeof (const void *_buffer /**< */, - uint32_t triangles_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_triangles_request_t); - xcb_tmp += xcb_block_len; - /* triangles */ - xcb_block_len += triangles_len * sizeof(xcb_render_triangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_triangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_triangles_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t triangles_len - ** @param const xcb_render_triangle_t *triangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_triangles_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t triangles_len /**< */, - const xcb_render_triangle_t *triangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRIANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_triangles_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_triangle_t triangles */ - xcb_parts[4].iov_base = (char *) triangles; - xcb_parts[4].iov_len = triangles_len * sizeof(xcb_render_triangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_triangles - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t triangles_len - ** @param const xcb_render_triangle_t *triangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_triangles (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t triangles_len /**< */, - const xcb_render_triangle_t *triangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRIANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_triangles_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_triangle_t triangles */ - xcb_parts[4].iov_base = (char *) triangles; - xcb_parts[4].iov_len = triangles_len * sizeof(xcb_render_triangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_tri_strip_sizeof (const void *_buffer /**< */, - uint32_t points_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_tri_strip_request_t); - xcb_tmp += xcb_block_len; - /* points */ - xcb_block_len += points_len * sizeof(xcb_render_pointfix_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_pointfix_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_strip_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_strip_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRI_STRIP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_tri_strip_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_pointfix_t points */ - xcb_parts[4].iov_base = (char *) points; - xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_strip - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_strip (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRI_STRIP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_tri_strip_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_pointfix_t points */ - xcb_parts[4].iov_base = (char *) points; - xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_tri_fan_sizeof (const void *_buffer /**< */, - uint32_t points_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_tri_fan_request_t); - xcb_tmp += xcb_block_len; - /* points */ - xcb_block_len += points_len * sizeof(xcb_render_pointfix_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_pointfix_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_fan_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_fan_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRI_FAN, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_tri_fan_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_pointfix_t points */ - xcb_parts[4].iov_base = (char *) points; - xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_tri_fan - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t points_len - ** @param const xcb_render_pointfix_t *points - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_tri_fan (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t points_len /**< */, - const xcb_render_pointfix_t *points /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_TRI_FAN, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_tri_fan_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_pointfix_t points */ - xcb_parts[4].iov_base = (char *) points; - xcb_parts[4].iov_len = points_len * sizeof(xcb_render_pointfix_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_glyph_set_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_pictformat_t format - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_glyph_set_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_pictformat_t format /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_GLYPH_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_glyph_set_request_t xcb_out; - - xcb_out.gsid = gsid; - xcb_out.format = format; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_glyph_set - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_pictformat_t format - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_glyph_set (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_pictformat_t format /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_GLYPH_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_glyph_set_request_t xcb_out; - - xcb_out.gsid = gsid; - xcb_out.format = format; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_reference_glyph_set_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_glyphset_t existing - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_reference_glyph_set_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_glyphset_t existing /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_REFERENCE_GLYPH_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_reference_glyph_set_request_t xcb_out; - - xcb_out.gsid = gsid; - xcb_out.existing = existing; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_reference_glyph_set - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t gsid - ** @param xcb_render_glyphset_t existing - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_reference_glyph_set (xcb_connection_t *c /**< */, - xcb_render_glyphset_t gsid /**< */, - xcb_render_glyphset_t existing /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_REFERENCE_GLYPH_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_reference_glyph_set_request_t xcb_out; - - xcb_out.gsid = gsid; - xcb_out.existing = existing; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyph_set_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyph_set_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FREE_GLYPH_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_free_glyph_set_request_t xcb_out; - - xcb_out.glyphset = glyphset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyph_set - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyph_set (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FREE_GLYPH_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_free_glyph_set_request_t xcb_out; - - xcb_out.glyphset = glyphset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_add_glyphs_sizeof (const void *_buffer /**< */, - uint32_t data_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_add_glyphs_request_t *_aux = (xcb_render_add_glyphs_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_add_glyphs_request_t); - xcb_tmp += xcb_block_len; - /* glyphids */ - xcb_block_len += _aux->glyphs_len * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* glyphs */ - xcb_block_len += _aux->glyphs_len * sizeof(xcb_render_glyphinfo_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_glyphinfo_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* data */ - xcb_block_len += data_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_glyphs_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const uint32_t *glyphids - ** @param const xcb_render_glyphinfo_t *glyphs - ** @param uint32_t data_len - ** @param const uint8_t *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_glyphs_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const uint32_t *glyphids /**< */, - const xcb_render_glyphinfo_t *glyphs /**< */, - uint32_t data_len /**< */, - const uint8_t *data /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 8, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_ADD_GLYPHS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[10]; - xcb_void_cookie_t xcb_ret; - xcb_render_add_glyphs_request_t xcb_out; - - xcb_out.glyphset = glyphset; - xcb_out.glyphs_len = glyphs_len; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t glyphids */ - xcb_parts[4].iov_base = (char *) glyphids; - xcb_parts[4].iov_len = glyphs_len * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_glyphinfo_t glyphs */ - xcb_parts[6].iov_base = (char *) glyphs; - xcb_parts[6].iov_len = glyphs_len * sizeof(xcb_render_glyphinfo_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - /* uint8_t data */ - xcb_parts[8].iov_base = (char *) data; - xcb_parts[8].iov_len = data_len * sizeof(uint8_t); - xcb_parts[9].iov_base = 0; - xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_glyphs - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const uint32_t *glyphids - ** @param const xcb_render_glyphinfo_t *glyphs - ** @param uint32_t data_len - ** @param const uint8_t *data - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_glyphs (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const uint32_t *glyphids /**< */, - const xcb_render_glyphinfo_t *glyphs /**< */, - uint32_t data_len /**< */, - const uint8_t *data /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 8, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_ADD_GLYPHS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[10]; - xcb_void_cookie_t xcb_ret; - xcb_render_add_glyphs_request_t xcb_out; - - xcb_out.glyphset = glyphset; - xcb_out.glyphs_len = glyphs_len; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t glyphids */ - xcb_parts[4].iov_base = (char *) glyphids; - xcb_parts[4].iov_len = glyphs_len * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_glyphinfo_t glyphs */ - xcb_parts[6].iov_base = (char *) glyphs; - xcb_parts[6].iov_len = glyphs_len * sizeof(xcb_render_glyphinfo_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - /* uint8_t data */ - xcb_parts[8].iov_base = (char *) data; - xcb_parts[8].iov_len = data_len * sizeof(uint8_t); - xcb_parts[9].iov_base = 0; - xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_free_glyphs_sizeof (const void *_buffer /**< */, - uint32_t glyphs_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_free_glyphs_request_t); - xcb_tmp += xcb_block_len; - /* glyphs */ - xcb_block_len += glyphs_len * sizeof(xcb_render_glyph_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_glyph_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyphs_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const xcb_render_glyph_t *glyphs - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyphs_checked (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const xcb_render_glyph_t *glyphs /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FREE_GLYPHS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_free_glyphs_request_t xcb_out; - - xcb_out.glyphset = glyphset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_glyph_t glyphs */ - xcb_parts[4].iov_base = (char *) glyphs; - xcb_parts[4].iov_len = glyphs_len * sizeof(xcb_render_glyph_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_free_glyphs - ** - ** @param xcb_connection_t *c - ** @param xcb_render_glyphset_t glyphset - ** @param uint32_t glyphs_len - ** @param const xcb_render_glyph_t *glyphs - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_free_glyphs (xcb_connection_t *c /**< */, - xcb_render_glyphset_t glyphset /**< */, - uint32_t glyphs_len /**< */, - const xcb_render_glyph_t *glyphs /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FREE_GLYPHS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_free_glyphs_request_t xcb_out; - - xcb_out.glyphset = glyphset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_glyph_t glyphs */ - xcb_parts[4].iov_base = (char *) glyphs; - xcb_parts[4].iov_len = glyphs_len * sizeof(xcb_render_glyph_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_composite_glyphs_8_sizeof (const void *_buffer /**< */, - uint32_t glyphcmds_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_composite_glyphs_8_request_t); - xcb_tmp += xcb_block_len; - /* glyphcmds */ - xcb_block_len += glyphcmds_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_8_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_8_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_8, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_glyphs_8_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.glyphset = glyphset; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint8_t glyphcmds */ - xcb_parts[4].iov_base = (char *) glyphcmds; - xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_8 - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_8 (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_8, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_glyphs_8_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.glyphset = glyphset; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint8_t glyphcmds */ - xcb_parts[4].iov_base = (char *) glyphcmds; - xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_composite_glyphs_16_sizeof (const void *_buffer /**< */, - uint32_t glyphcmds_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_composite_glyphs_16_request_t); - xcb_tmp += xcb_block_len; - /* glyphcmds */ - xcb_block_len += glyphcmds_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_16_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_16_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_16, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_glyphs_16_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.glyphset = glyphset; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint8_t glyphcmds */ - xcb_parts[4].iov_base = (char *) glyphcmds; - xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_16 - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_16 (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_16, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_glyphs_16_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.glyphset = glyphset; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint8_t glyphcmds */ - xcb_parts[4].iov_base = (char *) glyphcmds; - xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_composite_glyphs_32_sizeof (const void *_buffer /**< */, - uint32_t glyphcmds_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_composite_glyphs_32_request_t); - xcb_tmp += xcb_block_len; - /* glyphcmds */ - xcb_block_len += glyphcmds_len * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_32_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_32_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_32, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_glyphs_32_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.glyphset = glyphset; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint8_t glyphcmds */ - xcb_parts[4].iov_base = (char *) glyphcmds; - xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_composite_glyphs_32 - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t src - ** @param xcb_render_picture_t dst - ** @param xcb_render_pictformat_t mask_format - ** @param xcb_render_glyphset_t glyphset - ** @param int16_t src_x - ** @param int16_t src_y - ** @param uint32_t glyphcmds_len - ** @param const uint8_t *glyphcmds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_composite_glyphs_32 (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t src /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_pictformat_t mask_format /**< */, - xcb_render_glyphset_t glyphset /**< */, - int16_t src_x /**< */, - int16_t src_y /**< */, - uint32_t glyphcmds_len /**< */, - const uint8_t *glyphcmds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_COMPOSITE_GLYPHS_32, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_composite_glyphs_32_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.src = src; - xcb_out.dst = dst; - xcb_out.mask_format = mask_format; - xcb_out.glyphset = glyphset; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint8_t glyphcmds */ - xcb_parts[4].iov_base = (char *) glyphcmds; - xcb_parts[4].iov_len = glyphcmds_len * sizeof(uint8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_fill_rectangles_sizeof (const void *_buffer /**< */, - uint32_t rects_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_fill_rectangles_request_t); - xcb_tmp += xcb_block_len; - /* rects */ - xcb_block_len += rects_len * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_fill_rectangles_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t dst - ** @param xcb_render_color_t color - ** @param uint32_t rects_len - ** @param const xcb_rectangle_t *rects - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_fill_rectangles_checked (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_color_t color /**< */, - uint32_t rects_len /**< */, - const xcb_rectangle_t *rects /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FILL_RECTANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_fill_rectangles_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.dst = dst; - xcb_out.color = color; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rects */ - xcb_parts[4].iov_base = (char *) rects; - xcb_parts[4].iov_len = rects_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_fill_rectangles - ** - ** @param xcb_connection_t *c - ** @param uint8_t op - ** @param xcb_render_picture_t dst - ** @param xcb_render_color_t color - ** @param uint32_t rects_len - ** @param const xcb_rectangle_t *rects - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_fill_rectangles (xcb_connection_t *c /**< */, - uint8_t op /**< */, - xcb_render_picture_t dst /**< */, - xcb_render_color_t color /**< */, - uint32_t rects_len /**< */, - const xcb_rectangle_t *rects /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_FILL_RECTANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_fill_rectangles_request_t xcb_out; - - xcb_out.op = op; - memset(xcb_out.pad0, 0, 3); - xcb_out.dst = dst; - xcb_out.color = color; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rects */ - xcb_parts[4].iov_base = (char *) rects; - xcb_parts[4].iov_len = rects_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param xcb_render_picture_t source - ** @param uint16_t x - ** @param uint16_t y - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_cursor_checked (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - xcb_render_picture_t source /**< */, - uint16_t x /**< */, - uint16_t y /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_cursor_request_t xcb_out; - - xcb_out.cid = cid; - xcb_out.source = source; - xcb_out.x = x; - xcb_out.y = y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param xcb_render_picture_t source - ** @param uint16_t x - ** @param uint16_t y - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_cursor (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - xcb_render_picture_t source /**< */, - uint16_t x /**< */, - uint16_t y /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_cursor_request_t xcb_out; - - xcb_out.cid = cid; - xcb_out.source = source; - xcb_out.x = x; - xcb_out.y = y; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_transform_next - ** - ** @param xcb_render_transform_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_transform_next (xcb_render_transform_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_transform_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_transform_end - ** - ** @param xcb_render_transform_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_transform_end (xcb_render_transform_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_transform_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_transform_t transform - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_transform_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_transform_t transform /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_SET_PICTURE_TRANSFORM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_set_picture_transform_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.transform = transform; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_transform - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_transform_t transform - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_transform (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_transform_t transform /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_SET_PICTURE_TRANSFORM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_set_picture_transform_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.transform = transform; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_query_filters_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_query_filters_reply_t *_aux = (xcb_render_query_filters_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_render_query_filters_reply_t); - xcb_tmp += xcb_block_len; - /* aliases */ - xcb_block_len += _aux->num_aliases * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* filters */ - for(i=0; i<_aux->num_filters; i++) { - xcb_tmp_len = xcb_str_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_str_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_render_query_filters_cookie_t xcb_render_query_filters - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @returns xcb_render_query_filters_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_filters_cookie_t -xcb_render_query_filters (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_FILTERS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_filters_cookie_t xcb_ret; - xcb_render_query_filters_request_t xcb_out; - - xcb_out.drawable = drawable; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_render_query_filters_cookie_t xcb_render_query_filters_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @returns xcb_render_query_filters_cookie_t - ** - *****************************************************************************/ - -xcb_render_query_filters_cookie_t -xcb_render_query_filters_unchecked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_QUERY_FILTERS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_render_query_filters_cookie_t xcb_ret; - xcb_render_query_filters_request_t xcb_out; - - xcb_out.drawable = drawable; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_render_query_filters_aliases - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_render_query_filters_aliases (const xcb_render_query_filters_reply_t *R /**< */) -{ - return (uint16_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_render_query_filters_aliases_length - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_filters_aliases_length (const xcb_render_query_filters_reply_t *R /**< */) -{ - return R->num_aliases; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_query_filters_aliases_end - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_query_filters_aliases_end (const xcb_render_query_filters_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((uint16_t *) (R + 1)) + (R->num_aliases); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_render_query_filters_filters_length - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_render_query_filters_filters_length (const xcb_render_query_filters_reply_t *R /**< */) -{ - return R->num_filters; -} - - -/***************************************************************************** - ** - ** xcb_str_iterator_t xcb_render_query_filters_filters_iterator - ** - ** @param const xcb_render_query_filters_reply_t *R - ** @returns xcb_str_iterator_t - ** - *****************************************************************************/ - -xcb_str_iterator_t -xcb_render_query_filters_filters_iterator (const xcb_render_query_filters_reply_t *R /**< */) -{ - xcb_str_iterator_t i; - xcb_generic_iterator_t prev = xcb_render_query_filters_aliases_end(R); - i.data = (xcb_str_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_str_t, prev.index)); - i.rem = R->num_filters; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_render_query_filters_reply_t * xcb_render_query_filters_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_render_query_filters_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_render_query_filters_reply_t * - ** - *****************************************************************************/ - -xcb_render_query_filters_reply_t * -xcb_render_query_filters_reply (xcb_connection_t *c /**< */, - xcb_render_query_filters_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_render_query_filters_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_render_set_picture_filter_sizeof (const void *_buffer /**< */, - uint32_t values_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_set_picture_filter_request_t *_aux = (xcb_render_set_picture_filter_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_set_picture_filter_request_t); - xcb_tmp += xcb_block_len; - /* filter */ - xcb_block_len += _aux->filter_len * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* values */ - xcb_block_len += values_len * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_filter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint16_t filter_len - ** @param const char *filter - ** @param uint32_t values_len - ** @param const xcb_render_fixed_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_filter_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint16_t filter_len /**< */, - const char *filter /**< */, - uint32_t values_len /**< */, - const xcb_render_fixed_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_SET_PICTURE_FILTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_set_picture_filter_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.filter_len = filter_len; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char filter */ - xcb_parts[4].iov_base = (char *) filter; - xcb_parts[4].iov_len = filter_len * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_fixed_t values */ - xcb_parts[6].iov_base = (char *) values; - xcb_parts[6].iov_len = values_len * sizeof(xcb_render_fixed_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_set_picture_filter - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param uint16_t filter_len - ** @param const char *filter - ** @param uint32_t values_len - ** @param const xcb_render_fixed_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_set_picture_filter (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - uint16_t filter_len /**< */, - const char *filter /**< */, - uint32_t values_len /**< */, - const xcb_render_fixed_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_SET_PICTURE_FILTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_set_picture_filter_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.filter_len = filter_len; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char filter */ - xcb_parts[4].iov_base = (char *) filter; - xcb_parts[4].iov_len = filter_len * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_fixed_t values */ - xcb_parts[6].iov_base = (char *) values; - xcb_parts[6].iov_len = values_len * sizeof(xcb_render_fixed_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_animcursorelt_next - ** - ** @param xcb_render_animcursorelt_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_animcursorelt_next (xcb_render_animcursorelt_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_animcursorelt_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_animcursorelt_end - ** - ** @param xcb_render_animcursorelt_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_animcursorelt_end (xcb_render_animcursorelt_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_render_create_anim_cursor_sizeof (const void *_buffer /**< */, - uint32_t cursors_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_create_anim_cursor_request_t); - xcb_tmp += xcb_block_len; - /* cursors */ - xcb_block_len += cursors_len * sizeof(xcb_render_animcursorelt_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_animcursorelt_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_anim_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param uint32_t cursors_len - ** @param const xcb_render_animcursorelt_t *cursors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_anim_cursor_checked (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - uint32_t cursors_len /**< */, - const xcb_render_animcursorelt_t *cursors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_ANIM_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_anim_cursor_request_t xcb_out; - - xcb_out.cid = cid; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_animcursorelt_t cursors */ - xcb_parts[4].iov_base = (char *) cursors; - xcb_parts[4].iov_len = cursors_len * sizeof(xcb_render_animcursorelt_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_anim_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cid - ** @param uint32_t cursors_len - ** @param const xcb_render_animcursorelt_t *cursors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_anim_cursor (xcb_connection_t *c /**< */, - xcb_cursor_t cid /**< */, - uint32_t cursors_len /**< */, - const xcb_render_animcursorelt_t *cursors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_ANIM_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_anim_cursor_request_t xcb_out; - - xcb_out.cid = cid; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_animcursorelt_t cursors */ - xcb_parts[4].iov_base = (char *) cursors; - xcb_parts[4].iov_len = cursors_len * sizeof(xcb_render_animcursorelt_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_spanfix_next - ** - ** @param xcb_render_spanfix_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_spanfix_next (xcb_render_spanfix_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_spanfix_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_spanfix_end - ** - ** @param xcb_render_spanfix_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_spanfix_end (xcb_render_spanfix_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_render_trap_next - ** - ** @param xcb_render_trap_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_render_trap_next (xcb_render_trap_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_render_trap_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_render_trap_end - ** - ** @param xcb_render_trap_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_render_trap_end (xcb_render_trap_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_render_add_traps_sizeof (const void *_buffer /**< */, - uint32_t traps_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_add_traps_request_t); - xcb_tmp += xcb_block_len; - /* traps */ - xcb_block_len += traps_len * sizeof(xcb_render_trap_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_trap_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_traps_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t x_off - ** @param int16_t y_off - ** @param uint32_t traps_len - ** @param const xcb_render_trap_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_traps_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t x_off /**< */, - int16_t y_off /**< */, - uint32_t traps_len /**< */, - const xcb_render_trap_t *traps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_ADD_TRAPS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_add_traps_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.x_off = x_off; - xcb_out.y_off = y_off; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_trap_t traps */ - xcb_parts[4].iov_base = (char *) traps; - xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trap_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_add_traps - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param int16_t x_off - ** @param int16_t y_off - ** @param uint32_t traps_len - ** @param const xcb_render_trap_t *traps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_add_traps (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - int16_t x_off /**< */, - int16_t y_off /**< */, - uint32_t traps_len /**< */, - const xcb_render_trap_t *traps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_ADD_TRAPS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_render_add_traps_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.x_off = x_off; - xcb_out.y_off = y_off; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_trap_t traps */ - xcb_parts[4].iov_base = (char *) traps; - xcb_parts[4].iov_len = traps_len * sizeof(xcb_render_trap_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_solid_fill_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_color_t color - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_solid_fill_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_color_t color /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_SOLID_FILL, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_solid_fill_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.color = color; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_solid_fill - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_color_t color - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_solid_fill (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_color_t color /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_SOLID_FILL, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_solid_fill_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.color = color; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_create_linear_gradient_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_create_linear_gradient_request_t *_aux = (xcb_render_create_linear_gradient_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_create_linear_gradient_request_t); - xcb_tmp += xcb_block_len; - /* stops */ - xcb_block_len += _aux->num_stops * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* colors */ - xcb_block_len += _aux->num_stops * sizeof(xcb_render_color_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_color_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_linear_gradient_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t p1 - ** @param xcb_render_pointfix_t p2 - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_linear_gradient_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t p1 /**< */, - xcb_render_pointfix_t p2 /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_LINEAR_GRADIENT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_linear_gradient_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.p1 = p1; - xcb_out.p2 = p2; - xcb_out.num_stops = num_stops; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_fixed_t stops */ - xcb_parts[4].iov_base = (char *) stops; - xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_color_t colors */ - xcb_parts[6].iov_base = (char *) colors; - xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_linear_gradient - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t p1 - ** @param xcb_render_pointfix_t p2 - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_linear_gradient (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t p1 /**< */, - xcb_render_pointfix_t p2 /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_LINEAR_GRADIENT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_linear_gradient_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.p1 = p1; - xcb_out.p2 = p2; - xcb_out.num_stops = num_stops; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_fixed_t stops */ - xcb_parts[4].iov_base = (char *) stops; - xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_color_t colors */ - xcb_parts[6].iov_base = (char *) colors; - xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_create_radial_gradient_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_create_radial_gradient_request_t *_aux = (xcb_render_create_radial_gradient_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_create_radial_gradient_request_t); - xcb_tmp += xcb_block_len; - /* stops */ - xcb_block_len += _aux->num_stops * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* colors */ - xcb_block_len += _aux->num_stops * sizeof(xcb_render_color_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_color_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_radial_gradient_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t inner - ** @param xcb_render_pointfix_t outer - ** @param xcb_render_fixed_t inner_radius - ** @param xcb_render_fixed_t outer_radius - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_radial_gradient_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t inner /**< */, - xcb_render_pointfix_t outer /**< */, - xcb_render_fixed_t inner_radius /**< */, - xcb_render_fixed_t outer_radius /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_RADIAL_GRADIENT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_radial_gradient_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.inner = inner; - xcb_out.outer = outer; - xcb_out.inner_radius = inner_radius; - xcb_out.outer_radius = outer_radius; - xcb_out.num_stops = num_stops; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_fixed_t stops */ - xcb_parts[4].iov_base = (char *) stops; - xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_color_t colors */ - xcb_parts[6].iov_base = (char *) colors; - xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_radial_gradient - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t inner - ** @param xcb_render_pointfix_t outer - ** @param xcb_render_fixed_t inner_radius - ** @param xcb_render_fixed_t outer_radius - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_radial_gradient (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t inner /**< */, - xcb_render_pointfix_t outer /**< */, - xcb_render_fixed_t inner_radius /**< */, - xcb_render_fixed_t outer_radius /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_RADIAL_GRADIENT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_radial_gradient_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.inner = inner; - xcb_out.outer = outer; - xcb_out.inner_radius = inner_radius; - xcb_out.outer_radius = outer_radius; - xcb_out.num_stops = num_stops; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_fixed_t stops */ - xcb_parts[4].iov_base = (char *) stops; - xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_color_t colors */ - xcb_parts[6].iov_base = (char *) colors; - xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_render_create_conical_gradient_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_render_create_conical_gradient_request_t *_aux = (xcb_render_create_conical_gradient_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_render_create_conical_gradient_request_t); - xcb_tmp += xcb_block_len; - /* stops */ - xcb_block_len += _aux->num_stops * sizeof(xcb_render_fixed_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_fixed_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* colors */ - xcb_block_len += _aux->num_stops * sizeof(xcb_render_color_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_render_color_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_conical_gradient_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t center - ** @param xcb_render_fixed_t angle - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_conical_gradient_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t center /**< */, - xcb_render_fixed_t angle /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_CONICAL_GRADIENT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_conical_gradient_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.center = center; - xcb_out.angle = angle; - xcb_out.num_stops = num_stops; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_fixed_t stops */ - xcb_parts[4].iov_base = (char *) stops; - xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_color_t colors */ - xcb_parts[6].iov_base = (char *) colors; - xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_render_create_conical_gradient - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_render_pointfix_t center - ** @param xcb_render_fixed_t angle - ** @param uint32_t num_stops - ** @param const xcb_render_fixed_t *stops - ** @param const xcb_render_color_t *colors - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_render_create_conical_gradient (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_render_pointfix_t center /**< */, - xcb_render_fixed_t angle /**< */, - uint32_t num_stops /**< */, - const xcb_render_fixed_t *stops /**< */, - const xcb_render_color_t *colors /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_render_id, - /* opcode */ XCB_RENDER_CREATE_CONICAL_GRADIENT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_render_create_conical_gradient_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.center = center; - xcb_out.angle = angle; - xcb_out.num_stops = num_stops; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_render_fixed_t stops */ - xcb_parts[4].iov_base = (char *) stops; - xcb_parts[4].iov_len = num_stops * sizeof(xcb_render_fixed_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_render_color_t colors */ - xcb_parts[6].iov_base = (char *) colors; - xcb_parts[6].iov_len = num_stops * sizeof(xcb_render_color_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - diff --git a/src/3rdparty/xcb/libxcb/shape.c b/src/3rdparty/xcb/libxcb/shape.c deleted file mode 100644 index 98621c4983..0000000000 --- a/src/3rdparty/xcb/libxcb/shape.c +++ /dev/null @@ -1,1102 +0,0 @@ -/* - * This file generated automatically from shape.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "shape.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" - -xcb_extension_t xcb_shape_id = { "SHAPE", 0 }; - - -/***************************************************************************** - ** - ** void xcb_shape_op_next - ** - ** @param xcb_shape_op_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_shape_op_next (xcb_shape_op_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_shape_op_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_shape_op_end - ** - ** @param xcb_shape_op_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_shape_op_end (xcb_shape_op_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_shape_kind_next - ** - ** @param xcb_shape_kind_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_shape_kind_next (xcb_shape_kind_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_shape_kind_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_shape_kind_end - ** - ** @param xcb_shape_kind_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_shape_kind_end (xcb_shape_kind_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_query_version_cookie_t xcb_shape_query_version - ** - ** @param xcb_connection_t *c - ** @returns xcb_shape_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_version_cookie_t -xcb_shape_query_version (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_query_version_cookie_t xcb_ret; - xcb_shape_query_version_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_query_version_cookie_t xcb_shape_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_shape_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_version_cookie_t -xcb_shape_query_version_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_query_version_cookie_t xcb_ret; - xcb_shape_query_version_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_query_version_reply_t * xcb_shape_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_shape_query_version_reply_t * -xcb_shape_query_version_reply (xcb_connection_t *c /**< */, - xcb_shape_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_shape_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_shape_rectangles_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_shape_rectangles_request_t); - xcb_tmp += xcb_block_len; - /* rectangles */ - xcb_block_len += rectangles_len * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_rectangles_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param uint8_t ordering - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_rectangles_checked (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - uint8_t ordering /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_RECTANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_shape_rectangles_request_t xcb_out; - - xcb_out.operation = operation; - xcb_out.destination_kind = destination_kind; - xcb_out.ordering = ordering; - xcb_out.pad0 = 0; - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_rectangles - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param uint8_t ordering - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_rectangles (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - uint8_t ordering /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_RECTANGLES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_shape_rectangles_request_t xcb_out; - - xcb_out.operation = operation; - xcb_out.destination_kind = destination_kind; - xcb_out.ordering = ordering; - xcb_out.pad0 = 0; - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_mask_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_pixmap_t source_bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_mask_checked (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_pixmap_t source_bitmap /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_MASK, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_mask_request_t xcb_out; - - xcb_out.operation = operation; - xcb_out.destination_kind = destination_kind; - memset(xcb_out.pad0, 0, 2); - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - xcb_out.source_bitmap = source_bitmap; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_mask - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_pixmap_t source_bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_mask (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_pixmap_t source_bitmap /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_MASK, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_mask_request_t xcb_out; - - xcb_out.operation = operation; - xcb_out.destination_kind = destination_kind; - memset(xcb_out.pad0, 0, 2); - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - xcb_out.source_bitmap = source_bitmap; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_combine_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_shape_kind_t source_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_window_t source_window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_combine_checked (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_shape_kind_t source_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_window_t source_window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_COMBINE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_combine_request_t xcb_out; - - xcb_out.operation = operation; - xcb_out.destination_kind = destination_kind; - xcb_out.source_kind = source_kind; - xcb_out.pad0 = 0; - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - xcb_out.source_window = source_window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_combine - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_op_t operation - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_shape_kind_t source_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_window_t source_window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_combine (xcb_connection_t *c /**< */, - xcb_shape_op_t operation /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_shape_kind_t source_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_window_t source_window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_COMBINE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_combine_request_t xcb_out; - - xcb_out.operation = operation; - xcb_out.destination_kind = destination_kind; - xcb_out.source_kind = source_kind; - xcb_out.pad0 = 0; - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - xcb_out.source_window = source_window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_offset_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_offset_checked (xcb_connection_t *c /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_OFFSET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_offset_request_t xcb_out; - - xcb_out.destination_kind = destination_kind; - memset(xcb_out.pad0, 0, 3); - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_offset - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_kind_t destination_kind - ** @param xcb_window_t destination_window - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_offset (xcb_connection_t *c /**< */, - xcb_shape_kind_t destination_kind /**< */, - xcb_window_t destination_window /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_OFFSET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_offset_request_t xcb_out; - - xcb_out.destination_kind = destination_kind; - memset(xcb_out.pad0, 0, 3); - xcb_out.destination_window = destination_window; - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_query_extents_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_extents_cookie_t -xcb_shape_query_extents (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_QUERY_EXTENTS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_query_extents_cookie_t xcb_ret; - xcb_shape_query_extents_request_t xcb_out; - - xcb_out.destination_window = destination_window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_query_extents_cookie_t xcb_shape_query_extents_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_query_extents_cookie_t - ** - *****************************************************************************/ - -xcb_shape_query_extents_cookie_t -xcb_shape_query_extents_unchecked (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_QUERY_EXTENTS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_query_extents_cookie_t xcb_ret; - xcb_shape_query_extents_request_t xcb_out; - - xcb_out.destination_window = destination_window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_query_extents_reply_t * xcb_shape_query_extents_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_query_extents_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_query_extents_reply_t * - ** - *****************************************************************************/ - -xcb_shape_query_extents_reply_t * -xcb_shape_query_extents_reply (xcb_connection_t *c /**< */, - xcb_shape_query_extents_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_shape_query_extents_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_select_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @param uint8_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_select_input_checked (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */, - uint8_t enable /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_SELECT_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_select_input_request_t xcb_out; - - xcb_out.destination_window = destination_window; - xcb_out.enable = enable; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shape_select_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @param uint8_t enable - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shape_select_input (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */, - uint8_t enable /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_SELECT_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shape_select_input_request_t xcb_out; - - xcb_out.destination_window = destination_window; - xcb_out.enable = enable; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_input_selected_cookie_t - ** - *****************************************************************************/ - -xcb_shape_input_selected_cookie_t -xcb_shape_input_selected (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_INPUT_SELECTED, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_input_selected_cookie_t xcb_ret; - xcb_shape_input_selected_request_t xcb_out; - - xcb_out.destination_window = destination_window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_input_selected_cookie_t xcb_shape_input_selected_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t destination_window - ** @returns xcb_shape_input_selected_cookie_t - ** - *****************************************************************************/ - -xcb_shape_input_selected_cookie_t -xcb_shape_input_selected_unchecked (xcb_connection_t *c /**< */, - xcb_window_t destination_window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_INPUT_SELECTED, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_input_selected_cookie_t xcb_ret; - xcb_shape_input_selected_request_t xcb_out; - - xcb_out.destination_window = destination_window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_input_selected_reply_t * xcb_shape_input_selected_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_input_selected_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_input_selected_reply_t * - ** - *****************************************************************************/ - -xcb_shape_input_selected_reply_t * -xcb_shape_input_selected_reply (xcb_connection_t *c /**< */, - xcb_shape_input_selected_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_shape_input_selected_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_shape_get_rectangles_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_shape_get_rectangles_reply_t *_aux = (xcb_shape_get_rectangles_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_shape_get_rectangles_reply_t); - xcb_tmp += xcb_block_len; - /* rectangles */ - xcb_block_len += _aux->rectangles_len * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_shape_kind_t source_kind - ** @returns xcb_shape_get_rectangles_cookie_t - ** - *****************************************************************************/ - -xcb_shape_get_rectangles_cookie_t -xcb_shape_get_rectangles (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t source_kind /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_GET_RECTANGLES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_get_rectangles_cookie_t xcb_ret; - xcb_shape_get_rectangles_request_t xcb_out; - - xcb_out.window = window; - xcb_out.source_kind = source_kind; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shape_get_rectangles_cookie_t xcb_shape_get_rectangles_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_shape_kind_t source_kind - ** @returns xcb_shape_get_rectangles_cookie_t - ** - *****************************************************************************/ - -xcb_shape_get_rectangles_cookie_t -xcb_shape_get_rectangles_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t source_kind /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shape_id, - /* opcode */ XCB_SHAPE_GET_RECTANGLES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shape_get_rectangles_cookie_t xcb_ret; - xcb_shape_get_rectangles_request_t xcb_out; - - xcb_out.window = window; - xcb_out.source_kind = source_kind; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_rectangle_t * xcb_shape_get_rectangles_rectangles - ** - ** @param const xcb_shape_get_rectangles_reply_t *R - ** @returns xcb_rectangle_t * - ** - *****************************************************************************/ - -xcb_rectangle_t * -xcb_shape_get_rectangles_rectangles (const xcb_shape_get_rectangles_reply_t *R /**< */) -{ - return (xcb_rectangle_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_shape_get_rectangles_rectangles_length - ** - ** @param const xcb_shape_get_rectangles_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_shape_get_rectangles_rectangles_length (const xcb_shape_get_rectangles_reply_t *R /**< */) -{ - return R->rectangles_len; -} - - -/***************************************************************************** - ** - ** xcb_rectangle_iterator_t xcb_shape_get_rectangles_rectangles_iterator - ** - ** @param const xcb_shape_get_rectangles_reply_t *R - ** @returns xcb_rectangle_iterator_t - ** - *****************************************************************************/ - -xcb_rectangle_iterator_t -xcb_shape_get_rectangles_rectangles_iterator (const xcb_shape_get_rectangles_reply_t *R /**< */) -{ - xcb_rectangle_iterator_t i; - i.data = (xcb_rectangle_t *) (R + 1); - i.rem = R->rectangles_len; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_shape_get_rectangles_reply_t * xcb_shape_get_rectangles_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shape_get_rectangles_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shape_get_rectangles_reply_t * - ** - *****************************************************************************/ - -xcb_shape_get_rectangles_reply_t * -xcb_shape_get_rectangles_reply (xcb_connection_t *c /**< */, - xcb_shape_get_rectangles_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_shape_get_rectangles_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - diff --git a/src/3rdparty/xcb/libxcb/shm.c b/src/3rdparty/xcb/libxcb/shm.c deleted file mode 100644 index 0a1c238732..0000000000 --- a/src/3rdparty/xcb/libxcb/shm.c +++ /dev/null @@ -1,724 +0,0 @@ -/* - * This file generated automatically from shm.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "shm.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" - -xcb_extension_t xcb_shm_id = { "MIT-SHM", 0 }; - - -/***************************************************************************** - ** - ** void xcb_shm_seg_next - ** - ** @param xcb_shm_seg_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_shm_seg_next (xcb_shm_seg_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_shm_seg_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_shm_seg_end - ** - ** @param xcb_shm_seg_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_shm_seg_end (xcb_shm_seg_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_shm_query_version_cookie_t xcb_shm_query_version - ** - ** @param xcb_connection_t *c - ** @returns xcb_shm_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shm_query_version_cookie_t -xcb_shm_query_version (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shm_query_version_cookie_t xcb_ret; - xcb_shm_query_version_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shm_query_version_cookie_t xcb_shm_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_shm_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_shm_query_version_cookie_t -xcb_shm_query_version_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shm_query_version_cookie_t xcb_ret; - xcb_shm_query_version_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shm_query_version_reply_t * xcb_shm_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shm_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_shm_query_version_reply_t * -xcb_shm_query_version_reply (xcb_connection_t *c /**< */, - xcb_shm_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_shm_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_attach_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t shmid - ** @param uint8_t read_only - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_attach_checked (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t shmid /**< */, - uint8_t read_only /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_ATTACH, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_attach_request_t xcb_out; - - xcb_out.shmseg = shmseg; - xcb_out.shmid = shmid; - xcb_out.read_only = read_only; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_attach - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t shmid - ** @param uint8_t read_only - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_attach (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t shmid /**< */, - uint8_t read_only /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_ATTACH, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_attach_request_t xcb_out; - - xcb_out.shmseg = shmseg; - xcb_out.shmid = shmid; - xcb_out.read_only = read_only; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_detach_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_detach_checked (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_DETACH, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_detach_request_t xcb_out; - - xcb_out.shmseg = shmseg; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_detach - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_seg_t shmseg - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_detach (xcb_connection_t *c /**< */, - xcb_shm_seg_t shmseg /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_DETACH, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_detach_request_t xcb_out; - - xcb_out.shmseg = shmseg; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_put_image_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_gcontext_t gc - ** @param uint16_t total_width - ** @param uint16_t total_height - ** @param uint16_t src_x - ** @param uint16_t src_y - ** @param uint16_t src_width - ** @param uint16_t src_height - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint8_t depth - ** @param uint8_t format - ** @param uint8_t send_event - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_put_image_checked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_gcontext_t gc /**< */, - uint16_t total_width /**< */, - uint16_t total_height /**< */, - uint16_t src_x /**< */, - uint16_t src_y /**< */, - uint16_t src_width /**< */, - uint16_t src_height /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint8_t depth /**< */, - uint8_t format /**< */, - uint8_t send_event /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_PUT_IMAGE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_put_image_request_t xcb_out; - - xcb_out.drawable = drawable; - xcb_out.gc = gc; - xcb_out.total_width = total_width; - xcb_out.total_height = total_height; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - xcb_out.src_width = src_width; - xcb_out.src_height = src_height; - xcb_out.dst_x = dst_x; - xcb_out.dst_y = dst_y; - xcb_out.depth = depth; - xcb_out.format = format; - xcb_out.send_event = send_event; - xcb_out.pad0 = 0; - xcb_out.shmseg = shmseg; - xcb_out.offset = offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_put_image - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_gcontext_t gc - ** @param uint16_t total_width - ** @param uint16_t total_height - ** @param uint16_t src_x - ** @param uint16_t src_y - ** @param uint16_t src_width - ** @param uint16_t src_height - ** @param int16_t dst_x - ** @param int16_t dst_y - ** @param uint8_t depth - ** @param uint8_t format - ** @param uint8_t send_event - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_put_image (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_gcontext_t gc /**< */, - uint16_t total_width /**< */, - uint16_t total_height /**< */, - uint16_t src_x /**< */, - uint16_t src_y /**< */, - uint16_t src_width /**< */, - uint16_t src_height /**< */, - int16_t dst_x /**< */, - int16_t dst_y /**< */, - uint8_t depth /**< */, - uint8_t format /**< */, - uint8_t send_event /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_PUT_IMAGE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_put_image_request_t xcb_out; - - xcb_out.drawable = drawable; - xcb_out.gc = gc; - xcb_out.total_width = total_width; - xcb_out.total_height = total_height; - xcb_out.src_x = src_x; - xcb_out.src_y = src_y; - xcb_out.src_width = src_width; - xcb_out.src_height = src_height; - xcb_out.dst_x = dst_x; - xcb_out.dst_y = dst_y; - xcb_out.depth = depth; - xcb_out.format = format; - xcb_out.send_event = send_event; - xcb_out.pad0 = 0; - xcb_out.shmseg = shmseg; - xcb_out.offset = offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shm_get_image_cookie_t xcb_shm_get_image - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param int16_t x - ** @param int16_t y - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t plane_mask - ** @param uint8_t format - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_shm_get_image_cookie_t - ** - *****************************************************************************/ - -xcb_shm_get_image_cookie_t -xcb_shm_get_image (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - int16_t x /**< */, - int16_t y /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t plane_mask /**< */, - uint8_t format /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_GET_IMAGE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shm_get_image_cookie_t xcb_ret; - xcb_shm_get_image_request_t xcb_out; - - xcb_out.drawable = drawable; - xcb_out.x = x; - xcb_out.y = y; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.plane_mask = plane_mask; - xcb_out.format = format; - memset(xcb_out.pad0, 0, 3); - xcb_out.shmseg = shmseg; - xcb_out.offset = offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shm_get_image_cookie_t xcb_shm_get_image_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param int16_t x - ** @param int16_t y - ** @param uint16_t width - ** @param uint16_t height - ** @param uint32_t plane_mask - ** @param uint8_t format - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_shm_get_image_cookie_t - ** - *****************************************************************************/ - -xcb_shm_get_image_cookie_t -xcb_shm_get_image_unchecked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - int16_t x /**< */, - int16_t y /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint32_t plane_mask /**< */, - uint8_t format /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_GET_IMAGE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_shm_get_image_cookie_t xcb_ret; - xcb_shm_get_image_request_t xcb_out; - - xcb_out.drawable = drawable; - xcb_out.x = x; - xcb_out.y = y; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.plane_mask = plane_mask; - xcb_out.format = format; - memset(xcb_out.pad0, 0, 3); - xcb_out.shmseg = shmseg; - xcb_out.offset = offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_shm_get_image_reply_t * xcb_shm_get_image_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_shm_get_image_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_shm_get_image_reply_t * - ** - *****************************************************************************/ - -xcb_shm_get_image_reply_t * -xcb_shm_get_image_reply (xcb_connection_t *c /**< */, - xcb_shm_get_image_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_shm_get_image_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_create_pixmap_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_pixmap_t pid - ** @param xcb_drawable_t drawable - ** @param uint16_t width - ** @param uint16_t height - ** @param uint8_t depth - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_create_pixmap_checked (xcb_connection_t *c /**< */, - xcb_pixmap_t pid /**< */, - xcb_drawable_t drawable /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint8_t depth /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_CREATE_PIXMAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_create_pixmap_request_t xcb_out; - - xcb_out.pid = pid; - xcb_out.drawable = drawable; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.depth = depth; - memset(xcb_out.pad0, 0, 3); - xcb_out.shmseg = shmseg; - xcb_out.offset = offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_shm_create_pixmap - ** - ** @param xcb_connection_t *c - ** @param xcb_pixmap_t pid - ** @param xcb_drawable_t drawable - ** @param uint16_t width - ** @param uint16_t height - ** @param uint8_t depth - ** @param xcb_shm_seg_t shmseg - ** @param uint32_t offset - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_shm_create_pixmap (xcb_connection_t *c /**< */, - xcb_pixmap_t pid /**< */, - xcb_drawable_t drawable /**< */, - uint16_t width /**< */, - uint16_t height /**< */, - uint8_t depth /**< */, - xcb_shm_seg_t shmseg /**< */, - uint32_t offset /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_shm_id, - /* opcode */ XCB_SHM_CREATE_PIXMAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_shm_create_pixmap_request_t xcb_out; - - xcb_out.pid = pid; - xcb_out.drawable = drawable; - xcb_out.width = width; - xcb_out.height = height; - xcb_out.depth = depth; - memset(xcb_out.pad0, 0, 3); - xcb_out.shmseg = shmseg; - xcb_out.offset = offset; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - diff --git a/src/3rdparty/xcb/libxcb/sync.c b/src/3rdparty/xcb/libxcb/sync.c deleted file mode 100644 index 1f352756d8..0000000000 --- a/src/3rdparty/xcb/libxcb/sync.c +++ /dev/null @@ -1,2258 +0,0 @@ -/* - * This file generated automatically from sync.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "sync.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" - -xcb_extension_t xcb_sync_id = { "SYNC", 0 }; - - -/***************************************************************************** - ** - ** void xcb_sync_alarm_next - ** - ** @param xcb_sync_alarm_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_alarm_next (xcb_sync_alarm_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_sync_alarm_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_alarm_end - ** - ** @param xcb_sync_alarm_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_alarm_end (xcb_sync_alarm_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_sync_counter_next - ** - ** @param xcb_sync_counter_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_counter_next (xcb_sync_counter_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_sync_counter_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_counter_end - ** - ** @param xcb_sync_counter_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_counter_end (xcb_sync_counter_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_sync_fence_next - ** - ** @param xcb_sync_fence_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_fence_next (xcb_sync_fence_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_sync_fence_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_fence_end - ** - ** @param xcb_sync_fence_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_fence_end (xcb_sync_fence_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_sync_int64_next - ** - ** @param xcb_sync_int64_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_int64_next (xcb_sync_int64_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_sync_int64_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_int64_end - ** - ** @param xcb_sync_int64_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_int64_end (xcb_sync_int64_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_sync_systemcounter_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_sync_systemcounter_t *_aux = (xcb_sync_systemcounter_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_sync_systemcounter_t); - xcb_tmp += xcb_block_len; - /* name */ - xcb_block_len += _aux->name_len * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** char * xcb_sync_systemcounter_name - ** - ** @param const xcb_sync_systemcounter_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_sync_systemcounter_name (const xcb_sync_systemcounter_t *R /**< */) -{ - return (char *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_sync_systemcounter_name_length - ** - ** @param const xcb_sync_systemcounter_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_sync_systemcounter_name_length (const xcb_sync_systemcounter_t *R /**< */) -{ - return R->name_len; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_systemcounter_name_end - ** - ** @param const xcb_sync_systemcounter_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_systemcounter_name_end (const xcb_sync_systemcounter_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((char *) (R + 1)) + (R->name_len); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_sync_systemcounter_next - ** - ** @param xcb_sync_systemcounter_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_systemcounter_next (xcb_sync_systemcounter_iterator_t *i /**< */) -{ - xcb_sync_systemcounter_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_sync_systemcounter_t *)(((char *)R) + xcb_sync_systemcounter_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_sync_systemcounter_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_systemcounter_end - ** - ** @param xcb_sync_systemcounter_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_systemcounter_end (xcb_sync_systemcounter_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_sync_systemcounter_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_sync_trigger_next - ** - ** @param xcb_sync_trigger_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_trigger_next (xcb_sync_trigger_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_sync_trigger_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_trigger_end - ** - ** @param xcb_sync_trigger_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_trigger_end (xcb_sync_trigger_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_sync_waitcondition_next - ** - ** @param xcb_sync_waitcondition_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_sync_waitcondition_next (xcb_sync_waitcondition_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_sync_waitcondition_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_sync_waitcondition_end - ** - ** @param xcb_sync_waitcondition_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_sync_waitcondition_end (xcb_sync_waitcondition_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_initialize_cookie_t xcb_sync_initialize - ** - ** @param xcb_connection_t *c - ** @param uint8_t desired_major_version - ** @param uint8_t desired_minor_version - ** @returns xcb_sync_initialize_cookie_t - ** - *****************************************************************************/ - -xcb_sync_initialize_cookie_t -xcb_sync_initialize (xcb_connection_t *c /**< */, - uint8_t desired_major_version /**< */, - uint8_t desired_minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_INITIALIZE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_initialize_cookie_t xcb_ret; - xcb_sync_initialize_request_t xcb_out; - - xcb_out.desired_major_version = desired_major_version; - xcb_out.desired_minor_version = desired_minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_initialize_cookie_t xcb_sync_initialize_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint8_t desired_major_version - ** @param uint8_t desired_minor_version - ** @returns xcb_sync_initialize_cookie_t - ** - *****************************************************************************/ - -xcb_sync_initialize_cookie_t -xcb_sync_initialize_unchecked (xcb_connection_t *c /**< */, - uint8_t desired_major_version /**< */, - uint8_t desired_minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_INITIALIZE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_initialize_cookie_t xcb_ret; - xcb_sync_initialize_request_t xcb_out; - - xcb_out.desired_major_version = desired_major_version; - xcb_out.desired_minor_version = desired_minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_initialize_reply_t * xcb_sync_initialize_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_initialize_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_initialize_reply_t * - ** - *****************************************************************************/ - -xcb_sync_initialize_reply_t * -xcb_sync_initialize_reply (xcb_connection_t *c /**< */, - xcb_sync_initialize_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_sync_initialize_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_sync_list_system_counters_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_sync_list_system_counters_reply_t *_aux = (xcb_sync_list_system_counters_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_sync_list_system_counters_reply_t); - xcb_tmp += xcb_block_len; - /* counters */ - for(i=0; i<_aux->counters_len; i++) { - xcb_tmp_len = xcb_sync_systemcounter_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_sync_systemcounter_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters - ** - ** @param xcb_connection_t *c - ** @returns xcb_sync_list_system_counters_cookie_t - ** - *****************************************************************************/ - -xcb_sync_list_system_counters_cookie_t -xcb_sync_list_system_counters (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_LIST_SYSTEM_COUNTERS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_list_system_counters_cookie_t xcb_ret; - xcb_sync_list_system_counters_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_list_system_counters_cookie_t xcb_sync_list_system_counters_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_sync_list_system_counters_cookie_t - ** - *****************************************************************************/ - -xcb_sync_list_system_counters_cookie_t -xcb_sync_list_system_counters_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_LIST_SYSTEM_COUNTERS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_list_system_counters_cookie_t xcb_ret; - xcb_sync_list_system_counters_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** int xcb_sync_list_system_counters_counters_length - ** - ** @param const xcb_sync_list_system_counters_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_sync_list_system_counters_counters_length (const xcb_sync_list_system_counters_reply_t *R /**< */) -{ - return R->counters_len; -} - - -/***************************************************************************** - ** - ** xcb_sync_systemcounter_iterator_t xcb_sync_list_system_counters_counters_iterator - ** - ** @param const xcb_sync_list_system_counters_reply_t *R - ** @returns xcb_sync_systemcounter_iterator_t - ** - *****************************************************************************/ - -xcb_sync_systemcounter_iterator_t -xcb_sync_list_system_counters_counters_iterator (const xcb_sync_list_system_counters_reply_t *R /**< */) -{ - xcb_sync_systemcounter_iterator_t i; - i.data = (xcb_sync_systemcounter_t *) (R + 1); - i.rem = R->counters_len; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_sync_list_system_counters_reply_t * xcb_sync_list_system_counters_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_list_system_counters_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_list_system_counters_reply_t * - ** - *****************************************************************************/ - -xcb_sync_list_system_counters_reply_t * -xcb_sync_list_system_counters_reply (xcb_connection_t *c /**< */, - xcb_sync_list_system_counters_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_sync_list_system_counters_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t id - ** @param xcb_sync_int64_t initial_value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t id /**< */, - xcb_sync_int64_t initial_value /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CREATE_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_create_counter_request_t xcb_out; - - xcb_out.id = id; - xcb_out.initial_value = initial_value; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t id - ** @param xcb_sync_int64_t initial_value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t id /**< */, - xcb_sync_int64_t initial_value /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CREATE_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_create_counter_request_t xcb_out; - - xcb_out.id = id; - xcb_out.initial_value = initial_value; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_DESTROY_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_destroy_counter_request_t xcb_out; - - xcb_out.counter = counter; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_DESTROY_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_destroy_counter_request_t xcb_out; - - xcb_out.counter = counter; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_sync_query_counter_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_counter_cookie_t -xcb_sync_query_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_QUERY_COUNTER, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_query_counter_cookie_t xcb_ret; - xcb_sync_query_counter_request_t xcb_out; - - xcb_out.counter = counter; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_counter_cookie_t xcb_sync_query_counter_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @returns xcb_sync_query_counter_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_counter_cookie_t -xcb_sync_query_counter_unchecked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_QUERY_COUNTER, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_query_counter_cookie_t xcb_ret; - xcb_sync_query_counter_request_t xcb_out; - - xcb_out.counter = counter; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_counter_reply_t * xcb_sync_query_counter_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_query_counter_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_query_counter_reply_t * - ** - *****************************************************************************/ - -xcb_sync_query_counter_reply_t * -xcb_sync_query_counter_reply (xcb_connection_t *c /**< */, - xcb_sync_query_counter_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_sync_query_counter_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_sync_await_sizeof (const void *_buffer /**< */, - uint32_t wait_list_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_sync_await_request_t); - xcb_tmp += xcb_block_len; - /* wait_list */ - xcb_block_len += wait_list_len * sizeof(xcb_sync_waitcondition_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_sync_waitcondition_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await_checked - ** - ** @param xcb_connection_t *c - ** @param uint32_t wait_list_len - ** @param const xcb_sync_waitcondition_t *wait_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await_checked (xcb_connection_t *c /**< */, - uint32_t wait_list_len /**< */, - const xcb_sync_waitcondition_t *wait_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_AWAIT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_await_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_sync_waitcondition_t wait_list */ - xcb_parts[4].iov_base = (char *) wait_list; - xcb_parts[4].iov_len = wait_list_len * sizeof(xcb_sync_waitcondition_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await - ** - ** @param xcb_connection_t *c - ** @param uint32_t wait_list_len - ** @param const xcb_sync_waitcondition_t *wait_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await (xcb_connection_t *c /**< */, - uint32_t wait_list_len /**< */, - const xcb_sync_waitcondition_t *wait_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_AWAIT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_await_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_sync_waitcondition_t wait_list */ - xcb_parts[4].iov_base = (char *) wait_list; - xcb_parts[4].iov_len = wait_list_len * sizeof(xcb_sync_waitcondition_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t amount - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t amount /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CHANGE_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_change_counter_request_t xcb_out; - - xcb_out.counter = counter; - xcb_out.amount = amount; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t amount - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t amount /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CHANGE_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_change_counter_request_t xcb_out; - - xcb_out.counter = counter; - xcb_out.amount = amount; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_counter_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_counter_checked (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t value /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_SET_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_set_counter_request_t xcb_out; - - xcb_out.counter = counter; - xcb_out.value = value; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_counter - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_counter_t counter - ** @param xcb_sync_int64_t value - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_counter (xcb_connection_t *c /**< */, - xcb_sync_counter_t counter /**< */, - xcb_sync_int64_t value /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_SET_COUNTER, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_set_counter_request_t xcb_out; - - xcb_out.counter = counter; - xcb_out.value = value; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_sync_create_alarm_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_sync_create_alarm_request_t *_aux = (xcb_sync_create_alarm_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_sync_create_alarm_request_t); - xcb_tmp += xcb_block_len; - /* value_list */ - xcb_block_len += xcb_popcount(_aux->value_mask) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_alarm_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_alarm_checked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CREATE_ALARM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_create_alarm_request_t xcb_out; - - xcb_out.id = id; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CREATE_ALARM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_create_alarm_request_t xcb_out; - - xcb_out.id = id; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_sync_change_alarm_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_sync_change_alarm_request_t *_aux = (xcb_sync_change_alarm_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_sync_change_alarm_request_t); - xcb_tmp += xcb_block_len; - /* value_list */ - xcb_block_len += xcb_popcount(_aux->value_mask) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_alarm_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_alarm_checked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CHANGE_ALARM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_change_alarm_request_t xcb_out; - - xcb_out.id = id; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_change_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t id - ** @param uint32_t value_mask - ** @param const uint32_t *value_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_change_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t id /**< */, - uint32_t value_mask /**< */, - const uint32_t *value_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CHANGE_ALARM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_change_alarm_request_t xcb_out; - - xcb_out.id = id; - xcb_out.value_mask = value_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* uint32_t value_list */ - xcb_parts[4].iov_base = (char *) value_list; - xcb_parts[4].iov_len = xcb_popcount(value_mask) * sizeof(uint32_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_alarm_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_alarm_checked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_DESTROY_ALARM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_destroy_alarm_request_t xcb_out; - - xcb_out.alarm = alarm; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_DESTROY_ALARM, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_destroy_alarm_request_t xcb_out; - - xcb_out.alarm = alarm; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_sync_query_alarm_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_alarm_cookie_t -xcb_sync_query_alarm (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_QUERY_ALARM, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_query_alarm_cookie_t xcb_ret; - xcb_sync_query_alarm_request_t xcb_out; - - xcb_out.alarm = alarm; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_alarm_cookie_t xcb_sync_query_alarm_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_alarm_t alarm - ** @returns xcb_sync_query_alarm_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_alarm_cookie_t -xcb_sync_query_alarm_unchecked (xcb_connection_t *c /**< */, - xcb_sync_alarm_t alarm /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_QUERY_ALARM, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_query_alarm_cookie_t xcb_ret; - xcb_sync_query_alarm_request_t xcb_out; - - xcb_out.alarm = alarm; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_alarm_reply_t * xcb_sync_query_alarm_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_query_alarm_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_query_alarm_reply_t * - ** - *****************************************************************************/ - -xcb_sync_query_alarm_reply_t * -xcb_sync_query_alarm_reply (xcb_connection_t *c /**< */, - xcb_sync_query_alarm_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_sync_query_alarm_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_priority_checked - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @param int32_t priority - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_priority_checked (xcb_connection_t *c /**< */, - uint32_t id /**< */, - int32_t priority /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_SET_PRIORITY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_set_priority_request_t xcb_out; - - xcb_out.id = id; - xcb_out.priority = priority; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_set_priority - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @param int32_t priority - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_set_priority (xcb_connection_t *c /**< */, - uint32_t id /**< */, - int32_t priority /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_SET_PRIORITY, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_set_priority_request_t xcb_out; - - xcb_out.id = id; - xcb_out.priority = priority; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @returns xcb_sync_get_priority_cookie_t - ** - *****************************************************************************/ - -xcb_sync_get_priority_cookie_t -xcb_sync_get_priority (xcb_connection_t *c /**< */, - uint32_t id /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_GET_PRIORITY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_get_priority_cookie_t xcb_ret; - xcb_sync_get_priority_request_t xcb_out; - - xcb_out.id = id; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_get_priority_cookie_t xcb_sync_get_priority_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t id - ** @returns xcb_sync_get_priority_cookie_t - ** - *****************************************************************************/ - -xcb_sync_get_priority_cookie_t -xcb_sync_get_priority_unchecked (xcb_connection_t *c /**< */, - uint32_t id /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_GET_PRIORITY, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_get_priority_cookie_t xcb_ret; - xcb_sync_get_priority_request_t xcb_out; - - xcb_out.id = id; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_get_priority_reply_t * xcb_sync_get_priority_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_get_priority_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_get_priority_reply_t * - ** - *****************************************************************************/ - -xcb_sync_get_priority_reply_t * -xcb_sync_get_priority_reply (xcb_connection_t *c /**< */, - xcb_sync_get_priority_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_sync_get_priority_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_sync_fence_t fence - ** @param uint8_t initially_triggered - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_fence_checked (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_sync_fence_t fence /**< */, - uint8_t initially_triggered /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CREATE_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_create_fence_request_t xcb_out; - - xcb_out.drawable = drawable; - xcb_out.fence = fence; - xcb_out.initially_triggered = initially_triggered; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_create_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_drawable_t drawable - ** @param xcb_sync_fence_t fence - ** @param uint8_t initially_triggered - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_create_fence (xcb_connection_t *c /**< */, - xcb_drawable_t drawable /**< */, - xcb_sync_fence_t fence /**< */, - uint8_t initially_triggered /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_CREATE_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_create_fence_request_t xcb_out; - - xcb_out.drawable = drawable; - xcb_out.fence = fence; - xcb_out.initially_triggered = initially_triggered; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_trigger_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_trigger_fence_checked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_TRIGGER_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_trigger_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_trigger_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_trigger_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_TRIGGER_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_trigger_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_reset_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_reset_fence_checked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_RESET_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_reset_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_reset_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_reset_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_RESET_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_reset_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_fence_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_fence_checked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_DESTROY_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_destroy_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_destroy_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_destroy_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_DESTROY_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_sync_destroy_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_sync_query_fence_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_fence_cookie_t -xcb_sync_query_fence (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_QUERY_FENCE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_query_fence_cookie_t xcb_ret; - xcb_sync_query_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_fence_cookie_t xcb_sync_query_fence_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_fence_t fence - ** @returns xcb_sync_query_fence_cookie_t - ** - *****************************************************************************/ - -xcb_sync_query_fence_cookie_t -xcb_sync_query_fence_unchecked (xcb_connection_t *c /**< */, - xcb_sync_fence_t fence /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_QUERY_FENCE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_sync_query_fence_cookie_t xcb_ret; - xcb_sync_query_fence_request_t xcb_out; - - xcb_out.fence = fence; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_sync_query_fence_reply_t * xcb_sync_query_fence_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_sync_query_fence_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_sync_query_fence_reply_t * - ** - *****************************************************************************/ - -xcb_sync_query_fence_reply_t * -xcb_sync_query_fence_reply (xcb_connection_t *c /**< */, - xcb_sync_query_fence_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_sync_query_fence_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_sync_await_fence_sizeof (const void *_buffer /**< */, - uint32_t fence_list_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_sync_await_fence_request_t); - xcb_tmp += xcb_block_len; - /* fence_list */ - xcb_block_len += fence_list_len * sizeof(xcb_sync_fence_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_sync_fence_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await_fence_checked - ** - ** @param xcb_connection_t *c - ** @param uint32_t fence_list_len - ** @param const xcb_sync_fence_t *fence_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await_fence_checked (xcb_connection_t *c /**< */, - uint32_t fence_list_len /**< */, - const xcb_sync_fence_t *fence_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_AWAIT_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_await_fence_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_sync_fence_t fence_list */ - xcb_parts[4].iov_base = (char *) fence_list; - xcb_parts[4].iov_len = fence_list_len * sizeof(xcb_sync_fence_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_sync_await_fence - ** - ** @param xcb_connection_t *c - ** @param uint32_t fence_list_len - ** @param const xcb_sync_fence_t *fence_list - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_sync_await_fence (xcb_connection_t *c /**< */, - uint32_t fence_list_len /**< */, - const xcb_sync_fence_t *fence_list /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_sync_id, - /* opcode */ XCB_SYNC_AWAIT_FENCE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_sync_await_fence_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_sync_fence_t fence_list */ - xcb_parts[4].iov_base = (char *) fence_list; - xcb_parts[4].iov_len = fence_list_len * sizeof(xcb_sync_fence_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - diff --git a/src/3rdparty/xcb/libxcb/xfixes.c b/src/3rdparty/xcb/libxcb/xfixes.c deleted file mode 100644 index 4c0dc84b64..0000000000 --- a/src/3rdparty/xcb/libxcb/xfixes.c +++ /dev/null @@ -1,3274 +0,0 @@ -/* - * This file generated automatically from xfixes.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "xfixes.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" -#include "render.h" -#include "shape.h" - -xcb_extension_t xcb_xfixes_id = { "XFIXES", 0 }; - - -/***************************************************************************** - ** - ** xcb_xfixes_query_version_cookie_t xcb_xfixes_query_version - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_xfixes_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_query_version_cookie_t -xcb_xfixes_query_version (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_query_version_cookie_t xcb_ret; - xcb_xfixes_query_version_request_t xcb_out; - - xcb_out.client_major_version = client_major_version; - xcb_out.client_minor_version = client_minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_query_version_cookie_t xcb_xfixes_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint32_t client_major_version - ** @param uint32_t client_minor_version - ** @returns xcb_xfixes_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_query_version_cookie_t -xcb_xfixes_query_version_unchecked (xcb_connection_t *c /**< */, - uint32_t client_major_version /**< */, - uint32_t client_minor_version /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_query_version_cookie_t xcb_ret; - xcb_xfixes_query_version_request_t xcb_out; - - xcb_out.client_major_version = client_major_version; - xcb_out.client_minor_version = client_minor_version; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_query_version_reply_t * xcb_xfixes_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_query_version_reply_t * -xcb_xfixes_query_version_reply (xcb_connection_t *c /**< */, - xcb_xfixes_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xfixes_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_save_set_checked - ** - ** @param xcb_connection_t *c - ** @param uint8_t mode - ** @param uint8_t target - ** @param uint8_t map - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_save_set_checked (xcb_connection_t *c /**< */, - uint8_t mode /**< */, - uint8_t target /**< */, - uint8_t map /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CHANGE_SAVE_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_change_save_set_request_t xcb_out; - - xcb_out.mode = mode; - xcb_out.target = target; - xcb_out.map = map; - xcb_out.pad0 = 0; - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_save_set - ** - ** @param xcb_connection_t *c - ** @param uint8_t mode - ** @param uint8_t target - ** @param uint8_t map - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_save_set (xcb_connection_t *c /**< */, - uint8_t mode /**< */, - uint8_t target /**< */, - uint8_t map /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CHANGE_SAVE_SET, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_change_save_set_request_t xcb_out; - - xcb_out.mode = mode; - xcb_out.target = target; - xcb_out.map = map; - xcb_out.pad0 = 0; - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_selection_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_atom_t selection - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_selection_input_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_atom_t selection /**< */, - uint32_t event_mask /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SELECT_SELECTION_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_select_selection_input_request_t xcb_out; - - xcb_out.window = window; - xcb_out.selection = selection; - xcb_out.event_mask = event_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_selection_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param xcb_atom_t selection - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_selection_input (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - xcb_atom_t selection /**< */, - uint32_t event_mask /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SELECT_SELECTION_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_select_selection_input_request_t xcb_out; - - xcb_out.window = window; - xcb_out.selection = selection; - xcb_out.event_mask = event_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_cursor_input_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_cursor_input_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t event_mask /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SELECT_CURSOR_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_select_cursor_input_request_t xcb_out; - - xcb_out.window = window; - xcb_out.event_mask = event_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_select_cursor_input - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t event_mask - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_select_cursor_input (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t event_mask /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SELECT_CURSOR_INPUT, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_select_cursor_input_request_t xcb_out; - - xcb_out.window = window; - xcb_out.event_mask = event_mask; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_xfixes_get_cursor_image_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xfixes_get_cursor_image_reply_t *_aux = (xcb_xfixes_get_cursor_image_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_get_cursor_image_reply_t); - xcb_tmp += xcb_block_len; - /* cursor_image */ - xcb_block_len += (_aux->width * _aux->height) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_cookie_t xcb_xfixes_get_cursor_image - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_cookie_t -xcb_xfixes_get_cursor_image (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_GET_CURSOR_IMAGE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_get_cursor_image_cookie_t xcb_ret; - xcb_xfixes_get_cursor_image_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_cookie_t xcb_xfixes_get_cursor_image_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_cookie_t -xcb_xfixes_get_cursor_image_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_GET_CURSOR_IMAGE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_get_cursor_image_cookie_t xcb_ret; - xcb_xfixes_get_cursor_image_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** uint32_t * xcb_xfixes_get_cursor_image_cursor_image - ** - ** @param const xcb_xfixes_get_cursor_image_reply_t *R - ** @returns uint32_t * - ** - *****************************************************************************/ - -uint32_t * -xcb_xfixes_get_cursor_image_cursor_image (const xcb_xfixes_get_cursor_image_reply_t *R /**< */) -{ - return (uint32_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_image_cursor_image_length - ** - ** @param const xcb_xfixes_get_cursor_image_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_image_cursor_image_length (const xcb_xfixes_get_cursor_image_reply_t *R /**< */) -{ - return (R->width * R->height); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_image_cursor_image_end - ** - ** @param const xcb_xfixes_get_cursor_image_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_image_cursor_image_end (const xcb_xfixes_get_cursor_image_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((uint32_t *) (R + 1)) + ((R->width * R->height)); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_reply_t * xcb_xfixes_get_cursor_image_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_get_cursor_image_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_get_cursor_image_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_reply_t * -xcb_xfixes_get_cursor_image_reply (xcb_connection_t *c /**< */, - xcb_xfixes_get_cursor_image_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xfixes_get_cursor_image_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** void xcb_xfixes_region_next - ** - ** @param xcb_xfixes_region_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xfixes_region_next (xcb_xfixes_region_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xfixes_region_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_region_end - ** - ** @param xcb_xfixes_region_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_region_end (xcb_xfixes_region_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_xfixes_create_region_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_create_region_request_t); - xcb_tmp += xcb_block_len; - /* rectangles */ - xcb_block_len += rectangles_len * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_bitmap_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_pixmap_t bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_bitmap_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_pixmap_t bitmap /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_BITMAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_bitmap_request_t xcb_out; - - xcb_out.region = region; - xcb_out.bitmap = bitmap; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_bitmap - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_pixmap_t bitmap - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_bitmap (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_pixmap_t bitmap /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_BITMAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_bitmap_request_t xcb_out; - - xcb_out.region = region; - xcb_out.bitmap = bitmap; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_window_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_window_t window - ** @param xcb_shape_kind_t kind - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_window_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t kind /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_WINDOW, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_window_request_t xcb_out; - - xcb_out.region = region; - xcb_out.window = window; - xcb_out.kind = kind; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_window - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_window_t window - ** @param xcb_shape_kind_t kind - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_window (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_window_t window /**< */, - xcb_shape_kind_t kind /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_WINDOW, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_window_request_t xcb_out; - - xcb_out.region = region; - xcb_out.window = window; - xcb_out.kind = kind; - memset(xcb_out.pad0, 0, 3); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_gc_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_gcontext_t gc - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_gc_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_gcontext_t gc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_GC, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_gc_request_t xcb_out; - - xcb_out.region = region; - xcb_out.gc = gc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_gc - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_gcontext_t gc - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_gc (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_gcontext_t gc /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_GC, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_gc_request_t xcb_out; - - xcb_out.region = region; - xcb_out.gc = gc; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_picture_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_picture_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_render_picture_t picture /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_picture_request_t xcb_out; - - xcb_out.region = region; - xcb_out.picture = picture; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_create_region_from_picture - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param xcb_render_picture_t picture - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_create_region_from_picture (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - xcb_render_picture_t picture /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CREATE_REGION_FROM_PICTURE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_create_region_from_picture_request_t xcb_out; - - xcb_out.region = region; - xcb_out.picture = picture; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_destroy_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_destroy_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_DESTROY_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_destroy_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_destroy_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_destroy_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_DESTROY_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_destroy_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_xfixes_set_region_sizeof (const void *_buffer /**< */, - uint32_t rectangles_len /**< */) -{ - char *xcb_tmp = (char *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_set_region_request_t); - xcb_tmp += xcb_block_len; - /* rectangles */ - xcb_block_len += rectangles_len * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param uint32_t rectangles_len - ** @param const xcb_rectangle_t *rectangles - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - uint32_t rectangles_len /**< */, - const xcb_rectangle_t *rectangles /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_rectangle_t rectangles */ - xcb_parts[4].iov_base = (char *) rectangles; - xcb_parts[4].iov_len = rectangles_len * sizeof(xcb_rectangle_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_copy_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_copy_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_COPY_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_copy_region_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_copy_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_copy_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_COPY_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_copy_region_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_union_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_union_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_UNION_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_union_region_request_t xcb_out; - - xcb_out.source1 = source1; - xcb_out.source2 = source2; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_union_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_union_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_UNION_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_union_region_request_t xcb_out; - - xcb_out.source1 = source1; - xcb_out.source2 = source2; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_intersect_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_intersect_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_INTERSECT_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_intersect_region_request_t xcb_out; - - xcb_out.source1 = source1; - xcb_out.source2 = source2; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_intersect_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_intersect_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_INTERSECT_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_intersect_region_request_t xcb_out; - - xcb_out.source1 = source1; - xcb_out.source2 = source2; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_subtract_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_subtract_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SUBTRACT_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_subtract_region_request_t xcb_out; - - xcb_out.source1 = source1; - xcb_out.source2 = source2; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_subtract_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source1 - ** @param xcb_xfixes_region_t source2 - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_subtract_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source1 /**< */, - xcb_xfixes_region_t source2 /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SUBTRACT_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_subtract_region_request_t xcb_out; - - xcb_out.source1 = source1; - xcb_out.source2 = source2; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_invert_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_rectangle_t bounds - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_invert_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_rectangle_t bounds /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_INVERT_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_invert_region_request_t xcb_out; - - xcb_out.source = source; - xcb_out.bounds = bounds; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_invert_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_rectangle_t bounds - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_invert_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_rectangle_t bounds /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_INVERT_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_invert_region_request_t xcb_out; - - xcb_out.source = source; - xcb_out.bounds = bounds; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_translate_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param int16_t dx - ** @param int16_t dy - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_translate_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - int16_t dx /**< */, - int16_t dy /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_TRANSLATE_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_translate_region_request_t xcb_out; - - xcb_out.region = region; - xcb_out.dx = dx; - xcb_out.dy = dy; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_translate_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @param int16_t dx - ** @param int16_t dy - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_translate_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */, - int16_t dx /**< */, - int16_t dy /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_TRANSLATE_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_translate_region_request_t xcb_out; - - xcb_out.region = region; - xcb_out.dx = dx; - xcb_out.dy = dy; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_region_extents_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_region_extents_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_REGION_EXTENTS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_region_extents_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_region_extents - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_region_extents (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_REGION_EXTENTS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_region_extents_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_xfixes_fetch_region_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xfixes_fetch_region_reply_t *_aux = (xcb_xfixes_fetch_region_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_fetch_region_reply_t); - xcb_tmp += xcb_block_len; - /* rectangles */ - xcb_block_len += (_aux->length / 2) * sizeof(xcb_rectangle_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_rectangle_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_fetch_region_cookie_t xcb_xfixes_fetch_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_xfixes_fetch_region_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_fetch_region_cookie_t -xcb_xfixes_fetch_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_FETCH_REGION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_fetch_region_cookie_t xcb_ret; - xcb_xfixes_fetch_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_fetch_region_cookie_t xcb_xfixes_fetch_region_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t region - ** @returns xcb_xfixes_fetch_region_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_fetch_region_cookie_t -xcb_xfixes_fetch_region_unchecked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t region /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_FETCH_REGION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_fetch_region_cookie_t xcb_ret; - xcb_xfixes_fetch_region_request_t xcb_out; - - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_rectangle_t * xcb_xfixes_fetch_region_rectangles - ** - ** @param const xcb_xfixes_fetch_region_reply_t *R - ** @returns xcb_rectangle_t * - ** - *****************************************************************************/ - -xcb_rectangle_t * -xcb_xfixes_fetch_region_rectangles (const xcb_xfixes_fetch_region_reply_t *R /**< */) -{ - return (xcb_rectangle_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xfixes_fetch_region_rectangles_length - ** - ** @param const xcb_xfixes_fetch_region_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_fetch_region_rectangles_length (const xcb_xfixes_fetch_region_reply_t *R /**< */) -{ - return (R->length / 2); -} - - -/***************************************************************************** - ** - ** xcb_rectangle_iterator_t xcb_xfixes_fetch_region_rectangles_iterator - ** - ** @param const xcb_xfixes_fetch_region_reply_t *R - ** @returns xcb_rectangle_iterator_t - ** - *****************************************************************************/ - -xcb_rectangle_iterator_t -xcb_xfixes_fetch_region_rectangles_iterator (const xcb_xfixes_fetch_region_reply_t *R /**< */) -{ - xcb_rectangle_iterator_t i; - i.data = (xcb_rectangle_t *) (R + 1); - i.rem = (R->length / 2); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_fetch_region_reply_t * xcb_xfixes_fetch_region_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_fetch_region_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_fetch_region_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_fetch_region_reply_t * -xcb_xfixes_fetch_region_reply (xcb_connection_t *c /**< */, - xcb_xfixes_fetch_region_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xfixes_fetch_region_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_gc_clip_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_gcontext_t gc - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_gc_clip_region_checked (xcb_connection_t *c /**< */, - xcb_gcontext_t gc /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_GC_CLIP_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_gc_clip_region_request_t xcb_out; - - xcb_out.gc = gc; - xcb_out.region = region; - xcb_out.x_origin = x_origin; - xcb_out.y_origin = y_origin; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_gc_clip_region - ** - ** @param xcb_connection_t *c - ** @param xcb_gcontext_t gc - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_gc_clip_region (xcb_connection_t *c /**< */, - xcb_gcontext_t gc /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_GC_CLIP_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_gc_clip_region_request_t xcb_out; - - xcb_out.gc = gc; - xcb_out.region = region; - xcb_out.x_origin = x_origin; - xcb_out.y_origin = y_origin; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_window_shape_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t dest - ** @param xcb_shape_kind_t dest_kind - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_window_shape_region_checked (xcb_connection_t *c /**< */, - xcb_window_t dest /**< */, - xcb_shape_kind_t dest_kind /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_xfixes_region_t region /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_WINDOW_SHAPE_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_window_shape_region_request_t xcb_out; - - xcb_out.dest = dest; - xcb_out.dest_kind = dest_kind; - memset(xcb_out.pad0, 0, 3); - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_window_shape_region - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t dest - ** @param xcb_shape_kind_t dest_kind - ** @param int16_t x_offset - ** @param int16_t y_offset - ** @param xcb_xfixes_region_t region - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_window_shape_region (xcb_connection_t *c /**< */, - xcb_window_t dest /**< */, - xcb_shape_kind_t dest_kind /**< */, - int16_t x_offset /**< */, - int16_t y_offset /**< */, - xcb_xfixes_region_t region /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_WINDOW_SHAPE_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_window_shape_region_request_t xcb_out; - - xcb_out.dest = dest; - xcb_out.dest_kind = dest_kind; - memset(xcb_out.pad0, 0, 3); - xcb_out.x_offset = x_offset; - xcb_out.y_offset = y_offset; - xcb_out.region = region; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_picture_clip_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_picture_clip_region_checked (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_PICTURE_CLIP_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_picture_clip_region_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.region = region; - xcb_out.x_origin = x_origin; - xcb_out.y_origin = y_origin; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_picture_clip_region - ** - ** @param xcb_connection_t *c - ** @param xcb_render_picture_t picture - ** @param xcb_xfixes_region_t region - ** @param int16_t x_origin - ** @param int16_t y_origin - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_picture_clip_region (xcb_connection_t *c /**< */, - xcb_render_picture_t picture /**< */, - xcb_xfixes_region_t region /**< */, - int16_t x_origin /**< */, - int16_t y_origin /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_PICTURE_CLIP_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_picture_clip_region_request_t xcb_out; - - xcb_out.picture = picture; - xcb_out.region = region; - xcb_out.x_origin = x_origin; - xcb_out.y_origin = y_origin; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_xfixes_set_cursor_name_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xfixes_set_cursor_name_request_t *_aux = (xcb_xfixes_set_cursor_name_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_set_cursor_name_request_t); - xcb_tmp += xcb_block_len; - /* name */ - xcb_block_len += _aux->nbytes * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_cursor_name_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_cursor_name_checked (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */, - uint16_t nbytes /**< */, - const char *name /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_CURSOR_NAME, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_cursor_name_request_t xcb_out; - - xcb_out.cursor = cursor; - xcb_out.nbytes = nbytes; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char name */ - xcb_parts[4].iov_base = (char *) name; - xcb_parts[4].iov_len = nbytes * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_set_cursor_name - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_set_cursor_name (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */, - uint16_t nbytes /**< */, - const char *name /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SET_CURSOR_NAME, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_set_cursor_name_request_t xcb_out; - - xcb_out.cursor = cursor; - xcb_out.nbytes = nbytes; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char name */ - xcb_parts[4].iov_base = (char *) name; - xcb_parts[4].iov_len = nbytes * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_xfixes_get_cursor_name_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xfixes_get_cursor_name_reply_t *_aux = (xcb_xfixes_get_cursor_name_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_get_cursor_name_reply_t); - xcb_tmp += xcb_block_len; - /* name */ - xcb_block_len += _aux->nbytes * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_name_cookie_t xcb_xfixes_get_cursor_name - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @returns xcb_xfixes_get_cursor_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_name_cookie_t -xcb_xfixes_get_cursor_name (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_GET_CURSOR_NAME, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_get_cursor_name_cookie_t xcb_ret; - xcb_xfixes_get_cursor_name_request_t xcb_out; - - xcb_out.cursor = cursor; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_name_cookie_t xcb_xfixes_get_cursor_name_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t cursor - ** @returns xcb_xfixes_get_cursor_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_name_cookie_t -xcb_xfixes_get_cursor_name_unchecked (xcb_connection_t *c /**< */, - xcb_cursor_t cursor /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_GET_CURSOR_NAME, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_get_cursor_name_cookie_t xcb_ret; - xcb_xfixes_get_cursor_name_request_t xcb_out; - - xcb_out.cursor = cursor; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** char * xcb_xfixes_get_cursor_name_name - ** - ** @param const xcb_xfixes_get_cursor_name_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_xfixes_get_cursor_name_name (const xcb_xfixes_get_cursor_name_reply_t *R /**< */) -{ - return (char *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_name_name_length - ** - ** @param const xcb_xfixes_get_cursor_name_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_name_name_length (const xcb_xfixes_get_cursor_name_reply_t *R /**< */) -{ - return R->nbytes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_name_name_end - ** - ** @param const xcb_xfixes_get_cursor_name_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_name_name_end (const xcb_xfixes_get_cursor_name_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((char *) (R + 1)) + (R->nbytes); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_name_reply_t * xcb_xfixes_get_cursor_name_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_get_cursor_name_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_get_cursor_name_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_name_reply_t * -xcb_xfixes_get_cursor_name_reply (xcb_connection_t *c /**< */, - xcb_xfixes_get_cursor_name_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xfixes_get_cursor_name_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xfixes_get_cursor_image_and_name_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xfixes_get_cursor_image_and_name_reply_t *_aux = (xcb_xfixes_get_cursor_image_and_name_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_get_cursor_image_and_name_reply_t); - xcb_tmp += xcb_block_len; - /* name */ - xcb_block_len += _aux->nbytes * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* cursor_image */ - xcb_block_len += (_aux->width * _aux->height) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint32_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_and_name_cookie_t xcb_xfixes_get_cursor_image_and_name - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_and_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_and_name_cookie_t -xcb_xfixes_get_cursor_image_and_name (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_get_cursor_image_and_name_cookie_t xcb_ret; - xcb_xfixes_get_cursor_image_and_name_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_and_name_cookie_t xcb_xfixes_get_cursor_image_and_name_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xfixes_get_cursor_image_and_name_cookie_t - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_and_name_cookie_t -xcb_xfixes_get_cursor_image_and_name_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_GET_CURSOR_IMAGE_AND_NAME, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xfixes_get_cursor_image_and_name_cookie_t xcb_ret; - xcb_xfixes_get_cursor_image_and_name_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** char * xcb_xfixes_get_cursor_image_and_name_name - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_xfixes_get_cursor_image_and_name_name (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */) -{ - return (char *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_image_and_name_name_length - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_image_and_name_name_length (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */) -{ - return R->nbytes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_image_and_name_name_end - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_image_and_name_name_end (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((char *) (R + 1)) + (R->nbytes); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** uint32_t * xcb_xfixes_get_cursor_image_and_name_cursor_image - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns uint32_t * - ** - *****************************************************************************/ - -uint32_t * -xcb_xfixes_get_cursor_image_and_name_cursor_image (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xfixes_get_cursor_image_and_name_name_end(R); - return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xfixes_get_cursor_image_and_name_cursor_image_length - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xfixes_get_cursor_image_and_name_cursor_image_length (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */) -{ - return (R->width * R->height); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xfixes_get_cursor_image_and_name_cursor_image_end - ** - ** @param const xcb_xfixes_get_cursor_image_and_name_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xfixes_get_cursor_image_and_name_cursor_image_end (const xcb_xfixes_get_cursor_image_and_name_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_xfixes_get_cursor_image_and_name_name_end(R); - i.data = ((uint32_t *) child.data) + ((R->width * R->height)); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xfixes_get_cursor_image_and_name_reply_t * xcb_xfixes_get_cursor_image_and_name_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_get_cursor_image_and_name_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xfixes_get_cursor_image_and_name_reply_t * - ** - *****************************************************************************/ - -xcb_xfixes_get_cursor_image_and_name_reply_t * -xcb_xfixes_get_cursor_image_and_name_reply (xcb_connection_t *c /**< */, - xcb_xfixes_get_cursor_image_and_name_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xfixes_get_cursor_image_and_name_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t source - ** @param xcb_cursor_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor_checked (xcb_connection_t *c /**< */, - xcb_cursor_t source /**< */, - xcb_cursor_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CHANGE_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_change_cursor_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t source - ** @param xcb_cursor_t destination - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor (xcb_connection_t *c /**< */, - xcb_cursor_t source /**< */, - xcb_cursor_t destination /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CHANGE_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_change_cursor_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - -int -xcb_xfixes_change_cursor_by_name_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xfixes_change_cursor_by_name_request_t *_aux = (xcb_xfixes_change_cursor_by_name_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xfixes_change_cursor_by_name_request_t); - xcb_tmp += xcb_block_len; - /* name */ - xcb_block_len += _aux->nbytes * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor_by_name_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t src - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor_by_name_checked (xcb_connection_t *c /**< */, - xcb_cursor_t src /**< */, - uint16_t nbytes /**< */, - const char *name /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CHANGE_CURSOR_BY_NAME, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_change_cursor_by_name_request_t xcb_out; - - xcb_out.src = src; - xcb_out.nbytes = nbytes; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char name */ - xcb_parts[4].iov_base = (char *) name; - xcb_parts[4].iov_len = nbytes * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_change_cursor_by_name - ** - ** @param xcb_connection_t *c - ** @param xcb_cursor_t src - ** @param uint16_t nbytes - ** @param const char *name - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_change_cursor_by_name (xcb_connection_t *c /**< */, - xcb_cursor_t src /**< */, - uint16_t nbytes /**< */, - const char *name /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_CHANGE_CURSOR_BY_NAME, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_change_cursor_by_name_request_t xcb_out; - - xcb_out.src = src; - xcb_out.nbytes = nbytes; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* char name */ - xcb_parts[4].iov_base = (char *) name; - xcb_parts[4].iov_len = nbytes * sizeof(char); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_expand_region_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @param uint16_t left - ** @param uint16_t right - ** @param uint16_t top - ** @param uint16_t bottom - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_expand_region_checked (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */, - uint16_t left /**< */, - uint16_t right /**< */, - uint16_t top /**< */, - uint16_t bottom /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_EXPAND_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_expand_region_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - xcb_out.left = left; - xcb_out.right = right; - xcb_out.top = top; - xcb_out.bottom = bottom; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_expand_region - ** - ** @param xcb_connection_t *c - ** @param xcb_xfixes_region_t source - ** @param xcb_xfixes_region_t destination - ** @param uint16_t left - ** @param uint16_t right - ** @param uint16_t top - ** @param uint16_t bottom - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_expand_region (xcb_connection_t *c /**< */, - xcb_xfixes_region_t source /**< */, - xcb_xfixes_region_t destination /**< */, - uint16_t left /**< */, - uint16_t right /**< */, - uint16_t top /**< */, - uint16_t bottom /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_EXPAND_REGION, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_expand_region_request_t xcb_out; - - xcb_out.source = source; - xcb_out.destination = destination; - xcb_out.left = left; - xcb_out.right = right; - xcb_out.top = top; - xcb_out.bottom = bottom; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_hide_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_hide_cursor_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_HIDE_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_hide_cursor_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_hide_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_hide_cursor (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_HIDE_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_hide_cursor_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_show_cursor_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_show_cursor_checked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SHOW_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_show_cursor_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xfixes_show_cursor - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xfixes_show_cursor (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xfixes_id, - /* opcode */ XCB_XFIXES_SHOW_CURSOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xfixes_show_cursor_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - diff --git a/src/3rdparty/xcb/libxcb/xinerama.c b/src/3rdparty/xcb/libxcb/xinerama.c deleted file mode 100644 index e660be267b..0000000000 --- a/src/3rdparty/xcb/libxcb/xinerama.c +++ /dev/null @@ -1,703 +0,0 @@ -/* - * This file generated automatically from xinerama.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "xinerama.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" - -xcb_extension_t xcb_xinerama_id = { "XINERAMA", 0 }; - - -/***************************************************************************** - ** - ** void xcb_xinerama_screen_info_next - ** - ** @param xcb_xinerama_screen_info_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xinerama_screen_info_next (xcb_xinerama_screen_info_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xinerama_screen_info_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xinerama_screen_info_end - ** - ** @param xcb_xinerama_screen_info_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xinerama_screen_info_end (xcb_xinerama_screen_info_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version - ** - ** @param xcb_connection_t *c - ** @param uint8_t major - ** @param uint8_t minor - ** @returns xcb_xinerama_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_version_cookie_t -xcb_xinerama_query_version (xcb_connection_t *c /**< */, - uint8_t major /**< */, - uint8_t minor /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_query_version_cookie_t xcb_ret; - xcb_xinerama_query_version_request_t xcb_out; - - xcb_out.major = major; - xcb_out.minor = minor; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_query_version_cookie_t xcb_xinerama_query_version_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint8_t major - ** @param uint8_t minor - ** @returns xcb_xinerama_query_version_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_version_cookie_t -xcb_xinerama_query_version_unchecked (xcb_connection_t *c /**< */, - uint8_t major /**< */, - uint8_t minor /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_QUERY_VERSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_query_version_cookie_t xcb_ret; - xcb_xinerama_query_version_request_t xcb_out; - - xcb_out.major = major; - xcb_out.minor = minor; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_query_version_reply_t * xcb_xinerama_query_version_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_query_version_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_query_version_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_query_version_reply_t * -xcb_xinerama_query_version_reply (xcb_connection_t *c /**< */, - xcb_xinerama_query_version_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xinerama_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_state_cookie_t -xcb_xinerama_get_state (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_GET_STATE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_get_state_cookie_t xcb_ret; - xcb_xinerama_get_state_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_state_cookie_t xcb_xinerama_get_state_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_state_cookie_t -xcb_xinerama_get_state_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_GET_STATE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_get_state_cookie_t xcb_ret; - xcb_xinerama_get_state_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_state_reply_t * xcb_xinerama_get_state_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_get_state_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_get_state_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_get_state_reply_t * -xcb_xinerama_get_state_reply (xcb_connection_t *c /**< */, - xcb_xinerama_get_state_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xinerama_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_screen_count_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_count_cookie_t -xcb_xinerama_get_screen_count (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_get_screen_count_cookie_t xcb_ret; - xcb_xinerama_get_screen_count_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_count_cookie_t xcb_xinerama_get_screen_count_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @returns xcb_xinerama_get_screen_count_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_count_cookie_t -xcb_xinerama_get_screen_count_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_GET_SCREEN_COUNT, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_get_screen_count_cookie_t xcb_ret; - xcb_xinerama_get_screen_count_request_t xcb_out; - - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_count_reply_t * xcb_xinerama_get_screen_count_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_get_screen_count_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_get_screen_count_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_count_reply_t * -xcb_xinerama_get_screen_count_reply (xcb_connection_t *c /**< */, - xcb_xinerama_get_screen_count_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xinerama_get_screen_count_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t screen - ** @returns xcb_xinerama_get_screen_size_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_size_cookie_t -xcb_xinerama_get_screen_size (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t screen /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_get_screen_size_cookie_t xcb_ret; - xcb_xinerama_get_screen_size_request_t xcb_out; - - xcb_out.window = window; - xcb_out.screen = screen; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_size_cookie_t xcb_xinerama_get_screen_size_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_window_t window - ** @param uint32_t screen - ** @returns xcb_xinerama_get_screen_size_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_size_cookie_t -xcb_xinerama_get_screen_size_unchecked (xcb_connection_t *c /**< */, - xcb_window_t window /**< */, - uint32_t screen /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_GET_SCREEN_SIZE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_get_screen_size_cookie_t xcb_ret; - xcb_xinerama_get_screen_size_request_t xcb_out; - - xcb_out.window = window; - xcb_out.screen = screen; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_get_screen_size_reply_t * xcb_xinerama_get_screen_size_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_get_screen_size_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_get_screen_size_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_get_screen_size_reply_t * -xcb_xinerama_get_screen_size_reply (xcb_connection_t *c /**< */, - xcb_xinerama_get_screen_size_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xinerama_get_screen_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_is_active_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_is_active_cookie_t -xcb_xinerama_is_active (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_IS_ACTIVE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_is_active_cookie_t xcb_ret; - xcb_xinerama_is_active_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_is_active_cookie_t xcb_xinerama_is_active_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_is_active_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_is_active_cookie_t -xcb_xinerama_is_active_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_IS_ACTIVE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_is_active_cookie_t xcb_ret; - xcb_xinerama_is_active_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_is_active_reply_t * xcb_xinerama_is_active_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_is_active_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_is_active_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_is_active_reply_t * -xcb_xinerama_is_active_reply (xcb_connection_t *c /**< */, - xcb_xinerama_is_active_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xinerama_is_active_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xinerama_query_screens_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xinerama_query_screens_reply_t *_aux = (xcb_xinerama_query_screens_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to; - - - xcb_block_len += sizeof(xcb_xinerama_query_screens_reply_t); - xcb_tmp += xcb_block_len; - /* screen_info */ - xcb_block_len += _aux->number * sizeof(xcb_xinerama_screen_info_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xinerama_screen_info_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_query_screens_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_screens_cookie_t -xcb_xinerama_query_screens (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_QUERY_SCREENS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_query_screens_cookie_t xcb_ret; - xcb_xinerama_query_screens_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_query_screens_cookie_t xcb_xinerama_query_screens_unchecked - ** - ** @param xcb_connection_t *c - ** @returns xcb_xinerama_query_screens_cookie_t - ** - *****************************************************************************/ - -xcb_xinerama_query_screens_cookie_t -xcb_xinerama_query_screens_unchecked (xcb_connection_t *c /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xinerama_id, - /* opcode */ XCB_XINERAMA_QUERY_SCREENS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xinerama_query_screens_cookie_t xcb_ret; - xcb_xinerama_query_screens_request_t xcb_out; - - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_screen_info_t * xcb_xinerama_query_screens_screen_info - ** - ** @param const xcb_xinerama_query_screens_reply_t *R - ** @returns xcb_xinerama_screen_info_t * - ** - *****************************************************************************/ - -xcb_xinerama_screen_info_t * -xcb_xinerama_query_screens_screen_info (const xcb_xinerama_query_screens_reply_t *R /**< */) -{ - return (xcb_xinerama_screen_info_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xinerama_query_screens_screen_info_length - ** - ** @param const xcb_xinerama_query_screens_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xinerama_query_screens_screen_info_length (const xcb_xinerama_query_screens_reply_t *R /**< */) -{ - return R->number; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_screen_info_iterator_t xcb_xinerama_query_screens_screen_info_iterator - ** - ** @param const xcb_xinerama_query_screens_reply_t *R - ** @returns xcb_xinerama_screen_info_iterator_t - ** - *****************************************************************************/ - -xcb_xinerama_screen_info_iterator_t -xcb_xinerama_query_screens_screen_info_iterator (const xcb_xinerama_query_screens_reply_t *R /**< */) -{ - xcb_xinerama_screen_info_iterator_t i; - i.data = (xcb_xinerama_screen_info_t *) (R + 1); - i.rem = R->number; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xinerama_query_screens_reply_t * xcb_xinerama_query_screens_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xinerama_query_screens_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xinerama_query_screens_reply_t * - ** - *****************************************************************************/ - -xcb_xinerama_query_screens_reply_t * -xcb_xinerama_query_screens_reply (xcb_connection_t *c /**< */, - xcb_xinerama_query_screens_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xinerama_query_screens_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - diff --git a/src/3rdparty/xcb/libxcb/xinput.c b/src/3rdparty/xcb/libxcb/xinput.c index 0edfde656c..d4e3c250bc 100644 --- a/src/3rdparty/xcb/libxcb/xinput.c +++ b/src/3rdparty/xcb/libxcb/xinput.c @@ -10,11 +10,11 @@ #include #include #include /* for offsetof() */ -#include "xcbext.h" -#include "xinput.h" +#include +#include #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xfixes.h" +#include xcb_extension_t xcb_input_id = { "XInputExtension", 0 }; diff --git a/src/3rdparty/xcb/libxcb/xkb.c b/src/3rdparty/xcb/libxcb/xkb.c deleted file mode 100644 index d55bd76f10..0000000000 --- a/src/3rdparty/xcb/libxcb/xkb.c +++ /dev/null @@ -1,15959 +0,0 @@ -/* - * This file generated automatically from xkb.xml by c_client.py. - * Edit at your peril. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include -#include -#include -#include /* for offsetof() */ -#include "xcbext.h" -#include "xkb.h" - -#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) -#include "xproto.h" - -xcb_extension_t xcb_xkb_id = { "XKEYBOARD", 0 }; - - -/***************************************************************************** - ** - ** void xcb_xkb_device_spec_next - ** - ** @param xcb_xkb_device_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_device_spec_next (xcb_xkb_device_spec_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_device_spec_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_device_spec_end - ** - ** @param xcb_xkb_device_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_device_spec_end (xcb_xkb_device_spec_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_led_class_spec_next - ** - ** @param xcb_xkb_led_class_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_led_class_spec_next (xcb_xkb_led_class_spec_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_led_class_spec_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_led_class_spec_end - ** - ** @param xcb_xkb_led_class_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_led_class_spec_end (xcb_xkb_led_class_spec_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_bell_class_spec_next - ** - ** @param xcb_xkb_bell_class_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_bell_class_spec_next (xcb_xkb_bell_class_spec_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_bell_class_spec_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_bell_class_spec_end - ** - ** @param xcb_xkb_bell_class_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_bell_class_spec_end (xcb_xkb_bell_class_spec_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_id_spec_next - ** - ** @param xcb_xkb_id_spec_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_id_spec_next (xcb_xkb_id_spec_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_id_spec_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_id_spec_end - ** - ** @param xcb_xkb_id_spec_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_id_spec_end (xcb_xkb_id_spec_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_indicator_map_next - ** - ** @param xcb_xkb_indicator_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_indicator_map_next (xcb_xkb_indicator_map_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_indicator_map_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_indicator_map_end - ** - ** @param xcb_xkb_indicator_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_indicator_map_end (xcb_xkb_indicator_map_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_mod_def_next - ** - ** @param xcb_xkb_mod_def_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_mod_def_next (xcb_xkb_mod_def_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_mod_def_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_mod_def_end - ** - ** @param xcb_xkb_mod_def_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_mod_def_end (xcb_xkb_mod_def_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_name_next - ** - ** @param xcb_xkb_key_name_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_name_next (xcb_xkb_key_name_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_key_name_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_name_end - ** - ** @param xcb_xkb_key_name_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_name_end (xcb_xkb_key_name_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_alias_next - ** - ** @param xcb_xkb_key_alias_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_alias_next (xcb_xkb_key_alias_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_key_alias_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_alias_end - ** - ** @param xcb_xkb_key_alias_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_alias_end (xcb_xkb_key_alias_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_xkb_counted_string_16_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_counted_string_16_t *_aux = (xcb_xkb_counted_string_16_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_counted_string_16_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* string */ - xcb_block_len += _aux->length * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad */ - xcb_block_len += (((_aux->length + 5) & (~3)) - (_aux->length + 2)) * sizeof(char); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(char); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** char * xcb_xkb_counted_string_16_string - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns char * - ** - *****************************************************************************/ - -char * -xcb_xkb_counted_string_16_string (const xcb_xkb_counted_string_16_t *R /**< */) -{ - return (char *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_counted_string_16_string_length - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_counted_string_16_string_length (const xcb_xkb_counted_string_16_t *R /**< */) -{ - return R->length; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_counted_string_16_string_end - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_counted_string_16_string_end (const xcb_xkb_counted_string_16_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((char *) (R + 1)) + (R->length); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void * xcb_xkb_counted_string_16_alignment_pad - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns void * - ** - *****************************************************************************/ - -void * -xcb_xkb_counted_string_16_alignment_pad (const xcb_xkb_counted_string_16_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xkb_counted_string_16_string_end(R); - return (void *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_counted_string_16_alignment_pad_length - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_counted_string_16_alignment_pad_length (const xcb_xkb_counted_string_16_t *R /**< */) -{ - return (((R->length + 5) & (~3)) - (R->length + 2)); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_counted_string_16_alignment_pad_end - ** - ** @param const xcb_xkb_counted_string_16_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_counted_string_16_alignment_pad_end (const xcb_xkb_counted_string_16_t *R /**< */) -{ - xcb_generic_iterator_t i; - xcb_generic_iterator_t child = xcb_xkb_counted_string_16_string_end(R); - i.data = ((char *) child.data) + ((((R->length + 5) & (~3)) - (R->length + 2))); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_counted_string_16_next - ** - ** @param xcb_xkb_counted_string_16_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_counted_string_16_next (xcb_xkb_counted_string_16_iterator_t *i /**< */) -{ - xcb_xkb_counted_string_16_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_counted_string_16_t *)(((char *)R) + xcb_xkb_counted_string_16_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_counted_string_16_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_counted_string_16_end - ** - ** @param xcb_xkb_counted_string_16_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_counted_string_16_end (xcb_xkb_counted_string_16_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_counted_string_16_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_kt_map_entry_next - ** - ** @param xcb_xkb_kt_map_entry_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_kt_map_entry_next (xcb_xkb_kt_map_entry_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_kt_map_entry_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_kt_map_entry_end - ** - ** @param xcb_xkb_kt_map_entry_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_kt_map_entry_end (xcb_xkb_kt_map_entry_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_xkb_key_type_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_key_type_t *_aux = (xcb_xkb_key_type_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_key_type_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* map */ - xcb_block_len += _aux->nMapEntries * sizeof(xcb_xkb_kt_map_entry_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_kt_map_entry_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* preserve */ - xcb_block_len += (_aux->hasPreserve * _aux->nMapEntries) * sizeof(xcb_xkb_mod_def_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_kt_map_entry_t * xcb_xkb_key_type_map - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_kt_map_entry_t * - ** - *****************************************************************************/ - -xcb_xkb_kt_map_entry_t * -xcb_xkb_key_type_map (const xcb_xkb_key_type_t *R /**< */) -{ - return (xcb_xkb_kt_map_entry_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_key_type_map_length - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_key_type_map_length (const xcb_xkb_key_type_t *R /**< */) -{ - return R->nMapEntries; -} - - -/***************************************************************************** - ** - ** xcb_xkb_kt_map_entry_iterator_t xcb_xkb_key_type_map_iterator - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_kt_map_entry_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_kt_map_entry_iterator_t -xcb_xkb_key_type_map_iterator (const xcb_xkb_key_type_t *R /**< */) -{ - xcb_xkb_kt_map_entry_iterator_t i; - i.data = (xcb_xkb_kt_map_entry_t *) (R + 1); - i.rem = R->nMapEntries; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_t * xcb_xkb_key_type_preserve - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_mod_def_t * - ** - *****************************************************************************/ - -xcb_xkb_mod_def_t * -xcb_xkb_key_type_preserve (const xcb_xkb_key_type_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xkb_kt_map_entry_end(xcb_xkb_key_type_map_iterator(R)); - return (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_key_type_preserve_length - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_key_type_preserve_length (const xcb_xkb_key_type_t *R /**< */) -{ - return (R->hasPreserve * R->nMapEntries); -} - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_iterator_t xcb_xkb_key_type_preserve_iterator - ** - ** @param const xcb_xkb_key_type_t *R - ** @returns xcb_xkb_mod_def_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_mod_def_iterator_t -xcb_xkb_key_type_preserve_iterator (const xcb_xkb_key_type_t *R /**< */) -{ - xcb_xkb_mod_def_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_kt_map_entry_end(xcb_xkb_key_type_map_iterator(R)); - i.data = (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index)); - i.rem = (R->hasPreserve * R->nMapEntries); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_type_next - ** - ** @param xcb_xkb_key_type_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_type_next (xcb_xkb_key_type_iterator_t *i /**< */) -{ - xcb_xkb_key_type_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_key_type_t *)(((char *)R) + xcb_xkb_key_type_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_key_type_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_type_end - ** - ** @param xcb_xkb_key_type_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_type_end (xcb_xkb_key_type_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_key_type_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_xkb_key_sym_map_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_key_sym_map_t *_aux = (xcb_xkb_key_sym_map_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_key_sym_map_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* syms */ - xcb_block_len += _aux->nSyms * sizeof(xcb_keysym_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_keysym_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_keysym_t * xcb_xkb_key_sym_map_syms - ** - ** @param const xcb_xkb_key_sym_map_t *R - ** @returns xcb_keysym_t * - ** - *****************************************************************************/ - -xcb_keysym_t * -xcb_xkb_key_sym_map_syms (const xcb_xkb_key_sym_map_t *R /**< */) -{ - return (xcb_keysym_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_key_sym_map_syms_length - ** - ** @param const xcb_xkb_key_sym_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_key_sym_map_syms_length (const xcb_xkb_key_sym_map_t *R /**< */) -{ - return R->nSyms; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_sym_map_syms_end - ** - ** @param const xcb_xkb_key_sym_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_sym_map_syms_end (const xcb_xkb_key_sym_map_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_keysym_t *) (R + 1)) + (R->nSyms); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_sym_map_next - ** - ** @param xcb_xkb_key_sym_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_sym_map_next (xcb_xkb_key_sym_map_iterator_t *i /**< */) -{ - xcb_xkb_key_sym_map_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_key_sym_map_t *)(((char *)R) + xcb_xkb_key_sym_map_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_key_sym_map_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_sym_map_end - ** - ** @param xcb_xkb_key_sym_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_sym_map_end (xcb_xkb_key_sym_map_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_key_sym_map_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_common_behavior_next - ** - ** @param xcb_xkb_common_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_common_behavior_next (xcb_xkb_common_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_common_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_common_behavior_end - ** - ** @param xcb_xkb_common_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_common_behavior_end (xcb_xkb_common_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_default_behavior_next - ** - ** @param xcb_xkb_default_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_default_behavior_next (xcb_xkb_default_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_default_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_default_behavior_end - ** - ** @param xcb_xkb_default_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_default_behavior_end (xcb_xkb_default_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_lock_behavior_next - ** - ** @param xcb_xkb_lock_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_lock_behavior_next (xcb_xkb_lock_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_lock_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_lock_behavior_end - ** - ** @param xcb_xkb_lock_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_lock_behavior_end (xcb_xkb_lock_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_radio_group_behavior_next - ** - ** @param xcb_xkb_radio_group_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_radio_group_behavior_next (xcb_xkb_radio_group_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_radio_group_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_radio_group_behavior_end - ** - ** @param xcb_xkb_radio_group_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_radio_group_behavior_end (xcb_xkb_radio_group_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_behavior_next - ** - ** @param xcb_xkb_overlay_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_behavior_next (xcb_xkb_overlay_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_overlay_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_behavior_end - ** - ** @param xcb_xkb_overlay_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_behavior_end (xcb_xkb_overlay_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_permament_lock_behavior_next - ** - ** @param xcb_xkb_permament_lock_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_permament_lock_behavior_next (xcb_xkb_permament_lock_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_permament_lock_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_permament_lock_behavior_end - ** - ** @param xcb_xkb_permament_lock_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_permament_lock_behavior_end (xcb_xkb_permament_lock_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_permament_radio_group_behavior_next - ** - ** @param xcb_xkb_permament_radio_group_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_permament_radio_group_behavior_next (xcb_xkb_permament_radio_group_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_permament_radio_group_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_permament_radio_group_behavior_end - ** - ** @param xcb_xkb_permament_radio_group_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_permament_radio_group_behavior_end (xcb_xkb_permament_radio_group_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_permament_overlay_behavior_next - ** - ** @param xcb_xkb_permament_overlay_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_permament_overlay_behavior_next (xcb_xkb_permament_overlay_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_permament_overlay_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_permament_overlay_behavior_end - ** - ** @param xcb_xkb_permament_overlay_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_permament_overlay_behavior_end (xcb_xkb_permament_overlay_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_behavior_next - ** - ** @param xcb_xkb_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_behavior_next (xcb_xkb_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_behavior_end - ** - ** @param xcb_xkb_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_behavior_end (xcb_xkb_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_set_behavior_next - ** - ** @param xcb_xkb_set_behavior_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_set_behavior_next (xcb_xkb_set_behavior_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_set_behavior_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_behavior_end - ** - ** @param xcb_xkb_set_behavior_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_behavior_end (xcb_xkb_set_behavior_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_set_explicit_next - ** - ** @param xcb_xkb_set_explicit_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_set_explicit_next (xcb_xkb_set_explicit_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_set_explicit_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_explicit_end - ** - ** @param xcb_xkb_set_explicit_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_explicit_end (xcb_xkb_set_explicit_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_mod_map_next - ** - ** @param xcb_xkb_key_mod_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_mod_map_next (xcb_xkb_key_mod_map_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_key_mod_map_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_mod_map_end - ** - ** @param xcb_xkb_key_mod_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_mod_map_end (xcb_xkb_key_mod_map_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_v_mod_map_next - ** - ** @param xcb_xkb_key_v_mod_map_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_v_mod_map_next (xcb_xkb_key_v_mod_map_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_key_v_mod_map_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_v_mod_map_end - ** - ** @param xcb_xkb_key_v_mod_map_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_v_mod_map_end (xcb_xkb_key_v_mod_map_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_kt_set_map_entry_next - ** - ** @param xcb_xkb_kt_set_map_entry_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_kt_set_map_entry_next (xcb_xkb_kt_set_map_entry_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_kt_set_map_entry_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_kt_set_map_entry_end - ** - ** @param xcb_xkb_kt_set_map_entry_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_kt_set_map_entry_end (xcb_xkb_kt_set_map_entry_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_xkb_set_key_type_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_set_key_type_t *_aux = (xcb_xkb_set_key_type_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_set_key_type_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* entries */ - xcb_block_len += _aux->nMapEntries * sizeof(xcb_xkb_kt_set_map_entry_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_kt_set_map_entry_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* preserve_entries */ - xcb_block_len += (_aux->preserve * _aux->nMapEntries) * sizeof(xcb_xkb_kt_set_map_entry_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_kt_set_map_entry_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_entries - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_t * - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_t * -xcb_xkb_set_key_type_entries (const xcb_xkb_set_key_type_t *R /**< */) -{ - return (xcb_xkb_kt_set_map_entry_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_key_type_entries_length - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_key_type_entries_length (const xcb_xkb_set_key_type_t *R /**< */) -{ - return R->nMapEntries; -} - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_entries_iterator - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_iterator_t -xcb_xkb_set_key_type_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */) -{ - xcb_xkb_kt_set_map_entry_iterator_t i; - i.data = (xcb_xkb_kt_set_map_entry_t *) (R + 1); - i.rem = R->nMapEntries; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_t * xcb_xkb_set_key_type_preserve_entries - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_t * - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_t * -xcb_xkb_set_key_type_preserve_entries (const xcb_xkb_set_key_type_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xkb_kt_set_map_entry_end(xcb_xkb_set_key_type_entries_iterator(R)); - return (xcb_xkb_kt_set_map_entry_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_kt_set_map_entry_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_key_type_preserve_entries_length - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_key_type_preserve_entries_length (const xcb_xkb_set_key_type_t *R /**< */) -{ - return (R->preserve * R->nMapEntries); -} - - -/***************************************************************************** - ** - ** xcb_xkb_kt_set_map_entry_iterator_t xcb_xkb_set_key_type_preserve_entries_iterator - ** - ** @param const xcb_xkb_set_key_type_t *R - ** @returns xcb_xkb_kt_set_map_entry_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_kt_set_map_entry_iterator_t -xcb_xkb_set_key_type_preserve_entries_iterator (const xcb_xkb_set_key_type_t *R /**< */) -{ - xcb_xkb_kt_set_map_entry_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_kt_set_map_entry_end(xcb_xkb_set_key_type_entries_iterator(R)); - i.data = (xcb_xkb_kt_set_map_entry_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_kt_set_map_entry_t, prev.index)); - i.rem = (R->preserve * R->nMapEntries); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_set_key_type_next - ** - ** @param xcb_xkb_set_key_type_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_set_key_type_next (xcb_xkb_set_key_type_iterator_t *i /**< */) -{ - xcb_xkb_set_key_type_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_set_key_type_t *)(((char *)R) + xcb_xkb_set_key_type_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_set_key_type_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_key_type_end - ** - ** @param xcb_xkb_set_key_type_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_key_type_end (xcb_xkb_set_key_type_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_set_key_type_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_string8_next - ** - ** @param xcb_xkb_string8_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_string8_next (xcb_xkb_string8_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_string8_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_string8_end - ** - ** @param xcb_xkb_string8_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_string8_end (xcb_xkb_string8_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_xkb_outline_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_outline_t *_aux = (xcb_xkb_outline_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_outline_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* points */ - xcb_block_len += _aux->nPoints * sizeof(xcb_point_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_point_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_point_t * xcb_xkb_outline_points - ** - ** @param const xcb_xkb_outline_t *R - ** @returns xcb_point_t * - ** - *****************************************************************************/ - -xcb_point_t * -xcb_xkb_outline_points (const xcb_xkb_outline_t *R /**< */) -{ - return (xcb_point_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_outline_points_length - ** - ** @param const xcb_xkb_outline_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_outline_points_length (const xcb_xkb_outline_t *R /**< */) -{ - return R->nPoints; -} - - -/***************************************************************************** - ** - ** xcb_point_iterator_t xcb_xkb_outline_points_iterator - ** - ** @param const xcb_xkb_outline_t *R - ** @returns xcb_point_iterator_t - ** - *****************************************************************************/ - -xcb_point_iterator_t -xcb_xkb_outline_points_iterator (const xcb_xkb_outline_t *R /**< */) -{ - xcb_point_iterator_t i; - i.data = (xcb_point_t *) (R + 1); - i.rem = R->nPoints; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_outline_next - ** - ** @param xcb_xkb_outline_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_outline_next (xcb_xkb_outline_iterator_t *i /**< */) -{ - xcb_xkb_outline_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_outline_t *)(((char *)R) + xcb_xkb_outline_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_outline_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_outline_end - ** - ** @param xcb_xkb_outline_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_outline_end (xcb_xkb_outline_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_outline_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_xkb_shape_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_shape_t *_aux = (xcb_xkb_shape_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_xkb_shape_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* outlines */ - for(i=0; i<_aux->nOutlines; i++) { - xcb_tmp_len = xcb_xkb_outline_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_outline_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_shape_outlines_length - ** - ** @param const xcb_xkb_shape_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_shape_outlines_length (const xcb_xkb_shape_t *R /**< */) -{ - return R->nOutlines; -} - - -/***************************************************************************** - ** - ** xcb_xkb_outline_iterator_t xcb_xkb_shape_outlines_iterator - ** - ** @param const xcb_xkb_shape_t *R - ** @returns xcb_xkb_outline_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_outline_iterator_t -xcb_xkb_shape_outlines_iterator (const xcb_xkb_shape_t *R /**< */) -{ - xcb_xkb_outline_iterator_t i; - i.data = (xcb_xkb_outline_t *) (R + 1); - i.rem = R->nOutlines; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_shape_next - ** - ** @param xcb_xkb_shape_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_shape_next (xcb_xkb_shape_iterator_t *i /**< */) -{ - xcb_xkb_shape_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_shape_t *)(((char *)R) + xcb_xkb_shape_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_shape_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_shape_end - ** - ** @param xcb_xkb_shape_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_shape_end (xcb_xkb_shape_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_shape_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_key_next - ** - ** @param xcb_xkb_key_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_key_next (xcb_xkb_key_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_key_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_key_end - ** - ** @param xcb_xkb_key_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_key_end (xcb_xkb_key_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_key_next - ** - ** @param xcb_xkb_overlay_key_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_key_next (xcb_xkb_overlay_key_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_overlay_key_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_key_end - ** - ** @param xcb_xkb_overlay_key_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_key_end (xcb_xkb_overlay_key_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - -int -xcb_xkb_overlay_row_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_overlay_row_t *_aux = (xcb_xkb_overlay_row_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_overlay_row_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* keys */ - xcb_block_len += _aux->nKeys * sizeof(xcb_xkb_overlay_key_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_overlay_key_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_overlay_key_t * xcb_xkb_overlay_row_keys - ** - ** @param const xcb_xkb_overlay_row_t *R - ** @returns xcb_xkb_overlay_key_t * - ** - *****************************************************************************/ - -xcb_xkb_overlay_key_t * -xcb_xkb_overlay_row_keys (const xcb_xkb_overlay_row_t *R /**< */) -{ - return (xcb_xkb_overlay_key_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_overlay_row_keys_length - ** - ** @param const xcb_xkb_overlay_row_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_overlay_row_keys_length (const xcb_xkb_overlay_row_t *R /**< */) -{ - return R->nKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_overlay_key_iterator_t xcb_xkb_overlay_row_keys_iterator - ** - ** @param const xcb_xkb_overlay_row_t *R - ** @returns xcb_xkb_overlay_key_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_overlay_key_iterator_t -xcb_xkb_overlay_row_keys_iterator (const xcb_xkb_overlay_row_t *R /**< */) -{ - xcb_xkb_overlay_key_iterator_t i; - i.data = (xcb_xkb_overlay_key_t *) (R + 1); - i.rem = R->nKeys; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_row_next - ** - ** @param xcb_xkb_overlay_row_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_row_next (xcb_xkb_overlay_row_iterator_t *i /**< */) -{ - xcb_xkb_overlay_row_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_overlay_row_t *)(((char *)R) + xcb_xkb_overlay_row_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_overlay_row_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_row_end - ** - ** @param xcb_xkb_overlay_row_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_row_end (xcb_xkb_overlay_row_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_overlay_row_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_xkb_overlay_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_overlay_t *_aux = (xcb_xkb_overlay_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_xkb_overlay_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* rows */ - for(i=0; i<_aux->nRows; i++) { - xcb_tmp_len = xcb_xkb_overlay_row_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_overlay_row_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_overlay_rows_length - ** - ** @param const xcb_xkb_overlay_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_overlay_rows_length (const xcb_xkb_overlay_t *R /**< */) -{ - return R->nRows; -} - - -/***************************************************************************** - ** - ** xcb_xkb_overlay_row_iterator_t xcb_xkb_overlay_rows_iterator - ** - ** @param const xcb_xkb_overlay_t *R - ** @returns xcb_xkb_overlay_row_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_overlay_row_iterator_t -xcb_xkb_overlay_rows_iterator (const xcb_xkb_overlay_t *R /**< */) -{ - xcb_xkb_overlay_row_iterator_t i; - i.data = (xcb_xkb_overlay_row_t *) (R + 1); - i.rem = R->nRows; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_overlay_next - ** - ** @param xcb_xkb_overlay_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_overlay_next (xcb_xkb_overlay_iterator_t *i /**< */) -{ - xcb_xkb_overlay_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_overlay_t *)(((char *)R) + xcb_xkb_overlay_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_overlay_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_overlay_end - ** - ** @param xcb_xkb_overlay_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_overlay_end (xcb_xkb_overlay_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_overlay_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_xkb_row_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_row_t *_aux = (xcb_xkb_row_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_row_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* keys */ - xcb_block_len += _aux->nKeys * sizeof(xcb_xkb_key_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_t * xcb_xkb_row_keys - ** - ** @param const xcb_xkb_row_t *R - ** @returns xcb_xkb_key_t * - ** - *****************************************************************************/ - -xcb_xkb_key_t * -xcb_xkb_row_keys (const xcb_xkb_row_t *R /**< */) -{ - return (xcb_xkb_key_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_row_keys_length - ** - ** @param const xcb_xkb_row_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_row_keys_length (const xcb_xkb_row_t *R /**< */) -{ - return R->nKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_iterator_t xcb_xkb_row_keys_iterator - ** - ** @param const xcb_xkb_row_t *R - ** @returns xcb_xkb_key_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_iterator_t -xcb_xkb_row_keys_iterator (const xcb_xkb_row_t *R /**< */) -{ - xcb_xkb_key_iterator_t i; - i.data = (xcb_xkb_key_t *) (R + 1); - i.rem = R->nKeys; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_row_next - ** - ** @param xcb_xkb_row_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_row_next (xcb_xkb_row_iterator_t *i /**< */) -{ - xcb_xkb_row_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_row_t *)(((char *)R) + xcb_xkb_row_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_row_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_row_end - ** - ** @param xcb_xkb_row_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_row_end (xcb_xkb_row_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_row_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_xkb_listing_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_listing_t *_aux = (xcb_xkb_listing_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_listing_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* string */ - xcb_block_len += _aux->length * sizeof(xcb_xkb_string8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_string8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_string8_t * xcb_xkb_listing_string - ** - ** @param const xcb_xkb_listing_t *R - ** @returns xcb_xkb_string8_t * - ** - *****************************************************************************/ - -xcb_xkb_string8_t * -xcb_xkb_listing_string (const xcb_xkb_listing_t *R /**< */) -{ - return (xcb_xkb_string8_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_listing_string_length - ** - ** @param const xcb_xkb_listing_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_listing_string_length (const xcb_xkb_listing_t *R /**< */) -{ - return R->length; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_listing_string_end - ** - ** @param const xcb_xkb_listing_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_listing_string_end (const xcb_xkb_listing_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_xkb_string8_t *) (R + 1)) + (R->length); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_listing_next - ** - ** @param xcb_xkb_listing_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_listing_next (xcb_xkb_listing_iterator_t *i /**< */) -{ - xcb_xkb_listing_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_listing_t *)(((char *)R) + xcb_xkb_listing_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_listing_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_listing_end - ** - ** @param xcb_xkb_listing_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_listing_end (xcb_xkb_listing_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_listing_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - -int -xcb_xkb_device_led_info_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_device_led_info_t *_aux = (xcb_xkb_device_led_info_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_device_led_info_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* names */ - xcb_block_len += xcb_popcount(_aux->namesPresent) * sizeof(uint32_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* maps */ - xcb_block_len += xcb_popcount(_aux->mapsPresent) * sizeof(xcb_xkb_indicator_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_device_led_info_names - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_device_led_info_names (const xcb_xkb_device_led_info_t *R /**< */) -{ - return (xcb_atom_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_device_led_info_names_length - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_device_led_info_names_length (const xcb_xkb_device_led_info_t *R /**< */) -{ - return xcb_popcount(R->namesPresent); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_device_led_info_names_end - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_device_led_info_names_end (const xcb_xkb_device_led_info_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_atom_t *) (R + 1)) + (xcb_popcount(R->namesPresent)); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_t * xcb_xkb_device_led_info_maps - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_xkb_indicator_map_t * - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_t * -xcb_xkb_device_led_info_maps (const xcb_xkb_device_led_info_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xkb_device_led_info_names_end(R); - return (xcb_xkb_indicator_map_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_indicator_map_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_device_led_info_maps_length - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_device_led_info_maps_length (const xcb_xkb_device_led_info_t *R /**< */) -{ - return xcb_popcount(R->mapsPresent); -} - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_iterator_t xcb_xkb_device_led_info_maps_iterator - ** - ** @param const xcb_xkb_device_led_info_t *R - ** @returns xcb_xkb_indicator_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_iterator_t -xcb_xkb_device_led_info_maps_iterator (const xcb_xkb_device_led_info_t *R /**< */) -{ - xcb_xkb_indicator_map_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_device_led_info_names_end(R); - i.data = (xcb_xkb_indicator_map_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_indicator_map_t, prev.index)); - i.rem = xcb_popcount(R->mapsPresent); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_device_led_info_next - ** - ** @param xcb_xkb_device_led_info_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_device_led_info_next (xcb_xkb_device_led_info_iterator_t *i /**< */) -{ - xcb_xkb_device_led_info_t *R = i->data; - xcb_generic_iterator_t child; - child.data = (xcb_xkb_device_led_info_t *)(((char *)R) + xcb_xkb_device_led_info_sizeof(R)); - i->index = (char *) child.data - (char *) i->data; - --i->rem; - i->data = (xcb_xkb_device_led_info_t *) child.data; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_device_led_info_end - ** - ** @param xcb_xkb_device_led_info_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_device_led_info_end (xcb_xkb_device_led_info_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - while(i.rem > 0) - xcb_xkb_device_led_info_next(&i); - ret.data = i.data; - ret.rem = i.rem; - ret.index = i.index; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_no_action_next - ** - ** @param xcb_xkb_sa_no_action_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_no_action_next (xcb_xkb_sa_no_action_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_no_action_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_no_action_end - ** - ** @param xcb_xkb_sa_no_action_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_no_action_end (xcb_xkb_sa_no_action_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_mods_next - ** - ** @param xcb_xkb_sa_set_mods_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_mods_next (xcb_xkb_sa_set_mods_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_set_mods_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_mods_end - ** - ** @param xcb_xkb_sa_set_mods_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_mods_end (xcb_xkb_sa_set_mods_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_latch_mods_next - ** - ** @param xcb_xkb_sa_latch_mods_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_latch_mods_next (xcb_xkb_sa_latch_mods_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_latch_mods_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_latch_mods_end - ** - ** @param xcb_xkb_sa_latch_mods_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_latch_mods_end (xcb_xkb_sa_latch_mods_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_mods_next - ** - ** @param xcb_xkb_sa_lock_mods_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_mods_next (xcb_xkb_sa_lock_mods_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_lock_mods_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_mods_end - ** - ** @param xcb_xkb_sa_lock_mods_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_mods_end (xcb_xkb_sa_lock_mods_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_group_next - ** - ** @param xcb_xkb_sa_set_group_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_group_next (xcb_xkb_sa_set_group_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_set_group_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_group_end - ** - ** @param xcb_xkb_sa_set_group_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_group_end (xcb_xkb_sa_set_group_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_latch_group_next - ** - ** @param xcb_xkb_sa_latch_group_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_latch_group_next (xcb_xkb_sa_latch_group_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_latch_group_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_latch_group_end - ** - ** @param xcb_xkb_sa_latch_group_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_latch_group_end (xcb_xkb_sa_latch_group_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_group_next - ** - ** @param xcb_xkb_sa_lock_group_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_group_next (xcb_xkb_sa_lock_group_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_lock_group_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_group_end - ** - ** @param xcb_xkb_sa_lock_group_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_group_end (xcb_xkb_sa_lock_group_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_move_ptr_next - ** - ** @param xcb_xkb_sa_move_ptr_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_move_ptr_next (xcb_xkb_sa_move_ptr_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_move_ptr_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_move_ptr_end - ** - ** @param xcb_xkb_sa_move_ptr_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_move_ptr_end (xcb_xkb_sa_move_ptr_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_ptr_btn_next - ** - ** @param xcb_xkb_sa_ptr_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_ptr_btn_next (xcb_xkb_sa_ptr_btn_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_ptr_btn_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_ptr_btn_end - ** - ** @param xcb_xkb_sa_ptr_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_ptr_btn_end (xcb_xkb_sa_ptr_btn_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_ptr_btn_next - ** - ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_ptr_btn_next (xcb_xkb_sa_lock_ptr_btn_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_lock_ptr_btn_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_ptr_btn_end - ** - ** @param xcb_xkb_sa_lock_ptr_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_ptr_btn_end (xcb_xkb_sa_lock_ptr_btn_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_ptr_dflt_next - ** - ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_ptr_dflt_next (xcb_xkb_sa_set_ptr_dflt_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_set_ptr_dflt_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_ptr_dflt_end - ** - ** @param xcb_xkb_sa_set_ptr_dflt_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_ptr_dflt_end (xcb_xkb_sa_set_ptr_dflt_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_iso_lock_next - ** - ** @param xcb_xkb_sa_iso_lock_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_iso_lock_next (xcb_xkb_sa_iso_lock_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_iso_lock_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_iso_lock_end - ** - ** @param xcb_xkb_sa_iso_lock_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_iso_lock_end (xcb_xkb_sa_iso_lock_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_terminate_next - ** - ** @param xcb_xkb_sa_terminate_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_terminate_next (xcb_xkb_sa_terminate_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_terminate_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_terminate_end - ** - ** @param xcb_xkb_sa_terminate_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_terminate_end (xcb_xkb_sa_terminate_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_switch_screen_next - ** - ** @param xcb_xkb_sa_switch_screen_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_switch_screen_next (xcb_xkb_sa_switch_screen_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_switch_screen_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_switch_screen_end - ** - ** @param xcb_xkb_sa_switch_screen_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_switch_screen_end (xcb_xkb_sa_switch_screen_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_set_controls_next - ** - ** @param xcb_xkb_sa_set_controls_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_set_controls_next (xcb_xkb_sa_set_controls_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_set_controls_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_set_controls_end - ** - ** @param xcb_xkb_sa_set_controls_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_set_controls_end (xcb_xkb_sa_set_controls_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_controls_next - ** - ** @param xcb_xkb_sa_lock_controls_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_controls_next (xcb_xkb_sa_lock_controls_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_lock_controls_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_controls_end - ** - ** @param xcb_xkb_sa_lock_controls_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_controls_end (xcb_xkb_sa_lock_controls_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_action_message_next - ** - ** @param xcb_xkb_sa_action_message_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_action_message_next (xcb_xkb_sa_action_message_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_action_message_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_action_message_end - ** - ** @param xcb_xkb_sa_action_message_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_action_message_end (xcb_xkb_sa_action_message_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_redirect_key_next - ** - ** @param xcb_xkb_sa_redirect_key_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_redirect_key_next (xcb_xkb_sa_redirect_key_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_redirect_key_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_redirect_key_end - ** - ** @param xcb_xkb_sa_redirect_key_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_redirect_key_end (xcb_xkb_sa_redirect_key_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_device_btn_next - ** - ** @param xcb_xkb_sa_device_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_device_btn_next (xcb_xkb_sa_device_btn_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_device_btn_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_device_btn_end - ** - ** @param xcb_xkb_sa_device_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_device_btn_end (xcb_xkb_sa_device_btn_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_lock_device_btn_next - ** - ** @param xcb_xkb_sa_lock_device_btn_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_lock_device_btn_next (xcb_xkb_sa_lock_device_btn_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_lock_device_btn_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_lock_device_btn_end - ** - ** @param xcb_xkb_sa_lock_device_btn_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_lock_device_btn_end (xcb_xkb_sa_lock_device_btn_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sa_device_valuator_next - ** - ** @param xcb_xkb_sa_device_valuator_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sa_device_valuator_next (xcb_xkb_sa_device_valuator_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sa_device_valuator_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sa_device_valuator_end - ** - ** @param xcb_xkb_sa_device_valuator_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sa_device_valuator_end (xcb_xkb_sa_device_valuator_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_si_action_next - ** - ** @param xcb_xkb_si_action_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_si_action_next (xcb_xkb_si_action_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_si_action_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_si_action_end - ** - ** @param xcb_xkb_si_action_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_si_action_end (xcb_xkb_si_action_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_sym_interpret_next - ** - ** @param xcb_xkb_sym_interpret_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_sym_interpret_next (xcb_xkb_sym_interpret_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_sym_interpret_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_sym_interpret_end - ** - ** @param xcb_xkb_sym_interpret_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_sym_interpret_end (xcb_xkb_sym_interpret_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** void xcb_xkb_action_next - ** - ** @param xcb_xkb_action_iterator_t *i - ** @returns void - ** - *****************************************************************************/ - -void -xcb_xkb_action_next (xcb_xkb_action_iterator_t *i /**< */) -{ - --i->rem; - ++i->data; - i->index += sizeof(xcb_xkb_action_t); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_action_end - ** - ** @param xcb_xkb_action_iterator_t i - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_action_end (xcb_xkb_action_iterator_t i /**< */) -{ - xcb_generic_iterator_t ret; - ret.data = i.data + i.rem; - ret.index = i.index + ((char *) ret.data - (char *) i.data); - ret.rem = 0; - return ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension - ** - ** @param xcb_connection_t *c - ** @param uint16_t wantedMajor - ** @param uint16_t wantedMinor - ** @returns xcb_xkb_use_extension_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_use_extension_cookie_t -xcb_xkb_use_extension (xcb_connection_t *c /**< */, - uint16_t wantedMajor /**< */, - uint16_t wantedMinor /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_USE_EXTENSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_use_extension_cookie_t xcb_ret; - xcb_xkb_use_extension_request_t xcb_out; - - xcb_out.wantedMajor = wantedMajor; - xcb_out.wantedMinor = wantedMinor; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_use_extension_cookie_t xcb_xkb_use_extension_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint16_t wantedMajor - ** @param uint16_t wantedMinor - ** @returns xcb_xkb_use_extension_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_use_extension_cookie_t -xcb_xkb_use_extension_unchecked (xcb_connection_t *c /**< */, - uint16_t wantedMajor /**< */, - uint16_t wantedMinor /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_USE_EXTENSION, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_use_extension_cookie_t xcb_ret; - xcb_xkb_use_extension_request_t xcb_out; - - xcb_out.wantedMajor = wantedMajor; - xcb_out.wantedMinor = wantedMinor; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_use_extension_reply_t * xcb_xkb_use_extension_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_use_extension_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_use_extension_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_use_extension_reply_t * -xcb_xkb_use_extension_reply (xcb_connection_t *c /**< */, - xcb_xkb_use_extension_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_use_extension_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_select_events_details_serialize (void **_buffer /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - const xcb_xkb_select_events_details_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[23]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectNewKeyboard */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectNewKeyboard; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.newKeyboardDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->newKeyboardDetails; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_STATE_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectState */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectState; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.stateDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->stateDetails; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectCtrls */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectCtrls; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_select_events_details_t.ctrlDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->ctrlDetails; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectIndicatorState */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectIndicatorState; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_select_events_details_t.indicatorStateDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicatorStateDetails; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectIndicatorMap */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectIndicatorMap; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_select_events_details_t.indicatorMapDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicatorMapDetails; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NAMES_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectNames; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.namesDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->namesDetails; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectCompat */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectCompat; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_select_events_details_t.compatDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatDetails; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_BELL_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectBell */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectBell; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_select_events_details_t.bellDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->bellDetails; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACTION_MESSAGE) { - /* xcb_xkb_select_events_details_t.affectMsgDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectMsgDetails; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_select_events_details_t.msgDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->msgDetails; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectAccessX */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectAccessX; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.accessXDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->accessXDetails; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectExtDev */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->affectExtDev; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.extdevDetails */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->extdevDetails; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; iaffectNewKeyboard = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.newKeyboardDetails */ - _aux->newKeyboardDetails = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_STATE_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectState */ - _aux->affectState = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.stateDetails */ - _aux->stateDetails = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_CONTROLS_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectCtrls */ - _aux->affectCtrls = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_select_events_details_t.ctrlDetails */ - _aux->ctrlDetails = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_STATE_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectIndicatorState */ - _aux->affectIndicatorState = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_select_events_details_t.indicatorStateDetails */ - _aux->indicatorStateDetails = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_INDICATOR_MAP_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectIndicatorMap */ - _aux->affectIndicatorMap = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_select_events_details_t.indicatorMapDetails */ - _aux->indicatorMapDetails = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_NAMES_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectNames */ - _aux->affectNames = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.namesDetails */ - _aux->namesDetails = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_COMPAT_MAP_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectCompat */ - _aux->affectCompat = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_select_events_details_t.compatDetails */ - _aux->compatDetails = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_BELL_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectBell */ - _aux->affectBell = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_select_events_details_t.bellDetails */ - _aux->bellDetails = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACTION_MESSAGE) { - /* xcb_xkb_select_events_details_t.affectMsgDetails */ - _aux->affectMsgDetails = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_select_events_details_t.msgDetails */ - _aux->msgDetails = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_ACCESS_X_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectAccessX */ - _aux->affectAccessX = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.accessXDetails */ - _aux->accessXDetails = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - } - if((affectWhich & ((~clear) & (~selectAll))) & XCB_XKB_EVENT_TYPE_EXTENSION_DEVICE_NOTIFY) { - /* xcb_xkb_select_events_details_t.affectExtDev */ - _aux->affectExtDev = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_select_events_details_t.extdevDetails */ - _aux->extdevDetails = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_select_events_details_sizeof (const void *_buffer /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */) -{ - xcb_xkb_select_events_details_t _aux; - return xcb_xkb_select_events_details_unpack(_buffer, affectWhich, clear, selectAll, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const void *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const void *details /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SELECT_EVENTS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_select_events_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectWhich = affectWhich; - xcb_out.clear = clear; - xcb_out.selectAll = selectAll; - xcb_out.affectMap = affectMap; - xcb_out.map = map; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_select_events_details_t details */ - xcb_parts[4].iov_base = (char *) details; - xcb_parts[4].iov_len = - xcb_xkb_select_events_details_sizeof (details, affectWhich, clear, selectAll); - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const void *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const void *details /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SELECT_EVENTS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_select_events_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectWhich = affectWhich; - xcb_out.clear = clear; - xcb_out.selectAll = selectAll; - xcb_out.affectMap = affectMap; - xcb_out.map = map; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_select_events_details_t details */ - xcb_parts[4].iov_base = (char *) details; - xcb_parts[4].iov_len = - xcb_xkb_select_events_details_sizeof (details, affectWhich, clear, selectAll); - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events_aux_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const xcb_xkb_select_events_details_t *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events_aux_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const xcb_xkb_select_events_details_t *details /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SELECT_EVENTS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_select_events_request_t xcb_out; - void *xcb_aux0 = 0; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectWhich = affectWhich; - xcb_out.clear = clear; - xcb_out.selectAll = selectAll; - xcb_out.affectMap = affectMap; - xcb_out.map = map; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_select_events_details_t details */ - xcb_parts[4].iov_len = - xcb_xkb_select_events_details_serialize (&xcb_aux0, affectWhich, clear, selectAll, details); - xcb_parts[4].iov_base = xcb_aux0; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - free(xcb_aux0); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_select_events_aux - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t affectWhich - ** @param uint16_t clear - ** @param uint16_t selectAll - ** @param uint16_t affectMap - ** @param uint16_t map - ** @param const xcb_xkb_select_events_details_t *details - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_select_events_aux (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t affectWhich /**< */, - uint16_t clear /**< */, - uint16_t selectAll /**< */, - uint16_t affectMap /**< */, - uint16_t map /**< */, - const xcb_xkb_select_events_details_t *details /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SELECT_EVENTS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_select_events_request_t xcb_out; - void *xcb_aux0 = 0; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectWhich = affectWhich; - xcb_out.clear = clear; - xcb_out.selectAll = selectAll; - xcb_out.affectMap = affectMap; - xcb_out.map = map; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_select_events_details_t details */ - xcb_parts[4].iov_len = - xcb_xkb_select_events_details_serialize (&xcb_aux0, affectWhich, clear, selectAll, details); - xcb_parts[4].iov_base = xcb_aux0; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - free(xcb_aux0); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_bell_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_bell_class_spec_t bellClass - ** @param xcb_xkb_id_spec_t bellID - ** @param int8_t percent - ** @param uint8_t forceSound - ** @param uint8_t eventOnly - ** @param int16_t pitch - ** @param int16_t duration - ** @param xcb_atom_t name - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_bell_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_bell_class_spec_t bellClass /**< */, - xcb_xkb_id_spec_t bellID /**< */, - int8_t percent /**< */, - uint8_t forceSound /**< */, - uint8_t eventOnly /**< */, - int16_t pitch /**< */, - int16_t duration /**< */, - xcb_atom_t name /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_BELL, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_bell_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.bellClass = bellClass; - xcb_out.bellID = bellID; - xcb_out.percent = percent; - xcb_out.forceSound = forceSound; - xcb_out.eventOnly = eventOnly; - xcb_out.pad0 = 0; - xcb_out.pitch = pitch; - xcb_out.duration = duration; - memset(xcb_out.pad1, 0, 2); - xcb_out.name = name; - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_bell - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_bell_class_spec_t bellClass - ** @param xcb_xkb_id_spec_t bellID - ** @param int8_t percent - ** @param uint8_t forceSound - ** @param uint8_t eventOnly - ** @param int16_t pitch - ** @param int16_t duration - ** @param xcb_atom_t name - ** @param xcb_window_t window - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_bell (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_bell_class_spec_t bellClass /**< */, - xcb_xkb_id_spec_t bellID /**< */, - int8_t percent /**< */, - uint8_t forceSound /**< */, - uint8_t eventOnly /**< */, - int16_t pitch /**< */, - int16_t duration /**< */, - xcb_atom_t name /**< */, - xcb_window_t window /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_BELL, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_bell_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.bellClass = bellClass; - xcb_out.bellID = bellID; - xcb_out.percent = percent; - xcb_out.forceSound = forceSound; - xcb_out.eventOnly = eventOnly; - xcb_out.pad0 = 0; - xcb_out.pitch = pitch; - xcb_out.duration = duration; - memset(xcb_out.pad1, 0, 2); - xcb_out.name = name; - xcb_out.window = window; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_state_cookie_t -xcb_xkb_get_state (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_STATE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_state_cookie_t xcb_ret; - xcb_xkb_get_state_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_state_cookie_t xcb_xkb_get_state_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_state_cookie_t -xcb_xkb_get_state_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_STATE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_state_cookie_t xcb_ret; - xcb_xkb_get_state_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_state_reply_t * xcb_xkb_get_state_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_state_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_state_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_state_reply_t * -xcb_xkb_get_state_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_state_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_latch_lock_state_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectModLocks - ** @param uint8_t modLocks - ** @param uint8_t lockGroup - ** @param uint8_t groupLock - ** @param uint8_t affectModLatches - ** @param uint8_t latchGroup - ** @param uint16_t groupLatch - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_latch_lock_state_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectModLocks /**< */, - uint8_t modLocks /**< */, - uint8_t lockGroup /**< */, - uint8_t groupLock /**< */, - uint8_t affectModLatches /**< */, - uint8_t latchGroup /**< */, - uint16_t groupLatch /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_LATCH_LOCK_STATE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_latch_lock_state_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectModLocks = affectModLocks; - xcb_out.modLocks = modLocks; - xcb_out.lockGroup = lockGroup; - xcb_out.groupLock = groupLock; - xcb_out.affectModLatches = affectModLatches; - xcb_out.pad0 = 0; - xcb_out.latchGroup = latchGroup; - xcb_out.groupLatch = groupLatch; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_latch_lock_state - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectModLocks - ** @param uint8_t modLocks - ** @param uint8_t lockGroup - ** @param uint8_t groupLock - ** @param uint8_t affectModLatches - ** @param uint8_t latchGroup - ** @param uint16_t groupLatch - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_latch_lock_state (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectModLocks /**< */, - uint8_t modLocks /**< */, - uint8_t lockGroup /**< */, - uint8_t groupLock /**< */, - uint8_t affectModLatches /**< */, - uint8_t latchGroup /**< */, - uint16_t groupLatch /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_LATCH_LOCK_STATE, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_latch_lock_state_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectModLocks = affectModLocks; - xcb_out.modLocks = modLocks; - xcb_out.lockGroup = lockGroup; - xcb_out.groupLock = groupLock; - xcb_out.affectModLatches = affectModLatches; - xcb_out.pad0 = 0; - xcb_out.latchGroup = latchGroup; - xcb_out.groupLatch = groupLatch; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_controls_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_controls_cookie_t -xcb_xkb_get_controls (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_CONTROLS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_controls_cookie_t xcb_ret; - xcb_xkb_get_controls_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_controls_cookie_t xcb_xkb_get_controls_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_controls_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_controls_cookie_t -xcb_xkb_get_controls_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_CONTROLS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_controls_cookie_t xcb_ret; - xcb_xkb_get_controls_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_controls_reply_t * xcb_xkb_get_controls_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_controls_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_controls_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_controls_reply_t * -xcb_xkb_get_controls_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_controls_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_controls_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_controls_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectInternalRealMods - ** @param uint8_t internalRealMods - ** @param uint8_t affectIgnoreLockRealMods - ** @param uint8_t ignoreLockRealMods - ** @param uint16_t affectInternalVirtualMods - ** @param uint16_t internalVirtualMods - ** @param uint16_t affectIgnoreLockVirtualMods - ** @param uint16_t ignoreLockVirtualMods - ** @param uint8_t mouseKeysDfltBtn - ** @param uint8_t groupsWrap - ** @param uint16_t accessXOptions - ** @param uint32_t affectEnabledControls - ** @param uint32_t enabledControls - ** @param uint32_t changeControls - ** @param uint16_t repeatDelay - ** @param uint16_t repeatInterval - ** @param uint16_t slowKeysDelay - ** @param uint16_t debounceDelay - ** @param uint16_t mouseKeysDelay - ** @param uint16_t mouseKeysInterval - ** @param uint16_t mouseKeysTimeToMax - ** @param uint16_t mouseKeysMaxSpeed - ** @param int16_t mouseKeysCurve - ** @param uint16_t accessXTimeout - ** @param uint32_t accessXTimeoutMask - ** @param uint32_t accessXTimeoutValues - ** @param uint16_t accessXTimeoutOptionsMask - ** @param uint16_t accessXTimeoutOptionsValues - ** @param const uint8_t *perKeyRepeat - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_controls_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectInternalRealMods /**< */, - uint8_t internalRealMods /**< */, - uint8_t affectIgnoreLockRealMods /**< */, - uint8_t ignoreLockRealMods /**< */, - uint16_t affectInternalVirtualMods /**< */, - uint16_t internalVirtualMods /**< */, - uint16_t affectIgnoreLockVirtualMods /**< */, - uint16_t ignoreLockVirtualMods /**< */, - uint8_t mouseKeysDfltBtn /**< */, - uint8_t groupsWrap /**< */, - uint16_t accessXOptions /**< */, - uint32_t affectEnabledControls /**< */, - uint32_t enabledControls /**< */, - uint32_t changeControls /**< */, - uint16_t repeatDelay /**< */, - uint16_t repeatInterval /**< */, - uint16_t slowKeysDelay /**< */, - uint16_t debounceDelay /**< */, - uint16_t mouseKeysDelay /**< */, - uint16_t mouseKeysInterval /**< */, - uint16_t mouseKeysTimeToMax /**< */, - uint16_t mouseKeysMaxSpeed /**< */, - int16_t mouseKeysCurve /**< */, - uint16_t accessXTimeout /**< */, - uint32_t accessXTimeoutMask /**< */, - uint32_t accessXTimeoutValues /**< */, - uint16_t accessXTimeoutOptionsMask /**< */, - uint16_t accessXTimeoutOptionsValues /**< */, - const uint8_t *perKeyRepeat /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_CONTROLS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_controls_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectInternalRealMods = affectInternalRealMods; - xcb_out.internalRealMods = internalRealMods; - xcb_out.affectIgnoreLockRealMods = affectIgnoreLockRealMods; - xcb_out.ignoreLockRealMods = ignoreLockRealMods; - xcb_out.affectInternalVirtualMods = affectInternalVirtualMods; - xcb_out.internalVirtualMods = internalVirtualMods; - xcb_out.affectIgnoreLockVirtualMods = affectIgnoreLockVirtualMods; - xcb_out.ignoreLockVirtualMods = ignoreLockVirtualMods; - xcb_out.mouseKeysDfltBtn = mouseKeysDfltBtn; - xcb_out.groupsWrap = groupsWrap; - xcb_out.accessXOptions = accessXOptions; - memset(xcb_out.pad0, 0, 2); - xcb_out.affectEnabledControls = affectEnabledControls; - xcb_out.enabledControls = enabledControls; - xcb_out.changeControls = changeControls; - xcb_out.repeatDelay = repeatDelay; - xcb_out.repeatInterval = repeatInterval; - xcb_out.slowKeysDelay = slowKeysDelay; - xcb_out.debounceDelay = debounceDelay; - xcb_out.mouseKeysDelay = mouseKeysDelay; - xcb_out.mouseKeysInterval = mouseKeysInterval; - xcb_out.mouseKeysTimeToMax = mouseKeysTimeToMax; - xcb_out.mouseKeysMaxSpeed = mouseKeysMaxSpeed; - xcb_out.mouseKeysCurve = mouseKeysCurve; - xcb_out.accessXTimeout = accessXTimeout; - xcb_out.accessXTimeoutMask = accessXTimeoutMask; - xcb_out.accessXTimeoutValues = accessXTimeoutValues; - xcb_out.accessXTimeoutOptionsMask = accessXTimeoutOptionsMask; - xcb_out.accessXTimeoutOptionsValues = accessXTimeoutOptionsValues; - memcpy(xcb_out.perKeyRepeat, perKeyRepeat, 32); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_controls - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t affectInternalRealMods - ** @param uint8_t internalRealMods - ** @param uint8_t affectIgnoreLockRealMods - ** @param uint8_t ignoreLockRealMods - ** @param uint16_t affectInternalVirtualMods - ** @param uint16_t internalVirtualMods - ** @param uint16_t affectIgnoreLockVirtualMods - ** @param uint16_t ignoreLockVirtualMods - ** @param uint8_t mouseKeysDfltBtn - ** @param uint8_t groupsWrap - ** @param uint16_t accessXOptions - ** @param uint32_t affectEnabledControls - ** @param uint32_t enabledControls - ** @param uint32_t changeControls - ** @param uint16_t repeatDelay - ** @param uint16_t repeatInterval - ** @param uint16_t slowKeysDelay - ** @param uint16_t debounceDelay - ** @param uint16_t mouseKeysDelay - ** @param uint16_t mouseKeysInterval - ** @param uint16_t mouseKeysTimeToMax - ** @param uint16_t mouseKeysMaxSpeed - ** @param int16_t mouseKeysCurve - ** @param uint16_t accessXTimeout - ** @param uint32_t accessXTimeoutMask - ** @param uint32_t accessXTimeoutValues - ** @param uint16_t accessXTimeoutOptionsMask - ** @param uint16_t accessXTimeoutOptionsValues - ** @param const uint8_t *perKeyRepeat - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_controls (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t affectInternalRealMods /**< */, - uint8_t internalRealMods /**< */, - uint8_t affectIgnoreLockRealMods /**< */, - uint8_t ignoreLockRealMods /**< */, - uint16_t affectInternalVirtualMods /**< */, - uint16_t internalVirtualMods /**< */, - uint16_t affectIgnoreLockVirtualMods /**< */, - uint16_t ignoreLockVirtualMods /**< */, - uint8_t mouseKeysDfltBtn /**< */, - uint8_t groupsWrap /**< */, - uint16_t accessXOptions /**< */, - uint32_t affectEnabledControls /**< */, - uint32_t enabledControls /**< */, - uint32_t changeControls /**< */, - uint16_t repeatDelay /**< */, - uint16_t repeatInterval /**< */, - uint16_t slowKeysDelay /**< */, - uint16_t debounceDelay /**< */, - uint16_t mouseKeysDelay /**< */, - uint16_t mouseKeysInterval /**< */, - uint16_t mouseKeysTimeToMax /**< */, - uint16_t mouseKeysMaxSpeed /**< */, - int16_t mouseKeysCurve /**< */, - uint16_t accessXTimeout /**< */, - uint32_t accessXTimeoutMask /**< */, - uint32_t accessXTimeoutValues /**< */, - uint16_t accessXTimeoutOptionsMask /**< */, - uint16_t accessXTimeoutOptionsValues /**< */, - const uint8_t *perKeyRepeat /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_CONTROLS, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_controls_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.affectInternalRealMods = affectInternalRealMods; - xcb_out.internalRealMods = internalRealMods; - xcb_out.affectIgnoreLockRealMods = affectIgnoreLockRealMods; - xcb_out.ignoreLockRealMods = ignoreLockRealMods; - xcb_out.affectInternalVirtualMods = affectInternalVirtualMods; - xcb_out.internalVirtualMods = internalVirtualMods; - xcb_out.affectIgnoreLockVirtualMods = affectIgnoreLockVirtualMods; - xcb_out.ignoreLockVirtualMods = ignoreLockVirtualMods; - xcb_out.mouseKeysDfltBtn = mouseKeysDfltBtn; - xcb_out.groupsWrap = groupsWrap; - xcb_out.accessXOptions = accessXOptions; - memset(xcb_out.pad0, 0, 2); - xcb_out.affectEnabledControls = affectEnabledControls; - xcb_out.enabledControls = enabledControls; - xcb_out.changeControls = changeControls; - xcb_out.repeatDelay = repeatDelay; - xcb_out.repeatInterval = repeatInterval; - xcb_out.slowKeysDelay = slowKeysDelay; - xcb_out.debounceDelay = debounceDelay; - xcb_out.mouseKeysDelay = mouseKeysDelay; - xcb_out.mouseKeysInterval = mouseKeysInterval; - xcb_out.mouseKeysTimeToMax = mouseKeysTimeToMax; - xcb_out.mouseKeysMaxSpeed = mouseKeysMaxSpeed; - xcb_out.mouseKeysCurve = mouseKeysCurve; - xcb_out.accessXTimeout = accessXTimeout; - xcb_out.accessXTimeoutMask = accessXTimeoutMask; - xcb_out.accessXTimeoutValues = accessXTimeoutValues; - xcb_out.accessXTimeoutOptionsMask = accessXTimeoutOptionsMask; - xcb_out.accessXTimeoutOptionsValues = accessXTimeoutOptionsValues; - memcpy(xcb_out.perKeyRepeat, perKeyRepeat, 32); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_types_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_types_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->nTypes; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_type_iterator_t xcb_xkb_get_map_map_types_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_type_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_type_iterator_t -xcb_xkb_get_map_map_types_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_key_type_iterator_t i; - i.data = /* map */ S->types_rtrn; - i.rem = R->nTypes; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_syms_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_syms_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->nKeySyms; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_map_map_syms_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_sym_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_sym_map_iterator_t -xcb_xkb_get_map_map_syms_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_key_sym_map_iterator_t i; - i.data = /* map */ S->syms_rtrn; - i.rem = R->nKeySyms; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_acts_rtrn_count - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_acts_rtrn_count (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->acts_rtrn_count; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_acts_rtrn_count_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_acts_rtrn_count_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->nKeyActions; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_acts_rtrn_count_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_acts_rtrn_count_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* map */ S->acts_rtrn_count + R->nKeyActions; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_alignment_pad - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_alignment_pad (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->alignment_pad; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return (((R->nKeyActions + 3) & (~3)) - R->nKeyActions); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* map */ S->alignment_pad + (((R->nKeyActions + 3) & (~3)) - R->nKeyActions); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_get_map_map_acts_rtrn_acts - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_get_map_map_acts_rtrn_acts (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->acts_rtrn_acts; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_acts_rtrn_acts_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_acts_rtrn_acts_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->totalActions; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_get_map_map_acts_rtrn_acts_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_get_map_map_acts_rtrn_acts_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_action_iterator_t i; - i.data = /* map */ S->acts_rtrn_acts; - i.rem = R->totalActions; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_t * xcb_xkb_get_map_map_behaviors_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_set_behavior_t * - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_t * -xcb_xkb_get_map_map_behaviors_rtrn (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->behaviors_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_behaviors_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_behaviors_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->totalKeyBehaviors; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_map_map_behaviors_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_set_behavior_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_iterator_t -xcb_xkb_get_map_map_behaviors_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_set_behavior_iterator_t i; - i.data = /* map */ S->behaviors_rtrn; - i.rem = R->totalKeyBehaviors; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_vmods_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_vmods_rtrn (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->vmods_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_vmods_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_vmods_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return xcb_popcount(R->virtualMods); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_vmods_rtrn_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_vmods_rtrn_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* map */ S->vmods_rtrn + xcb_popcount(R->virtualMods); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_map_map_alignment_pad_2 - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_map_map_alignment_pad_2 (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->alignment_pad2; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_2_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_2_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return (((xcb_popcount(R->virtualMods) + 3) & (~3)) - xcb_popcount(R->virtualMods)); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_2_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_2_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* map */ S->alignment_pad2 + (((xcb_popcount(R->virtualMods) + 3) & (~3)) - xcb_popcount(R->virtualMods)); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_t * xcb_xkb_get_map_map_explicit_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_set_explicit_t * - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_t * -xcb_xkb_get_map_map_explicit_rtrn (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->explicit_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_explicit_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_explicit_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->totalKeyExplicit; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_map_map_explicit_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_set_explicit_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_iterator_t -xcb_xkb_get_map_map_explicit_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_set_explicit_iterator_t i; - i.data = /* map */ S->explicit_rtrn; - i.rem = R->totalKeyExplicit; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_xkb_get_map_map_alignment_pad_3 - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_xkb_get_map_map_alignment_pad_3 (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->alignment_pad3; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_3_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_3_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return (((R->totalKeyExplicit + 1) & (~1)) - R->totalKeyExplicit); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_3_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_3_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* map */ S->alignment_pad3 + (((R->totalKeyExplicit + 1) & (~1)) - R->totalKeyExplicit); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_t * xcb_xkb_get_map_map_modmap_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_key_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_t * -xcb_xkb_get_map_map_modmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->modmap_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_modmap_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_modmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->totalModMapKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_map_map_modmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_iterator_t -xcb_xkb_get_map_map_modmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_key_mod_map_iterator_t i; - i.data = /* map */ S->modmap_rtrn; - i.rem = R->totalModMapKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint16_t * xcb_xkb_get_map_map_alignment_pad_4 - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns uint16_t * - ** - *****************************************************************************/ - -uint16_t * -xcb_xkb_get_map_map_alignment_pad_4 (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->alignment_pad4; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_alignment_pad_4_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_alignment_pad_4_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return (((R->totalModMapKeys + 1) & (~1)) - R->totalModMapKeys); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_map_map_alignment_pad_4_end - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_map_map_alignment_pad_4_end (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* map */ S->alignment_pad4 + (((R->totalModMapKeys + 1) & (~1)) - R->totalModMapKeys); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_map_map_vmodmap_rtrn - ** - ** @param const xcb_xkb_get_map_map_t *S - ** @returns xcb_xkb_key_v_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_t * -xcb_xkb_get_map_map_vmodmap_rtrn (const xcb_xkb_get_map_map_t *S /**< */) -{ - return /* map */ S->vmodmap_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_map_map_vmodmap_rtrn_length - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_map_map_vmodmap_rtrn_length (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - return R->totalVModMapKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_map_map_vmodmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_map_map_t *R - ** @returns xcb_xkb_key_v_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_iterator_t -xcb_xkb_get_map_map_vmodmap_rtrn_iterator (const xcb_xkb_get_map_reply_t *R /**< */, - const xcb_xkb_get_map_map_t *S /**< */) -{ - xcb_xkb_key_v_mod_map_iterator_t i; - i.data = /* map */ S->vmodmap_rtrn; - i.rem = R->totalVModMapKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - -int -xcb_xkb_get_map_map_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - const xcb_xkb_get_map_map_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[27]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if(present & XCB_XKB_MAP_PART_KEY_TYPES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* types_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; - xcb_parts[xcb_parts_idx].iov_len = 0; - xcb_tmp = (char *) _aux->types_rtrn; - for(i=0; isyms_rtrn; - xcb_parts[xcb_parts_idx].iov_len = 0; - xcb_tmp = (char *) _aux->syms_rtrn; - for(i=0; iacts_rtrn_count; - xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad; - xcb_block_len += (((nKeyActions + 3) & (~3)) - nKeyActions) * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = (((nKeyActions + 3) & (~3)) - nKeyActions) * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* acts_rtrn_acts */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; - xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); - xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - } - if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* behaviors_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; - xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmods_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad2 */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad2; - xcb_block_len += (((xcb_popcount(virtualMods) + 3) & (~3)) - xcb_popcount(virtualMods)) * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = (((xcb_popcount(virtualMods) + 3) & (~3)) - xcb_popcount(virtualMods)) * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - } - if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* explicit_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; - xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad3 */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad3; - xcb_block_len += (((totalKeyExplicit + 1) & (~1)) - totalKeyExplicit) * sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = (((totalKeyExplicit + 1) & (~1)) - totalKeyExplicit) * sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modmap_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; - xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad4 */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad4; - xcb_block_len += (((totalModMapKeys + 1) & (~1)) - totalModMapKeys) * sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = (((totalModMapKeys + 1) & (~1)) - totalModMapKeys) * sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmodmap_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; - xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; itypes_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; - for(i=0; isyms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; - for(i=0; iacts_rtrn_count = (uint8_t *)xcb_tmp; - xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad */ - _aux->alignment_pad = (uint8_t *)xcb_tmp; - xcb_block_len += (((nKeyActions + 3) & (~3)) - nKeyActions) * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* acts_rtrn_acts */ - _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; - xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - } - if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* behaviors_rtrn */ - _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; - xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmods_rtrn */ - _aux->vmods_rtrn = (uint8_t *)xcb_tmp; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad2 */ - _aux->alignment_pad2 = (uint8_t *)xcb_tmp; - xcb_block_len += (((xcb_popcount(virtualMods) + 3) & (~3)) - xcb_popcount(virtualMods)) * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - } - if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* explicit_rtrn */ - _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; - xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad3 */ - _aux->alignment_pad3 = (uint16_t *)xcb_tmp; - xcb_block_len += (((totalKeyExplicit + 1) & (~1)) - totalKeyExplicit) * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - } - if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modmap_rtrn */ - _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; - xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad4 */ - _aux->alignment_pad4 = (uint16_t *)xcb_tmp; - xcb_block_len += (((totalModMapKeys + 1) & (~1)) - totalModMapKeys) * sizeof(uint16_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint16_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmodmap_rtrn */ - _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; - xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_get_map_map_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */) -{ - xcb_xkb_get_map_map_t _aux; - return xcb_xkb_get_map_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t full - ** @param uint16_t partial - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint16_t virtualMods - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @returns xcb_xkb_get_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_map_cookie_t -xcb_xkb_get_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t full /**< */, - uint16_t partial /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_MAP, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_map_cookie_t xcb_ret; - xcb_xkb_get_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.full = full; - xcb_out.partial = partial; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKeySym = firstKeySym; - xcb_out.nKeySyms = nKeySyms; - xcb_out.firstKeyAction = firstKeyAction; - xcb_out.nKeyActions = nKeyActions; - xcb_out.firstKeyBehavior = firstKeyBehavior; - xcb_out.nKeyBehaviors = nKeyBehaviors; - xcb_out.virtualMods = virtualMods; - xcb_out.firstKeyExplicit = firstKeyExplicit; - xcb_out.nKeyExplicit = nKeyExplicit; - xcb_out.firstModMapKey = firstModMapKey; - xcb_out.nModMapKeys = nModMapKeys; - xcb_out.firstVModMapKey = firstVModMapKey; - xcb_out.nVModMapKeys = nVModMapKeys; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_map_cookie_t xcb_xkb_get_map_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t full - ** @param uint16_t partial - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint16_t virtualMods - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @returns xcb_xkb_get_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_map_cookie_t -xcb_xkb_get_map_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t full /**< */, - uint16_t partial /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_MAP, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_map_cookie_t xcb_ret; - xcb_xkb_get_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.full = full; - xcb_out.partial = partial; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKeySym = firstKeySym; - xcb_out.nKeySyms = nKeySyms; - xcb_out.firstKeyAction = firstKeyAction; - xcb_out.nKeyActions = nKeyActions; - xcb_out.firstKeyBehavior = firstKeyBehavior; - xcb_out.nKeyBehaviors = nKeyBehaviors; - xcb_out.virtualMods = virtualMods; - xcb_out.firstKeyExplicit = firstKeyExplicit; - xcb_out.nKeyExplicit = nKeyExplicit; - xcb_out.firstModMapKey = firstModMapKey; - xcb_out.nModMapKeys = nModMapKeys; - xcb_out.firstVModMapKey = firstVModMapKey; - xcb_out.nVModMapKeys = nVModMapKeys; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_map_map_t * xcb_xkb_get_map_map - ** - ** @param const xcb_xkb_get_map_reply_t *R - ** @returns xcb_xkb_get_map_map_t * - ** - *****************************************************************************/ - -void * -xcb_xkb_get_map_map (const xcb_xkb_get_map_reply_t *R /**< */) -{ - return (void *) (R + 1); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_map_reply_t * xcb_xkb_get_map_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_map_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_map_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_map_reply_t * -xcb_xkb_get_map_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_map_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_types_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_types_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->nTypes; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_key_type_iterator_t xcb_xkb_set_map_values_types_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_set_key_type_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_key_type_iterator_t -xcb_xkb_set_map_values_types_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_set_key_type_iterator_t i; - i.data = /* values */ S->types; - i.rem = R->nTypes; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_syms_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_syms_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->nKeySyms; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_set_map_values_syms_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_key_sym_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_sym_map_iterator_t -xcb_xkb_set_map_values_syms_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_key_sym_map_iterator_t i; - i.data = /* values */ S->syms; - i.rem = R->nKeySyms; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_set_map_values_actions_count - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_set_map_values_actions_count (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->actionsCount; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_actions_count_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_actions_count_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->nKeyActions; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_map_values_actions_count_end - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_map_values_actions_count_end (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->actionsCount + R->nKeyActions; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_set_map_values_actions - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_set_map_values_actions (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->actions; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_actions_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_actions_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->totalActions; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_set_map_values_actions_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_set_map_values_actions_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_action_iterator_t i; - i.data = /* values */ S->actions; - i.rem = R->totalActions; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_t * xcb_xkb_set_map_values_behaviors - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_set_behavior_t * - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_t * -xcb_xkb_set_map_values_behaviors (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->behaviors; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_behaviors_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_behaviors_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->totalKeyBehaviors; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_iterator_t xcb_xkb_set_map_values_behaviors_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_set_behavior_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_iterator_t -xcb_xkb_set_map_values_behaviors_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_set_behavior_iterator_t i; - i.data = /* values */ S->behaviors; - i.rem = R->totalKeyBehaviors; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_set_map_values_vmods - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_set_map_values_vmods (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->vmods; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_vmods_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_vmods_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return xcb_popcount(R->virtualMods); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_map_values_vmods_end - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_map_values_vmods_end (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->vmods + xcb_popcount(R->virtualMods); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_t * xcb_xkb_set_map_values_explicit - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_set_explicit_t * - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_t * -xcb_xkb_set_map_values_explicit (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->explicit; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_explicit_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_explicit_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->totalKeyExplicit; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_iterator_t xcb_xkb_set_map_values_explicit_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_set_explicit_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_iterator_t -xcb_xkb_set_map_values_explicit_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_set_explicit_iterator_t i; - i.data = /* values */ S->explicit; - i.rem = R->totalKeyExplicit; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_t * xcb_xkb_set_map_values_modmap - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_key_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_t * -xcb_xkb_set_map_values_modmap (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->modmap; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_modmap_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_modmap_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->totalModMapKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_set_map_values_modmap_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_key_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_iterator_t -xcb_xkb_set_map_values_modmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_key_mod_map_iterator_t i; - i.data = /* values */ S->modmap; - i.rem = R->totalModMapKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_t * xcb_xkb_set_map_values_vmodmap - ** - ** @param const xcb_xkb_set_map_values_t *S - ** @returns xcb_xkb_key_v_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_t * -xcb_xkb_set_map_values_vmodmap (const xcb_xkb_set_map_values_t *S /**< */) -{ - return /* values */ S->vmodmap; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_map_values_vmodmap_length - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_map_values_vmodmap_length (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - return R->totalVModMapKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_set_map_values_vmodmap_iterator - ** - ** @param const xcb_xkb_set_map_values_t *R - ** @returns xcb_xkb_key_v_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_iterator_t -xcb_xkb_set_map_values_vmodmap_iterator (const xcb_xkb_set_map_request_t *R /**< */, - const xcb_xkb_set_map_values_t *S /**< */) -{ - xcb_xkb_key_v_mod_map_iterator_t i; - i.data = /* values */ S->vmodmap; - i.rem = R->totalVModMapKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - -int -xcb_xkb_set_map_values_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - const xcb_xkb_set_map_values_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[19]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if(present & XCB_XKB_MAP_PART_KEY_TYPES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* types */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types; - xcb_parts[xcb_parts_idx].iov_len = 0; - xcb_tmp = (char *) _aux->types; - for(i=0; isyms; - xcb_parts[xcb_parts_idx].iov_len = 0; - xcb_tmp = (char *) _aux->syms; - for(i=0; iactionsCount; - xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* actions */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->actions; - xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); - xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - } - if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* behaviors */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors; - xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmods */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - } - if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* explicit */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit; - xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); - } - if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modmap */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap; - xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmodmap */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap; - xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; itypes = (xcb_xkb_set_key_type_t *)xcb_tmp; - for(i=0; isyms = (xcb_xkb_key_sym_map_t *)xcb_tmp; - for(i=0; iactionsCount = (uint8_t *)xcb_tmp; - xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* actions */ - _aux->actions = (xcb_xkb_action_t *)xcb_tmp; - xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - } - if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* behaviors */ - _aux->behaviors = (xcb_xkb_set_behavior_t *)xcb_tmp; - xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmods */ - _aux->vmods = (uint8_t *)xcb_tmp; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - } - if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* explicit */ - _aux->explicit = (xcb_xkb_set_explicit_t *)xcb_tmp; - xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); - } - if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modmap */ - _aux->modmap = (xcb_xkb_key_mod_map_t *)xcb_tmp; - xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmodmap */ - _aux->vmodmap = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; - xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_set_map_values_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */) -{ - xcb_xkb_set_map_values_t _aux; - return xcb_xkb_set_map_values_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const void *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.present = present; - xcb_out.flags = flags; - xcb_out.minKeyCode = minKeyCode; - xcb_out.maxKeyCode = maxKeyCode; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKeySym = firstKeySym; - xcb_out.nKeySyms = nKeySyms; - xcb_out.totalSyms = totalSyms; - xcb_out.firstKeyAction = firstKeyAction; - xcb_out.nKeyActions = nKeyActions; - xcb_out.totalActions = totalActions; - xcb_out.firstKeyBehavior = firstKeyBehavior; - xcb_out.nKeyBehaviors = nKeyBehaviors; - xcb_out.totalKeyBehaviors = totalKeyBehaviors; - xcb_out.firstKeyExplicit = firstKeyExplicit; - xcb_out.nKeyExplicit = nKeyExplicit; - xcb_out.totalKeyExplicit = totalKeyExplicit; - xcb_out.firstModMapKey = firstModMapKey; - xcb_out.nModMapKeys = nModMapKeys; - xcb_out.totalModMapKeys = totalModMapKeys; - xcb_out.firstVModMapKey = firstVModMapKey; - xcb_out.nVModMapKeys = nVModMapKeys; - xcb_out.totalVModMapKeys = totalVModMapKeys; - xcb_out.virtualMods = virtualMods; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_map_values_t values */ - xcb_parts[4].iov_base = (char *) values; - xcb_parts[4].iov_len = - xcb_xkb_set_map_values_sizeof (values, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present); - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const void *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.present = present; - xcb_out.flags = flags; - xcb_out.minKeyCode = minKeyCode; - xcb_out.maxKeyCode = maxKeyCode; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKeySym = firstKeySym; - xcb_out.nKeySyms = nKeySyms; - xcb_out.totalSyms = totalSyms; - xcb_out.firstKeyAction = firstKeyAction; - xcb_out.nKeyActions = nKeyActions; - xcb_out.totalActions = totalActions; - xcb_out.firstKeyBehavior = firstKeyBehavior; - xcb_out.nKeyBehaviors = nKeyBehaviors; - xcb_out.totalKeyBehaviors = totalKeyBehaviors; - xcb_out.firstKeyExplicit = firstKeyExplicit; - xcb_out.nKeyExplicit = nKeyExplicit; - xcb_out.totalKeyExplicit = totalKeyExplicit; - xcb_out.firstModMapKey = firstModMapKey; - xcb_out.nModMapKeys = nModMapKeys; - xcb_out.totalModMapKeys = totalModMapKeys; - xcb_out.firstVModMapKey = firstVModMapKey; - xcb_out.nVModMapKeys = nVModMapKeys; - xcb_out.totalVModMapKeys = totalVModMapKeys; - xcb_out.virtualMods = virtualMods; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_map_values_t values */ - xcb_parts[4].iov_base = (char *) values; - xcb_parts[4].iov_len = - xcb_xkb_set_map_values_sizeof (values, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present); - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map_aux_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const xcb_xkb_set_map_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map_aux_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const xcb_xkb_set_map_values_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_map_request_t xcb_out; - void *xcb_aux0 = 0; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.present = present; - xcb_out.flags = flags; - xcb_out.minKeyCode = minKeyCode; - xcb_out.maxKeyCode = maxKeyCode; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKeySym = firstKeySym; - xcb_out.nKeySyms = nKeySyms; - xcb_out.totalSyms = totalSyms; - xcb_out.firstKeyAction = firstKeyAction; - xcb_out.nKeyActions = nKeyActions; - xcb_out.totalActions = totalActions; - xcb_out.firstKeyBehavior = firstKeyBehavior; - xcb_out.nKeyBehaviors = nKeyBehaviors; - xcb_out.totalKeyBehaviors = totalKeyBehaviors; - xcb_out.firstKeyExplicit = firstKeyExplicit; - xcb_out.nKeyExplicit = nKeyExplicit; - xcb_out.totalKeyExplicit = totalKeyExplicit; - xcb_out.firstModMapKey = firstModMapKey; - xcb_out.nModMapKeys = nModMapKeys; - xcb_out.totalModMapKeys = totalModMapKeys; - xcb_out.firstVModMapKey = firstVModMapKey; - xcb_out.nVModMapKeys = nVModMapKeys; - xcb_out.totalVModMapKeys = totalVModMapKeys; - xcb_out.virtualMods = virtualMods; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_map_values_t values */ - xcb_parts[4].iov_len = - xcb_xkb_set_map_values_serialize (&xcb_aux0, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, values); - xcb_parts[4].iov_base = xcb_aux0; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - free(xcb_aux0); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_map_aux - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t present - ** @param uint16_t flags - ** @param xcb_keycode_t minKeyCode - ** @param xcb_keycode_t maxKeyCode - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param xcb_keycode_t firstKeySym - ** @param uint8_t nKeySyms - ** @param uint16_t totalSyms - ** @param xcb_keycode_t firstKeyAction - ** @param uint8_t nKeyActions - ** @param uint16_t totalActions - ** @param xcb_keycode_t firstKeyBehavior - ** @param uint8_t nKeyBehaviors - ** @param uint8_t totalKeyBehaviors - ** @param xcb_keycode_t firstKeyExplicit - ** @param uint8_t nKeyExplicit - ** @param uint8_t totalKeyExplicit - ** @param xcb_keycode_t firstModMapKey - ** @param uint8_t nModMapKeys - ** @param uint8_t totalModMapKeys - ** @param xcb_keycode_t firstVModMapKey - ** @param uint8_t nVModMapKeys - ** @param uint8_t totalVModMapKeys - ** @param uint16_t virtualMods - ** @param const xcb_xkb_set_map_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_map_aux (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t present /**< */, - uint16_t flags /**< */, - xcb_keycode_t minKeyCode /**< */, - xcb_keycode_t maxKeyCode /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - xcb_keycode_t firstKeySym /**< */, - uint8_t nKeySyms /**< */, - uint16_t totalSyms /**< */, - xcb_keycode_t firstKeyAction /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - xcb_keycode_t firstKeyBehavior /**< */, - uint8_t nKeyBehaviors /**< */, - uint8_t totalKeyBehaviors /**< */, - xcb_keycode_t firstKeyExplicit /**< */, - uint8_t nKeyExplicit /**< */, - uint8_t totalKeyExplicit /**< */, - xcb_keycode_t firstModMapKey /**< */, - uint8_t nModMapKeys /**< */, - uint8_t totalModMapKeys /**< */, - xcb_keycode_t firstVModMapKey /**< */, - uint8_t nVModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t virtualMods /**< */, - const xcb_xkb_set_map_values_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_map_request_t xcb_out; - void *xcb_aux0 = 0; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.present = present; - xcb_out.flags = flags; - xcb_out.minKeyCode = minKeyCode; - xcb_out.maxKeyCode = maxKeyCode; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKeySym = firstKeySym; - xcb_out.nKeySyms = nKeySyms; - xcb_out.totalSyms = totalSyms; - xcb_out.firstKeyAction = firstKeyAction; - xcb_out.nKeyActions = nKeyActions; - xcb_out.totalActions = totalActions; - xcb_out.firstKeyBehavior = firstKeyBehavior; - xcb_out.nKeyBehaviors = nKeyBehaviors; - xcb_out.totalKeyBehaviors = totalKeyBehaviors; - xcb_out.firstKeyExplicit = firstKeyExplicit; - xcb_out.nKeyExplicit = nKeyExplicit; - xcb_out.totalKeyExplicit = totalKeyExplicit; - xcb_out.firstModMapKey = firstModMapKey; - xcb_out.nModMapKeys = nModMapKeys; - xcb_out.totalModMapKeys = totalModMapKeys; - xcb_out.firstVModMapKey = firstVModMapKey; - xcb_out.nVModMapKeys = nVModMapKeys; - xcb_out.totalVModMapKeys = totalVModMapKeys; - xcb_out.virtualMods = virtualMods; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_map_values_t values */ - xcb_parts[4].iov_len = - xcb_xkb_set_map_values_serialize (&xcb_aux0, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, values); - xcb_parts[4].iov_base = xcb_aux0; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - free(xcb_aux0); - return xcb_ret; -} - -int -xcb_xkb_get_compat_map_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_get_compat_map_reply_t *_aux = (xcb_xkb_get_compat_map_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_get_compat_map_reply_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* si_rtrn */ - xcb_block_len += _aux->nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* group_rtrn */ - xcb_block_len += xcb_popcount(_aux->groupsRtrn) * sizeof(xcb_xkb_mod_def_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t groups - ** @param uint8_t getAllSI - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @returns xcb_xkb_get_compat_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_compat_map_cookie_t -xcb_xkb_get_compat_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t groups /**< */, - uint8_t getAllSI /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_COMPAT_MAP, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_compat_map_cookie_t xcb_ret; - xcb_xkb_get_compat_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.groups = groups; - xcb_out.getAllSI = getAllSI; - xcb_out.firstSI = firstSI; - xcb_out.nSI = nSI; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_compat_map_cookie_t xcb_xkb_get_compat_map_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t groups - ** @param uint8_t getAllSI - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @returns xcb_xkb_get_compat_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_compat_map_cookie_t -xcb_xkb_get_compat_map_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t groups /**< */, - uint8_t getAllSI /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_COMPAT_MAP, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_compat_map_cookie_t xcb_ret; - xcb_xkb_get_compat_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.groups = groups; - xcb_out.getAllSI = getAllSI; - xcb_out.firstSI = firstSI; - xcb_out.nSI = nSI; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_t * xcb_xkb_get_compat_map_si_rtrn - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_sym_interpret_t * - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_t * -xcb_xkb_get_compat_map_si_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */) -{ - return (xcb_xkb_sym_interpret_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_compat_map_si_rtrn_length - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_compat_map_si_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */) -{ - return R->nSIRtrn; -} - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_iterator_t xcb_xkb_get_compat_map_si_rtrn_iterator - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_sym_interpret_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_iterator_t -xcb_xkb_get_compat_map_si_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */) -{ - xcb_xkb_sym_interpret_iterator_t i; - i.data = (xcb_xkb_sym_interpret_t *) (R + 1); - i.rem = R->nSIRtrn; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_t * xcb_xkb_get_compat_map_group_rtrn - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_mod_def_t * - ** - *****************************************************************************/ - -xcb_xkb_mod_def_t * -xcb_xkb_get_compat_map_group_rtrn (const xcb_xkb_get_compat_map_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xkb_sym_interpret_end(xcb_xkb_get_compat_map_si_rtrn_iterator(R)); - return (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_compat_map_group_rtrn_length - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_compat_map_group_rtrn_length (const xcb_xkb_get_compat_map_reply_t *R /**< */) -{ - return xcb_popcount(R->groupsRtrn); -} - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_compat_map_group_rtrn_iterator - ** - ** @param const xcb_xkb_get_compat_map_reply_t *R - ** @returns xcb_xkb_mod_def_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_mod_def_iterator_t -xcb_xkb_get_compat_map_group_rtrn_iterator (const xcb_xkb_get_compat_map_reply_t *R /**< */) -{ - xcb_xkb_mod_def_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_sym_interpret_end(xcb_xkb_get_compat_map_si_rtrn_iterator(R)); - i.data = (xcb_xkb_mod_def_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_mod_def_t, prev.index)); - i.rem = xcb_popcount(R->groupsRtrn); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_compat_map_reply_t * xcb_xkb_get_compat_map_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_compat_map_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_compat_map_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_compat_map_reply_t * -xcb_xkb_get_compat_map_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_compat_map_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_compat_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_set_compat_map_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_set_compat_map_request_t *_aux = (xcb_xkb_set_compat_map_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_set_compat_map_request_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* si */ - xcb_block_len += _aux->nSI * sizeof(xcb_xkb_sym_interpret_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groupMaps */ - xcb_block_len += xcb_popcount(_aux->groups) * sizeof(xcb_xkb_mod_def_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_compat_map_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t recomputeActions - ** @param uint8_t truncateSI - ** @param uint8_t groups - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @param const xcb_xkb_sym_interpret_t *si - ** @param const xcb_xkb_mod_def_t *groupMaps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_compat_map_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t recomputeActions /**< */, - uint8_t truncateSI /**< */, - uint8_t groups /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */, - const xcb_xkb_sym_interpret_t *si /**< */, - const xcb_xkb_mod_def_t *groupMaps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_COMPAT_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_compat_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.pad0 = 0; - xcb_out.recomputeActions = recomputeActions; - xcb_out.truncateSI = truncateSI; - xcb_out.groups = groups; - xcb_out.firstSI = firstSI; - xcb_out.nSI = nSI; - memset(xcb_out.pad1, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_sym_interpret_t si */ - xcb_parts[4].iov_base = (char *) si; - xcb_parts[4].iov_len = nSI * sizeof(xcb_xkb_sym_interpret_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_xkb_mod_def_t groupMaps */ - xcb_parts[6].iov_base = (char *) groupMaps; - xcb_parts[6].iov_len = xcb_popcount(groups) * sizeof(xcb_xkb_mod_def_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_compat_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t recomputeActions - ** @param uint8_t truncateSI - ** @param uint8_t groups - ** @param uint16_t firstSI - ** @param uint16_t nSI - ** @param const xcb_xkb_sym_interpret_t *si - ** @param const xcb_xkb_mod_def_t *groupMaps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_compat_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t recomputeActions /**< */, - uint8_t truncateSI /**< */, - uint8_t groups /**< */, - uint16_t firstSI /**< */, - uint16_t nSI /**< */, - const xcb_xkb_sym_interpret_t *si /**< */, - const xcb_xkb_mod_def_t *groupMaps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_COMPAT_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_compat_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.pad0 = 0; - xcb_out.recomputeActions = recomputeActions; - xcb_out.truncateSI = truncateSI; - xcb_out.groups = groups; - xcb_out.firstSI = firstSI; - xcb_out.nSI = nSI; - memset(xcb_out.pad1, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_sym_interpret_t si */ - xcb_parts[4].iov_base = (char *) si; - xcb_parts[4].iov_len = nSI * sizeof(xcb_xkb_sym_interpret_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_xkb_mod_def_t groupMaps */ - xcb_parts[6].iov_base = (char *) groupMaps; - xcb_parts[6].iov_len = xcb_popcount(groups) * sizeof(xcb_xkb_mod_def_t); - xcb_parts[7].iov_base = 0; - xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_indicator_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_state_cookie_t -xcb_xkb_get_indicator_state (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_INDICATOR_STATE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_indicator_state_cookie_t xcb_ret; - xcb_xkb_get_indicator_state_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_state_cookie_t xcb_xkb_get_indicator_state_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @returns xcb_xkb_get_indicator_state_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_state_cookie_t -xcb_xkb_get_indicator_state_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_INDICATOR_STATE, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_indicator_state_cookie_t xcb_ret; - xcb_xkb_get_indicator_state_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_state_reply_t * xcb_xkb_get_indicator_state_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_indicator_state_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_indicator_state_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_state_reply_t * -xcb_xkb_get_indicator_state_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_indicator_state_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_indicator_state_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_get_indicator_map_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_get_indicator_map_reply_t *_aux = (xcb_xkb_get_indicator_map_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_get_indicator_map_reply_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* maps */ - xcb_block_len += xcb_popcount(_aux->which) * sizeof(xcb_xkb_indicator_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_indicator_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_map_cookie_t -xcb_xkb_get_indicator_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_INDICATOR_MAP, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_indicator_map_cookie_t xcb_ret; - xcb_xkb_get_indicator_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.which = which; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_map_cookie_t xcb_xkb_get_indicator_map_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_indicator_map_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_map_cookie_t -xcb_xkb_get_indicator_map_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_INDICATOR_MAP, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_indicator_map_cookie_t xcb_ret; - xcb_xkb_get_indicator_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.which = which; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_t * xcb_xkb_get_indicator_map_maps - ** - ** @param const xcb_xkb_get_indicator_map_reply_t *R - ** @returns xcb_xkb_indicator_map_t * - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_t * -xcb_xkb_get_indicator_map_maps (const xcb_xkb_get_indicator_map_reply_t *R /**< */) -{ - return (xcb_xkb_indicator_map_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_indicator_map_maps_length - ** - ** @param const xcb_xkb_get_indicator_map_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_indicator_map_maps_length (const xcb_xkb_get_indicator_map_reply_t *R /**< */) -{ - return xcb_popcount(R->which); -} - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_indicator_map_maps_iterator - ** - ** @param const xcb_xkb_get_indicator_map_reply_t *R - ** @returns xcb_xkb_indicator_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_iterator_t -xcb_xkb_get_indicator_map_maps_iterator (const xcb_xkb_get_indicator_map_reply_t *R /**< */) -{ - xcb_xkb_indicator_map_iterator_t i; - i.data = (xcb_xkb_indicator_map_t *) (R + 1); - i.rem = xcb_popcount(R->which); - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_indicator_map_reply_t * xcb_xkb_get_indicator_map_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_indicator_map_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_indicator_map_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_indicator_map_reply_t * -xcb_xkb_get_indicator_map_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_indicator_map_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_indicator_map_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_set_indicator_map_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_set_indicator_map_request_t *_aux = (xcb_xkb_set_indicator_map_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - - xcb_block_len += sizeof(xcb_xkb_set_indicator_map_request_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* maps */ - xcb_block_len += xcb_popcount(_aux->which) * sizeof(xcb_xkb_indicator_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_indicator_map_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @param const xcb_xkb_indicator_map_t *maps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_indicator_map_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */, - const xcb_xkb_indicator_map_t *maps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_INDICATOR_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_indicator_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.which = which; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_indicator_map_t maps */ - xcb_parts[4].iov_base = (char *) maps; - xcb_parts[4].iov_len = xcb_popcount(which) * sizeof(xcb_xkb_indicator_map_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_indicator_map - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @param const xcb_xkb_indicator_map_t *maps - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_indicator_map (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */, - const xcb_xkb_indicator_map_t *maps /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_INDICATOR_MAP, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[6]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_indicator_map_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.which = which; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_indicator_map_t maps */ - xcb_parts[4].iov_base = (char *) maps; - xcb_parts[4].iov_len = xcb_popcount(which) * sizeof(xcb_xkb_indicator_map_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @returns xcb_xkb_get_named_indicator_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_named_indicator_cookie_t -xcb_xkb_get_named_indicator (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_NAMED_INDICATOR, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_named_indicator_cookie_t xcb_ret; - xcb_xkb_get_named_indicator_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.ledClass = ledClass; - xcb_out.ledID = ledID; - memset(xcb_out.pad0, 0, 2); - xcb_out.indicator = indicator; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_named_indicator_cookie_t xcb_xkb_get_named_indicator_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @returns xcb_xkb_get_named_indicator_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_named_indicator_cookie_t -xcb_xkb_get_named_indicator_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_NAMED_INDICATOR, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_named_indicator_cookie_t xcb_ret; - xcb_xkb_get_named_indicator_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.ledClass = ledClass; - xcb_out.ledID = ledID; - memset(xcb_out.pad0, 0, 2); - xcb_out.indicator = indicator; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_named_indicator_reply_t * xcb_xkb_get_named_indicator_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_named_indicator_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_named_indicator_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_named_indicator_reply_t * -xcb_xkb_get_named_indicator_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_named_indicator_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_named_indicator_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_named_indicator_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @param uint8_t setState - ** @param uint8_t on - ** @param uint8_t setMap - ** @param uint8_t createMap - ** @param uint8_t map_flags - ** @param uint8_t map_whichGroups - ** @param uint8_t map_groups - ** @param uint8_t map_whichMods - ** @param uint8_t map_realMods - ** @param uint16_t map_vmods - ** @param uint32_t map_ctrls - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_named_indicator_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */, - uint8_t setState /**< */, - uint8_t on /**< */, - uint8_t setMap /**< */, - uint8_t createMap /**< */, - uint8_t map_flags /**< */, - uint8_t map_whichGroups /**< */, - uint8_t map_groups /**< */, - uint8_t map_whichMods /**< */, - uint8_t map_realMods /**< */, - uint16_t map_vmods /**< */, - uint32_t map_ctrls /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_NAMED_INDICATOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_named_indicator_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.ledClass = ledClass; - xcb_out.ledID = ledID; - memset(xcb_out.pad0, 0, 2); - xcb_out.indicator = indicator; - xcb_out.setState = setState; - xcb_out.on = on; - xcb_out.setMap = setMap; - xcb_out.createMap = createMap; - xcb_out.pad1 = 0; - xcb_out.map_flags = map_flags; - xcb_out.map_whichGroups = map_whichGroups; - xcb_out.map_groups = map_groups; - xcb_out.map_whichMods = map_whichMods; - xcb_out.map_realMods = map_realMods; - xcb_out.map_vmods = map_vmods; - xcb_out.map_ctrls = map_ctrls; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_named_indicator - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @param xcb_atom_t indicator - ** @param uint8_t setState - ** @param uint8_t on - ** @param uint8_t setMap - ** @param uint8_t createMap - ** @param uint8_t map_flags - ** @param uint8_t map_whichGroups - ** @param uint8_t map_groups - ** @param uint8_t map_whichMods - ** @param uint8_t map_realMods - ** @param uint16_t map_vmods - ** @param uint32_t map_ctrls - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_named_indicator (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */, - xcb_atom_t indicator /**< */, - uint8_t setState /**< */, - uint8_t on /**< */, - uint8_t setMap /**< */, - uint8_t createMap /**< */, - uint8_t map_flags /**< */, - uint8_t map_whichGroups /**< */, - uint8_t map_groups /**< */, - uint8_t map_whichMods /**< */, - uint8_t map_realMods /**< */, - uint16_t map_vmods /**< */, - uint32_t map_ctrls /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_NAMED_INDICATOR, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[4]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_named_indicator_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.ledClass = ledClass; - xcb_out.ledID = ledID; - memset(xcb_out.pad0, 0, 2); - xcb_out.indicator = indicator; - xcb_out.setState = setState; - xcb_out.on = on; - xcb_out.setMap = setMap; - xcb_out.createMap = createMap; - xcb_out.pad1 = 0; - xcb_out.map_flags = map_flags; - xcb_out.map_whichGroups = map_whichGroups; - xcb_out.map_groups = map_groups; - xcb_out.map_whichMods = map_whichMods; - xcb_out.map_realMods = map_realMods; - xcb_out.map_vmods = map_vmods; - xcb_out.map_ctrls = map_ctrls; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_type_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_type_names (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->typeNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_type_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_type_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return R->nTypes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_type_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_type_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->typeNames + R->nTypes; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_names_value_list_n_levels_per_type - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_names_value_list_n_levels_per_type (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->nLevelsPerType; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_n_levels_per_type_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_n_levels_per_type_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return R->nTypes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_n_levels_per_type_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_n_levels_per_type_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->nLevelsPerType + R->nTypes; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_names_value_list_alignment_pad - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_names_value_list_alignment_pad (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->alignment_pad; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_alignment_pad_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_alignment_pad_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return (((R->nTypes + 3) & (~3)) - R->nTypes); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_alignment_pad_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_alignment_pad_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->alignment_pad + (((R->nTypes + 3) & (~3)) - R->nTypes); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_kt_level_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_kt_level_names (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->ktLevelNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_kt_level_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_kt_level_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_kt_level_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_kt_level_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->ktLevelNames + xcb_sumof(/* valueList */ S->nLevelsPerType, R->nTypes); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_indicator_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_indicator_names (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->indicatorNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_indicator_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_indicator_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return xcb_popcount(R->indicators); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_indicator_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_indicator_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->indicatorNames + xcb_popcount(R->indicators); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_virtual_mod_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_virtual_mod_names (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->virtualModNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_virtual_mod_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_virtual_mod_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return xcb_popcount(R->virtualMods); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_virtual_mod_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_virtual_mod_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->virtualModNames + xcb_popcount(R->virtualMods); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_groups - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_groups (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->groups; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_groups_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_groups_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return xcb_popcount(R->groupNames); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_groups_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_groups_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->groups + xcb_popcount(R->groupNames); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_t * xcb_xkb_get_names_value_list_key_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_xkb_key_name_t * - ** - *****************************************************************************/ - -xcb_xkb_key_name_t * -xcb_xkb_get_names_value_list_key_names (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->keyNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_key_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_key_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return R->nKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_iterator_t xcb_xkb_get_names_value_list_key_names_iterator - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_xkb_key_name_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_name_iterator_t -xcb_xkb_get_names_value_list_key_names_iterator (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_xkb_key_name_iterator_t i; - i.data = /* valueList */ S->keyNames; - i.rem = R->nKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_t * xcb_xkb_get_names_value_list_key_aliases - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_xkb_key_alias_t * - ** - *****************************************************************************/ - -xcb_xkb_key_alias_t * -xcb_xkb_get_names_value_list_key_aliases (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->keyAliases; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_key_aliases_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_key_aliases_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return R->nKeyAliases; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_names_value_list_key_aliases_iterator - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_xkb_key_alias_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_alias_iterator_t -xcb_xkb_get_names_value_list_key_aliases_iterator (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_xkb_key_alias_iterator_t i; - i.data = /* valueList */ S->keyAliases; - i.rem = R->nKeyAliases; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_names_value_list_radio_group_names - ** - ** @param const xcb_xkb_get_names_value_list_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_names_value_list_radio_group_names (const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return /* valueList */ S->radioGroupNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_names_value_list_radio_group_names_length - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_names_value_list_radio_group_names_length (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - return R->nRadioGroups; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_names_value_list_radio_group_names_end - ** - ** @param const xcb_xkb_get_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_names_value_list_radio_group_names_end (const xcb_xkb_get_names_reply_t *R /**< */, - const xcb_xkb_get_names_value_list_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* valueList */ S->radioGroupNames + R->nRadioGroups; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - -int -xcb_xkb_get_names_value_list_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - const xcb_xkb_get_names_value_list_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[27]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { - /* xcb_xkb_get_names_value_list_t.keycodesName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { - /* xcb_xkb_get_names_value_list_t.geometryName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { - /* xcb_xkb_get_names_value_list_t.symbolsName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { - /* xcb_xkb_get_names_value_list_t.physSymbolsName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_TYPES) { - /* xcb_xkb_get_names_value_list_t.typesName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_COMPAT) { - /* xcb_xkb_get_names_value_list_t.compatName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* typeNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; - xcb_block_len += nTypes * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* nLevelsPerType */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; - xcb_block_len += nTypes * sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->alignment_pad; - xcb_block_len += (((nTypes + 3) & (~3)) - nTypes) * sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = (((nTypes + 3) & (~3)) - nTypes) * sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* ktLevelNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; - xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* indicatorNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; - xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* virtualModNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groups */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; - xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; - xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); - xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyAliases */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; - xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); - } - if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* radioGroupNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; - xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; ikeycodesName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { - /* xcb_xkb_get_names_value_list_t.geometryName */ - _aux->geometryName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { - /* xcb_xkb_get_names_value_list_t.symbolsName */ - _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { - /* xcb_xkb_get_names_value_list_t.physSymbolsName */ - _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_TYPES) { - /* xcb_xkb_get_names_value_list_t.typesName */ - _aux->typesName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_COMPAT) { - /* xcb_xkb_get_names_value_list_t.compatName */ - _aux->compatName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* typeNames */ - _aux->typeNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += nTypes * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* nLevelsPerType */ - _aux->nLevelsPerType = (uint8_t *)xcb_tmp; - xcb_block_len += nTypes * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* alignment_pad */ - _aux->alignment_pad = (uint8_t *)xcb_tmp; - xcb_block_len += (((nTypes + 3) & (~3)) - nTypes) * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* ktLevelNames */ - _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nTypes) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* indicatorNames */ - _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* virtualModNames */ - _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groups */ - _aux->groups = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyNames */ - _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; - xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyAliases */ - _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; - xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); - } - if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* radioGroupNames */ - _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_get_names_value_list_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */) -{ - xcb_xkb_get_names_value_list_t _aux; - return xcb_xkb_get_names_value_list_unpack(_buffer, nTypes, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_names_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_names_cookie_t -xcb_xkb_get_names (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_NAMES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_names_cookie_t xcb_ret; - xcb_xkb_get_names_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.which = which; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_names_cookie_t xcb_xkb_get_names_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t which - ** @returns xcb_xkb_get_names_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_names_cookie_t -xcb_xkb_get_names_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t which /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_NAMES, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_names_cookie_t xcb_ret; - xcb_xkb_get_names_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.which = which; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_names_value_list_t * xcb_xkb_get_names_value_list - ** - ** @param const xcb_xkb_get_names_reply_t *R - ** @returns xcb_xkb_get_names_value_list_t * - ** - *****************************************************************************/ - -void * -xcb_xkb_get_names_value_list (const xcb_xkb_get_names_reply_t *R /**< */) -{ - return (void *) (R + 1); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_names_reply_t * xcb_xkb_get_names_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_names_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_names_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_names_reply_t * -xcb_xkb_get_names_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_names_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_names_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_type_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_type_names (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->typeNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_type_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_type_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return R->nTypes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_type_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_type_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->typeNames + R->nTypes; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_set_names_values_n_levels_per_type - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_set_names_values_n_levels_per_type (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->nLevelsPerType; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_n_levels_per_type_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_n_levels_per_type_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return R->nKTLevels; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_n_levels_per_type_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_n_levels_per_type_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->nLevelsPerType + R->nKTLevels; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_kt_level_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_kt_level_names (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->ktLevelNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_kt_level_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_kt_level_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_kt_level_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_kt_level_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->ktLevelNames + xcb_sumof(/* values */ S->nLevelsPerType, R->nKTLevels); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_indicator_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_indicator_names (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->indicatorNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_indicator_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_indicator_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return xcb_popcount(R->indicators); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_indicator_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_indicator_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->indicatorNames + xcb_popcount(R->indicators); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_virtual_mod_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_virtual_mod_names (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->virtualModNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_virtual_mod_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_virtual_mod_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return xcb_popcount(R->virtualMods); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_virtual_mod_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_virtual_mod_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->virtualModNames + xcb_popcount(R->virtualMods); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_groups - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_groups (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->groups; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_groups_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_groups_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return xcb_popcount(R->groupNames); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_groups_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_groups_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->groups + xcb_popcount(R->groupNames); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_t * xcb_xkb_set_names_values_key_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_xkb_key_name_t * - ** - *****************************************************************************/ - -xcb_xkb_key_name_t * -xcb_xkb_set_names_values_key_names (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->keyNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_key_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_key_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return R->nKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_iterator_t xcb_xkb_set_names_values_key_names_iterator - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_xkb_key_name_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_name_iterator_t -xcb_xkb_set_names_values_key_names_iterator (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_xkb_key_name_iterator_t i; - i.data = /* values */ S->keyNames; - i.rem = R->nKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_t * xcb_xkb_set_names_values_key_aliases - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_xkb_key_alias_t * - ** - *****************************************************************************/ - -xcb_xkb_key_alias_t * -xcb_xkb_set_names_values_key_aliases (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->keyAliases; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_key_aliases_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_key_aliases_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return R->nKeyAliases; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_iterator_t xcb_xkb_set_names_values_key_aliases_iterator - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_xkb_key_alias_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_alias_iterator_t -xcb_xkb_set_names_values_key_aliases_iterator (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_xkb_key_alias_iterator_t i; - i.data = /* values */ S->keyAliases; - i.rem = R->nKeyAliases; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_set_names_values_radio_group_names - ** - ** @param const xcb_xkb_set_names_values_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_set_names_values_radio_group_names (const xcb_xkb_set_names_values_t *S /**< */) -{ - return /* values */ S->radioGroupNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_set_names_values_radio_group_names_length - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_set_names_values_radio_group_names_length (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - return R->nRadioGroups; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_set_names_values_radio_group_names_end - ** - ** @param const xcb_xkb_set_names_values_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_set_names_values_radio_group_names_end (const xcb_xkb_set_names_request_t *R /**< */, - const xcb_xkb_set_names_values_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* values */ S->radioGroupNames + R->nRadioGroups; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - -int -xcb_xkb_set_names_values_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - const xcb_xkb_set_names_values_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[25]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { - /* xcb_xkb_set_names_values_t.keycodesName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { - /* xcb_xkb_set_names_values_t.geometryName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { - /* xcb_xkb_set_names_values_t.symbolsName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { - /* xcb_xkb_set_names_values_t.physSymbolsName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_TYPES) { - /* xcb_xkb_set_names_values_t.typesName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_COMPAT) { - /* xcb_xkb_set_names_values_t.compatName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* typeNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; - xcb_block_len += nTypes * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* nLevelsPerType */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; - xcb_block_len += nKTLevels * sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = nKTLevels * sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* ktLevelNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; - xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* indicatorNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; - xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* virtualModNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groups */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; - xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; - xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); - xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyAliases */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; - xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); - } - if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* radioGroupNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; - xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; ikeycodesName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { - /* xcb_xkb_set_names_values_t.geometryName */ - _aux->geometryName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { - /* xcb_xkb_set_names_values_t.symbolsName */ - _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { - /* xcb_xkb_set_names_values_t.physSymbolsName */ - _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_TYPES) { - /* xcb_xkb_set_names_values_t.typesName */ - _aux->typesName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_COMPAT) { - /* xcb_xkb_set_names_values_t.compatName */ - _aux->compatName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* typeNames */ - _aux->typeNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += nTypes * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* nLevelsPerType */ - _aux->nLevelsPerType = (uint8_t *)xcb_tmp; - xcb_block_len += nKTLevels * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* ktLevelNames */ - _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* indicatorNames */ - _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* virtualModNames */ - _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groups */ - _aux->groups = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyNames */ - _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; - xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyAliases */ - _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; - xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); - } - if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* radioGroupNames */ - _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_set_names_values_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */) -{ - xcb_xkb_set_names_values_t _aux; - return xcb_xkb_set_names_values_unpack(_buffer, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const void *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_NAMES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_names_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.virtualMods = virtualMods; - xcb_out.which = which; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKTLevelt = firstKTLevelt; - xcb_out.nKTLevels = nKTLevels; - xcb_out.indicators = indicators; - xcb_out.groupNames = groupNames; - xcb_out.nRadioGroups = nRadioGroups; - xcb_out.firstKey = firstKey; - xcb_out.nKeys = nKeys; - xcb_out.nKeyAliases = nKeyAliases; - xcb_out.pad0 = 0; - xcb_out.totalKTLevelNames = totalKTLevelNames; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_names_values_t values */ - xcb_parts[4].iov_base = (char *) values; - xcb_parts[4].iov_len = - xcb_xkb_set_names_values_sizeof (values, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which); - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const void *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const void *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_NAMES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_names_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.virtualMods = virtualMods; - xcb_out.which = which; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKTLevelt = firstKTLevelt; - xcb_out.nKTLevels = nKTLevels; - xcb_out.indicators = indicators; - xcb_out.groupNames = groupNames; - xcb_out.nRadioGroups = nRadioGroups; - xcb_out.firstKey = firstKey; - xcb_out.nKeys = nKeys; - xcb_out.nKeyAliases = nKeyAliases; - xcb_out.pad0 = 0; - xcb_out.totalKTLevelNames = totalKTLevelNames; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_names_values_t values */ - xcb_parts[4].iov_base = (char *) values; - xcb_parts[4].iov_len = - xcb_xkb_set_names_values_sizeof (values, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which); - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names_aux_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const xcb_xkb_set_names_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names_aux_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const xcb_xkb_set_names_values_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_NAMES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_names_request_t xcb_out; - void *xcb_aux0 = 0; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.virtualMods = virtualMods; - xcb_out.which = which; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKTLevelt = firstKTLevelt; - xcb_out.nKTLevels = nKTLevels; - xcb_out.indicators = indicators; - xcb_out.groupNames = groupNames; - xcb_out.nRadioGroups = nRadioGroups; - xcb_out.firstKey = firstKey; - xcb_out.nKeys = nKeys; - xcb_out.nKeyAliases = nKeyAliases; - xcb_out.pad0 = 0; - xcb_out.totalKTLevelNames = totalKTLevelNames; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_names_values_t values */ - xcb_parts[4].iov_len = - xcb_xkb_set_names_values_serialize (&xcb_aux0, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, values); - xcb_parts[4].iov_base = xcb_aux0; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - free(xcb_aux0); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_names_aux - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t virtualMods - ** @param uint32_t which - ** @param uint8_t firstType - ** @param uint8_t nTypes - ** @param uint8_t firstKTLevelt - ** @param uint8_t nKTLevels - ** @param uint32_t indicators - ** @param uint8_t groupNames - ** @param uint8_t nRadioGroups - ** @param xcb_keycode_t firstKey - ** @param uint8_t nKeys - ** @param uint8_t nKeyAliases - ** @param uint16_t totalKTLevelNames - ** @param const xcb_xkb_set_names_values_t *values - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_names_aux (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t virtualMods /**< */, - uint32_t which /**< */, - uint8_t firstType /**< */, - uint8_t nTypes /**< */, - uint8_t firstKTLevelt /**< */, - uint8_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint8_t groupNames /**< */, - uint8_t nRadioGroups /**< */, - xcb_keycode_t firstKey /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint16_t totalKTLevelNames /**< */, - const xcb_xkb_set_names_values_t *values /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 3, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_NAMES, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[5]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_names_request_t xcb_out; - void *xcb_aux0 = 0; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.virtualMods = virtualMods; - xcb_out.which = which; - xcb_out.firstType = firstType; - xcb_out.nTypes = nTypes; - xcb_out.firstKTLevelt = firstKTLevelt; - xcb_out.nKTLevels = nKTLevels; - xcb_out.indicators = indicators; - xcb_out.groupNames = groupNames; - xcb_out.nRadioGroups = nRadioGroups; - xcb_out.firstKey = firstKey; - xcb_out.nKeys = nKeys; - xcb_out.nKeyAliases = nKeyAliases; - xcb_out.pad0 = 0; - xcb_out.totalKTLevelNames = totalKTLevelNames; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_set_names_values_t values */ - xcb_parts[4].iov_len = - xcb_xkb_set_names_values_serialize (&xcb_aux0, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, values); - xcb_parts[4].iov_base = xcb_aux0; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - free(xcb_aux0); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t change - ** @param uint32_t value - ** @param uint32_t ctrlsToChange - ** @param uint32_t autoCtrls - ** @param uint32_t autoCtrlsValues - ** @returns xcb_xkb_per_client_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_per_client_flags_cookie_t -xcb_xkb_per_client_flags (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t change /**< */, - uint32_t value /**< */, - uint32_t ctrlsToChange /**< */, - uint32_t autoCtrls /**< */, - uint32_t autoCtrlsValues /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_PER_CLIENT_FLAGS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_per_client_flags_cookie_t xcb_ret; - xcb_xkb_per_client_flags_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.change = change; - xcb_out.value = value; - xcb_out.ctrlsToChange = ctrlsToChange; - xcb_out.autoCtrls = autoCtrls; - xcb_out.autoCtrlsValues = autoCtrlsValues; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_per_client_flags_cookie_t xcb_xkb_per_client_flags_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint32_t change - ** @param uint32_t value - ** @param uint32_t ctrlsToChange - ** @param uint32_t autoCtrls - ** @param uint32_t autoCtrlsValues - ** @returns xcb_xkb_per_client_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_per_client_flags_cookie_t -xcb_xkb_per_client_flags_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint32_t change /**< */, - uint32_t value /**< */, - uint32_t ctrlsToChange /**< */, - uint32_t autoCtrls /**< */, - uint32_t autoCtrlsValues /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_PER_CLIENT_FLAGS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_per_client_flags_cookie_t xcb_ret; - xcb_xkb_per_client_flags_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - memset(xcb_out.pad0, 0, 2); - xcb_out.change = change; - xcb_out.value = value; - xcb_out.ctrlsToChange = ctrlsToChange; - xcb_out.autoCtrls = autoCtrls; - xcb_out.autoCtrlsValues = autoCtrlsValues; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_per_client_flags_reply_t * xcb_xkb_per_client_flags_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_per_client_flags_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_per_client_flags_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_per_client_flags_reply_t * -xcb_xkb_per_client_flags_reply (xcb_connection_t *c /**< */, - xcb_xkb_per_client_flags_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_per_client_flags_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_list_components_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_list_components_reply_t *_aux = (xcb_xkb_list_components_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_xkb_list_components_reply_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* keymaps */ - for(i=0; i<_aux->nKeymaps; i++) { - xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_listing_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keycodes */ - for(i=0; i<_aux->nKeycodes; i++) { - xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_listing_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* types */ - for(i=0; i<_aux->nTypes; i++) { - xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_listing_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* compatMaps */ - for(i=0; i<_aux->nCompatMaps; i++) { - xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_listing_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* symbols */ - for(i=0; i<_aux->nSymbols; i++) { - xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_listing_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* geometries */ - for(i=0; i<_aux->nGeometries; i++) { - xcb_tmp_len = xcb_xkb_listing_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_listing_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t maxNames - ** @returns xcb_xkb_list_components_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_list_components_cookie_t -xcb_xkb_list_components (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t maxNames /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_LIST_COMPONENTS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_list_components_cookie_t xcb_ret; - xcb_xkb_list_components_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.maxNames = maxNames; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_list_components_cookie_t xcb_xkb_list_components_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t maxNames - ** @returns xcb_xkb_list_components_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_list_components_cookie_t -xcb_xkb_list_components_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t maxNames /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_LIST_COMPONENTS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_list_components_cookie_t xcb_ret; - xcb_xkb_list_components_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.maxNames = maxNames; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_keymaps_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_keymaps_length (const xcb_xkb_list_components_reply_t *R /**< */) -{ - return R->nKeymaps; -} - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keymaps_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_keymaps_iterator (const xcb_xkb_list_components_reply_t *R /**< */) -{ - xcb_xkb_listing_iterator_t i; - i.data = (xcb_xkb_listing_t *) (R + 1); - i.rem = R->nKeymaps; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_keycodes_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_keycodes_length (const xcb_xkb_list_components_reply_t *R /**< */) -{ - return R->nKeycodes; -} - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_keycodes_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_keycodes_iterator (const xcb_xkb_list_components_reply_t *R /**< */) -{ - xcb_xkb_listing_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_keymaps_iterator(R)); - i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); - i.rem = R->nKeycodes; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_types_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_types_length (const xcb_xkb_list_components_reply_t *R /**< */) -{ - return R->nTypes; -} - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_types_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_types_iterator (const xcb_xkb_list_components_reply_t *R /**< */) -{ - xcb_xkb_listing_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_keycodes_iterator(R)); - i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); - i.rem = R->nTypes; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_compat_maps_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_compat_maps_length (const xcb_xkb_list_components_reply_t *R /**< */) -{ - return R->nCompatMaps; -} - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_compat_maps_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_compat_maps_iterator (const xcb_xkb_list_components_reply_t *R /**< */) -{ - xcb_xkb_listing_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_types_iterator(R)); - i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); - i.rem = R->nCompatMaps; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_symbols_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_symbols_length (const xcb_xkb_list_components_reply_t *R /**< */) -{ - return R->nSymbols; -} - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_symbols_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_symbols_iterator (const xcb_xkb_list_components_reply_t *R /**< */) -{ - xcb_xkb_listing_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_compat_maps_iterator(R)); - i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); - i.rem = R->nSymbols; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_list_components_geometries_length - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_list_components_geometries_length (const xcb_xkb_list_components_reply_t *R /**< */) -{ - return R->nGeometries; -} - - -/***************************************************************************** - ** - ** xcb_xkb_listing_iterator_t xcb_xkb_list_components_geometries_iterator - ** - ** @param const xcb_xkb_list_components_reply_t *R - ** @returns xcb_xkb_listing_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_listing_iterator_t -xcb_xkb_list_components_geometries_iterator (const xcb_xkb_list_components_reply_t *R /**< */) -{ - xcb_xkb_listing_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_listing_end(xcb_xkb_list_components_symbols_iterator(R)); - i.data = (xcb_xkb_listing_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_listing_t, prev.index)); - i.rem = R->nGeometries; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_list_components_reply_t * xcb_xkb_list_components_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_list_components_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_list_components_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_list_components_reply_t * -xcb_xkb_list_components_reply (xcb_connection_t *c /**< */, - xcb_xkb_list_components_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_list_components_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.nTypes; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_type_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_type_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_type_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_types_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_key_type_iterator_t i; - i.data = /* replies */ S->types.map.types_rtrn; - i.rem = /* replies */ S->types.nTypes; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.nKeySyms; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_sym_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_sym_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_sym_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_syms_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_key_sym_map_iterator_t i; - i.data = /* replies */ S->types.map.syms_rtrn; - i.rem = /* replies */ S->types.nKeySyms; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.acts_rtrn_count; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.nKeyActions; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_count_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->types.map.acts_rtrn_count + /* replies */ S->types.nKeyActions; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.acts_rtrn_acts; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.totalActions; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_acts_rtrn_acts_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_action_iterator_t i; - i.data = /* replies */ S->types.map.acts_rtrn_acts; - i.rem = /* replies */ S->types.totalActions; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_t * xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_set_behavior_t * - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_t * -xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.behaviors_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.totalKeyBehaviors; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_behavior_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_set_behavior_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_behavior_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_behaviors_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_set_behavior_iterator_t i; - i.data = /* replies */ S->types.map.behaviors_rtrn; - i.rem = /* replies */ S->types.totalKeyBehaviors; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.vmods_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return xcb_popcount(/* replies */ S->types.virtualMods); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_vmods_rtrn_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->types.map.vmods_rtrn + xcb_popcount(/* replies */ S->types.virtualMods); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_t * xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_set_explicit_t * - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_t * -xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.explicit_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.totalKeyExplicit; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_explicit_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_set_explicit_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_set_explicit_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_explicit_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_set_explicit_iterator_t i; - i.data = /* replies */ S->types.map.explicit_rtrn; - i.rem = /* replies */ S->types.totalKeyExplicit; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_t * -xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.modmap_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.totalModMapKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_mod_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_modmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_key_mod_map_iterator_t i; - i.data = /* replies */ S->types.map.modmap_rtrn; - i.rem = /* replies */ S->types.totalModMapKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_t * xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_v_mod_map_t * - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_t * -xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.map.vmodmap_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->types.totalVModMapKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_v_mod_map_iterator_t xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_types_map_t *R - ** @returns xcb_xkb_key_v_mod_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_v_mod_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_types_map_vmodmap_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_key_v_mod_map_iterator_t i; - i.data = /* replies */ S->types.map.vmodmap_rtrn; - i.rem = /* replies */ S->types.totalVModMapKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - -int -xcb_xkb_get_kbd_by_name_replies_types_map_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */, - const xcb_xkb_get_kbd_by_name_replies_types_map_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[19]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if(present & XCB_XKB_MAP_PART_KEY_TYPES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* types_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->types_rtrn; - xcb_parts[xcb_parts_idx].iov_len = 0; - xcb_tmp = (char *) _aux->types_rtrn; - for(i=0; isyms_rtrn; - xcb_parts[xcb_parts_idx].iov_len = 0; - xcb_tmp = (char *) _aux->syms_rtrn; - for(i=0; iacts_rtrn_count; - xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = nKeyActions * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* acts_rtrn_acts */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->acts_rtrn_acts; - xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); - xcb_parts[xcb_parts_idx].iov_len = totalActions * sizeof(xcb_xkb_action_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - } - if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* behaviors_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->behaviors_rtrn; - xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_parts[xcb_parts_idx].iov_len = totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmods_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmods_rtrn; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - } - if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* explicit_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->explicit_rtrn; - xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_parts[xcb_parts_idx].iov_len = totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); - } - if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modmap_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->modmap_rtrn; - xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_parts[xcb_parts_idx].iov_len = totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmodmap_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->vmodmap_rtrn; - xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_parts[xcb_parts_idx].iov_len = totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; itypes_rtrn = (xcb_xkb_key_type_t *)xcb_tmp; - for(i=0; isyms_rtrn = (xcb_xkb_key_sym_map_t *)xcb_tmp; - for(i=0; iacts_rtrn_count = (uint8_t *)xcb_tmp; - xcb_block_len += nKeyActions * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* acts_rtrn_acts */ - _aux->acts_rtrn_acts = (xcb_xkb_action_t *)xcb_tmp; - xcb_block_len += totalActions * sizeof(xcb_xkb_action_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - } - if(present & XCB_XKB_MAP_PART_KEY_BEHAVIORS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* behaviors_rtrn */ - _aux->behaviors_rtrn = (xcb_xkb_set_behavior_t *)xcb_tmp; - xcb_block_len += totalKeyBehaviors * sizeof(xcb_xkb_set_behavior_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_set_behavior_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MODS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmods_rtrn */ - _aux->vmods_rtrn = (uint8_t *)xcb_tmp; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_keycode_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - } - if(present & XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* explicit_rtrn */ - _aux->explicit_rtrn = (xcb_xkb_set_explicit_t *)xcb_tmp; - xcb_block_len += totalKeyExplicit * sizeof(xcb_xkb_set_explicit_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_set_explicit_t); - } - if(present & XCB_XKB_MAP_PART_MODIFIER_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* modmap_rtrn */ - _aux->modmap_rtrn = (xcb_xkb_key_mod_map_t *)xcb_tmp; - xcb_block_len += totalModMapKeys * sizeof(xcb_xkb_key_mod_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_mod_map_t); - } - if(present & XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* vmodmap_rtrn */ - _aux->vmodmap_rtrn = (xcb_xkb_key_v_mod_map_t *)xcb_tmp; - xcb_block_len += totalVModMapKeys * sizeof(xcb_xkb_key_v_mod_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_v_mod_map_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_get_kbd_by_name_replies_types_map_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint8_t nKeySyms /**< */, - uint8_t nKeyActions /**< */, - uint16_t totalActions /**< */, - uint8_t totalKeyBehaviors /**< */, - uint16_t virtualMods /**< */, - uint8_t totalKeyExplicit /**< */, - uint8_t totalModMapKeys /**< */, - uint8_t totalVModMapKeys /**< */, - uint16_t present /**< */) -{ - xcb_xkb_get_kbd_by_name_replies_types_map_t _aux; - return xcb_xkb_get_kbd_by_name_replies_types_map_unpack(_buffer, nTypes, nKeySyms, nKeyActions, totalActions, totalKeyBehaviors, virtualMods, totalKeyExplicit, totalModMapKeys, totalVModMapKeys, present, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.typeNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.nTypes; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_type_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.typeNames + /* replies */ S->key_names.nTypes; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** uint8_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns uint8_t * - ** - *****************************************************************************/ - -uint8_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.nLevelsPerType; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.nKTLevels; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_n_levels_per_type_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.nLevelsPerType + /* replies */ S->key_names.nKTLevels; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.ktLevelNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_kt_level_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.ktLevelNames + xcb_sumof(/* replies */ S->key_names.valueList.nLevelsPerType, /* replies */ S->key_names.nKTLevels); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.indicatorNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return xcb_popcount(/* replies */ S->key_names.indicators); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_indicator_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.indicatorNames + xcb_popcount(/* replies */ S->key_names.indicators); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.virtualModNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return xcb_popcount(/* replies */ S->key_names.virtualMods); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_virtual_mod_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.virtualModNames + xcb_popcount(/* replies */ S->key_names.virtualMods); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.groups; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return xcb_popcount(/* replies */ S->key_names.groupNames); -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_groups_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.groups + xcb_popcount(/* replies */ S->key_names.groupNames); - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_name_t * - ** - *****************************************************************************/ - -xcb_xkb_key_name_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.keyNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.nKeys; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_name_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_xkb_key_name_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_name_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_names_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_key_name_iterator_t i; - i.data = /* replies */ S->key_names.valueList.keyNames; - i.rem = /* replies */ S->key_names.nKeys; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_key_alias_t * - ** - *****************************************************************************/ - -xcb_xkb_key_alias_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.keyAliases; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.nKeyAliases; -} - - -/***************************************************************************** - ** - ** xcb_xkb_key_alias_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_xkb_key_alias_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_key_alias_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_key_aliases_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_key_alias_iterator_t i; - i.data = /* replies */ S->key_names.valueList.keyAliases; - i.rem = /* replies */ S->key_names.nKeyAliases; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_atom_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_atom_t * - ** - *****************************************************************************/ - -xcb_atom_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.valueList.radioGroupNames; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->key_names.nRadioGroups; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_radio_group_names_end (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_generic_iterator_t i; - i.data = /* replies */ S->key_names.valueList.radioGroupNames + /* replies */ S->key_names.nRadioGroups; - i.rem = 0; - i.index = (char *) i.data - (char *) S; - return i; -} - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize (void **_buffer /**< */, - uint8_t nTypes /**< */, - uint16_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */, - const xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[25]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if(which & XCB_XKB_NAME_DETAIL_KEYCODES) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.keycodesName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->keycodesName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.geometryName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometryName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.symbolsName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->symbolsName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.physSymbolsName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->physSymbolsName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_TYPES) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.typesName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->typesName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_COMPAT) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.compatName */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compatName; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* typeNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->typeNames; - xcb_block_len += nTypes * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = nTypes * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* nLevelsPerType */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->nLevelsPerType; - xcb_block_len += nKTLevels * sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = nKTLevels * sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* ktLevelNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->ktLevelNames; - xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* indicatorNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicatorNames; - xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* virtualModNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->virtualModNames; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groups */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->groups; - xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyNames; - xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); - xcb_parts[xcb_parts_idx].iov_len = nKeys * sizeof(xcb_xkb_key_name_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyAliases */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->keyAliases; - xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_parts[xcb_parts_idx].iov_len = nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); - } - if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* radioGroupNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->radioGroupNames; - xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = nRadioGroups * sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; ikeycodesName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GEOMETRY) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.geometryName */ - _aux->geometryName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_SYMBOLS) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.symbolsName */ - _aux->symbolsName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_PHYS_SYMBOLS) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.physSymbolsName */ - _aux->physSymbolsName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_TYPES) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.typesName */ - _aux->typesName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_COMPAT) { - /* xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t.compatName */ - _aux->compatName = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* typeNames */ - _aux->typeNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += nTypes * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* nLevelsPerType */ - _aux->nLevelsPerType = (uint8_t *)xcb_tmp; - xcb_block_len += nKTLevels * sizeof(uint8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* ktLevelNames */ - _aux->ktLevelNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_sumof(_aux->nLevelsPerType, nKTLevels) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_INDICATOR_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* indicatorNames */ - _aux->indicatorNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(indicators) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* virtualModNames */ - _aux->virtualModNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(virtualMods) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_GROUP_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* groups */ - _aux->groups = (xcb_atom_t *)xcb_tmp; - xcb_block_len += xcb_popcount(groupNames) * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyNames */ - _aux->keyNames = (xcb_xkb_key_name_t *)xcb_tmp; - xcb_block_len += nKeys * sizeof(xcb_xkb_key_name_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_name_t); - } - if(which & XCB_XKB_NAME_DETAIL_KEY_ALIASES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* keyAliases */ - _aux->keyAliases = (xcb_xkb_key_alias_t *)xcb_tmp; - xcb_block_len += nKeyAliases * sizeof(xcb_xkb_key_alias_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_key_alias_t); - } - if(which & XCB_XKB_NAME_DETAIL_RG_NAMES) { - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* radioGroupNames */ - _aux->radioGroupNames = (xcb_atom_t *)xcb_tmp; - xcb_block_len += nRadioGroups * sizeof(xcb_atom_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_atom_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof (const void *_buffer /**< */, - uint8_t nTypes /**< */, - uint16_t nKTLevels /**< */, - uint32_t indicators /**< */, - uint16_t virtualMods /**< */, - uint8_t groupNames /**< */, - uint8_t nKeys /**< */, - uint8_t nKeyAliases /**< */, - uint8_t nRadioGroups /**< */, - uint32_t which /**< */) -{ - xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t _aux; - return xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack(_buffer, nTypes, nKTLevels, indicators, virtualMods, groupNames, nKeys, nKeyAliases, nRadioGroups, which, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_replies_types_map_t * xcb_xkb_get_kbd_by_name_replies_types_map - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_get_kbd_by_name_replies_types_map_t * - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_replies_types_map_t * -xcb_xkb_get_kbd_by_name_replies_types_map (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */) -{ - return (xcb_xkb_get_kbd_by_name_replies_types_map_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_t * xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_sym_interpret_t * - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_t * -xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->compat_map.si_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->compat_map.nSIRtrn; -} - - -/***************************************************************************** - ** - ** xcb_xkb_sym_interpret_iterator_t xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_sym_interpret_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_sym_interpret_iterator_t -xcb_xkb_get_kbd_by_name_replies_compat_map_si_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_sym_interpret_iterator_t i; - i.data = /* replies */ S->compat_map.si_rtrn; - i.rem = /* replies */ S->compat_map.nSIRtrn; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_t * xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_mod_def_t * - ** - *****************************************************************************/ - -xcb_xkb_mod_def_t * -xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->compat_map.group_rtrn; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return xcb_popcount(/* replies */ S->compat_map.groupsRtrn); -} - - -/***************************************************************************** - ** - ** xcb_xkb_mod_def_iterator_t xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_mod_def_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_mod_def_iterator_t -xcb_xkb_get_kbd_by_name_replies_compat_map_group_rtrn_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_mod_def_iterator_t i; - i.data = /* replies */ S->compat_map.group_rtrn; - i.rem = xcb_popcount(/* replies */ S->compat_map.groupsRtrn); - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_t * xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *S - ** @returns xcb_xkb_indicator_map_t * - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_t * -xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps (const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->indicator_maps.maps; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_length (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - return /* replies */ S->indicator_maps.nIndicators; -} - - -/***************************************************************************** - ** - ** xcb_xkb_indicator_map_iterator_t xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_indicator_map_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_indicator_map_iterator_t -xcb_xkb_get_kbd_by_name_replies_indicator_maps_maps_iterator (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *S /**< */) -{ - xcb_xkb_indicator_map_iterator_t i; - i.data = /* replies */ S->indicator_maps.maps; - i.rem = /* replies */ S->indicator_maps.nIndicators; - i.index = (char *) i.data - (char *) S; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * xcb_xkb_get_kbd_by_name_replies_key_names_value_list - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t * -xcb_xkb_get_kbd_by_name_replies_key_names_value_list (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */) -{ - return (xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** xcb_xkb_counted_string_16_t * xcb_xkb_get_kbd_by_name_replies_geometry_label_font - ** - ** @param const xcb_xkb_get_kbd_by_name_replies_t *R - ** @returns xcb_xkb_counted_string_16_t * - ** - *****************************************************************************/ - -xcb_xkb_counted_string_16_t * -xcb_xkb_get_kbd_by_name_replies_geometry_label_font (const xcb_xkb_get_kbd_by_name_replies_t *R /**< */) -{ - return (xcb_xkb_counted_string_16_t *) (R + 1); -} - -int -xcb_xkb_get_kbd_by_name_replies_serialize (void **_buffer /**< */, - uint16_t reported /**< */, - const xcb_xkb_get_kbd_by_name_replies_t *_aux /**< */) -{ - char *xcb_out = *_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_align_to = 0; - - unsigned int xcb_pad = 0; - char xcb_pad0[3] = {0, 0, 0}; - struct iovec xcb_parts[96]; - unsigned int xcb_parts_idx = 0; - unsigned int xcb_block_len = 0; - unsigned int i; - char *xcb_tmp; - - if((reported & XCB_XKB_GBN_DETAIL_TYPES) || - (reported & XCB_XKB_GBN_DETAIL_CLIENT_SYMBOLS) || - (reported & XCB_XKB_GBN_DETAIL_SERVER_SYMBOLS)) { - /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_type */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.getmap_type; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.typeDeviceID */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.typeDeviceID; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_sequence */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.getmap_sequence; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_length */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.getmap_length; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.pad0 */ - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_block_len += sizeof(uint8_t)*2; - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*2; - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMinKeyCode */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.typeMinKeyCode; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMaxKeyCode */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.typeMaxKeyCode; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.present */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.present; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstType */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstType; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nTypes */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nTypes; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalTypes */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalTypes; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeySym */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeySym; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalSyms */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalSyms; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeySyms */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeySyms; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyAction */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeyAction; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalActions */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalActions; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyActions */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeyActions; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyBehavior */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeyBehavior; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyBehaviors */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeyBehaviors; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyBehaviors */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalKeyBehaviors; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyExplicit */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstKeyExplicit; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyExplicit */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nKeyExplicit; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyExplicit */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalKeyExplicit; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstModMapKey */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstModMapKey; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nModMapKeys */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nModMapKeys; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalModMapKeys */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalModMapKeys; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstVModMapKey */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.firstVModMapKey; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nVModMapKeys */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.nVModMapKeys; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalVModMapKeys */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.totalVModMapKeys; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.pad1 */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.virtualMods */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->types.virtualMods; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* map */ - xcb_parts[xcb_parts_idx].iov_base = (char *)0; - xcb_block_len += xcb_xkb_get_kbd_by_name_replies_types_map_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->types.nTypes, _aux->types.nKeySyms, _aux->types.nKeyActions, _aux->types.totalActions, _aux->types.totalKeyBehaviors, _aux->types.virtualMods, _aux->types.totalKeyExplicit, _aux->types.totalModMapKeys, _aux->types.totalVModMapKeys, _aux->types.present, &_aux->types.map); - xcb_parts[xcb_parts_idx].iov_len = xcb_xkb_get_kbd_by_name_replies_types_map_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->types.nTypes, _aux->types.nKeySyms, _aux->types.nKeyActions, _aux->types.totalActions, _aux->types.totalKeyBehaviors, _aux->types.virtualMods, _aux->types.totalKeyExplicit, _aux->types.totalModMapKeys, _aux->types.totalVModMapKeys, _aux->types.present, &_aux->types.map); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_types_map_t); - } - if(reported & XCB_XKB_GBN_DETAIL_COMPAT_MAP) { - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_type */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatmap_type; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatDeviceID */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatDeviceID; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_sequence */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatmap_sequence; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_length */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.compatmap_length; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.groupsRtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.groupsRtrn; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad0 */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.firstSIRtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.firstSIRtrn; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nSIRtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.nSIRtrn; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nTotalSI */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->compat_map.nTotalSI; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad1 */ - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_block_len += sizeof(uint8_t)*16; - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*16; - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* si_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->compat_map.si_rtrn; - xcb_block_len += _aux->compat_map.nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); - xcb_parts[xcb_parts_idx].iov_len = _aux->compat_map.nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* group_rtrn */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->compat_map.group_rtrn; - xcb_block_len += xcb_popcount(_aux->compat_map.groupsRtrn) * sizeof(xcb_xkb_mod_def_t); - xcb_parts[xcb_parts_idx].iov_len = xcb_popcount(_aux->compat_map.groupsRtrn) * sizeof(xcb_xkb_mod_def_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); - } - if(reported & XCB_XKB_GBN_DETAIL_INDICATOR_MAPS) { - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_type */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatormap_type; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatorDeviceID */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatorDeviceID; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_sequence */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatormap_sequence; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_length */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.indicatormap_length; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.which */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.which; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.realIndicators */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.realIndicators; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.nIndicators */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->indicator_maps.nIndicators; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.pad0 */ - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_block_len += sizeof(uint8_t)*15; - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*15; - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* maps */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->indicator_maps.maps; - xcb_block_len += _aux->indicator_maps.nIndicators * sizeof(xcb_xkb_indicator_map_t); - xcb_parts[xcb_parts_idx].iov_len = _aux->indicator_maps.nIndicators * sizeof(xcb_xkb_indicator_map_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); - } - if((reported & XCB_XKB_GBN_DETAIL_KEY_NAMES) || - (reported & XCB_XKB_GBN_DETAIL_OTHER_NAMES)) { - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_type */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyname_type; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyDeviceID */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyDeviceID; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_sequence */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyname_sequence; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_length */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyname_length; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.which */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.which; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMinKeyCode */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyMinKeyCode; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMaxKeyCode */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.keyMaxKeyCode; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nTypes */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nTypes; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.groupNames */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.groupNames; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.virtualMods */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.virtualMods; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.firstKey */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.firstKey; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_keycode_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeys */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nKeys; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.indicators */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.indicators; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nRadioGroups */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nRadioGroups; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeyAliases */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nKeyAliases; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKTLevels */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->key_names.nKTLevels; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.pad0 */ - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_block_len += sizeof(uint8_t)*4; - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t)*4; - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* valueList */ - xcb_parts[xcb_parts_idx].iov_base = (char *)0; - xcb_block_len += xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->key_names.nTypes, _aux->key_names.nKTLevels, _aux->key_names.indicators, _aux->key_names.virtualMods, _aux->key_names.groupNames, _aux->key_names.nKeys, _aux->key_names.nKeyAliases, _aux->key_names.nRadioGroups, _aux->key_names.which, &_aux->key_names.valueList); - xcb_parts[xcb_parts_idx].iov_len = xcb_xkb_get_kbd_by_name_replies_key_names_value_list_serialize(&xcb_parts[xcb_parts_idx].iov_base, _aux->key_names.nTypes, _aux->key_names.nKTLevels, _aux->key_names.indicators, _aux->key_names.virtualMods, _aux->key_names.groupNames, _aux->key_names.nKeys, _aux->key_names.nKeyAliases, _aux->key_names.nRadioGroups, _aux->key_names.which, &_aux->key_names.valueList); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t); - } - if(reported & XCB_XKB_GBN_DETAIL_GEOMETRY) { - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_type */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometry_type; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryDeviceID */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometryDeviceID; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_sequence */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometry_sequence; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_length */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometry_length; - xcb_block_len += sizeof(uint32_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.name */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.name; - xcb_block_len += sizeof(xcb_atom_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_atom_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_atom_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryFound */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.geometryFound; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.pad0 */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &xcb_pad; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.widthMM */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.widthMM; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.heightMM */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.heightMM; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nProperties */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nProperties; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nColors */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nColors; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nShapes */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nShapes; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nSections */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nSections; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nDoodads */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nDoodads; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nKeyAliases */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.nKeyAliases; - xcb_block_len += sizeof(uint16_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint16_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.baseColorNdx */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.baseColorNdx; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.labelColorNdx */ - xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->geometry.labelColorNdx; - xcb_block_len += sizeof(uint8_t); - xcb_parts[xcb_parts_idx].iov_len = sizeof(uint8_t); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - /* labelFont */ - xcb_parts[xcb_parts_idx].iov_base = (char *) _aux->geometry.labelFont; - xcb_block_len += xcb_xkb_counted_string_16_sizeof(_aux->geometry.labelFont); - xcb_parts[xcb_parts_idx].iov_len = xcb_xkb_counted_string_16_sizeof(_aux->geometry.labelFont); - xcb_parts_idx++; - xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; - xcb_parts[xcb_parts_idx].iov_len = xcb_pad; - xcb_parts_idx++; - xcb_pad = 0; - } - xcb_block_len = 0; - - if (NULL == xcb_out) { - /* allocate memory */ - xcb_out = malloc(xcb_buffer_len); - *_buffer = xcb_out; - } - - xcb_tmp = xcb_out; - for(i=0; itypes.getmap_type = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.typeDeviceID */ - _aux->types.typeDeviceID = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_sequence */ - _aux->types.getmap_sequence = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.getmap_length */ - _aux->types.getmap_length = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.pad0 */ - _aux->types.pad0[0] = *(uint8_t *)xcb_tmp; - _aux->types.pad0[1] = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t) * 2; - xcb_tmp += sizeof(uint8_t) * 2; - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMinKeyCode */ - _aux->types.typeMinKeyCode = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.typeMaxKeyCode */ - _aux->types.typeMaxKeyCode = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.present */ - _aux->types.present = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstType */ - _aux->types.firstType = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nTypes */ - _aux->types.nTypes = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalTypes */ - _aux->types.totalTypes = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeySym */ - _aux->types.firstKeySym = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalSyms */ - _aux->types.totalSyms = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeySyms */ - _aux->types.nKeySyms = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyAction */ - _aux->types.firstKeyAction = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalActions */ - _aux->types.totalActions = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyActions */ - _aux->types.nKeyActions = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyBehavior */ - _aux->types.firstKeyBehavior = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyBehaviors */ - _aux->types.nKeyBehaviors = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyBehaviors */ - _aux->types.totalKeyBehaviors = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstKeyExplicit */ - _aux->types.firstKeyExplicit = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nKeyExplicit */ - _aux->types.nKeyExplicit = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalKeyExplicit */ - _aux->types.totalKeyExplicit = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstModMapKey */ - _aux->types.firstModMapKey = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nModMapKeys */ - _aux->types.nModMapKeys = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalModMapKeys */ - _aux->types.totalModMapKeys = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.firstVModMapKey */ - _aux->types.firstVModMapKey = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.nVModMapKeys */ - _aux->types.nVModMapKeys = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.totalVModMapKeys */ - _aux->types.totalVModMapKeys = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.pad1 */ - _aux->types.pad1 = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.types.virtualMods */ - _aux->types.virtualMods = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* map */ - xcb_block_len += xcb_xkb_get_kbd_by_name_replies_types_map_unpack(xcb_tmp, _aux->types.nTypes, _aux->types.nKeySyms, _aux->types.nKeyActions, _aux->types.totalActions, _aux->types.totalKeyBehaviors, _aux->types.virtualMods, _aux->types.totalKeyExplicit, _aux->types.totalModMapKeys, _aux->types.totalVModMapKeys, _aux->types.present, &_aux->types.map); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_types_map_t); - } - if(reported & XCB_XKB_GBN_DETAIL_COMPAT_MAP) { - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_type */ - _aux->compat_map.compatmap_type = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatDeviceID */ - _aux->compat_map.compatDeviceID = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_sequence */ - _aux->compat_map.compatmap_sequence = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.compatmap_length */ - _aux->compat_map.compatmap_length = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.groupsRtrn */ - _aux->compat_map.groupsRtrn = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad0 */ - _aux->compat_map.pad0 = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.firstSIRtrn */ - _aux->compat_map.firstSIRtrn = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nSIRtrn */ - _aux->compat_map.nSIRtrn = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.nTotalSI */ - _aux->compat_map.nTotalSI = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.compat_map.pad1 */ - _aux->compat_map.pad1[0] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[1] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[2] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[3] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[4] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[5] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[6] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[7] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[8] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[9] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[10] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[11] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[12] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[13] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[14] = *(uint8_t *)xcb_tmp; - _aux->compat_map.pad1[15] = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t) * 16; - xcb_tmp += sizeof(uint8_t) * 16; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* si_rtrn */ - _aux->compat_map.si_rtrn = (xcb_xkb_sym_interpret_t *)xcb_tmp; - xcb_block_len += _aux->compat_map.nSIRtrn * sizeof(xcb_xkb_sym_interpret_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_sym_interpret_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* group_rtrn */ - _aux->compat_map.group_rtrn = (xcb_xkb_mod_def_t *)xcb_tmp; - xcb_block_len += xcb_popcount(_aux->compat_map.groupsRtrn) * sizeof(xcb_xkb_mod_def_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_mod_def_t); - } - if(reported & XCB_XKB_GBN_DETAIL_INDICATOR_MAPS) { - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_type */ - _aux->indicator_maps.indicatormap_type = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatorDeviceID */ - _aux->indicator_maps.indicatorDeviceID = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_sequence */ - _aux->indicator_maps.indicatormap_sequence = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.indicatormap_length */ - _aux->indicator_maps.indicatormap_length = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.which */ - _aux->indicator_maps.which = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.realIndicators */ - _aux->indicator_maps.realIndicators = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.nIndicators */ - _aux->indicator_maps.nIndicators = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.indicator_maps.pad0 */ - _aux->indicator_maps.pad0[0] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[1] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[2] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[3] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[4] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[5] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[6] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[7] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[8] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[9] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[10] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[11] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[12] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[13] = *(uint8_t *)xcb_tmp; - _aux->indicator_maps.pad0[14] = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t) * 15; - xcb_tmp += sizeof(uint8_t) * 15; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* maps */ - _aux->indicator_maps.maps = (xcb_xkb_indicator_map_t *)xcb_tmp; - xcb_block_len += _aux->indicator_maps.nIndicators * sizeof(xcb_xkb_indicator_map_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_indicator_map_t); - } - if((reported & XCB_XKB_GBN_DETAIL_KEY_NAMES) || - (reported & XCB_XKB_GBN_DETAIL_OTHER_NAMES)) { - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_type */ - _aux->key_names.keyname_type = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyDeviceID */ - _aux->key_names.keyDeviceID = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_sequence */ - _aux->key_names.keyname_sequence = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyname_length */ - _aux->key_names.keyname_length = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.which */ - _aux->key_names.which = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMinKeyCode */ - _aux->key_names.keyMinKeyCode = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.keyMaxKeyCode */ - _aux->key_names.keyMaxKeyCode = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nTypes */ - _aux->key_names.nTypes = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.groupNames */ - _aux->key_names.groupNames = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.virtualMods */ - _aux->key_names.virtualMods = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.firstKey */ - _aux->key_names.firstKey = *(xcb_keycode_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_keycode_t); - xcb_tmp += sizeof(xcb_keycode_t); - xcb_align_to = ALIGNOF(xcb_keycode_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeys */ - _aux->key_names.nKeys = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.indicators */ - _aux->key_names.indicators = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nRadioGroups */ - _aux->key_names.nRadioGroups = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKeyAliases */ - _aux->key_names.nKeyAliases = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.nKTLevels */ - _aux->key_names.nKTLevels = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.key_names.pad0 */ - _aux->key_names.pad0[0] = *(uint8_t *)xcb_tmp; - _aux->key_names.pad0[1] = *(uint8_t *)xcb_tmp; - _aux->key_names.pad0[2] = *(uint8_t *)xcb_tmp; - _aux->key_names.pad0[3] = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t) * 4; - xcb_tmp += sizeof(uint8_t) * 4; - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* valueList */ - xcb_block_len += xcb_xkb_get_kbd_by_name_replies_key_names_value_list_unpack(xcb_tmp, _aux->key_names.nTypes, _aux->key_names.nKTLevels, _aux->key_names.indicators, _aux->key_names.virtualMods, _aux->key_names.groupNames, _aux->key_names.nKeys, _aux->key_names.nKeyAliases, _aux->key_names.nRadioGroups, _aux->key_names.which, &_aux->key_names.valueList); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_get_kbd_by_name_replies_key_names_value_list_t); - } - if(reported & XCB_XKB_GBN_DETAIL_GEOMETRY) { - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_type */ - _aux->geometry.geometry_type = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryDeviceID */ - _aux->geometry.geometryDeviceID = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_sequence */ - _aux->geometry.geometry_sequence = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometry_length */ - _aux->geometry.geometry_length = *(uint32_t *)xcb_tmp; - xcb_block_len += sizeof(uint32_t); - xcb_tmp += sizeof(uint32_t); - xcb_align_to = ALIGNOF(uint32_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.name */ - _aux->geometry.name = *(xcb_atom_t *)xcb_tmp; - xcb_block_len += sizeof(xcb_atom_t); - xcb_tmp += sizeof(xcb_atom_t); - xcb_align_to = ALIGNOF(xcb_atom_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.geometryFound */ - _aux->geometry.geometryFound = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.pad0 */ - _aux->geometry.pad0 = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.widthMM */ - _aux->geometry.widthMM = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.heightMM */ - _aux->geometry.heightMM = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nProperties */ - _aux->geometry.nProperties = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nColors */ - _aux->geometry.nColors = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nShapes */ - _aux->geometry.nShapes = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nSections */ - _aux->geometry.nSections = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nDoodads */ - _aux->geometry.nDoodads = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.nKeyAliases */ - _aux->geometry.nKeyAliases = *(uint16_t *)xcb_tmp; - xcb_block_len += sizeof(uint16_t); - xcb_tmp += sizeof(uint16_t); - xcb_align_to = ALIGNOF(uint16_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.baseColorNdx */ - _aux->geometry.baseColorNdx = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* xcb_xkb_get_kbd_by_name_replies_t.geometry.labelColorNdx */ - _aux->geometry.labelColorNdx = *(uint8_t *)xcb_tmp; - xcb_block_len += sizeof(uint8_t); - xcb_tmp += sizeof(uint8_t); - xcb_align_to = ALIGNOF(uint8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* labelFont */ - _aux->geometry.labelFont = (xcb_xkb_counted_string_16_t *)xcb_tmp; - xcb_block_len += xcb_xkb_counted_string_16_sizeof(xcb_tmp); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_counted_string_16_t); - } - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - -int -xcb_xkb_get_kbd_by_name_replies_sizeof (const void *_buffer /**< */, - uint16_t reported /**< */) -{ - xcb_xkb_get_kbd_by_name_replies_t _aux; - return xcb_xkb_get_kbd_by_name_replies_unpack(_buffer, reported, &_aux); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_cookie_t xcb_xkb_get_kbd_by_name - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t need - ** @param uint16_t want - ** @param uint8_t load - ** @returns xcb_xkb_get_kbd_by_name_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_cookie_t -xcb_xkb_get_kbd_by_name (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t need /**< */, - uint16_t want /**< */, - uint8_t load /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_KBD_BY_NAME, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_kbd_by_name_cookie_t xcb_ret; - xcb_xkb_get_kbd_by_name_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.need = need; - xcb_out.want = want; - xcb_out.load = load; - xcb_out.pad0 = 0; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_cookie_t xcb_xkb_get_kbd_by_name_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t need - ** @param uint16_t want - ** @param uint8_t load - ** @returns xcb_xkb_get_kbd_by_name_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_cookie_t -xcb_xkb_get_kbd_by_name_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t need /**< */, - uint16_t want /**< */, - uint8_t load /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_KBD_BY_NAME, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_kbd_by_name_cookie_t xcb_ret; - xcb_xkb_get_kbd_by_name_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.need = need; - xcb_out.want = want; - xcb_out.load = load; - xcb_out.pad0 = 0; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_replies_t * xcb_xkb_get_kbd_by_name_replies - ** - ** @param const xcb_xkb_get_kbd_by_name_reply_t *R - ** @returns xcb_xkb_get_kbd_by_name_replies_t * - ** - *****************************************************************************/ - -void * -xcb_xkb_get_kbd_by_name_replies (const xcb_xkb_get_kbd_by_name_reply_t *R /**< */) -{ - return (void *) (R + 1); -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_kbd_by_name_reply_t * xcb_xkb_get_kbd_by_name_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_kbd_by_name_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_kbd_by_name_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_kbd_by_name_reply_t * -xcb_xkb_get_kbd_by_name_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_kbd_by_name_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_kbd_by_name_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_get_device_info_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_get_device_info_reply_t *_aux = (xcb_xkb_get_device_info_reply_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_xkb_get_device_info_reply_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* name */ - xcb_block_len += _aux->nameLen * sizeof(xcb_xkb_string8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_string8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* btnActions */ - xcb_block_len += _aux->nBtnsRtrn * sizeof(xcb_xkb_action_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* leds */ - for(i=0; i<_aux->nDeviceLedFBs; i++) { - xcb_tmp_len = xcb_xkb_device_led_info_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_device_led_info_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_device_info_cookie_t xcb_xkb_get_device_info - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t wanted - ** @param uint8_t allButtons - ** @param uint8_t firstButton - ** @param uint8_t nButtons - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @returns xcb_xkb_get_device_info_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_device_info_cookie_t -xcb_xkb_get_device_info (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t wanted /**< */, - uint8_t allButtons /**< */, - uint8_t firstButton /**< */, - uint8_t nButtons /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_DEVICE_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_device_info_cookie_t xcb_ret; - xcb_xkb_get_device_info_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.wanted = wanted; - xcb_out.allButtons = allButtons; - xcb_out.firstButton = firstButton; - xcb_out.nButtons = nButtons; - xcb_out.pad0 = 0; - xcb_out.ledClass = ledClass; - xcb_out.ledID = ledID; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_device_info_cookie_t xcb_xkb_get_device_info_unchecked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint16_t wanted - ** @param uint8_t allButtons - ** @param uint8_t firstButton - ** @param uint8_t nButtons - ** @param xcb_xkb_led_class_spec_t ledClass - ** @param xcb_xkb_id_spec_t ledID - ** @returns xcb_xkb_get_device_info_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_get_device_info_cookie_t -xcb_xkb_get_device_info_unchecked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint16_t wanted /**< */, - uint8_t allButtons /**< */, - uint8_t firstButton /**< */, - uint8_t nButtons /**< */, - xcb_xkb_led_class_spec_t ledClass /**< */, - xcb_xkb_id_spec_t ledID /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 2, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_GET_DEVICE_INFO, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[4]; - xcb_xkb_get_device_info_cookie_t xcb_ret; - xcb_xkb_get_device_info_request_t xcb_out; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.wanted = wanted; - xcb_out.allButtons = allButtons; - xcb_out.firstButton = firstButton; - xcb_out.nButtons = nButtons; - xcb_out.pad0 = 0; - xcb_out.ledClass = ledClass; - xcb_out.ledID = ledID; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_string8_t * xcb_xkb_get_device_info_name - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_string8_t * - ** - *****************************************************************************/ - -xcb_xkb_string8_t * -xcb_xkb_get_device_info_name (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - return (xcb_xkb_string8_t *) (R + 1); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_device_info_name_length - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_device_info_name_length (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - return R->nameLen; -} - - -/***************************************************************************** - ** - ** xcb_generic_iterator_t xcb_xkb_get_device_info_name_end - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_generic_iterator_t - ** - *****************************************************************************/ - -xcb_generic_iterator_t -xcb_xkb_get_device_info_name_end (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t i; - i.data = ((xcb_xkb_string8_t *) (R + 1)) + (R->nameLen); - i.rem = 0; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_t * xcb_xkb_get_device_info_btn_actions - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_action_t * - ** - *****************************************************************************/ - -xcb_xkb_action_t * -xcb_xkb_get_device_info_btn_actions (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - xcb_generic_iterator_t prev = xcb_xkb_get_device_info_name_end(R); - return (xcb_xkb_action_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_action_t, prev.index) + 0); -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_device_info_btn_actions_length - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_device_info_btn_actions_length (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - return R->nBtnsRtrn; -} - - -/***************************************************************************** - ** - ** xcb_xkb_action_iterator_t xcb_xkb_get_device_info_btn_actions_iterator - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_action_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_action_iterator_t -xcb_xkb_get_device_info_btn_actions_iterator (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - xcb_xkb_action_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_get_device_info_name_end(R); - i.data = (xcb_xkb_action_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_action_t, prev.index)); - i.rem = R->nBtnsRtrn; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** int xcb_xkb_get_device_info_leds_length - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns int - ** - *****************************************************************************/ - -int -xcb_xkb_get_device_info_leds_length (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - return R->nDeviceLedFBs; -} - - -/***************************************************************************** - ** - ** xcb_xkb_device_led_info_iterator_t xcb_xkb_get_device_info_leds_iterator - ** - ** @param const xcb_xkb_get_device_info_reply_t *R - ** @returns xcb_xkb_device_led_info_iterator_t - ** - *****************************************************************************/ - -xcb_xkb_device_led_info_iterator_t -xcb_xkb_get_device_info_leds_iterator (const xcb_xkb_get_device_info_reply_t *R /**< */) -{ - xcb_xkb_device_led_info_iterator_t i; - xcb_generic_iterator_t prev = xcb_xkb_action_end(xcb_xkb_get_device_info_btn_actions_iterator(R)); - i.data = (xcb_xkb_device_led_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_xkb_device_led_info_t, prev.index)); - i.rem = R->nDeviceLedFBs; - i.index = (char *) i.data - (char *) R; - return i; -} - - -/***************************************************************************** - ** - ** xcb_xkb_get_device_info_reply_t * xcb_xkb_get_device_info_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_get_device_info_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_get_device_info_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_get_device_info_reply_t * -xcb_xkb_get_device_info_reply (xcb_connection_t *c /**< */, - xcb_xkb_get_device_info_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_get_device_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - -int -xcb_xkb_set_device_info_sizeof (const void *_buffer /**< */) -{ - char *xcb_tmp = (char *)_buffer; - const xcb_xkb_set_device_info_request_t *_aux = (xcb_xkb_set_device_info_request_t *)_buffer; - unsigned int xcb_buffer_len = 0; - unsigned int xcb_block_len = 0; - unsigned int xcb_pad = 0; - unsigned int xcb_align_to = 0; - - unsigned int i; - unsigned int xcb_tmp_len; - - xcb_block_len += sizeof(xcb_xkb_set_device_info_request_t); - xcb_tmp += xcb_block_len; - xcb_buffer_len += xcb_block_len; - xcb_block_len = 0; - /* btnActions */ - xcb_block_len += _aux->nBtns * sizeof(xcb_xkb_action_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_action_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - /* leds */ - for(i=0; i<_aux->nDeviceLedFBs; i++) { - xcb_tmp_len = xcb_xkb_device_led_info_sizeof(xcb_tmp); - xcb_block_len += xcb_tmp_len; - xcb_tmp += xcb_tmp_len; - } - xcb_align_to = ALIGNOF(xcb_xkb_device_led_info_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_void_cookie_t xcb_xkb_set_device_info_checked - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_device_spec_t deviceSpec - ** @param uint8_t firstBtn - ** @param uint8_t nBtns - ** @param uint16_t change - ** @param uint16_t nDeviceLedFBs - ** @param const xcb_xkb_action_t *btnActions - ** @param const xcb_xkb_device_led_info_t *leds - ** @returns xcb_void_cookie_t - ** - *****************************************************************************/ - -xcb_void_cookie_t -xcb_xkb_set_device_info_checked (xcb_connection_t *c /**< */, - xcb_xkb_device_spec_t deviceSpec /**< */, - uint8_t firstBtn /**< */, - uint8_t nBtns /**< */, - uint16_t change /**< */, - uint16_t nDeviceLedFBs /**< */, - const xcb_xkb_action_t *btnActions /**< */, - const xcb_xkb_device_led_info_t *leds /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 6, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_DEVICE_INFO, - /* isvoid */ 1 - }; - - struct iovec xcb_parts[8]; - xcb_void_cookie_t xcb_ret; - xcb_xkb_set_device_info_request_t xcb_out; - unsigned int i; - unsigned int xcb_tmp_len; - char *xcb_tmp; - - xcb_out.deviceSpec = deviceSpec; - xcb_out.firstBtn = firstBtn; - xcb_out.nBtns = nBtns; - xcb_out.change = change; - xcb_out.nDeviceLedFBs = nDeviceLedFBs; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_action_t btnActions */ - xcb_parts[4].iov_base = (char *) btnActions; - xcb_parts[4].iov_len = nBtns * sizeof(xcb_xkb_action_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - /* xcb_xkb_device_led_info_t leds */ - xcb_parts[6].iov_base = (char *) leds; - xcb_parts[6].iov_len = 0; - xcb_tmp = (char *)leds; - for(i=0; imsgLength * sizeof(xcb_xkb_string8_t); - xcb_tmp += xcb_block_len; - xcb_align_to = ALIGNOF(xcb_xkb_string8_t); - /* insert padding */ - xcb_pad = -xcb_block_len & (xcb_align_to - 1); - xcb_buffer_len += xcb_block_len + xcb_pad; - if (0 != xcb_pad) { - xcb_tmp += xcb_pad; - xcb_pad = 0; - } - xcb_block_len = 0; - - return xcb_buffer_len; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_debugging_flags_cookie_t xcb_xkb_set_debugging_flags - ** - ** @param xcb_connection_t *c - ** @param uint16_t msgLength - ** @param uint32_t affectFlags - ** @param uint32_t flags - ** @param uint32_t affectCtrls - ** @param uint32_t ctrls - ** @param const xcb_xkb_string8_t *message - ** @returns xcb_xkb_set_debugging_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_set_debugging_flags_cookie_t -xcb_xkb_set_debugging_flags (xcb_connection_t *c /**< */, - uint16_t msgLength /**< */, - uint32_t affectFlags /**< */, - uint32_t flags /**< */, - uint32_t affectCtrls /**< */, - uint32_t ctrls /**< */, - const xcb_xkb_string8_t *message /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_DEBUGGING_FLAGS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[6]; - xcb_xkb_set_debugging_flags_cookie_t xcb_ret; - xcb_xkb_set_debugging_flags_request_t xcb_out; - - xcb_out.msgLength = msgLength; - memset(xcb_out.pad0, 0, 2); - xcb_out.affectFlags = affectFlags; - xcb_out.flags = flags; - xcb_out.affectCtrls = affectCtrls; - xcb_out.ctrls = ctrls; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_string8_t message */ - xcb_parts[4].iov_base = (char *) message; - xcb_parts[4].iov_len = msgLength * sizeof(xcb_xkb_string8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_debugging_flags_cookie_t xcb_xkb_set_debugging_flags_unchecked - ** - ** @param xcb_connection_t *c - ** @param uint16_t msgLength - ** @param uint32_t affectFlags - ** @param uint32_t flags - ** @param uint32_t affectCtrls - ** @param uint32_t ctrls - ** @param const xcb_xkb_string8_t *message - ** @returns xcb_xkb_set_debugging_flags_cookie_t - ** - *****************************************************************************/ - -xcb_xkb_set_debugging_flags_cookie_t -xcb_xkb_set_debugging_flags_unchecked (xcb_connection_t *c /**< */, - uint16_t msgLength /**< */, - uint32_t affectFlags /**< */, - uint32_t flags /**< */, - uint32_t affectCtrls /**< */, - uint32_t ctrls /**< */, - const xcb_xkb_string8_t *message /**< */) -{ - static const xcb_protocol_request_t xcb_req = { - /* count */ 4, - /* ext */ &xcb_xkb_id, - /* opcode */ XCB_XKB_SET_DEBUGGING_FLAGS, - /* isvoid */ 0 - }; - - struct iovec xcb_parts[6]; - xcb_xkb_set_debugging_flags_cookie_t xcb_ret; - xcb_xkb_set_debugging_flags_request_t xcb_out; - - xcb_out.msgLength = msgLength; - memset(xcb_out.pad0, 0, 2); - xcb_out.affectFlags = affectFlags; - xcb_out.flags = flags; - xcb_out.affectCtrls = affectCtrls; - xcb_out.ctrls = ctrls; - - xcb_parts[2].iov_base = (char *) &xcb_out; - xcb_parts[2].iov_len = sizeof(xcb_out); - xcb_parts[3].iov_base = 0; - xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; - /* xcb_xkb_string8_t message */ - xcb_parts[4].iov_base = (char *) message; - xcb_parts[4].iov_len = msgLength * sizeof(xcb_xkb_string8_t); - xcb_parts[5].iov_base = 0; - xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; - - xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); - return xcb_ret; -} - - -/***************************************************************************** - ** - ** xcb_xkb_set_debugging_flags_reply_t * xcb_xkb_set_debugging_flags_reply - ** - ** @param xcb_connection_t *c - ** @param xcb_xkb_set_debugging_flags_cookie_t cookie - ** @param xcb_generic_error_t **e - ** @returns xcb_xkb_set_debugging_flags_reply_t * - ** - *****************************************************************************/ - -xcb_xkb_set_debugging_flags_reply_t * -xcb_xkb_set_debugging_flags_reply (xcb_connection_t *c /**< */, - xcb_xkb_set_debugging_flags_cookie_t cookie /**< */, - xcb_generic_error_t **e /**< */) -{ - return (xcb_xkb_set_debugging_flags_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); -} - diff --git a/src/3rdparty/xcb/qt_attribution.json b/src/3rdparty/xcb/qt_attribution.json index 30b9af3818..a04e1acdc5 100644 --- a/src/3rdparty/xcb/qt_attribution.json +++ b/src/3rdparty/xcb/qt_attribution.json @@ -1,24 +1,14 @@ { - "Id": "xcb", - "Name": "XCB", + "Id": "xcb-xinput", + "Name": "XCB-XInput", "QDocModule": "qtgui", - "QtUsage": "Optionally used in xcb platform plugin if configured with -qt-xcb.", - - "Description": "Selected xcb libraries.", + "QtUsage": "Used in XCB platform plugin if xcb-xinput was not present on the system + during Qt configuration or -bundled-xcb-xinput switch was used. To force using xcb-xinput from + the system, pass -no-bundled-xcb-xinput.", + "Description": "XInput 2 extension for XCB (The X protocol C-language Binding) library.", "Homepage": "https://xcb.freedesktop.org/", "License": "MIT License", "LicenseId": "MIT", "LicenseFile": "LICENSE", - "Copyright": "Copyright © 2000 Keith Packard -Copyright © 2006 Jamey Sharp -Copyright © 2007-2008 Vincent Torri -Copyright © 2007 Bart Massey -Copyright © 2008-2009 Julien Danjou -Copyright © 2008 Arnaud Fontaine -Copyright © 2008 Bart Massey -Copyright © 2008 Ian Osgood -Copyright © 2008 Jamey Sharp -Copyright © 2008 Josh Triplett -Copyright © 2008 Ulrich Eckhardt -" + "Copyright": "Copyright (C) Free Software Foundation, Inc." } diff --git a/src/3rdparty/xcb/sysinclude/render.h b/src/3rdparty/xcb/sysinclude/render.h deleted file mode 100644 index 00107aa169..0000000000 --- a/src/3rdparty/xcb/sysinclude/render.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/src/3rdparty/xcb/sysinclude/xcb.h b/src/3rdparty/xcb/sysinclude/xcb.h deleted file mode 100644 index e637314c29..0000000000 --- a/src/3rdparty/xcb/sysinclude/xcb.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/src/3rdparty/xcb/sysinclude/xcbext.h b/src/3rdparty/xcb/sysinclude/xcbext.h deleted file mode 100644 index c54f14d772..0000000000 --- a/src/3rdparty/xcb/sysinclude/xcbext.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/src/3rdparty/xcb/sysinclude/xproto.h b/src/3rdparty/xcb/sysinclude/xproto.h deleted file mode 100644 index 671249a4d7..0000000000 --- a/src/3rdparty/xcb/sysinclude/xproto.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/src/3rdparty/xcb/xcb-util-image/xcb_image.c b/src/3rdparty/xcb/xcb-util-image/xcb_image.c deleted file mode 100644 index e426cbd00c..0000000000 --- a/src/3rdparty/xcb/xcb-util-image/xcb_image.c +++ /dev/null @@ -1,1011 +0,0 @@ -/* Copyright © 2007 Bart Massey - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or their - * institutions shall not be used in advertising or otherwise to promote the - * sale, use or other dealings in this Software without prior written - * authorization from the authors. - */ - -#include -#include -#include - -#include -#include -#include -#include "xcb_bitops.h" -#include "xcb_image.h" -#define BUILD -#include "xcb_pixel.h" - - -static xcb_format_t * -find_format_by_depth (const xcb_setup_t *setup, uint8_t depth) -{ - xcb_format_t *fmt = xcb_setup_pixmap_formats(setup); - xcb_format_t *fmtend = fmt + xcb_setup_pixmap_formats_length(setup); - for(; fmt != fmtend; ++fmt) - if(fmt->depth == depth) - return fmt; - return 0; -} - - -static xcb_image_format_t -effective_format(xcb_image_format_t format, uint8_t bpp) -{ - if (format == XCB_IMAGE_FORMAT_Z_PIXMAP && bpp != 1) - return format; - return XCB_IMAGE_FORMAT_XY_PIXMAP; -} - - -static int -format_valid (uint8_t depth, uint8_t bpp, uint8_t unit, - xcb_image_format_t format, uint8_t xpad) -{ - xcb_image_format_t ef = effective_format(format, bpp); - if (depth > bpp) - return 0; - switch(ef) { - case XCB_IMAGE_FORMAT_XY_PIXMAP: - switch(unit) { - case 8: - case 16: - case 32: - break; - default: - return 0; - } - if (xpad < bpp) - return 0; - switch (xpad) { - case 8: - case 16: - case 32: - break; - default: - return 0; - } - break; - case XCB_IMAGE_FORMAT_Z_PIXMAP: - switch (bpp) { - case 4: - if (unit != 8) - return 0; - break; - case 8: - case 16: - case 24: - case 32: - if (unit != bpp) - return 0; - break; - default: - return 0; - } - break; - default: - return 0; - } - return 1; -} - - -static int -image_format_valid (xcb_image_t *image) { - return format_valid(image->depth, - image->bpp, - image->unit, - image->format, - image->scanline_pad); -} - - -void -xcb_image_annotate (xcb_image_t *image) -{ - xcb_image_format_t ef = effective_format(image->format, image->bpp); - switch (ef) { - case XCB_IMAGE_FORMAT_XY_PIXMAP: - image->stride = xcb_roundup(image->width, image->scanline_pad) >> 3; - image->size = image->height * image->stride * image->depth; - break; - case XCB_IMAGE_FORMAT_Z_PIXMAP: - image->stride = xcb_roundup((uint32_t)image->width * - (uint32_t)image->bpp, - image->scanline_pad) >> 3; - image->size = image->height * image->stride; - break; - default: - assert(0); - } -} - - -xcb_image_t * -xcb_image_create_native (xcb_connection_t * c, - uint16_t width, - uint16_t height, - xcb_image_format_t format, - uint8_t depth, - void * base, - uint32_t bytes, - uint8_t * data) -{ - const xcb_setup_t * setup = xcb_get_setup(c); - xcb_format_t * fmt; - xcb_image_format_t ef = format; - - if (ef == XCB_IMAGE_FORMAT_Z_PIXMAP && depth == 1) - ef = XCB_IMAGE_FORMAT_XY_PIXMAP; - switch (ef) { - case XCB_IMAGE_FORMAT_XY_BITMAP: - if (depth != 1) - return 0; - /* fall through */ - case XCB_IMAGE_FORMAT_XY_PIXMAP: - if (depth > 1) { - fmt = find_format_by_depth(setup, depth); - if (!fmt) - return 0; - } - return xcb_image_create(width, height, format, - setup->bitmap_format_scanline_pad, - depth, depth, setup->bitmap_format_scanline_unit, - setup->image_byte_order, - setup->bitmap_format_bit_order, - base, bytes, data); - case XCB_IMAGE_FORMAT_Z_PIXMAP: - fmt = find_format_by_depth(setup, depth); - if (!fmt) - return 0; - return xcb_image_create(width, height, format, - fmt->scanline_pad, - fmt->depth, fmt->bits_per_pixel, 0, - setup->image_byte_order, - XCB_IMAGE_ORDER_MSB_FIRST, - base, bytes, data); - default: - assert(0); - } - assert(0); -} - - -xcb_image_t * -xcb_image_create (uint16_t width, - uint16_t height, - xcb_image_format_t format, - uint8_t xpad, - uint8_t depth, - uint8_t bpp, - uint8_t unit, - xcb_image_order_t byte_order, - xcb_image_order_t bit_order, - void * base, - uint32_t bytes, - uint8_t * data) -{ - xcb_image_t * image; - - if (unit == 0) { - switch (format) { - case XCB_IMAGE_FORMAT_XY_BITMAP: - case XCB_IMAGE_FORMAT_XY_PIXMAP: - unit = 32; - break; - case XCB_IMAGE_FORMAT_Z_PIXMAP: - if (bpp == 1) { - unit = 32; - break; - } - if (bpp < 8) { - unit = 8; - break; - } - unit = bpp; - break; - } - } - if (!format_valid(depth, bpp, unit, format, xpad)) - return 0; - image = malloc(sizeof(*image)); - if (image == 0) - return 0; - image->width = width; - image->height = height; - image->format = format; - image->scanline_pad = xpad; - image->depth = depth; - image->bpp = bpp; - image->unit = unit; - image->plane_mask = xcb_mask(depth); - image->byte_order = byte_order; - image->bit_order = bit_order; - xcb_image_annotate(image); - - /* - * Ways this function can be called: - * * with data: we fail if bytes isn't - * large enough, else leave well enough alone. - * * with base and !data: if bytes is zero, we - * default; otherwise we fail if bytes isn't - * large enough, else fill in data - * * with !base and !data: we malloc storage - * for the data, save that address as the base, - * and fail if malloc does. - * - * When successful, we establish the invariant that data - * points at sufficient storage that may have been - * supplied, and base is set iff it should be - * auto-freed when the image is destroyed. - * - * Except as a special case when base = 0 && data == 0 && - * bytes == ~0 we just return the image structure and let - * the caller deal with getting the allocation right. - */ - if (!base && !data && bytes == ~0) { - image->base = 0; - image->data = 0; - return image; - } - if (!base && data && bytes == 0) - bytes = image->size; - image->base = base; - image->data = data; - if (!image->data) { - if (image->base) { - image->data = image->base; - } else { - bytes = image->size; - image->base = malloc(bytes); - image->data = image->base; - } - } - if (!image->data || bytes < image->size) { - free(image); - return 0; - } - return image; -} - - -void -xcb_image_destroy (xcb_image_t *image) -{ - if (image->base) - free (image->base); - free (image); -} - - -xcb_image_t * -xcb_image_get (xcb_connection_t * conn, - xcb_drawable_t draw, - int16_t x, - int16_t y, - uint16_t width, - uint16_t height, - uint32_t plane_mask, - xcb_image_format_t format) -{ - xcb_get_image_cookie_t image_cookie; - xcb_get_image_reply_t * imrep; - xcb_image_t * image = 0; - uint32_t bytes; - uint8_t * data; - - image_cookie = xcb_get_image(conn, format, draw, x, y, - width, height, plane_mask); - imrep = xcb_get_image_reply(conn, image_cookie, 0); - if (!imrep) - return 0; - bytes = xcb_get_image_data_length(imrep); - data = xcb_get_image_data(imrep); - switch (format) { - case XCB_IMAGE_FORMAT_XY_PIXMAP: - plane_mask &= xcb_mask(imrep->depth); - if (plane_mask != xcb_mask(imrep->depth)) { - xcb_image_t * tmp_image = - xcb_image_create_native(conn, width, height, format, - imrep->depth, 0, 0, 0); - - if (!tmp_image) { - free(imrep); - return 0; - } - - int i; - uint32_t rpm = plane_mask; - uint8_t * src_plane = image->data; - uint8_t * dst_plane = tmp_image->data; - uint32_t size = image->height * image->stride; - - if (tmp_image->bit_order == XCB_IMAGE_ORDER_MSB_FIRST) - rpm = xcb_bit_reverse(plane_mask, imrep->depth); - for (i = 0; i < imrep->depth; i++) { - if (rpm & 1) { - memcpy(dst_plane, src_plane, size); - src_plane += size; - } else { - memset(dst_plane, 0, size); - } - dst_plane += size; - } - tmp_image->plane_mask = plane_mask; - image = tmp_image; - free(imrep); - break; - } - /* fall through */ - case XCB_IMAGE_FORMAT_Z_PIXMAP: - image = xcb_image_create_native(conn, width, height, format, - imrep->depth, imrep, bytes, data); - if (!image) { - free(imrep); - return 0; - } - break; - default: - assert(0); - } - assert(bytes == image->size); - return image; -} - - -xcb_image_t * -xcb_image_native (xcb_connection_t * c, - xcb_image_t * image, - int convert) -{ - xcb_image_t * tmp_image = 0; - const xcb_setup_t * setup = xcb_get_setup(c); - xcb_format_t * fmt = 0; - xcb_image_format_t ef = effective_format(image->format, image->bpp); - uint8_t bpp = 1; - - if (image->depth > 1 || ef == XCB_IMAGE_FORMAT_Z_PIXMAP) { - fmt = find_format_by_depth(setup, image->depth); - /* XXX For now, we don't do depth conversions, even - for xy-pixmaps */ - if (!fmt) - return 0; - bpp = fmt->bits_per_pixel; - } - switch (ef) { - case XCB_IMAGE_FORMAT_XY_PIXMAP: - if (setup->bitmap_format_scanline_unit != image->unit || - setup->bitmap_format_scanline_pad != image->scanline_pad || - setup->image_byte_order != image->byte_order || - setup->bitmap_format_bit_order != image->bit_order || - bpp != image->bpp) { - if (!convert) - return 0; - tmp_image = - xcb_image_create(image->width, image->height, image->format, - setup->bitmap_format_scanline_pad, - image->depth, bpp, - setup->bitmap_format_scanline_unit, - setup->image_byte_order, - setup->bitmap_format_bit_order, - 0, 0, 0); - if (!tmp_image) - return 0; - } - break; - case XCB_IMAGE_FORMAT_Z_PIXMAP: - if (fmt->scanline_pad != image->scanline_pad || - setup->image_byte_order != image->byte_order || - bpp != image->bpp) { - if (!convert) - return 0; - tmp_image = - xcb_image_create(image->width, image->height, image->format, - fmt->scanline_pad, - image->depth, bpp, 0, - setup->image_byte_order, - XCB_IMAGE_ORDER_MSB_FIRST, - 0, 0, 0); - if (!tmp_image) - return 0; - } - break; - default: - assert(0); - } - if (tmp_image) { - if (!xcb_image_convert(image, tmp_image)) { - xcb_image_destroy(tmp_image); - return 0; - } - image = tmp_image; - } - return image; -} - - -xcb_void_cookie_t -xcb_image_put (xcb_connection_t * conn, - xcb_drawable_t draw, - xcb_gcontext_t gc, - xcb_image_t * image, - int16_t x, - int16_t y, - uint8_t left_pad) -{ - return xcb_put_image(conn, image->format, draw, gc, - image->width, image->height, - x, y, left_pad, - image->depth, - image->size, - image->data); -} - - - -/* - * Shm stuff - */ - -xcb_image_t * -xcb_image_shm_put (xcb_connection_t * conn, - xcb_drawable_t draw, - xcb_gcontext_t gc, - xcb_image_t * image, - xcb_shm_segment_info_t shminfo, - int16_t src_x, - int16_t src_y, - int16_t dest_x, - int16_t dest_y, - uint16_t src_width, - uint16_t src_height, - uint8_t send_event) -{ - if (!xcb_image_native(conn, image, 0)) - return 0; - if (!shminfo.shmaddr) - return 0; - xcb_shm_put_image(conn, draw, gc, - image->width, image->height, - src_x, src_y, src_width, src_height, - dest_x, dest_y, - image->depth, image->format, - send_event, - shminfo.shmseg, - image->data - shminfo.shmaddr); - return image; -} - - -int -xcb_image_shm_get (xcb_connection_t * conn, - xcb_drawable_t draw, - xcb_image_t * image, - xcb_shm_segment_info_t shminfo, - int16_t x, - int16_t y, - uint32_t plane_mask) -{ - xcb_shm_get_image_reply_t * setup; - xcb_shm_get_image_cookie_t cookie; - xcb_generic_error_t * err = 0; - - if (!shminfo.shmaddr) - return 0; - cookie = xcb_shm_get_image(conn, draw, - x, y, - image->width, image->height, - plane_mask, - image->format, - shminfo.shmseg, - image->data - shminfo.shmaddr); - setup = xcb_shm_get_image_reply(conn, cookie, &err); - if (err) { - fprintf(stderr, "ShmGetImageReply error %d\n", (int)err->error_code); - free(err); - return 0; - } else { - free (setup); - return 1; - } -} - - -static uint32_t -xy_image_byte (xcb_image_t *image, uint32_t x) -{ - x >>= 3; - if (image->byte_order == image->bit_order) - return x; - switch (image->unit) { - default: - case 8: - return x; - case 16: - return x ^ 1; - case 32: - return x ^ 3; - } -} - -static uint32_t -xy_image_bit (xcb_image_t *image, uint32_t x) -{ - x &= 7; - if (image->bit_order == XCB_IMAGE_ORDER_MSB_FIRST) - x = 7 - x; - return x; -} - -/* GetPixel/PutPixel */ - -/* XXX this is the most hideously done cut-and-paste - to below. Any bugs fixed there should be fixed here - and vice versa. */ -void -xcb_image_put_pixel (xcb_image_t *image, - uint32_t x, - uint32_t y, - uint32_t pixel) -{ - uint8_t *row; - - if (x > image->width || y > image->height) - return; - row = image->data + (y * image->stride); - switch (effective_format(image->format, image->bpp)) { - case XCB_IMAGE_FORMAT_XY_BITMAP: - case XCB_IMAGE_FORMAT_XY_PIXMAP: - /* block */ { - int p; - uint32_t plane_mask = image->plane_mask; - uint8_t * plane = row; - uint32_t byte = xy_image_byte(image, x); - uint32_t bit = xy_image_bit(image,x); - uint8_t mask = 1 << bit; - - for (p = image->bpp - 1; p >= 0; p--) { - if ((plane_mask >> p) & 1) { - uint8_t * bp = plane + byte; - uint8_t this_bit = ((pixel >> p) & 1) << bit; - *bp = (*bp & ~mask) | this_bit; - } - plane += image->stride * image->height; - } - } - break; - case XCB_IMAGE_FORMAT_Z_PIXMAP: - switch (image->bpp) { - uint32_t mask; - case 4: - mask = 0xf; - pixel &= 0xf; - if ((x & 1) == - (image->byte_order == XCB_IMAGE_ORDER_MSB_FIRST)) { - pixel <<= 4; - mask <<= 4; - } - row[x >> 1] = (row[x >> 1] & ~mask) | pixel; - break; - case 8: - row[x] = pixel; - break; - case 16: - switch (image->byte_order) { - case XCB_IMAGE_ORDER_LSB_FIRST: - row[x << 1] = pixel; - row[(x << 1) + 1] = pixel >> 8; - break; - case XCB_IMAGE_ORDER_MSB_FIRST: - row[x << 1] = pixel >> 8; - row[(x << 1) + 1] = pixel; - break; - } - break; - case 24: - switch (image->byte_order) { - case XCB_IMAGE_ORDER_LSB_FIRST: - row[x * 3] = pixel; - row[x * 3 + 1] = pixel >> 8; - row[x * 3 + 2] = pixel >> 16; - break; - case XCB_IMAGE_ORDER_MSB_FIRST: - row[x * 3] = pixel >> 16; - row[x * 3 + 1] = pixel >> 8; - row[x * 3 + 2] = pixel; - break; - } - break; - case 32: - switch (image->byte_order) { - case XCB_IMAGE_ORDER_LSB_FIRST: - row[x << 2] = pixel; - row[(x << 2) + 1] = pixel >> 8; - row[(x << 2) + 2] = pixel >> 16; - row[(x << 2) + 3] = pixel >> 24; - break; - case XCB_IMAGE_ORDER_MSB_FIRST: - row[x << 2] = pixel >> 24; - row[(x << 2) + 1] = pixel >> 16; - row[(x << 2) + 2] = pixel >> 8; - row[(x << 2) + 3] = pixel; - break; - } - break; - default: - assert(0); - } - break; - default: - assert(0); - } -} - - -/* XXX this is the most hideously done cut-and-paste - from above. Any bugs fixed there should be fixed here - and vice versa. */ -uint32_t -xcb_image_get_pixel (xcb_image_t *image, - uint32_t x, - uint32_t y) -{ - uint32_t pixel = 0; - uint8_t *row; - - assert(x < image->width && y < image->height); - row = image->data + (y * image->stride); - switch (effective_format(image->format, image->bpp)) { - case XCB_IMAGE_FORMAT_XY_BITMAP: - case XCB_IMAGE_FORMAT_XY_PIXMAP: - /* block */ { - int p; - uint32_t plane_mask = image->plane_mask; - uint8_t * plane = row; - uint32_t byte = xy_image_byte(image, x); - uint32_t bit = xy_image_bit(image,x); - - for (p = image->bpp - 1; p >= 0; p--) { - pixel <<= 1; - if ((plane_mask >> p) & 1) { - uint8_t * bp = plane + byte; - pixel |= (*bp >> bit) & 1; - } - plane += image->stride * image->height; - } - } - return pixel; - case XCB_IMAGE_FORMAT_Z_PIXMAP: - switch (image->bpp) { - case 4: - if ((x & 1) == (image->byte_order == XCB_IMAGE_ORDER_MSB_FIRST)) - return row[x >> 1] >> 4; - return row[x >> 1] & 0xf; - case 8: - return row[x]; - case 16: - switch (image->byte_order) { - case XCB_IMAGE_ORDER_LSB_FIRST: - pixel = row[x << 1]; - pixel |= row[(x << 1) + 1] << 8; - break; - case XCB_IMAGE_ORDER_MSB_FIRST: - pixel = row[x << 1] << 8; - pixel |= row[(x << 1) + 1]; - break; - } - break; - case 24: - switch (image->byte_order) { - case XCB_IMAGE_ORDER_LSB_FIRST: - pixel = row[x * 3]; - pixel |= row[x * 3 + 1] << 8; - pixel |= row[x * 3 + 2] << 16; - break; - case XCB_IMAGE_ORDER_MSB_FIRST: - pixel = row[x * 3] << 16; - pixel |= row[x * 3 + 1] << 8; - pixel |= row[x * 3 + 2]; - break; - } - break; - case 32: - switch (image->byte_order) { - case XCB_IMAGE_ORDER_LSB_FIRST: - pixel = row[x << 2]; - pixel |= row[(x << 2) + 1] << 8; - pixel |= row[(x << 2) + 2] << 16; - pixel |= row[(x << 2) + 3] << 24; - break; - case XCB_IMAGE_ORDER_MSB_FIRST: - pixel = row[x << 2] << 24; - pixel |= row[(x << 2) + 1] << 16; - pixel |= row[(x << 2) + 2] << 8; - pixel |= row[(x << 2) + 3]; - break; - } - break; - default: - assert(0); - } - return pixel; - default: - assert(0); - } -} - - -xcb_image_t * -xcb_image_create_from_bitmap_data (uint8_t * data, - uint32_t width, - uint32_t height) -{ - return xcb_image_create(width, height, XCB_IMAGE_FORMAT_XY_PIXMAP, - 8, 1, 1, 8, - XCB_IMAGE_ORDER_LSB_FIRST, - XCB_IMAGE_ORDER_LSB_FIRST, - 0, 0, data); -} - - -/* - * (Adapted from libX11.) - * - * xcb_create_pixmap_from_bitmap_data: Routine to make a pixmap of - * given depth from user supplied bitmap data. - * D is any drawable on the same screen that the pixmap will be used in. - * Data is a pointer to the bit data, and - * width & height give the size in bits of the pixmap. - * - * The following format is assumed for data: - * - * format=XY (will use XYPixmap for depth 1 and XYBitmap for larger) - * bit_order=LSBFirst - * padding=8 - * bitmap_unit=8 - */ -xcb_pixmap_t -xcb_create_pixmap_from_bitmap_data (xcb_connection_t * display, - xcb_drawable_t d, - uint8_t * data, - uint32_t width, - uint32_t height, - uint32_t depth, - uint32_t fg, - uint32_t bg, - xcb_gcontext_t * gcp) -{ - xcb_pixmap_t pix; - xcb_image_t * image; - xcb_image_t * final_image; - xcb_gcontext_t gc; - uint32_t mask = 0; - xcb_params_gc_t gcv; - - image = xcb_image_create_from_bitmap_data(data, width, height); - if (!image) - return 0; - if (depth > 1) - image->format = XCB_IMAGE_FORMAT_XY_BITMAP; - final_image = xcb_image_native(display, image, 1); - if (!final_image) { - xcb_image_destroy(image); - return 0; - } - pix = xcb_generate_id(display); - xcb_create_pixmap(display, depth, pix, d, width, height); - gc = xcb_generate_id(display); - XCB_AUX_ADD_PARAM(&mask, &gcv, foreground, fg); - XCB_AUX_ADD_PARAM(&mask, &gcv, background, bg); - xcb_aux_create_gc(display, gc, pix, mask, &gcv); - xcb_image_put(display, pix, gc, final_image, 0, 0, 0); - if (final_image != image) - xcb_image_destroy(final_image); - xcb_image_destroy(image); - if (gcp) - *gcp = gc; - else - xcb_free_gc(display, gc); - return pix; -} - - -/* Thanks to Keith Packard for this code */ -static void -swap_image(uint8_t * src, - uint32_t src_stride, - uint8_t * dst, - uint32_t dst_stride, - uint32_t height, - uint32_t byteswap, - int bitswap, - int nibbleswap) -{ - while (height--) { - uint32_t s; - - for (s = 0; s < src_stride; s++) { - uint8_t b; - uint32_t d = s ^ byteswap; - - if (d > dst_stride) - continue; - - b = src[s]; - if (bitswap) - b = xcb_bit_reverse(b, 8); - if (nibbleswap) - b = (b << 4) | (b >> 4); - dst[d] = b; - } - src += src_stride; - dst += dst_stride; - } -} - -/* Which order are bytes in (low two bits), given - * code which accesses an image one byte at a time - */ -static uint32_t -byte_order(xcb_image_t *i) -{ - uint32_t flip = i->byte_order == XCB_IMAGE_ORDER_MSB_FIRST; - - switch (i->bpp) { - default: - case 8: - return 0; - case 16: - return flip; - case 32: - return flip | (flip << 1); - } -} - -static uint32_t -bit_order(xcb_image_t *i) -{ - uint32_t flip = i->byte_order != i->bit_order; - - switch (i->unit) { - default: - case 8: - return 0; - case 16: - return flip; - case 32: - return flip | (flip << 1); - } -} - -/* Convert from one byte order to another by flipping the - * low two bits of the byte index along a scanline - */ -static uint32_t -conversion_byte_swap(xcb_image_t *src, xcb_image_t *dst) -{ - xcb_image_format_t ef = effective_format(src->format, src->bpp); - - /* src_ef == dst_ef in all callers of this function */ - if (ef == XCB_IMAGE_FORMAT_XY_PIXMAP) { - return bit_order(src) ^ bit_order(dst); - } else { - /* src_bpp == dst_bpp in all callers of this function */ - return byte_order(src) ^ byte_order(dst); - } -} - -xcb_image_t * -xcb_image_convert (xcb_image_t * src, - xcb_image_t * dst) -{ - xcb_image_format_t ef = effective_format(src->format, src->bpp); - - /* Things will go horribly wrong here if a bad - image is passed in, so we check some things - up front just to be nice. */ - assert(image_format_valid(src)); - assert(image_format_valid(dst)); - - /* images must be the same size - * (yes, we could copy a sub-set) - */ - if (src->width != dst->width || - src->height != dst->height) - return 0; - - if (ef == effective_format(dst->format, dst->bpp) && - src->bpp == dst->bpp) - { - if (src->unit == dst->unit && - src->scanline_pad == dst->scanline_pad && - src->byte_order == dst->byte_order && - (ef == XCB_IMAGE_FORMAT_Z_PIXMAP || - src->bit_order == dst->bit_order)) { - memcpy(dst->data, src->data, src->size); - } else { - int bitswap = 0; - int nibbleswap = 0; - uint32_t byteswap = conversion_byte_swap(src, dst); - uint32_t height = src->height;; - - if (ef == XCB_IMAGE_FORMAT_Z_PIXMAP) { - if (src->bpp == 4 && src->byte_order != dst->byte_order) - nibbleswap = 1; - } else { - if (src->bit_order != dst->bit_order) - bitswap = 1; - height *= src->depth; - } - swap_image (src->data, src->stride, dst->data, dst->stride, - height, byteswap, bitswap, nibbleswap); - } - } - else - { - uint32_t x; - uint32_t y; - /* General case: Slow pixel copy. Should we optimize - Z24<->Z32 copies of either endianness? */ - for (y = 0; y < src->height; y++) { - for (x = 0; x < src->width; x++) { - uint32_t pixel = xcb_image_get_pixel(src, x, y); - xcb_image_put_pixel(dst, x, y, pixel); - } - } - } - return dst; -} - -xcb_image_t * -xcb_image_subimage(xcb_image_t * image, - uint32_t x, - uint32_t y, - uint32_t width, - uint32_t height, - void * base, - uint32_t bytes, - uint8_t * data) -{ - int i, j; - xcb_image_t * result; - - if (x + width > image->width) - return 0; - if (y + height > image->height) - return 0; - result = xcb_image_create(width, height, image->format, - image->scanline_pad, image->depth, - image->bpp, image->unit, image->byte_order, - image->bit_order, - base, bytes, data); - if (!result) - return 0; - /* XXX FIXME For now, lose on performance. Sorry. */ - for (j = 0; j < height; j++) { - for (i = 0; i < width; i++) { - uint32_t pixel = xcb_image_get_pixel(image, x + i, y + j); - xcb_image_put_pixel(result, i, j, pixel); - } - } - return result; -} diff --git a/src/3rdparty/xcb/xcb-util-keysyms/keysyms.c b/src/3rdparty/xcb/xcb-util-keysyms/keysyms.c deleted file mode 100644 index 7584cccf39..0000000000 --- a/src/3rdparty/xcb/xcb-util-keysyms/keysyms.c +++ /dev/null @@ -1,498 +0,0 @@ -/* - * Copyright © 2008 Ian Osgood - * Copyright © 2008 Jamey Sharp - * Copyright © 2008 Josh Triplett - * Copyright © 2008 Ulrich Eckhardt - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or - * their institutions shall not be used in advertising or otherwise to - * promote the sale, use or other dealings in this Software without - * prior written authorization from the authors. - */ - -#include - -#include -#define XK_MISCELLANY -#define XK_XKB_KEYS -#define XK_LATIN1 -#define XK_LATIN2 -#define XK_LATIN3 -#define XK_LATIN4 -#define XK_CYRILLIC -#define XK_GREEK -#define XK_ARMENIAN -#include - -#include "xcb_keysyms.h" - -/* Private declaration */ -enum tag_t { - TAG_COOKIE, - TAG_VALUE -}; - -struct _XCBKeySymbols -{ - xcb_connection_t *c; - enum tag_t tag; - union { - xcb_get_keyboard_mapping_cookie_t cookie; - xcb_get_keyboard_mapping_reply_t *reply; - } u; -}; - -static void xcb_convert_case(xcb_keysym_t sym, - xcb_keysym_t *lower, - xcb_keysym_t *upper); - -static void xcb_key_symbols_get_reply (xcb_key_symbols_t *syms, - xcb_generic_error_t **e); - -/* public implementation */ - -xcb_key_symbols_t * -xcb_key_symbols_alloc (xcb_connection_t *c) -{ - xcb_key_symbols_t *syms; - xcb_keycode_t min_keycode; - xcb_keycode_t max_keycode; - - if (!c) - return NULL; - - syms = malloc (sizeof (xcb_key_symbols_t)); - if (!syms) - return NULL; - - syms->c = c; - syms->tag = TAG_COOKIE; - - min_keycode = xcb_get_setup (c)->min_keycode; - max_keycode = xcb_get_setup (c)->max_keycode; - - syms->u.cookie = xcb_get_keyboard_mapping(c, - min_keycode, - max_keycode - min_keycode + 1); - - return syms; -} - -void -xcb_key_symbols_free (xcb_key_symbols_t *syms) -{ - if (syms) - { - if (syms->tag == TAG_VALUE) - free (syms->u.reply); - free (syms); - syms = NULL; - } -} - -/* Use of the 'col' parameter: - -A list of KeySyms is associated with each KeyCode. The list is intended -to convey the set of symbols on the corresponding key. If the list -(ignoring trailing NoSymbol entries) is a single KeySym ``K'', then the -list is treated as if it were the list ``K NoSymbol K NoSymbol''. If the -list (ignoring trailing NoSymbol entries) is a pair of KeySyms ``K1 -K2'', then the list is treated as if it were the list ``K1 K2 K1 K2''. -If the list (ignoring trailing NoSymbol entries) is a triple of KeySyms -``K1 K2 K3'', then the list is treated as if it were the list ``K1 K2 K3 -NoSymbol''. When an explicit ``void'' element is desired in the list, -the value VoidSymbol can be used. - -The first four elements of the list are split into two groups of -KeySyms. Group 1 contains the first and second KeySyms; Group 2 contains -the third and fourth KeySyms. Within each group, if the second element -of the group is NoSymbol , then the group should be treated as if the -second element were the same as the first element, except when the first -element is an alphabetic KeySym ``K'' for which both lowercase and -uppercase forms are defined. In that case, the group should be treated -as if the first element were the lowercase form of ``K'' and the second -element were the uppercase form of ``K.'' - -The standard rules for obtaining a KeySym from a KeyPress event make use -of only the Group 1 and Group 2 KeySyms; no interpretation of other -KeySyms in the list is given. Which group to use is determined by the -modifier state. Switching between groups is controlled by the KeySym -named MODE SWITCH, by attaching that KeySym to some KeyCode and -attaching that KeyCode to any one of the modifiers Mod1 through Mod5. -This modifier is called the group modifier. For any KeyCode, Group 1 is -used when the group modifier is off, and Group 2 is used when the group -modifier is on. - -The Lock modifier is interpreted as CapsLock when the KeySym named -XK_Caps_Lock is attached to some KeyCode and that KeyCode is attached to -the Lock modifier. The Lock modifier is interpreted as ShiftLock when -the KeySym named XK_Shift_Lock is attached to some KeyCode and that -KeyCode is attached to the Lock modifier. If the Lock modifier could be -interpreted as both CapsLock and ShiftLock, the CapsLock interpretation -is used. - -The operation of keypad keys is controlled by the KeySym named -XK_Num_Lock, by attaching that KeySym to some KeyCode and attaching that -KeyCode to any one of the modifiers Mod1 through Mod5 . This modifier is -called the numlock modifier. The standard KeySyms with the prefix -``XK_KP_'' in their name are called keypad KeySyms; these are KeySyms -with numeric value in the hexadecimal range 0xFF80 to 0xFFBD inclusive. -In addition, vendor-specific KeySyms in the hexadecimal range 0x11000000 -to 0x1100FFFF are also keypad KeySyms. - -Within a group, the choice of KeySym is determined by applying the first -rule that is satisfied from the following list: - -* The numlock modifier is on and the second KeySym is a keypad KeySym. In - this case, if the Shift modifier is on, or if the Lock modifier is on - and is interpreted as ShiftLock, then the first KeySym is used, - otherwise the second KeySym is used. - -* The Shift and Lock modifiers are both off. In this case, the first - KeySym is used. - -* The Shift modifier is off, and the Lock modifier is on and is - interpreted as CapsLock. In this case, the first KeySym is used, but - if that KeySym is lowercase alphabetic, then the corresponding - uppercase KeySym is used instead. - -* The Shift modifier is on, and the Lock modifier is on and is - interpreted as CapsLock. In this case, the second KeySym is used, but - if that KeySym is lowercase alphabetic, then the corresponding - uppercase KeySym is used instead. - -* The Shift modifier is on, or the Lock modifier is on and is - interpreted as ShiftLock, or both. In this case, the second KeySym is - used. - -*/ - -xcb_keysym_t xcb_key_symbols_get_keysym (xcb_key_symbols_t *syms, - xcb_keycode_t keycode, - int col) -{ - xcb_keysym_t *keysyms; - xcb_keysym_t keysym_null = { XCB_NO_SYMBOL }; - xcb_keysym_t lsym; - xcb_keysym_t usym; - xcb_keycode_t min_keycode; - xcb_keycode_t max_keycode; - int per; - - if (!syms) - return keysym_null; - - xcb_key_symbols_get_reply (syms, NULL); - - keysyms = xcb_get_keyboard_mapping_keysyms (syms->u.reply); - min_keycode = xcb_get_setup (syms->c)->min_keycode; - max_keycode = xcb_get_setup (syms->c)->max_keycode; - - per = syms->u.reply->keysyms_per_keycode; - if ((col < 0) || ((col >= per) && (col > 3)) || - (keycode < min_keycode) || - (keycode > max_keycode)) - return keysym_null; - - keysyms = &keysyms[(keycode - min_keycode) * per]; - if (col < 4) - { - if (col > 1) - { - while ((per > 2) && (keysyms[per - 1] == XCB_NO_SYMBOL)) - per--; - if (per < 3) - col -= 2; - } - if ((per <= (col|1)) || (keysyms[col|1] == XCB_NO_SYMBOL)) - { - xcb_convert_case(keysyms[col&~1], &lsym, &usym); - if (!(col & 1)) - return lsym; - else if (usym == lsym) - return keysym_null; - else - return usym; - } - } - return keysyms[col]; -} - -xcb_keycode_t * -xcb_key_symbols_get_keycode(xcb_key_symbols_t *syms, - xcb_keysym_t keysym) -{ - xcb_keysym_t ks; - int j, nresult = 0; - xcb_keycode_t i, min, max, *result = NULL, *result_np = NULL; - - if(syms) - { - xcb_key_symbols_get_reply (syms, NULL); - min = xcb_get_setup(syms->c)->min_keycode; - max = xcb_get_setup(syms->c)->max_keycode; - - for(j = 0; j < syms->u.reply->keysyms_per_keycode; j++) - for(i = min; i && i <= max; i++) - { - ks = xcb_key_symbols_get_keysym(syms, i, j); - if(ks == keysym) - { - nresult++; - result_np = realloc(result, - sizeof(xcb_keycode_t) * (nresult + 1)); - - if(result_np == NULL) - { - free(result); - return NULL; - } - - result = result_np; - result[nresult - 1] = i; - result[nresult] = XCB_NO_SYMBOL; - } - } - } - - return result; -} - -xcb_keysym_t -xcb_key_press_lookup_keysym (xcb_key_symbols_t *syms, - xcb_key_press_event_t *event, - int col) -{ - return xcb_key_symbols_get_keysym (syms, event->detail, col); -} - -xcb_keysym_t -xcb_key_release_lookup_keysym (xcb_key_symbols_t *syms, - xcb_key_release_event_t *event, - int col) -{ - return xcb_key_symbols_get_keysym (syms, event->detail, col); -} - -int -xcb_refresh_keyboard_mapping (xcb_key_symbols_t *syms, - xcb_mapping_notify_event_t *event) -{ - if (event->request == XCB_MAPPING_KEYBOARD && syms) { - if (syms->tag == TAG_VALUE) { - xcb_keycode_t min_keycode; - xcb_keycode_t max_keycode; - - if (syms->u.reply) { - free (syms->u.reply); - syms->u.reply = NULL; - } - syms->tag = TAG_COOKIE; - min_keycode = xcb_get_setup (syms->c)->min_keycode; - max_keycode = xcb_get_setup (syms->c)->max_keycode; - - syms->u.cookie = xcb_get_keyboard_mapping(syms->c, - min_keycode, - max_keycode - min_keycode + 1); - - } - return 1; - } - return 0; -} - - -/* Tests for classes of symbols */ - -int -xcb_is_keypad_key (xcb_keysym_t keysym) -{ - return ((keysym >= XK_KP_Space) && (keysym <= XK_KP_Equal)); -} - -int -xcb_is_private_keypad_key (xcb_keysym_t keysym) -{ - return ((keysym >= 0x11000000) && (keysym <= 0x1100FFFF)); -} - -int -xcb_is_cursor_key (xcb_keysym_t keysym) -{ - return ((keysym >= XK_Home) && (keysym <= XK_Select)); -} - -int -xcb_is_pf_key (xcb_keysym_t keysym) -{ - return ((keysym >= XK_KP_F1) && (keysym <= XK_KP_F4)); -} - -int -xcb_is_function_key (xcb_keysym_t keysym) -{ - return ((keysym >= XK_F1) && (keysym <= XK_F35)); -} - -int -xcb_is_misc_function_key (xcb_keysym_t keysym) -{ - return ((keysym >= XK_Select) && (keysym <= XK_Break)); -} - -int -xcb_is_modifier_key (xcb_keysym_t keysym) -{ - return (((keysym >= XK_Shift_L) && (keysym <= XK_Hyper_R)) || - ((keysym >= XK_ISO_Lock) && (keysym <= XK_ISO_Level5_Lock)) || - (keysym == XK_Mode_switch) || - (keysym == XK_Num_Lock)); -} - -/* private functions */ - -void -xcb_convert_case(xcb_keysym_t sym, - xcb_keysym_t *lower, - xcb_keysym_t *upper) -{ - *lower = sym; - *upper = sym; - - switch(sym >> 8) - { - case 0: /* Latin 1 */ - if ((sym >= XK_A) && (sym <= XK_Z)) - *lower += (XK_a - XK_A); - else if ((sym >= XK_a) && (sym <= XK_z)) - *upper -= (XK_a - XK_A); - else if ((sym >= XK_Agrave) && (sym <= XK_Odiaeresis)) - *lower += (XK_agrave - XK_Agrave); - else if ((sym >= XK_agrave) && (sym <= XK_odiaeresis)) - *upper -= (XK_agrave - XK_Agrave); - else if ((sym >= XK_Ooblique) && (sym <= XK_Thorn)) - *lower += (XK_oslash - XK_Ooblique); - else if ((sym >= XK_oslash) && (sym <= XK_thorn)) - *upper -= (XK_oslash - XK_Ooblique); - break; - case 1: /* Latin 2 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym == XK_Aogonek) - *lower = XK_aogonek; - else if (sym >= XK_Lstroke && sym <= XK_Sacute) - *lower += (XK_lstroke - XK_Lstroke); - else if (sym >= XK_Scaron && sym <= XK_Zacute) - *lower += (XK_scaron - XK_Scaron); - else if (sym >= XK_Zcaron && sym <= XK_Zabovedot) - *lower += (XK_zcaron - XK_Zcaron); - else if (sym == XK_aogonek) - *upper = XK_Aogonek; - else if (sym >= XK_lstroke && sym <= XK_sacute) - *upper -= (XK_lstroke - XK_Lstroke); - else if (sym >= XK_scaron && sym <= XK_zacute) - *upper -= (XK_scaron - XK_Scaron); - else if (sym >= XK_zcaron && sym <= XK_zabovedot) - *upper -= (XK_zcaron - XK_Zcaron); - else if (sym >= XK_Racute && sym <= XK_Tcedilla) - *lower += (XK_racute - XK_Racute); - else if (sym >= XK_racute && sym <= XK_tcedilla) - *upper -= (XK_racute - XK_Racute); - break; - case 2: /* Latin 3 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= XK_Hstroke && sym <= XK_Hcircumflex) - *lower += (XK_hstroke - XK_Hstroke); - else if (sym >= XK_Gbreve && sym <= XK_Jcircumflex) - *lower += (XK_gbreve - XK_Gbreve); - else if (sym >= XK_hstroke && sym <= XK_hcircumflex) - *upper -= (XK_hstroke - XK_Hstroke); - else if (sym >= XK_gbreve && sym <= XK_jcircumflex) - *upper -= (XK_gbreve - XK_Gbreve); - else if (sym >= XK_Cabovedot && sym <= XK_Scircumflex) - *lower += (XK_cabovedot - XK_Cabovedot); - else if (sym >= XK_cabovedot && sym <= XK_scircumflex) - *upper -= (XK_cabovedot - XK_Cabovedot); - break; - case 3: /* Latin 4 */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= XK_Rcedilla && sym <= XK_Tslash) - *lower += (XK_rcedilla - XK_Rcedilla); - else if (sym >= XK_rcedilla && sym <= XK_tslash) - *upper -= (XK_rcedilla - XK_Rcedilla); - else if (sym == XK_ENG) - *lower = XK_eng; - else if (sym == XK_eng) - *upper = XK_ENG; - else if (sym >= XK_Amacron && sym <= XK_Umacron) - *lower += (XK_amacron - XK_Amacron); - else if (sym >= XK_amacron && sym <= XK_umacron) - *upper -= (XK_amacron - XK_Amacron); - break; - case 6: /* Cyrillic */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= XK_Serbian_DJE && sym <= XK_Serbian_DZE) - *lower -= (XK_Serbian_DJE - XK_Serbian_dje); - else if (sym >= XK_Serbian_dje && sym <= XK_Serbian_dze) - *upper += (XK_Serbian_DJE - XK_Serbian_dje); - else if (sym >= XK_Cyrillic_YU && sym <= XK_Cyrillic_HARDSIGN) - *lower -= (XK_Cyrillic_YU - XK_Cyrillic_yu); - else if (sym >= XK_Cyrillic_yu && sym <= XK_Cyrillic_hardsign) - *upper += (XK_Cyrillic_YU - XK_Cyrillic_yu); - break; - case 7: /* Greek */ - /* Assume the KeySym is a legal value (ignore discontinuities) */ - if (sym >= XK_Greek_ALPHAaccent && sym <= XK_Greek_OMEGAaccent) - *lower += (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent); - else if (sym >= XK_Greek_alphaaccent && sym <= XK_Greek_omegaaccent && - sym != XK_Greek_iotaaccentdieresis && - sym != XK_Greek_upsilonaccentdieresis) - *upper -= (XK_Greek_alphaaccent - XK_Greek_ALPHAaccent); - else if (sym >= XK_Greek_ALPHA && sym <= XK_Greek_OMEGA) - *lower += (XK_Greek_alpha - XK_Greek_ALPHA); - else if (sym >= XK_Greek_alpha && sym <= XK_Greek_omega && - sym != XK_Greek_finalsmallsigma) - *upper -= (XK_Greek_alpha - XK_Greek_ALPHA); - break; - case 0x14: /* Armenian */ - if (sym >= XK_Armenian_AYB && sym <= XK_Armenian_fe) { - *lower = sym | 1; - *upper = sym & ~1; - } - break; - } -} - -void -xcb_key_symbols_get_reply (xcb_key_symbols_t *syms, - xcb_generic_error_t **e) -{ - if (!syms) - return; - - if (syms->tag == TAG_COOKIE) - { - syms->tag = TAG_VALUE; - syms->u.reply = xcb_get_keyboard_mapping_reply(syms->c, - syms->u.cookie, - e); - } -} diff --git a/src/3rdparty/xcb/xcb-util-renderutil/util.c b/src/3rdparty/xcb/xcb-util-renderutil/util.c deleted file mode 100644 index 7666c433dd..0000000000 --- a/src/3rdparty/xcb/xcb-util-renderutil/util.c +++ /dev/null @@ -1,255 +0,0 @@ -/* Copyright © 2000 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "xcb_renderutil.h" - -xcb_render_pictvisual_t * -xcb_render_util_find_visual_format (const xcb_render_query_pict_formats_reply_t *formats, - const xcb_visualid_t visual) -{ - xcb_render_pictscreen_iterator_t screens; - xcb_render_pictdepth_iterator_t depths; - xcb_render_pictvisual_iterator_t visuals; - if (!formats) - return 0; - for (screens = xcb_render_query_pict_formats_screens_iterator(formats); screens.rem; xcb_render_pictscreen_next(&screens)) - for (depths = xcb_render_pictscreen_depths_iterator(screens.data); depths.rem; xcb_render_pictdepth_next(&depths)) - for (visuals = xcb_render_pictdepth_visuals_iterator(depths.data); visuals.rem; xcb_render_pictvisual_next(&visuals)) - if (visuals.data->visual == visual) - return visuals.data; - return 0; -} - -xcb_render_pictforminfo_t * -xcb_render_util_find_format (const xcb_render_query_pict_formats_reply_t *formats, - unsigned long mask, - const xcb_render_pictforminfo_t *ptemplate, - int count) -{ - xcb_render_pictforminfo_iterator_t i; - if (!formats) - return 0; - for (i = xcb_render_query_pict_formats_formats_iterator(formats); i.rem; xcb_render_pictforminfo_next(&i)) - { - if (mask & XCB_PICT_FORMAT_ID) - if (ptemplate->id != i.data->id) - continue; - if (mask & XCB_PICT_FORMAT_TYPE) - if (ptemplate->type != i.data->type) - continue; - if (mask & XCB_PICT_FORMAT_DEPTH) - if (ptemplate->depth != i.data->depth) - continue; - if (mask & XCB_PICT_FORMAT_RED) - if (ptemplate->direct.red_shift != i.data->direct.red_shift) - continue; - if (mask & XCB_PICT_FORMAT_RED_MASK) - if (ptemplate->direct.red_mask != i.data->direct.red_mask) - continue; - if (mask & XCB_PICT_FORMAT_GREEN) - if (ptemplate->direct.green_shift != i.data->direct.green_shift) - continue; - if (mask & XCB_PICT_FORMAT_GREEN_MASK) - if (ptemplate->direct.green_mask != i.data->direct.green_mask) - continue; - if (mask & XCB_PICT_FORMAT_BLUE) - if (ptemplate->direct.blue_shift != i.data->direct.blue_shift) - continue; - if (mask & XCB_PICT_FORMAT_BLUE_MASK) - if (ptemplate->direct.blue_mask != i.data->direct.blue_mask) - continue; - if (mask & XCB_PICT_FORMAT_ALPHA) - if (ptemplate->direct.alpha_shift != i.data->direct.alpha_shift) - continue; - if (mask & XCB_PICT_FORMAT_ALPHA_MASK) - if (ptemplate->direct.alpha_mask != i.data->direct.alpha_mask) - continue; - if (mask & XCB_PICT_FORMAT_COLORMAP) - if (ptemplate->colormap != i.data->colormap) - continue; - if (count-- == 0) - return i.data; - } - return 0; -} - -xcb_render_pictforminfo_t * -xcb_render_util_find_standard_format (const xcb_render_query_pict_formats_reply_t *formats, - xcb_pict_standard_t format) -{ - static const struct { - xcb_render_pictforminfo_t templ; - unsigned long mask; - } standardFormats[] = { - /* XCB_PICT_STANDARD_ARGB_32 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 32, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 16, /* direct.red */ - 0xff, /* direct.red_mask */ - 8, /* direct.green */ - 0xff, /* direct.green_mask */ - 0, /* direct.blue */ - 0xff, /* direct.blue_mask */ - 24, /* direct.alpha */ - 0xff, /* direct.alpha_mask */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_RGB_24 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 24, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 16, /* direct.red */ - 0xff, /* direct.red_MASK */ - 8, /* direct.green */ - 0xff, /* direct.green_MASK */ - 0, /* direct.blue */ - 0xff, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0x00, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_A_8 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 8, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 0, /* direct.red */ - 0x00, /* direct.red_MASK */ - 0, /* direct.green */ - 0x00, /* direct.green_MASK */ - 0, /* direct.blue */ - 0x00, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0xff, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_A_4 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 4, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 0, /* direct.red */ - 0x00, /* direct.red_MASK */ - 0, /* direct.green */ - 0x00, /* direct.green_MASK */ - 0, /* direct.blue */ - 0x00, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0x0f, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - /* XCB_PICT_STANDARD_A_1 */ - { - { - 0, /* id */ - XCB_RENDER_PICT_TYPE_DIRECT, /* type */ - 1, /* depth */ - { 0 }, /* pad */ - { /* direct */ - 0, /* direct.red */ - 0x00, /* direct.red_MASK */ - 0, /* direct.green */ - 0x00, /* direct.green_MASK */ - 0, /* direct.blue */ - 0x00, /* direct.blue_MASK */ - 0, /* direct.alpha */ - 0x01, /* direct.alpha_MASK */ - }, - 0, /* colormap */ - }, - XCB_PICT_FORMAT_TYPE | - XCB_PICT_FORMAT_DEPTH | - XCB_PICT_FORMAT_RED_MASK | - XCB_PICT_FORMAT_GREEN_MASK | - XCB_PICT_FORMAT_BLUE_MASK | - XCB_PICT_FORMAT_ALPHA | - XCB_PICT_FORMAT_ALPHA_MASK, - }, - }; - - if (format < 0 || format >= sizeof(standardFormats) / sizeof(*standardFormats)) - return 0; - - return xcb_render_util_find_format (formats, - standardFormats[format].mask, - &standardFormats[format].templ, - 0); -} diff --git a/src/3rdparty/xcb/xcb-util-wm/icccm.c b/src/3rdparty/xcb/xcb-util-wm/icccm.c deleted file mode 100644 index ed623d08d1..0000000000 --- a/src/3rdparty/xcb/xcb-util-wm/icccm.c +++ /dev/null @@ -1,845 +0,0 @@ -/* - * Copyright © 2008 Arnaud Fontaine - * Copyright © 2007-2008 Vincent Torri - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or - * their institutions shall not be used in advertising or otherwise to - * promote the sale, use or other dealings in this Software without - * prior written authorization from the authors. - */ - -#include -#include -#include - -#include - -#include "xcb_icccm.h" - -xcb_get_property_cookie_t -xcb_icccm_get_text_property(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property) -{ - return xcb_get_property(c, 0, window, property, XCB_GET_PROPERTY_TYPE_ANY, 0, UINT_MAX); -} - -xcb_get_property_cookie_t -xcb_icccm_get_text_property_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t property) -{ - return xcb_get_property_unchecked(c, 0, window, property, XCB_GET_PROPERTY_TYPE_ANY, 0, UINT_MAX); -} - -uint8_t -xcb_icccm_get_text_property_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - - if(!reply || reply->type == XCB_NONE) { - free(reply); - return 0; - } - - prop->_reply = reply; - prop->encoding = prop->_reply->type; - prop->format = prop->_reply->format; - prop->name_len = xcb_get_property_value_length(prop->_reply); - prop->name = xcb_get_property_value(prop->_reply); - - return 1; -} - -void -xcb_icccm_get_text_property_reply_wipe(xcb_icccm_get_text_property_reply_t *prop) -{ - free(prop->_reply); -} - -/* WM_NAME */ - -xcb_void_cookie_t -xcb_icccm_set_wm_name_checked(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t encoding, uint8_t format, - uint32_t name_len, const char *name) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_NAME, encoding, format, - name_len, name); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_name(xcb_connection_t *c, xcb_window_t window, xcb_atom_t encoding, - uint8_t format, uint32_t name_len, const char *name) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_NAME, encoding, format, name_len, - name); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_name(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_icccm_get_text_property(c, window, XCB_ATOM_WM_NAME); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_name_unchecked(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_icccm_get_text_property_unchecked(c, window, XCB_ATOM_WM_NAME); -} - -uint8_t -xcb_icccm_get_wm_name_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e) -{ - return xcb_icccm_get_text_property_reply(c, cookie, prop, e); -} - -/* WM_ICON_NAME */ - -xcb_void_cookie_t -xcb_icccm_set_wm_icon_name_checked(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t encoding, uint8_t format, - uint32_t name_len, const char *name) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_ICON_NAME, encoding, format, - name_len, name); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_icon_name(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t encoding, uint8_t format, uint32_t name_len, - const char *name) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_ICON_NAME, encoding, format, - name_len, name); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_icon_name(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_icccm_get_text_property(c, window, XCB_ATOM_WM_ICON_NAME); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_icon_name_unchecked(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_icccm_get_text_property_unchecked(c, window, XCB_ATOM_WM_ICON_NAME); -} - -uint8_t -xcb_icccm_get_wm_icon_name_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e) -{ - return xcb_icccm_get_text_property_reply(c, cookie, prop, e); -} - -/* WM_COLORMAP_WINDOWS */ - -xcb_void_cookie_t -xcb_icccm_set_wm_colormap_windows_checked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom, - uint32_t list_len, - const xcb_window_t *list) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - wm_colormap_windows_atom, XCB_ATOM_WINDOW, - 32, list_len, list); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_colormap_windows(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom, - uint32_t list_len, - const xcb_atom_t *list) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, - wm_colormap_windows_atom, XCB_ATOM_WINDOW, 32, - list_len, list); -} - - -xcb_get_property_cookie_t -xcb_icccm_get_wm_colormap_windows(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom ) -{ - return xcb_get_property(c, 0, window, wm_colormap_windows_atom, - XCB_ATOM_WINDOW, 0, UINT_MAX); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_colormap_windows_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_colormap_windows_atom) -{ - return xcb_get_property_unchecked(c, 0, window, wm_colormap_windows_atom, - XCB_ATOM_WINDOW, 0, UINT_MAX); -} - -uint8_t -xcb_icccm_get_wm_colormap_windows_from_reply(xcb_get_property_reply_t *reply, - xcb_icccm_get_wm_colormap_windows_reply_t *colormap_windows) -{ - if(!reply || reply->type != XCB_ATOM_WINDOW || reply->format != 32) - return 0; - - colormap_windows->_reply = reply; - colormap_windows->windows_len = xcb_get_property_value_length(colormap_windows->_reply) / (reply->format / 8); - colormap_windows->windows = (xcb_window_t *) xcb_get_property_value(colormap_windows->_reply); - - return 1; -} - -uint8_t -xcb_icccm_get_wm_colormap_windows_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_wm_colormap_windows_reply_t *colormap_windows, - xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - uint8_t ret = xcb_icccm_get_wm_colormap_windows_from_reply(reply, colormap_windows); - if(!ret) - free(reply); - return ret; -} - -void -xcb_icccm_get_wm_colormap_windows_reply_wipe(xcb_icccm_get_wm_colormap_windows_reply_t *colormap_windows) -{ - free(colormap_windows->_reply); -} - -/* WM_CLIENT_MACHINE */ - -xcb_void_cookie_t -xcb_icccm_set_wm_client_machine_checked(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t encoding, uint8_t format, - uint32_t name_len, const char *name) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_CLIENT_MACHINE, encoding, - format, name_len, name); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_client_machine(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t encoding, uint8_t format, - uint32_t name_len, const char *name) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_CLIENT_MACHINE, encoding, format, - name_len, name); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_client_machine(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_icccm_get_text_property(c, window, XCB_ATOM_WM_CLIENT_MACHINE); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_client_machine_unchecked(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_icccm_get_text_property_unchecked(c, window, XCB_ATOM_WM_CLIENT_MACHINE); -} - -uint8_t -xcb_icccm_get_wm_client_machine_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_text_property_reply_t *prop, - xcb_generic_error_t **e) -{ - return xcb_icccm_get_text_property_reply(c, cookie, prop, e); -} - -/* WM_CLASS */ - -xcb_void_cookie_t -xcb_icccm_set_wm_class_checked(xcb_connection_t *c, - xcb_window_t window, - uint32_t class_len, - const char *class) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, 8, - class_len, class); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_class(xcb_connection_t *c, - xcb_window_t window, - uint32_t class_len, - const char *class) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, 8, - class_len, class); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_class(xcb_connection_t *c, xcb_window_t window) -{ - return xcb_get_property(c, 0, window, XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, 0L, 2048L); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_class_unchecked(xcb_connection_t *c, xcb_window_t window) -{ - return xcb_get_property_unchecked(c, 0, window, XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, 0L, 2048L); -} - -uint8_t -xcb_icccm_get_wm_class_from_reply(xcb_icccm_get_wm_class_reply_t *prop, - xcb_get_property_reply_t *reply) -{ - if(!reply || reply->type != XCB_ATOM_STRING || reply->format != 8) - return 0; - - prop->_reply = reply; - prop->instance_name = (char *) xcb_get_property_value(prop->_reply); - - int len = xcb_get_property_value_length(prop->_reply); - /* Ensure there's a C end-of-string at the end of the property. - Truncate the property if necessary (the spec says there's already - a 0 in the last position, so this only hurts invalid props). */ - if(len < reply->length * 4) - prop->instance_name[len] = 0; - else - prop->instance_name[len-1] = 0; - - int name_len = strlen(prop->instance_name); - if(name_len == len) - name_len--; - - prop->class_name = prop->instance_name + name_len + 1; - - return 1; -} - -uint8_t -xcb_icccm_get_wm_class_reply(xcb_connection_t *c, xcb_get_property_cookie_t cookie, - xcb_icccm_get_wm_class_reply_t *prop, xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - uint8_t ret = xcb_icccm_get_wm_class_from_reply(prop, reply); - /* if reply parsing failed, free the reply to avoid mem leak */ - if(!ret) - free(reply); - return ret; -} - -void -xcb_icccm_get_wm_class_reply_wipe(xcb_icccm_get_wm_class_reply_t *prop) -{ - free(prop->_reply); -} - -/* WM_TRANSIENT_FOR */ - -xcb_void_cookie_t -xcb_icccm_set_wm_transient_for_checked(xcb_connection_t *c, xcb_window_t window, - xcb_window_t transient_for_window) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_TRANSIENT_FOR, - XCB_ATOM_WINDOW, 32, 1, - &transient_for_window); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_transient_for(xcb_connection_t *c, xcb_window_t window, - xcb_window_t transient_for_window) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, - XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, 32, - 1, &transient_for_window); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_transient_for(xcb_connection_t *c, xcb_window_t window) -{ - return xcb_get_property(c, 0, window, XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, 0, 1); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_transient_for_unchecked(xcb_connection_t *c, xcb_window_t window) -{ - return xcb_get_property_unchecked(c, 0, window, XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, 0, 1); -} - -uint8_t -xcb_icccm_get_wm_transient_for_from_reply(xcb_window_t *prop, - xcb_get_property_reply_t *reply) -{ - if(!reply || reply->type != XCB_ATOM_WINDOW || reply->format != 32 || !reply->length) - return 0; - - *prop = *((xcb_window_t *) xcb_get_property_value(reply)); - - return 1; -} - -uint8_t -xcb_icccm_get_wm_transient_for_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_window_t *prop, - xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - uint8_t ret = xcb_icccm_get_wm_transient_for_from_reply(prop, reply); - free(reply); - return ret; -} - -/* WM_SIZE_HINTS */ - -void -xcb_icccm_size_hints_set_position(xcb_size_hints_t *hints, int user_specified, - int32_t x, int32_t y) -{ - hints->flags &= ~(XCB_ICCCM_SIZE_HINT_US_POSITION | XCB_ICCCM_SIZE_HINT_P_POSITION); - if (user_specified) - hints->flags |= XCB_ICCCM_SIZE_HINT_US_POSITION; - else - hints->flags |= XCB_ICCCM_SIZE_HINT_P_POSITION; - hints->x = x; - hints->y = y; -} - -void -xcb_icccm_size_hints_set_size(xcb_size_hints_t *hints, int user_specified, - int32_t width, int32_t height) -{ - hints->flags &= ~(XCB_ICCCM_SIZE_HINT_US_SIZE | XCB_ICCCM_SIZE_HINT_P_SIZE); - if (user_specified) - hints->flags |= XCB_ICCCM_SIZE_HINT_US_SIZE; - else - hints->flags |= XCB_ICCCM_SIZE_HINT_P_SIZE; - hints->width = width; - hints->height = height; -} - -void -xcb_icccm_size_hints_set_min_size(xcb_size_hints_t *hints, int32_t min_width, - int32_t min_height) -{ - hints->flags |= XCB_ICCCM_SIZE_HINT_P_MIN_SIZE; - hints->min_width = min_width; - hints->min_height = min_height; -} - -void -xcb_icccm_size_hints_set_max_size(xcb_size_hints_t *hints, int32_t max_width, - int32_t max_height) -{ - hints->flags |= XCB_ICCCM_SIZE_HINT_P_MAX_SIZE; - hints->max_width = max_width; - hints->max_height = max_height; -} - -void -xcb_icccm_size_hints_set_resize_inc(xcb_size_hints_t *hints, int32_t width_inc, - int32_t height_inc) -{ - hints->flags |= XCB_ICCCM_SIZE_HINT_P_RESIZE_INC; - hints->width_inc = width_inc; - hints->height_inc = height_inc; -} - -void -xcb_icccm_size_hints_set_aspect(xcb_size_hints_t *hints, int32_t min_aspect_num, - int32_t min_aspect_den, int32_t max_aspect_num, - int32_t max_aspect_den) -{ - hints->flags |= XCB_ICCCM_SIZE_HINT_P_ASPECT; - hints->min_aspect_num = min_aspect_num; - hints->min_aspect_den = min_aspect_den; - hints->max_aspect_num = max_aspect_num; - hints->max_aspect_den = max_aspect_den; -} - -void -xcb_icccm_size_hints_set_base_size(xcb_size_hints_t *hints, int32_t base_width, - int32_t base_height) -{ - hints->flags |= XCB_ICCCM_SIZE_HINT_BASE_SIZE; - hints->base_width = base_width; - hints->base_height = base_height; -} - -void -xcb_icccm_size_hints_set_win_gravity(xcb_size_hints_t *hints, xcb_gravity_t win_gravity) -{ - hints->flags |= XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY; - hints->win_gravity = win_gravity; -} - -xcb_void_cookie_t -xcb_icccm_set_wm_size_hints_checked(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t property, xcb_size_hints_t *hints) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, property, - XCB_ATOM_WM_SIZE_HINTS, 32, sizeof(*hints) >> 2, - hints); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_size_hints(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t property, xcb_size_hints_t *hints) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, property, - XCB_ATOM_WM_SIZE_HINTS, 32, sizeof(*hints) >> 2, hints); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_size_hints(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t property) -{ - return xcb_get_property(c, 0, window, property, XCB_ATOM_WM_SIZE_HINTS, 0L, XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_size_hints_unchecked(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t property) -{ - return xcb_get_property_unchecked(c, 0, window, property, XCB_ATOM_WM_SIZE_HINTS, - 0L, XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS); -} - -uint8_t -xcb_icccm_get_wm_size_hints_from_reply(xcb_size_hints_t *hints, xcb_get_property_reply_t *reply) -{ - uint32_t flags; - int length; - - if(!reply) - return 0; - - if (!(reply->type == XCB_ATOM_WM_SIZE_HINTS && - reply->format == 32)) - return 0; - - length = xcb_get_property_value_length(reply) / (reply->format / 8); - - if(length > XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS) - length = XCB_ICCCM_NUM_WM_SIZE_HINTS_ELEMENTS; - - memcpy(hints, (xcb_size_hints_t *) xcb_get_property_value (reply), - length * (reply->format / 8)); - - flags = (XCB_ICCCM_SIZE_HINT_US_POSITION | XCB_ICCCM_SIZE_HINT_US_SIZE | - XCB_ICCCM_SIZE_HINT_P_POSITION | XCB_ICCCM_SIZE_HINT_P_SIZE | - XCB_ICCCM_SIZE_HINT_P_MIN_SIZE | XCB_ICCCM_SIZE_HINT_P_MAX_SIZE | - XCB_ICCCM_SIZE_HINT_P_RESIZE_INC | XCB_ICCCM_SIZE_HINT_P_ASPECT); - - /* NumPropSizeElements = 18 (ICCCM version 1) */ - if(length >= 18) - flags |= (XCB_ICCCM_SIZE_HINT_BASE_SIZE | XCB_ICCCM_SIZE_HINT_P_WIN_GRAVITY); - else - { - hints->base_width = 0; - hints->base_height = 0; - hints->win_gravity = 0; - } - /* get rid of unwanted bits */ - hints->flags &= flags; - - return 1; -} - -uint8_t -xcb_icccm_get_wm_size_hints_reply(xcb_connection_t *c, xcb_get_property_cookie_t cookie, - xcb_size_hints_t *hints, xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - uint8_t ret = xcb_icccm_get_wm_size_hints_from_reply(hints, reply); - free(reply); - return ret; -} - -/* WM_NORMAL_HINTS */ - -xcb_void_cookie_t -xcb_icccm_set_wm_normal_hints_checked(xcb_connection_t *c, xcb_window_t window, - xcb_size_hints_t *hints) -{ - return xcb_icccm_set_wm_size_hints_checked(c, window, XCB_ATOM_WM_NORMAL_HINTS, hints); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_normal_hints(xcb_connection_t *c, xcb_window_t window, - xcb_size_hints_t *hints) -{ - return xcb_icccm_set_wm_size_hints(c, window, XCB_ATOM_WM_NORMAL_HINTS, hints); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_normal_hints(xcb_connection_t *c, xcb_window_t window) -{ - return xcb_icccm_get_wm_size_hints(c, window, XCB_ATOM_WM_NORMAL_HINTS); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_normal_hints_unchecked(xcb_connection_t *c, xcb_window_t window) -{ - return xcb_icccm_get_wm_size_hints_unchecked(c, window, XCB_ATOM_WM_NORMAL_HINTS); -} - -uint8_t -xcb_icccm_get_wm_normal_hints_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_size_hints_t *hints, - xcb_generic_error_t **e) -{ - return xcb_icccm_get_wm_size_hints_reply(c, cookie, hints, e); -} - -/* WM_HINTS */ - -uint32_t -xcb_icccm_wm_hints_get_urgency(xcb_icccm_wm_hints_t *hints) -{ - return (hints->flags & XCB_ICCCM_WM_HINT_X_URGENCY); -} - -void -xcb_icccm_wm_hints_set_input(xcb_icccm_wm_hints_t *hints, uint8_t input) -{ - hints->input = input; - hints->flags |= XCB_ICCCM_WM_HINT_INPUT; -} - -void -xcb_icccm_wm_hints_set_iconic(xcb_icccm_wm_hints_t *hints) -{ - hints->initial_state = XCB_ICCCM_WM_STATE_ICONIC; - hints->flags |= XCB_ICCCM_WM_HINT_STATE; -} - -void -xcb_icccm_wm_hints_set_normal(xcb_icccm_wm_hints_t *hints) -{ - hints->initial_state = XCB_ICCCM_WM_STATE_NORMAL; - hints->flags |= XCB_ICCCM_WM_HINT_STATE; -} - -void -xcb_icccm_wm_hints_set_withdrawn(xcb_icccm_wm_hints_t *hints) -{ - hints->initial_state = XCB_ICCCM_WM_STATE_WITHDRAWN; - hints->flags |= XCB_ICCCM_WM_HINT_STATE; -} - -void -xcb_icccm_wm_hints_set_none(xcb_icccm_wm_hints_t *hints) -{ - hints->flags &= ~XCB_ICCCM_WM_HINT_STATE; -} - -void -xcb_icccm_wm_hints_set_icon_pixmap(xcb_icccm_wm_hints_t *hints, xcb_pixmap_t icon_pixmap) -{ - hints->icon_pixmap = icon_pixmap; - hints->flags |= XCB_ICCCM_WM_HINT_ICON_PIXMAP; -} - -void -xcb_icccm_wm_hints_set_icon_mask(xcb_icccm_wm_hints_t *hints, xcb_pixmap_t icon_mask) -{ - hints->icon_mask = icon_mask; - hints->flags |= XCB_ICCCM_WM_HINT_ICON_MASK; -} - -void -xcb_icccm_wm_hints_set_icon_window(xcb_icccm_wm_hints_t *hints, xcb_window_t icon_window) -{ - hints->icon_window = icon_window; - hints->flags |= XCB_ICCCM_WM_HINT_ICON_WINDOW; -} - -void -xcb_icccm_wm_hints_set_window_group(xcb_icccm_wm_hints_t *hints, xcb_window_t window_group) -{ - hints->window_group = window_group; - hints->flags |= XCB_ICCCM_WM_HINT_WINDOW_GROUP; -} - -void -xcb_icccm_wm_hints_set_urgency(xcb_icccm_wm_hints_t *hints) -{ - hints->flags |= XCB_ICCCM_WM_HINT_X_URGENCY; -} - -xcb_void_cookie_t -xcb_icccm_set_wm_hints_checked(xcb_connection_t *c, xcb_window_t window, - xcb_icccm_wm_hints_t *hints) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, XCB_ATOM_WM_HINTS, - XCB_ATOM_WM_HINTS, 32, sizeof(*hints) >> 2, hints); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_hints(xcb_connection_t *c, xcb_window_t window, - xcb_icccm_wm_hints_t *hints) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, XCB_ATOM_WM_HINTS, - XCB_ATOM_WM_HINTS, 32, sizeof(*hints) >> 2, hints); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_hints(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_get_property(c, 0, window, XCB_ATOM_WM_HINTS, XCB_ATOM_WM_HINTS, 0L, - XCB_ICCCM_NUM_WM_HINTS_ELEMENTS); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_hints_unchecked(xcb_connection_t *c, - xcb_window_t window) -{ - return xcb_get_property_unchecked(c, 0, window, XCB_ATOM_WM_HINTS, XCB_ATOM_WM_HINTS, 0L, - XCB_ICCCM_NUM_WM_HINTS_ELEMENTS); -} - -uint8_t -xcb_icccm_get_wm_hints_from_reply(xcb_icccm_wm_hints_t *hints, - xcb_get_property_reply_t *reply) -{ - if(!reply || reply->type != XCB_ATOM_WM_HINTS || reply->format != 32) - return 0; - - int length = xcb_get_property_value_length(reply); - int num_elem = length / (reply->format / 8); - - if(num_elem < XCB_ICCCM_NUM_WM_HINTS_ELEMENTS - 1) - return 0; - - if(length > sizeof(xcb_size_hints_t)) - length = sizeof(xcb_size_hints_t); - - memcpy(hints, (xcb_size_hints_t *) xcb_get_property_value(reply), length); - - if(num_elem < XCB_ICCCM_NUM_WM_HINTS_ELEMENTS) - hints->window_group = XCB_NONE; - - return 1; -} - -uint8_t -xcb_icccm_get_wm_hints_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_wm_hints_t *hints, - xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - int ret = xcb_icccm_get_wm_hints_from_reply(hints, reply); - free(reply); - return ret; -} - -/* WM_PROTOCOLS */ - -xcb_void_cookie_t -xcb_icccm_set_wm_protocols_checked(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t wm_protocols, uint32_t list_len, - xcb_atom_t *list) -{ - return xcb_change_property_checked(c, XCB_PROP_MODE_REPLACE, window, - wm_protocols, XCB_ATOM_ATOM, 32, list_len, list); -} - -xcb_void_cookie_t -xcb_icccm_set_wm_protocols(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t wm_protocols, uint32_t list_len, xcb_atom_t *list) -{ - return xcb_change_property(c, XCB_PROP_MODE_REPLACE, window, wm_protocols, - XCB_ATOM_ATOM, 32, list_len, list); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_protocols(xcb_connection_t *c, xcb_window_t window, - xcb_atom_t wm_protocol_atom) -{ - return xcb_get_property(c, 0, window, wm_protocol_atom, XCB_ATOM_ATOM, 0, UINT_MAX); -} - -xcb_get_property_cookie_t -xcb_icccm_get_wm_protocols_unchecked(xcb_connection_t *c, - xcb_window_t window, - xcb_atom_t wm_protocol_atom) -{ - return xcb_get_property_unchecked(c, 0, window, wm_protocol_atom, XCB_ATOM_ATOM, 0, - UINT_MAX); -} - -uint8_t -xcb_icccm_get_wm_protocols_from_reply(xcb_get_property_reply_t *reply, xcb_icccm_get_wm_protocols_reply_t *protocols) -{ - if(!reply || reply->type != XCB_ATOM_ATOM || reply->format != 32) - return 0; - - protocols->_reply = reply; - protocols->atoms_len = xcb_get_property_value_length(protocols->_reply) / (reply->format / 8); - protocols->atoms = (xcb_atom_t *) xcb_get_property_value(protocols->_reply); - - return 1; -} - -uint8_t -xcb_icccm_get_wm_protocols_reply(xcb_connection_t *c, - xcb_get_property_cookie_t cookie, - xcb_icccm_get_wm_protocols_reply_t *protocols, - xcb_generic_error_t **e) -{ - xcb_get_property_reply_t *reply = xcb_get_property_reply(c, cookie, e); - uint8_t ret = xcb_icccm_get_wm_protocols_from_reply(reply, protocols); - if(!ret) - free(reply); - return ret; -} - -void -xcb_icccm_get_wm_protocols_reply_wipe(xcb_icccm_get_wm_protocols_reply_t *protocols) -{ - free(protocols->_reply); -} diff --git a/src/3rdparty/xcb/xcb-util/atoms.c b/src/3rdparty/xcb/xcb-util/atoms.c deleted file mode 100644 index 7b3aec6c0e..0000000000 --- a/src/3rdparty/xcb/xcb-util/atoms.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Rely on vasprintf (GNU extension) instead of vsnprintf if - possible... */ -#ifdef HAVE_VASPRINTF -#define _GNU_SOURCE -#include -#endif - -#include -#include -#include -#include "xcb_atom.h" - -static char *makename(const char *fmt, ...) -{ - char *ret; - int n; - va_list ap; - -#ifndef HAVE_VASPRINTF - char *np; - int size = 64; - - /* First allocate 'size' bytes, should be enough usually */ - if((ret = malloc(size)) == NULL) - return NULL; - - while(1) - { - va_start(ap, fmt); - n = vsnprintf(ret, size, fmt, ap); - va_end(ap); - - if(n < 0) - return NULL; - - if(n < size) - return ret; - - size = n + 1; - if((np = realloc(ret, size)) == NULL) - { - free(ret); - return NULL; - } - - ret = np; - } -#else - va_start(ap, fmt); - n = vasprintf(&ret, fmt, ap); - va_end(ap); - - if(n < 0) - return NULL; - - return ret; -#endif -} - -char *xcb_atom_name_by_screen(const char *base, uint8_t screen) -{ - return makename("%s_S%u", base, screen); -} - -char *xcb_atom_name_by_resource(const char *base, uint32_t resource) -{ - return makename("%s_R%08X", base, resource); -} - -char *xcb_atom_name_unique(const char *base, uint32_t id) -{ - if(base) - return makename("%s_U%lu", base, id); - else - return makename("U%lu", id); -} diff --git a/src/3rdparty/xcb/xcb-util/event.c b/src/3rdparty/xcb/xcb-util/event.c deleted file mode 100644 index de8899adcd..0000000000 --- a/src/3rdparty/xcb/xcb-util/event.c +++ /dev/null @@ -1,257 +0,0 @@ -/* - * Copyright © 2008-2009 Julien Danjou - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or - * their institutions shall not be used in advertising or otherwise to - * promote the sale, use or other dealings in this Software without - * prior written authorization from the authors. - */ - -#include -#include -#include - -#include "xcb_event.h" - -#ifdef HAVE_SYS_TYPES_H -# include -#endif - -#define ssizeof(foo) (ssize_t)sizeof(foo) -#define countof(foo) (ssizeof(foo) / ssizeof(foo[0])) - -static const char *labelError[] = -{ - "Success", - "BadRequest", - "BadValue", - "BadWindow", - "BadPixmap", - "BadAtom", - "BadCursor", - "BadFont", - "BadMatch", - "BadDrawable", - "BadAccess", - "BadAlloc", - "BadColor", - "BadGC", - "BadIDChoice", - "BadName", - "BadLength", - "BadImplementation", -}; - -static const char *labelRequest[] = -{ - "no request", - "CreateWindow", - "ChangeWindowAttributes", - "GetWindowAttributes", - "DestroyWindow", - "DestroySubwindows", - "ChangeSaveSet", - "ReparentWindow", - "MapWindow", - "MapSubwindows", - "UnmapWindow", - "UnmapSubwindows", - "ConfigureWindow", - "CirculateWindow", - "GetGeometry", - "QueryTree", - "InternAtom", - "GetAtomName", - "ChangeProperty", - "DeleteProperty", - "GetProperty", - "ListProperties", - "SetSelectionOwner", - "GetSelectionOwner", - "ConvertSelection", - "SendEvent", - "GrabPointer", - "UngrabPointer", - "GrabButton", - "UngrabButton", - "ChangeActivePointerGrab", - "GrabKeyboard", - "UngrabKeyboard", - "GrabKey", - "UngrabKey", - "AllowEvents", - "GrabServer", - "UngrabServer", - "QueryPointer", - "GetMotionEvents", - "TranslateCoords", - "WarpPointer", - "SetInputFocus", - "GetInputFocus", - "QueryKeymap", - "OpenFont", - "CloseFont", - "QueryFont", - "QueryTextExtents", - "ListFonts", - "ListFontsWithInfo", - "SetFontPath", - "GetFontPath", - "CreatePixmap", - "FreePixmap", - "CreateGC", - "ChangeGC", - "CopyGC", - "SetDashes", - "SetClipRectangles", - "FreeGC", - "ClearArea", - "CopyArea", - "CopyPlane", - "PolyPoint", - "PolyLine", - "PolySegment", - "PolyRectangle", - "PolyArc", - "FillPoly", - "PolyFillRectangle", - "PolyFillArc", - "PutImage", - "GetImage", - "PolyText", - "PolyText", - "ImageText", - "ImageText", - "CreateColormap", - "FreeColormap", - "CopyColormapAndFree", - "InstallColormap", - "UninstallColormap", - "ListInstalledColormaps", - "AllocColor", - "AllocNamedColor", - "AllocColorCells", - "AllocColorPlanes", - "FreeColors", - "StoreColors", - "StoreNamedColor", - "QueryColors", - "LookupColor", - "CreateCursor", - "CreateGlyphCursor", - "FreeCursor", - "RecolorCursor", - "QueryBestSize", - "QueryExtension", - "ListExtensions", - "ChangeKeyboardMapping", - "GetKeyboardMapping", - "ChangeKeyboardControl", - "GetKeyboardControl", - "Bell", - "ChangePointerControl", - "GetPointerControl", - "SetScreenSaver", - "GetScreenSaver", - "ChangeHosts", - "ListHosts", - "SetAccessControl", - "SetCloseDownMode", - "KillClient", - "RotateProperties", - "ForceScreenSaver", - "SetPointerMapping", - "GetPointerMapping", - "SetModifierMapping", - "GetModifierMapping", - "major 120", - "major 121", - "major 122", - "major 123", - "major 124", - "major 125", - "major 126", - "NoOperation", -}; - -static const char *labelEvent[] = -{ - "error", - "reply", - "KeyPress", - "KeyRelease", - "ButtonPress", - "ButtonRelease", - "MotionNotify", - "EnterNotify", - "LeaveNotify", - "FocusIn", - "FocusOut", - "KeymapNotify", - "Expose", - "GraphicsExpose", - "NoExpose", - "VisibilityNotify", - "CreateNotify", - "DestroyNotify", - "UnmapNotify", - "MapNotify", - "MapRequest", - "ReparentNotify", - "ConfigureNotify", - "ConfigureRequest", - "GravityNotify", - "ResizeRequest", - "CirculateNotify", - "CirculateRequest", - "PropertyNotify", - "SelectionClear", - "SelectionRequest", - "SelectionNotify", - "ColormapNotify", - "ClientMessage", - "MappingNotify", -}; - -const char * -xcb_event_get_label(uint8_t type) -{ - if(type < countof(labelEvent)) - return labelEvent[type]; - return NULL; -} - -const char * -xcb_event_get_error_label(uint8_t type) -{ - if(type < countof(labelError)) - return labelError[type]; - return NULL; -} - -const char * -xcb_event_get_request_label(uint8_t type) -{ - if(type < countof(labelRequest)) - return labelRequest[type]; - return NULL; -} diff --git a/src/3rdparty/xcb/xcb-util/xcb_aux.c b/src/3rdparty/xcb/xcb-util/xcb_aux.c deleted file mode 100644 index c81039885f..0000000000 --- a/src/3rdparty/xcb/xcb-util/xcb_aux.c +++ /dev/null @@ -1,374 +0,0 @@ -/* - * Copyright © 2008 Bart Massey - * Copyright © 2008 Ian Osgood - * Copyright © 2008 Jamey Sharp - * Copyright © 2008 Josh Triplett - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF - * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION - * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the names of the authors or - * their institutions shall not be used in advertising or otherwise to - * promote the sale, use or other dealings in this Software without - * prior written authorization from the authors. - */ - -#include -#include -#include - -#include -#include "xcb_aux.h" - -/* Connection related functions */ - -uint8_t -xcb_aux_get_depth (xcb_connection_t *c, - xcb_screen_t *screen) -{ - xcb_drawable_t drawable; - xcb_get_geometry_reply_t *geom; - int depth = 0; - - drawable = screen->root; - geom = xcb_get_geometry_reply (c, xcb_get_geometry(c, drawable), 0); - - if (geom) { - depth = geom->depth; - free (geom); - } - - return depth; -} - -uint8_t -xcb_aux_get_depth_of_visual (xcb_screen_t *screen, - xcb_visualid_t id) -{ - xcb_depth_iterator_t i; - xcb_visualtype_iterator_t j; - for (i = xcb_screen_allowed_depths_iterator(screen); - i.rem; xcb_depth_next(&i)) - for (j = xcb_depth_visuals_iterator(i.data); - j.rem; xcb_visualtype_next(&j)) - if (j.data->visual_id == id) - return i.data->depth; - return 0; -} - -xcb_screen_t * -xcb_aux_get_screen (xcb_connection_t *c, - int screen) -{ - xcb_screen_iterator_t i = xcb_setup_roots_iterator(xcb_get_setup(c)); - for (; i.rem; --screen, xcb_screen_next(&i)) - if (screen == 0) - return i.data; - return 0; -} - -xcb_visualtype_t * -xcb_aux_get_visualtype (xcb_connection_t *c, - int scr, - xcb_visualid_t vid) -{ - xcb_screen_t *screen; - xcb_depth_t *depth; - xcb_visualtype_iterator_t iter; - int cur; - - screen = xcb_aux_get_screen (c, scr); - if (!screen) return NULL; - - depth = xcb_screen_allowed_depths_iterator(screen).data; - if (!depth) return NULL; - - iter = xcb_depth_visuals_iterator(depth); - for (cur = 0 ; cur < iter.rem ; xcb_visualtype_next(&iter), ++cur) - if (vid == iter.data->visual_id) - return iter.data; - - return NULL; -} - -xcb_visualtype_t * -xcb_aux_find_visual_by_id (xcb_screen_t *screen, - xcb_visualid_t id) -{ - xcb_depth_iterator_t i; - xcb_visualtype_iterator_t j; - for (i = xcb_screen_allowed_depths_iterator(screen); - i.rem; xcb_depth_next(&i)) - for (j = xcb_depth_visuals_iterator(i.data); - j.rem; xcb_visualtype_next(&j)) - if (j.data->visual_id == id) - return j.data; - return 0; -} - -xcb_visualtype_t * -xcb_aux_find_visual_by_attrs (xcb_screen_t *screen, - int8_t class, - int8_t depth) -{ - xcb_depth_iterator_t i; - xcb_visualtype_iterator_t j; - for (i = xcb_screen_allowed_depths_iterator(screen); - i.rem; xcb_depth_next(&i)) { - if (depth != -1 && i.data->depth != depth) - continue; - for (j = xcb_depth_visuals_iterator(i.data); - j.rem; xcb_visualtype_next(&j)) - if (class == -1 || j.data->_class == class) - return j.data; - } - return 0; -} - -void -xcb_aux_sync (xcb_connection_t *c) -{ - free(xcb_get_input_focus_reply(c, xcb_get_input_focus(c), NULL)); -} - -/* structs instead of value lists */ -/* TODO: generate the struct types and functions from protocol masks and descriptions */ - -/* This generic implementation of pack_list depends on: - a) structs packed to uint32_t size - b) structs consist of just uint32_t/int32_t fields in the same order as bitmask -*/ - -static void -pack_list( uint32_t mask, const uint32_t *src, uint32_t *dest ) -{ - for ( ; mask; mask >>= 1, src++) - if (mask & 1) - *dest++ = *src; -} - -xcb_void_cookie_t -xcb_aux_create_window (xcb_connection_t *c, - uint8_t depth, - xcb_window_t wid, - xcb_window_t parent, - int16_t x, - int16_t y, - uint16_t width, - uint16_t height, - uint16_t border_width, - uint16_t _class, - xcb_visualid_t visual, - uint32_t mask, - const xcb_params_cw_t *params) -{ - uint32_t value_list[16]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_create_window(c, depth, wid, parent, - x, y, width, height, border_width, - _class, visual, mask, value_list); -} - -xcb_void_cookie_t -xcb_aux_create_window_checked (xcb_connection_t *c, - uint8_t depth, - xcb_window_t wid, - xcb_window_t parent, - int16_t x, - int16_t y, - uint16_t width, - uint16_t height, - uint16_t border_width, - uint16_t _class, - xcb_visualid_t visual, - uint32_t mask, - const xcb_params_cw_t *params) -{ - uint32_t value_list[16]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_create_window_checked(c, depth, wid, parent, - x, y, width, height, border_width, - _class, visual, mask, value_list); -} - -xcb_void_cookie_t -xcb_aux_change_window_attributes_checked (xcb_connection_t *c, - xcb_window_t window, - uint32_t mask, - const xcb_params_cw_t *params) -{ - uint32_t value_list[16]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_change_window_attributes_checked( c, window, mask, value_list ); -} - -xcb_void_cookie_t -xcb_aux_change_window_attributes (xcb_connection_t *c, - xcb_window_t window, - uint32_t mask, - const xcb_params_cw_t *params) -{ - uint32_t value_list[16]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_change_window_attributes( c, window, mask, value_list ); -} - -xcb_void_cookie_t -xcb_aux_configure_window (xcb_connection_t *c, - xcb_window_t window, - uint16_t mask, - const xcb_params_configure_window_t *params) -{ - uint32_t value_list[8]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_configure_window( c, window, mask, value_list ); -} - -xcb_void_cookie_t -xcb_aux_create_gc (xcb_connection_t *c, - xcb_gcontext_t gid, - xcb_drawable_t drawable, - uint32_t mask, - const xcb_params_gc_t *params) -{ - uint32_t value_list[32]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_create_gc( c, gid, drawable, mask, value_list ); -} - -xcb_void_cookie_t -xcb_aux_create_gc_checked (xcb_connection_t *c, - xcb_gcontext_t gid, - xcb_drawable_t drawable, - uint32_t mask, - const xcb_params_gc_t *params) -{ - uint32_t value_list[32]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_create_gc_checked( c, gid, drawable, mask, value_list); -} - -xcb_void_cookie_t -xcb_aux_change_gc (xcb_connection_t *c, - xcb_gcontext_t gc, - uint32_t mask, - const xcb_params_gc_t *params) -{ - uint32_t value_list[32]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_change_gc( c, gc, mask, value_list ); -} - -xcb_void_cookie_t -xcb_aux_change_gc_checked (xcb_connection_t *c, - xcb_gcontext_t gc, - uint32_t mask, - const xcb_params_gc_t *params) -{ - uint32_t value_list[32]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_change_gc_checked( c, gc, mask, value_list ); -} - -xcb_void_cookie_t -xcb_aux_change_keyboard_control (xcb_connection_t *c, - uint32_t mask, - const xcb_params_keyboard_t *params) -{ - uint32_t value_list[16]; - pack_list(mask, (const uint32_t *)params, value_list); - return xcb_change_keyboard_control( c, mask, value_list ); -} - -/* Color related functions */ - -/* Return true if the given color name can be translated locally, - in which case load the components. Otherwise, a lookup_color request - will be needed, so return false. */ -int -xcb_aux_parse_color(char *color_name, - uint16_t *red, uint16_t *green, uint16_t *blue) -{ - int n, r, g, b, i; - if (!color_name || *color_name != '#') - return 0; - /* - * Excitingly weird RGB parsing code from Xlib. - */ - n = strlen (color_name); - color_name++; - n--; - if (n != 3 && n != 6 && n != 9 && n != 12) - return 0; - n /= 3; - g = b = 0; - do { - r = g; - g = b; - b = 0; - for (i = n; --i >= 0; ) { - char c = *color_name++; - b <<= 4; - if (c >= '0' && c <= '9') - b |= c - '0'; - else if (c >= 'A' && c <= 'F') - b |= c - ('A' - 10); - else if (c >= 'a' && c <= 'f') - b |= c - ('a' - 10); - else return 0; - } - } while (*color_name != '\0'); - n <<= 2; - n = 16 - n; - *red = r << n; - *green = g << n; - *blue = b << n; - return 1; -} - -/* Drawing related functions */ - -/* Adapted from Xlib */ -xcb_void_cookie_t -xcb_aux_set_line_attributes_checked (xcb_connection_t *dpy, - xcb_gcontext_t gc, - uint16_t linewidth, - int32_t linestyle, - int32_t capstyle, - int32_t joinstyle) -{ - uint32_t mask = 0; - xcb_params_gc_t gv; - - XCB_AUX_ADD_PARAM(&mask, &gv, line_width, linewidth); - XCB_AUX_ADD_PARAM(&mask, &gv, line_style, linestyle); - XCB_AUX_ADD_PARAM(&mask, &gv, cap_style, capstyle); - XCB_AUX_ADD_PARAM(&mask, &gv, join_style, joinstyle); - return xcb_aux_change_gc_checked(dpy, gc, mask, &gv); -} - -/* Adapted from Xlib */ -/* XXX It would be wiser for apps just to call - clear_area() directly. */ -xcb_void_cookie_t -xcb_aux_clear_window(xcb_connection_t * dpy, - xcb_window_t w) -{ - return xcb_clear_area(dpy, 0, w, 0, 0, 0, 0); -} diff --git a/src/gui/configure.json b/src/gui/configure.json index c2793bf236..39b8d0c2b8 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json @@ -41,11 +41,10 @@ "sm": { "type": "boolean", "name": "sessionmanager" }, "tslib": "boolean", "vulkan": "boolean", - "xcb": { "type": "enum", "values": [ "no", "yes", "qt", "system" ] }, + "xcb": "boolean", + "bundled-xcb-xinput": "boolean", "xcb-native-painting": "boolean", "xcb-xlib": "boolean", - "xcb-xinput": "boolean", - "xkb": "boolean", "xkbcommon": "boolean" } }, @@ -573,18 +572,22 @@ ] }, "xcb": { - "label": "XCB >= 1.9", + "label": "XCB >= 1.11", "test": { "main": [ "int primaryScreen = 0;", "(void)xcb_connect(\"\", &primaryScreen);", - "// This won't compile unless libxcb >= 1.9 which defines XCB_CONN_CLOSED_INVALID_SCREEN.", - "int xcbScreenError = XCB_CONN_CLOSED_INVALID_SCREEN;" + "/* XCB_PACKED define was added in libxcb 1.11 */", + "#ifdef XCB_PACKED", + " return 0;", + "#else", + " return -1;", + "#endif" ] }, "headers": "xcb/xcb.h", "sources": [ - { "type": "pkgConfig", "args": "xcb >= 1.9" }, + { "type": "pkgConfig", "args": "xcb >= 1.11" }, "-lxcb" ] }, @@ -691,21 +694,10 @@ "use": "xcb xlib" }, "xcb_xkb": { - "label": "XCB XKB >= 1.10", - "test": { - "head": [ - "// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++", - "#define explicit dont_use_cxx_explicit" - ], - "tail": "#undef explicit", - "main": [ - "// This takes more arguments in xcb-xkb < 1.10.", - "xcb_xkb_get_kbd_by_name_unchecked(NULL, 0, 0, 0, 0);" - ] - }, + "label": "XCB XKB", "headers": "xcb/xkb.h", "sources": [ - { "type": "pkgConfig", "args": "xcb-xkb >= 1.10" }, + { "type": "pkgConfig", "args": "xcb-xkb" }, "-lxcb-xkb" ], "use": "xcb" @@ -769,7 +761,7 @@ "xkbcommon_x11": { "label": "xkbcommon-x11", "test": { - "main": "xkb_x11_get_core_keyboard_device_id(nullptr);" + "main": "xkb_x11_setup_xkb_extension_flags flag = XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS;" }, "headers": [ "xkbcommon/xkbcommon-x11.h" ], "sources": [ @@ -1056,6 +1048,11 @@ "label": "XCB (extensions)", "type": "compile", "test": { + "head": [ + "// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++", + "#define explicit dont_use_cxx_explicit" + ], + "tail": "#undef explicit", "include": [ "xcb/xcb.h", "xcb/xcb_image.h", @@ -1068,7 +1065,8 @@ "xcb/xfixes.h", "xcb/xinerama.h", "xcb/xcb_icccm.h", - "xcb/xcb_renderutil.h" + "xcb/xcb_renderutil.h", + "xcb/xkb.h" ], "main": [ "int primaryScreen = 0;", @@ -1082,10 +1080,13 @@ " xcb_render_query_pict_formats_reply(c, formatsCookie, &error);", "/* RENDERUTIL: xcb_renderutil.h include won't compile unless version >= 0.3.9 */", - "xcb_render_util_find_standard_format(nullptr, XCB_PICT_STANDARD_ARGB_32);" + "xcb_render_util_find_standard_format(nullptr, XCB_PICT_STANDARD_ARGB_32);", + + "/* XKB: This takes more arguments in xcb-xkb < 1.11 */", + "xcb_xkb_get_kbd_by_name_replies_key_names_value_list_sizeof(nullptr, 0, 0, 0, 0, 0, 0, 0, 0);" ] }, - "use": "xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama xcb" + "use": "xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama xcb_xkb xcb" }, "x11prefix": { "label": "X11 prefix", @@ -1514,16 +1515,7 @@ "label": "XCB", "section": "Platform plugins", "autoDetect": "!config.darwin", - "enable": "input.xcb == 'system' || input.xcb == 'qt' || input.xcb == 'yes'", - "condition": "features.thread && features.xkbcommon && libs.xcb", - "output": [ "privateFeature" ] - }, - "system-xcb": { - "label": "Using system-provided XCB libraries", - "enable": "input.xcb == 'system'", - "disable": "input.xcb == 'qt'", - "autoDetect": "!config.darwin", - "condition": "features.xcb && tests.xcb_syslibs", + "condition": "features.thread && libs.xcb && tests.xcb_syslibs && features.xkbcommon-x11", "output": [ "privateFeature" ] }, "x11-prefix": { @@ -1562,12 +1554,6 @@ "condition": "features.xcb-native-painting", "output": [ "privateFeature" ] }, - "xkb": { - "label": "XCB XKB", - "emitIf": "features.xcb", - "condition": "(!features.system-xcb || libs.xcb_xkb) && libs.xkbcommon_x11", - "output": [ "privateFeature" ] - }, "xcb-xlib": { "label": "XCB Xlib", "condition": "features.xlib && libs.xcb_xlib", @@ -1579,10 +1565,12 @@ "condition": "features.sessionmanager && libs.x11sm", "output": [ "privateFeature" ] }, - "xcb-xinput": { - "label": "XCB XInput", + "system-xcb-xinput": { + "label": "Using system-provided xcb-xinput", "emitIf": "features.xcb", - "condition": "!features.system-xcb || libs.xcb_xinput", + "disable": "input.bundled-xcb-xinput == 'yes'", + "enable": "input.bundled-xcb-xinput == 'no'", + "condition": "libs.xcb_xinput", "output": [ "privateFeature" ] }, "xkbcommon": { @@ -1590,6 +1578,11 @@ "condition": "libs.xkbcommon", "output": [ "privateFeature" ] }, + "xkbcommon-x11": { + "label": "xkbcommon-x11", + "condition": "features.xkbcommon && libs.xkbcommon_x11", + "output": [ "privateFeature" ] + }, "xlib": { "label": "XLib", "autoDetect": "!config.darwin || features.xcb", @@ -1831,7 +1824,7 @@ { "type": "error", "condition": "input.xcb != '' && input.xcb != 'no' && input.xkbcommon == 'no'", - "message": "XCB plugin requires xkbcommon, but -no-xkbcommon was provided." + "message": "XCB plugin requires xkbcommon and xkbcommon-x11, but -no-xkbcommon was provided." } ], @@ -1953,7 +1946,8 @@ QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your pla "entries": [ "xlib", "xcb-xlib", - "egl_x11" + "egl_x11", + "xkbcommon-x11" ] } ] @@ -1986,7 +1980,7 @@ QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your pla "section": "XCB", "condition": "features.xcb", "entries": [ - "system-xcb", "xkb", "xcb-xinput", "xcb-native-painting", + "system-xcb-xinput", "xcb-native-painting", { "section": "GL integrations", "entries": [ diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp index cac6345b66..e51c3d0502 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection.cpp @@ -66,14 +66,10 @@ #include #include -#if QT_CONFIG(xkb) #define explicit dont_use_cxx_explicit #include #undef explicit -#endif -#if QT_CONFIG(xcb_xinput) #include -#endif QT_BEGIN_NAMESPACE @@ -88,12 +84,6 @@ Q_LOGGING_CATEGORY(lcQpaKeyboard, "qt.qpa.xkeyboard") Q_LOGGING_CATEGORY(lcQpaClipboard, "qt.qpa.clipboard") Q_LOGGING_CATEGORY(lcQpaXDnd, "qt.qpa.xdnd") -// this event type was added in libxcb 1.10, -// but we support also older version -#ifndef XCB_GE_GENERIC -#define XCB_GE_GENERIC 35 -#endif - QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGrabServer, xcb_visualid_t defaultVisualId, const char *displayName) : QXcbBasicConnection(displayName) , m_canGrabServer(canGrabServer) @@ -112,12 +102,10 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra initializeScreens(); -#if QT_CONFIG(xcb_xinput) if (hasXInput2()) { xi2SetupDevices(); xi2SelectStateEvents(); } -#endif m_wmSupport.reset(new QXcbWMSupport(this)); m_keyboard = new QXcbKeyboard(this); @@ -518,7 +506,6 @@ Qt::MouseButton QXcbConnection::translateMouseButton(xcb_button_t s) } } -#if QT_CONFIG(xkb) namespace { typedef union { /* All XKB events share these fields. */ @@ -534,7 +521,6 @@ namespace { xcb_xkb_state_notify_event_t state_notify; } _xkb_event; } -#endif void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event) { @@ -611,16 +597,12 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event) HANDLE_PLATFORM_WINDOW_EVENT(xcb_client_message_event_t, window, handleClientMessageEvent); } case XCB_ENTER_NOTIFY: -#if QT_CONFIG(xcb_xinput) if (hasXInput2() && !xi2MouseEventsDisabled()) break; -#endif HANDLE_PLATFORM_WINDOW_EVENT(xcb_enter_notify_event_t, event, handleEnterNotifyEvent); case XCB_LEAVE_NOTIFY: -#if QT_CONFIG(xcb_xinput) if (hasXInput2() && !xi2MouseEventsDisabled()) break; -#endif m_keyboard->updateXKBStateFromCore(reinterpret_cast(event)->state); HANDLE_PLATFORM_WINDOW_EVENT(xcb_leave_notify_event_t, event, handleLeaveNotifyEvent); case XCB_FOCUS_IN: @@ -682,13 +664,11 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event) } break; } -#if QT_CONFIG(xcb_xinput) case XCB_GE_GENERIC: // Here the windowEventListener is invoked from xi2HandleEvent() if (hasXInput2() && isXIEvent(event)) xi2HandleEvent(reinterpret_cast(event)); break; -#endif default: handled = false; // event type not recognized break; @@ -712,7 +692,6 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event) auto change_event = reinterpret_cast(event); if (auto virtualDesktop = virtualDesktopForRootWindow(change_event->root)) virtualDesktop->handleScreenChange(change_event); -#if QT_CONFIG(xkb) } else if (isXkbType(response_type)) { auto xkb_event = reinterpret_cast<_xkb_event *>(event); if (xkb_event->any.deviceID == m_keyboard->coreDeviceId()) { @@ -735,7 +714,6 @@ void QXcbConnection::handleXcbEvent(xcb_generic_event_t *event) break; } } -#endif } else { handled = false; // event type still not recognized } @@ -912,7 +890,6 @@ bool QXcbConnection::compressEvent(xcb_generic_event_t *event) const }); } -#if QT_CONFIG(xcb_xinput) // compress XI_* events if (responseType == XCB_GE_GENERIC) { if (!hasXInput2()) @@ -948,7 +925,6 @@ bool QXcbConnection::compressEvent(xcb_generic_event_t *event) const return false; } -#endif if (responseType == XCB_CONFIGURE_NOTIFY) { // compress multiple configure notify events for the same window @@ -978,7 +954,6 @@ bool QXcbConnection::isUserInputEvent(xcb_generic_event_t *event) const if (isInputEvent) return true; -#if QT_CONFIG(xcb_xinput) if (connection()->hasXInput2()) { isInputEvent = isXIType(event, XCB_INPUT_BUTTON_PRESS) || isXIType(event, XCB_INPUT_BUTTON_RELEASE) || @@ -993,7 +968,6 @@ bool QXcbConnection::isUserInputEvent(xcb_generic_event_t *event) const } if (isInputEvent) return true; -#endif if (eventType == XCB_CLIENT_MESSAGE) { auto clientMessage = reinterpret_cast(event); diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h index 7cf25d41a6..a894944096 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.h +++ b/src/plugins/platforms/xcb/qxcbconnection.h @@ -104,10 +104,8 @@ public: virtual void handleFocusInEvent(const xcb_focus_in_event_t *) {} virtual void handleFocusOutEvent(const xcb_focus_out_event_t *) {} virtual void handlePropertyNotifyEvent(const xcb_property_notify_event_t *) {} -#if QT_CONFIG(xcb_xinput) virtual void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource = Qt::MouseEventNotSynthesized) {} virtual void handleXIEnterLeave(xcb_ge_event_t *) {} -#endif virtual QXcbWindow *toWindow() { return nullptr; } }; @@ -225,7 +223,6 @@ public: bool isUserInputEvent(xcb_generic_event_t *event) const; -#if QT_CONFIG(xcb_xinput) void xi2SelectStateEvents(); void xi2SelectDeviceEvents(xcb_window_t window); void xi2SelectDeviceEventsCompatibility(xcb_window_t window); @@ -236,7 +233,6 @@ public: bool startSystemMoveResizeForTouchBegin(xcb_window_t window, const QPoint &point, int corner); void abortSystemMoveResizeForTouch(); bool isTouchScreen(int id); -#endif bool canGrab() const { return m_canGrabServer; } @@ -267,7 +263,6 @@ private: inline bool timeGreaterThan(xcb_timestamp_t a, xcb_timestamp_t b) const { return static_cast(a - b) > 0 || b == XCB_CURRENT_TIME; } -#if QT_CONFIG(xcb_xinput) void xi2SetupDevice(void *info, bool removeExisting = true); void xi2SetupDevices(); struct TouchDeviceData { @@ -341,7 +336,6 @@ private: uint32_t pointid; int corner; } m_startSystemMoveResizeInfo; -#endif // QT_CONFIG(xcb_xinput) const bool m_canGrabServer; const xcb_visualid_t m_defaultVisualId; @@ -389,12 +383,10 @@ private: QTimer m_focusInTimer; }; -#if QT_CONFIG(xcb_xinput) #if QT_CONFIG(tabletevent) Q_DECLARE_TYPEINFO(QXcbConnection::TabletData::ValuatorClassInfo, Q_PRIMITIVE_TYPE); Q_DECLARE_TYPEINFO(QXcbConnection::TabletData, Q_MOVABLE_TYPE); #endif -#endif class QXcbConnectionGrabber { diff --git a/src/plugins/platforms/xcb/qxcbconnection_basic.cpp b/src/plugins/platforms/xcb/qxcbconnection_basic.cpp index 9a028e5a7e..1ba4b4a1b9 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_basic.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_basic.cpp @@ -45,14 +45,10 @@ #include #include #include -#if QT_CONFIG(xcb_xinput) #include -#endif -#if QT_CONFIG(xkb) #define explicit dont_use_cxx_explicit #include #undef explicit -#endif #if QT_CONFIG(xcb_xlib) #define register /* C++17 deprecated register */ @@ -138,14 +134,7 @@ QXcbBasicConnection::QXcbBasicConnection(const char *displayName) xcb_extension_t *extensions[] = { &xcb_shm_id, &xcb_xfixes_id, &xcb_randr_id, &xcb_shape_id, &xcb_sync_id, - &xcb_render_id, -#if QT_CONFIG(xkb) - &xcb_xkb_id, -#endif -#if QT_CONFIG(xcb_xinput) - &xcb_input_id, -#endif - 0 + &xcb_render_id, &xcb_xkb_id, &xcb_input_id, 0 }; for (xcb_extension_t **ext_it = extensions; *ext_it; ++ext_it) @@ -160,10 +149,8 @@ QXcbBasicConnection::QXcbBasicConnection(const char *displayName) initializeXinerama(); initializeXFixes(); initializeXRender(); -#if QT_CONFIG(xcb_xinput) if (!qEnvironmentVariableIsSet("QT_XCB_NO_XI2")) initializeXInput2(); -#endif initializeXShape(); initializeXKB(); } @@ -213,7 +200,6 @@ bool QXcbBasicConnection::hasBigRequest() const return m_maximumRequestLength > m_setup->maximum_request_length; } -#if QT_CONFIG(xcb_xinput) // Starting from the xcb version 1.9.3 struct xcb_ge_event_t has changed: // - "pad0" became "extension" // - "pad1" and "pad" became "pad0" @@ -240,7 +226,6 @@ bool QXcbBasicConnection::isXIType(xcb_generic_event_t *event, uint16_t type) co auto *e = reinterpret_cast(event); return e->event_type == type; } -#endif // QT_CONFIG(xcb_xinput) bool QXcbBasicConnection::isXFixesType(uint responseType, int eventType) const { @@ -370,7 +355,6 @@ void QXcbBasicConnection::initializeXRandr() m_xrandrFirstEvent = reply->first_event; } -#if QT_CONFIG(xcb_xinput) void QXcbBasicConnection::initializeXInput2() { const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_xcbConnection, &xcb_input_id); @@ -393,7 +377,6 @@ void QXcbBasicConnection::initializeXInput2() m_xinputFirstEvent = reply->first_event; m_xi2Minor = xinputQuery->minor_version; } -#endif void QXcbBasicConnection::initializeXShape() { @@ -417,7 +400,6 @@ void QXcbBasicConnection::initializeXShape() void QXcbBasicConnection::initializeXKB() { -#if QT_CONFIG(xkb) const xcb_query_extension_reply_t *reply = xcb_get_extension_data(m_xcbConnection, &xcb_xkb_id); if (!reply || !reply->present) { qCWarning(lcQpaXcb, "XKeyboard extension not present on the X server"); @@ -439,7 +421,6 @@ void QXcbBasicConnection::initializeXKB() m_hasXkb = true; m_xkbFirstEvent = reply->first_event; -#endif } QT_END_NAMESPACE diff --git a/src/plugins/platforms/xcb/qxcbconnection_basic.h b/src/plugins/platforms/xcb/qxcbconnection_basic.h index 1bd4310562..109186f966 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_basic.h +++ b/src/plugins/platforms/xcb/qxcbconnection_basic.h @@ -99,12 +99,10 @@ public: bool hasXinerama() const { return m_hasXinerama; } bool hasBigRequest() const; -#if QT_CONFIG(xcb_xinput) bool isAtLeastXI21() const { return m_xi2Enabled && m_xi2Minor >= 1; } bool isAtLeastXI22() const { return m_xi2Enabled && m_xi2Minor >= 2; } bool isXIEvent(xcb_generic_event_t *event) const; bool isXIType(xcb_generic_event_t *event, uint16_t type) const; -#endif bool isXFixesType(uint responseType, int eventType) const; bool isXRandrType(uint responseType, int eventType) const; @@ -119,9 +117,7 @@ protected: void initializeXShape(); void initializeXKB(); void initializeXSync(); -#if QT_CONFIG(xcb_xinput) void initializeXInput2(); -#endif private: #if QT_CONFIG(xcb_xlib) @@ -147,11 +143,9 @@ private: QPair m_xrenderVersion; bool m_xi2Enabled = false; -#if QT_CONFIG(xcb_xinput) int m_xi2Minor = -1; int m_xiOpCode = -1; uint32_t m_xinputFirstEvent = 0; -#endif uint32_t m_xfixesFirstEvent = 0; uint32_t m_xrandrFirstEvent = 0; diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp index d0e02ecdd1..3caee3f409 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp +++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp @@ -49,13 +49,7 @@ #include -#if QT_CONFIG(xkb) -#include -#endif - -#if QT_CONFIG(xcb_xinput) #include -#endif QT_BEGIN_NAMESPACE @@ -392,20 +386,16 @@ void QXcbKeyboard::updateKeymap() xkb_context_set_log_level(m_xkbContext.get(), logLevel); } -#if QT_CONFIG(xkb) if (connection()->hasXKB()) { m_xkbKeymap.reset(xkb_x11_keymap_new_from_device(m_xkbContext.get(), xcb_connection(), core_device_id, XKB_KEYMAP_COMPILE_NO_FLAGS)); if (m_xkbKeymap) m_xkbState.reset(xkb_x11_state_new_from_device(m_xkbKeymap.get(), xcb_connection(), core_device_id)); } else { -#endif m_xkbKeymap.reset(keymapFromCore(keysymMods)); if (m_xkbKeymap) m_xkbState.reset(xkb_state_new(m_xkbKeymap.get())); -#if QT_CONFIG(xkb) } -#endif if (!m_xkbKeymap) { qCWarning(lcQpaKeyboard, "failed to compile a keymap"); @@ -428,7 +418,6 @@ QList QXcbKeyboard::possibleKeys(const QKeyEvent *event) const return QXkbCommon::possibleKeys(m_xkbState.get(), event, m_superAsMeta, m_hyperAsMeta); } -#if QT_CONFIG(xkb) void QXcbKeyboard::updateXKBState(xcb_xkb_state_notify_event_t *state) { if (m_config && connection()->hasXKB()) { @@ -444,7 +433,6 @@ void QXcbKeyboard::updateXKBState(xcb_xkb_state_notify_event_t *state) handleStateChanges(changedComponents); } } -#endif static xkb_layout_index_t lockedGroup(quint16 state) { @@ -473,7 +461,6 @@ void QXcbKeyboard::updateXKBStateFromCore(quint16 state) } } -#if QT_CONFIG(xcb_xinput) void QXcbKeyboard::updateXKBStateFromXI(void *modInfo, void *groupInfo) { if (m_config && !connection()->hasXKB()) { @@ -491,7 +478,6 @@ void QXcbKeyboard::updateXKBStateFromXI(void *modInfo, void *groupInfo) handleStateChanges(changedComponents); } } -#endif void QXcbKeyboard::handleStateChanges(xkb_state_component changedComponents) { @@ -541,7 +527,6 @@ void QXcbKeyboard::updateXKBMods() QXcbKeyboard::QXcbKeyboard(QXcbConnection *connection) : QXcbObject(connection) { -#if QT_CONFIG(xkb) core_device_id = 0; if (connection->hasXKB()) { selectEvents(); @@ -551,11 +536,9 @@ QXcbKeyboard::QXcbKeyboard(QXcbConnection *connection) return; } } else { -#endif m_key_symbols = xcb_key_symbols_alloc(xcb_connection()); -#if QT_CONFIG(xkb) } -#endif + updateKeymap(); } @@ -573,7 +556,6 @@ void QXcbKeyboard::initialize() void QXcbKeyboard::selectEvents() { -#if QT_CONFIG(xkb) const uint16_t required_map_parts = (XCB_XKB_MAP_PART_KEY_TYPES | XCB_XKB_MAP_PART_KEY_SYMS | XCB_XKB_MAP_PART_MODIFIER_MAP | @@ -604,12 +586,10 @@ void QXcbKeyboard::selectEvents() free(error); qCWarning(lcQpaXcb, "failed to select notify events from XKB"); } -#endif } void QXcbKeyboard::updateVModMapping() { -#if QT_CONFIG(xkb) xcb_xkb_get_names_value_list_t names_list; memset(&vmod_masks, 0, sizeof(vmod_masks)); @@ -667,12 +647,10 @@ void QXcbKeyboard::updateVModMapping() else if (qstrcmp(vmod_name, "Hyper") == 0) vmod_masks.hyper = bit; } -#endif } void QXcbKeyboard::updateVModToRModMapping() { -#if QT_CONFIG(xkb) xcb_xkb_get_map_map_t map; memset(&rmod_masks, 0, sizeof(rmod_masks)); @@ -729,7 +707,6 @@ void QXcbKeyboard::updateVModToRModMapping() else if (vmod_masks.hyper == bit) rmod_masks.hyper = modmap; } -#endif } // Small helper: set modifier bit, if modifier position is valid diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.h b/src/plugins/platforms/xcb/qxcbkeyboard.h index e35c82ad24..0ee08aeff2 100644 --- a/src/plugins/platforms/xcb/qxcbkeyboard.h +++ b/src/plugins/platforms/xcb/qxcbkeyboard.h @@ -43,14 +43,12 @@ #include "qxcbobject.h" #include -#if QT_CONFIG(xkb) #define explicit dont_use_cxx_explicit #include #undef explicit -#endif -#include #include +#include #include @@ -74,18 +72,14 @@ public: void updateKeymap(); QList possibleKeys(const QKeyEvent *event) const; - // when XKEYBOARD not present on the X server void updateXKBMods(); xkb_mod_mask_t xkbModMask(quint16 state); void updateXKBStateFromCore(quint16 state); -#if QT_CONFIG(xcb_xinput) void updateXKBStateFromXI(void *modInfo, void *groupInfo); -#endif -#if QT_CONFIG(xkb) - // when XKEYBOARD is present on the X server + int coreDeviceId() const { return core_device_id; } void updateXKBState(xcb_xkb_state_notify_event_t *state); -#endif + void handleStateChanges(xkb_state_component changedComponents); protected: @@ -97,10 +91,9 @@ protected: typedef QMap KeysymModifierMap; struct xkb_keymap *keymapFromCore(const KeysymModifierMap &keysymMods); - // when XKEYBOARD not present on the X server void updateModifiers(const KeysymModifierMap &keysymMods); KeysymModifierMap keysymsToModifiers(); - // when XKEYBOARD is present on the X server + void updateVModMapping(); void updateVModToRModMapping(); @@ -119,7 +112,6 @@ private: _mod_masks rmod_masks; - // when XKEYBOARD not present on the X server xcb_key_symbols_t *m_key_symbols = nullptr; struct _xkb_mods { xkb_mod_index_t shift; @@ -132,11 +124,9 @@ private: xkb_mod_index_t mod5; }; _xkb_mods xkb_mods; -#if QT_CONFIG(xkb) - // when XKEYBOARD is present on the X server + _mod_masks vmod_masks; int core_device_id; -#endif QXkbCommon::ScopedXKBState m_xkbState; QXkbCommon::ScopedXKBKeymap m_xkbKeymap; diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 97da420798..76d3545d35 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -67,9 +67,7 @@ #include #include #include -#if QT_CONFIG(xcb_xinput) #include -#endif #include #include @@ -492,14 +490,12 @@ void QXcbWindow::create() atom(QXcbAtom::_XEMBED_INFO), 32, 2, (void *)data); -#if QT_CONFIG(xcb_xinput) if (connection()->hasXInput2()) { if (connection()->xi2MouseEventsDisabled()) connection()->xi2SelectDeviceEventsCompatibility(m_window); else connection()->xi2SelectDeviceEvents(m_window); } -#endif setWindowState(window()->windowStates()); setWindowFlags(window()->flags()); @@ -1895,9 +1891,7 @@ void QXcbWindow::handleButtonPressEvent(int event_x, int event_y, int root_x, in QPoint global(root_x, root_y); if (isWheel) { -#if QT_CONFIG(xcb_xinput) if (!connection()->isAtLeastXI21()) { -#endif QPoint angleDelta; if (detail == 4) angleDelta.setY(120); @@ -1910,9 +1904,7 @@ void QXcbWindow::handleButtonPressEvent(int event_x, int event_y, int root_x, in if (modifiers & Qt::AltModifier) angleDelta = angleDelta.transposed(); QWindowSystemInterface::handleWheelEvent(window(), timestamp, local, global, QPoint(), angleDelta, modifiers); -#if QT_CONFIG(xcb_xinput) } -#endif return; } @@ -1948,13 +1940,8 @@ static inline bool doCheckUnGrabAncestor(QXcbConnection *conn) * not pressed, otherwise (e.g. on Alt+Tab) it can igonre important enter/leave events. */ if (conn) { - const bool mouseButtonsPressed = (conn->buttonState() != Qt::NoButton); -#if QT_CONFIG(xcb_xinput) return mouseButtonsPressed || (conn->hasXInput2() && !conn->xi2MouseEventsDisabled()); -#else - return mouseButtonsPressed; -#endif } return true; } @@ -1986,10 +1973,9 @@ void QXcbWindow::handleEnterNotifyEvent(int event_x, int event_y, int root_x, in if (ignoreEnterEvent(mode, detail, connection()) || connection()->mousePressWindow()) return; -#if QT_CONFIG(xcb_xinput) + // Updates scroll valuators, as user might have done some scrolling outside our X client. connection()->xi2UpdateScrollingDevices(); -#endif const QPoint local(event_x, event_y); QWindowSystemInterface::handleEnterEvent(window(), local, global); @@ -2064,7 +2050,6 @@ void QXcbWindow::handleMotionNotifyEvent(const xcb_motion_notify_event_t *event) event->time, QEvent::MouseMove); } -#if QT_CONFIG(xcb_xinput) static inline int fixed1616ToInt(xcb_input_fp1616_t val) { return int(qreal(val) / 0x10000); @@ -2165,7 +2150,6 @@ void QXcbWindow::handleXIEnterLeave(xcb_ge_event_t *event) break; } } -#endif QXcbWindow *QXcbWindow::toWindow() { return this; } @@ -2301,14 +2285,12 @@ bool QXcbWindow::setMouseGrabEnabled(bool grab) if (grab && !connection()->canGrab()) return false; -#if QT_CONFIG(xcb_xinput) if (connection()->hasXInput2() && !connection()->xi2MouseEventsDisabled()) { bool result = connection()->xi2SetMouseGrabEnabled(m_window, grab); if (grab && result) connection()->setMouseGrabber(this); return result; } -#endif if (!grab) { xcb_ungrab_pointer(xcb_connection(), XCB_TIME_CURRENT_TIME); @@ -2376,7 +2358,7 @@ bool QXcbWindow::startSystemMoveResize(const QPoint &pos, int corner) return false; const QPoint globalPos = QHighDpi::toNativePixels(window()->mapToGlobal(pos), window()->screen()); -#if QT_CONFIG(xcb_xinput) + // ### FIXME QTBUG-53389 bool startedByTouch = connection()->startSystemMoveResizeForTouchBegin(m_window, globalPos, corner); if (startedByTouch) { @@ -2386,9 +2368,7 @@ bool QXcbWindow::startSystemMoveResize(const QPoint &pos, int corner) return false; } // KWin, Openbox, AwesomeWM have been tested to work with _NET_WM_MOVERESIZE. - } else -#endif - { // Started by mouse press. + } else { // Started by mouse press. if (connection()->isUnity()) return false; // _NET_WM_MOVERESIZE on this WM is bouncy (WM bug?). diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h index 5de5974ca7..13b37db028 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.h +++ b/src/plugins/platforms/xcb/qxcbwindow.h @@ -137,10 +137,8 @@ public: void handleFocusInEvent(const xcb_focus_in_event_t *event) override; void handleFocusOutEvent(const xcb_focus_out_event_t *event) override; void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override; -#if QT_CONFIG(xcb_xinput) void handleXIMouseEvent(xcb_ge_event_t *, Qt::MouseEventSource source = Qt::MouseEventNotSynthesized) override; void handleXIEnterLeave(xcb_ge_event_t *) override; -#endif QXcbWindow *toWindow() override; diff --git a/src/plugins/platforms/xcb/xcb-static/xcb-static.pro b/src/plugins/platforms/xcb/xcb-static/xcb-static.pro deleted file mode 100644 index 078b275381..0000000000 --- a/src/plugins/platforms/xcb/xcb-static/xcb-static.pro +++ /dev/null @@ -1,80 +0,0 @@ -# -# Statically compile in code for -# libxcb-fixes, libxcb-randr, libxcb-shm, libxcb-sync, libxcb-image, -# libxcb-keysyms, libxcb-icccm, libxcb-renderutil, libxcb-xkb, -# libxcb-xinerama, libxcb-xinput -# -CONFIG += static - -XCB_DIR = $$QT_SOURCE_TREE/src/3rdparty/xcb - -MODULE_INCLUDEPATH += $$XCB_DIR/include $$XCB_DIR/sysinclude -INCLUDEPATH += $$XCB_DIR/include/xcb - -QMAKE_USE += xcb/nolink - -# ignore compiler warnings in 3rdparty code -QMAKE_CFLAGS_STATIC_LIB+=-w - -# -# libxcb -# -LIBXCB_DIR = $$XCB_DIR/libxcb - -SOURCES += \ - $$LIBXCB_DIR/xfixes.c \ - $$LIBXCB_DIR/randr.c \ - $$LIBXCB_DIR/shm.c \ - $$LIBXCB_DIR/sync.c \ - $$LIBXCB_DIR/render.c \ - $$LIBXCB_DIR/shape.c \ - $$LIBXCB_DIR/xkb.c \ - $$LIBXCB_DIR/xinerama.c \ - $$LIBXCB_DIR/xinput.c - -# -# xcb-util -# -XCB_UTIL_DIR = $$XCB_DIR/xcb-util - - -SOURCES += \ - $$XCB_UTIL_DIR/xcb_aux.c \ - $$XCB_UTIL_DIR/atoms.c \ - $$XCB_UTIL_DIR/event.c - -# -# xcb-util-image -# -XCB_IMAGE_DIR = $$XCB_DIR/xcb-util-image - -SOURCES += $$XCB_IMAGE_DIR/xcb_image.c - -# -# xcb-util-keysyms -# -XCB_KEYSYMS_DIR = $$XCB_DIR/xcb-util-keysyms - -SOURCES += $$XCB_KEYSYMS_DIR/keysyms.c - -# -# xcb-util-renderutil -# - -XCB_RENDERUTIL_DIR = $$XCB_DIR/xcb-util-renderutil - -SOURCES += $$XCB_RENDERUTIL_DIR/util.c - -# -# xcb-util-wm -# -XCB_WM_DIR = $$XCB_DIR/xcb-util-wm - -SOURCES += \ - $$XCB_WM_DIR/icccm.c - -OTHER_FILES = $$XCB_DIR/README - -TR_EXCLUDE += $$XCB_DIR/* - -load(qt_helper_lib) diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro index 0d27645a60..1c43c5ca04 100644 --- a/src/plugins/platforms/xcb/xcb.pro +++ b/src/plugins/platforms/xcb/xcb.pro @@ -2,8 +2,6 @@ TEMPLATE = subdirs CONFIG += ordered QT_FOR_CONFIG += gui-private -!qtConfig(system-xcb): SUBDIRS += xcb-static - SUBDIRS += xcb_qpa_lib.pro SUBDIRS += xcb-plugin.pro SUBDIRS += gl_integrations diff --git a/src/plugins/platforms/xcb/xcb_qpa_lib.pro b/src/plugins/platforms/xcb/xcb_qpa_lib.pro index 34c671c8c7..a5d05faa9c 100644 --- a/src/plugins/platforms/xcb/xcb_qpa_lib.pro +++ b/src/plugins/platforms/xcb/xcb_qpa_lib.pro @@ -35,6 +35,7 @@ SOURCES = \ qxcbeventdispatcher.cpp \ qxcbconnection_basic.cpp \ qxcbconnection_screens.cpp \ + qxcbconnection_xi2.cpp \ qxcbatom.cpp HEADERS = \ @@ -71,10 +72,6 @@ qtConfig(xcb-xlib) { QMAKE_USE += xcb_xlib } -qtConfig(xcb-xinput) { - SOURCES += qxcbconnection_xi2.cpp -} - qtConfig(xcb-sm) { QMAKE_USE += x11sm SOURCES += qxcbsessionmanager.cpp @@ -94,20 +91,19 @@ qtConfig(vulkan) { qxcbvulkanwindow.h } -!qtConfig(system-xcb) { - QMAKE_USE += xcb-static -} else { - qtConfig(xcb-xinput): QMAKE_USE += xcb_xinput - QMAKE_USE += \ - xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil \ - xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama -} -QMAKE_USE += xcb +QMAKE_USE += \ + xcb xcb_icccm xcb_image xcb_keysyms xcb_randr xcb_render xcb_renderutil \ + xcb_shape xcb_shm xcb_sync xcb_xfixes xcb_xinerama xcb_xkb xkbcommon xkbcommon_x11 -QMAKE_USE += xkbcommon -qtConfig(xkb) { - QMAKE_USE += xkbcommon_x11 - qtConfig(system-xcb): QMAKE_USE += xcb_xkb +qtConfig(system-xcb-xinput) { + QMAKE_USE += xcb_xinput +} else { + # Use bundled xcb-xinput sources. + XCB_DIR = $$QT_SOURCE_TREE/src/3rdparty/xcb + INCLUDEPATH += $$XCB_DIR/include/ + SOURCES += $$XCB_DIR/libxcb/xinput.c + # Ignore compiler warnings in 3rdparty C code. + QMAKE_CFLAGS+=-w } qtConfig(dlopen): QMAKE_USE += libdl -- cgit v1.2.3 From 8ac1d22ffae7c4079d40569b2ea8c1401ea674f0 Mon Sep 17 00:00:00 2001 From: Kari Oikarinen Date: Tue, 27 Aug 2019 09:10:31 +0300 Subject: Bump version Change-Id: Ie0cc04ec18fceccaf40eb8fe5c5b4f2e916869ac --- .qmake.conf | 2 +- src/corelib/serialization/qdatastream.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.qmake.conf b/.qmake.conf index 5c64c10981..8cc650fc21 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -6,4 +6,4 @@ DEFINES += QT_NO_JAVA_STYLE_ITERATORS QT_SOURCE_TREE = $$PWD QT_BUILD_TREE = $$shadowed($$PWD) -MODULE_VERSION = 5.14.0 +MODULE_VERSION = 5.15.0 diff --git a/src/corelib/serialization/qdatastream.cpp b/src/corelib/serialization/qdatastream.cpp index b3330d6cea..5082a8cb0d 100644 --- a/src/corelib/serialization/qdatastream.cpp +++ b/src/corelib/serialization/qdatastream.cpp @@ -566,6 +566,7 @@ void QDataStream::setByteOrder(ByteOrder bo) \value Qt_5_12 Version 18 (Qt 5.12) \value Qt_5_13 Version 19 (Qt 5.13) \value Qt_5_14 Same as Qt_5_13 + \value Qt_5_15 Same as Qt_5_13 \omitvalue Qt_DefaultCompiledVersion \sa setVersion(), version() -- cgit v1.2.3 From af686f5aef68a3a2d1c04593ef1ca296e29405cd Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 26 Aug 2019 11:36:56 +0200 Subject: Mark all rhi docs as internal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is private API for the time being. Without this the QRhi* classes show up in the class list in the docs. Change-Id: I662abb9cc8eaae13ffe9266bd6313faa8e138353 Reviewed-by: Christian Strømme --- src/gui/rhi/qrhi.cpp | 105 ++++++++++++++++++++++++------------- src/gui/rhi/qrhid3d11.cpp | 9 ++-- src/gui/rhi/qrhigles2.cpp | 9 ++-- src/gui/rhi/qrhinull.cpp | 9 ++-- src/gui/rhi/qrhiprofiler.cpp | 9 ++-- src/gui/rhi/qrhivulkan.cpp | 12 +++-- src/gui/rhi/qshader.cpp | 12 +++-- src/gui/rhi/qshaderdescription.cpp | 18 ++++--- 8 files changed, 122 insertions(+), 61 deletions(-) diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp index a24bdde04f..1076b21c1e 100644 --- a/src/gui/rhi/qrhi.cpp +++ b/src/gui/rhi/qrhi.cpp @@ -59,7 +59,8 @@ Q_LOGGING_CATEGORY(QRHI_LOG_INFO, "qt.rhi.general") /*! \class QRhi - \inmodule QtRhi + \internal + \inmodule QtGui \brief Accelerated 2D/3D graphics API abstraction. @@ -604,7 +605,8 @@ Q_LOGGING_CATEGORY(QRHI_LOG_INFO, "qt.rhi.general") /*! \class QRhiInitParams - \inmodule QtRhi + \internal + \inmodule QtGui \brief Base class for backend-specific initialization parameters. Contains fields that are relevant to all backends. @@ -612,7 +614,8 @@ Q_LOGGING_CATEGORY(QRHI_LOG_INFO, "qt.rhi.general") /*! \class QRhiDepthStencilClearValue - \inmodule QtRhi + \internal + \inmodule QtGui \brief Specifies clear values for a depth or stencil buffer. */ @@ -679,7 +682,8 @@ QDebug operator<<(QDebug dbg, const QRhiDepthStencilClearValue &v) /*! \class QRhiViewport - \inmodule QtRhi + \internal + \inmodule QtGui \brief Specifies a viewport rectangle. Used with QRhiCommandBuffer::setViewport(). @@ -778,7 +782,8 @@ QDebug operator<<(QDebug dbg, const QRhiViewport &v) /*! \class QRhiScissor - \inmodule QtRhi + \internal + \inmodule QtGui \brief Specifies a scissor rectangle. Used with QRhiCommandBuffer::setScissor(). Setting a scissor rectangle is @@ -857,7 +862,8 @@ QDebug operator<<(QDebug dbg, const QRhiScissor &s) /*! \class QRhiVertexInputBinding - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a vertex input binding. Specifies the stride (in bytes, must be a multiple of 4), the @@ -987,7 +993,8 @@ QDebug operator<<(QDebug dbg, const QRhiVertexInputBinding &b) /*! \class QRhiVertexInputAttribute - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a single vertex input element. The members specify the binding number, location, format, and offset for a @@ -1140,7 +1147,8 @@ QDebug operator<<(QDebug dbg, const QRhiVertexInputAttribute &a) /*! \class QRhiVertexInputLayout - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the layout of vertex inputs consumed by a vertex shader. The vertex input layout is defined by the collections of @@ -1199,7 +1207,8 @@ QDebug operator<<(QDebug dbg, const QRhiVertexInputLayout &v) /*! \class QRhiShaderStage - \inmodule QtRhi + \internal + \inmodule QtGui \brief Specifies the type and the shader code for a shader stage in the pipeline. */ @@ -1283,7 +1292,8 @@ QDebug operator<<(QDebug dbg, const QRhiShaderStage &s) /*! \class QRhiColorAttachment - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the a single color attachment of a render target. A color attachment is either a QRhiTexture or a QRhiRenderBuffer. The @@ -1341,7 +1351,8 @@ QRhiColorAttachment::QRhiColorAttachment(QRhiRenderBuffer *renderBuffer) /*! \class QRhiTextureRenderTargetDescription - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the color and depth or depth/stencil attachments of a render target. A texture render target has zero or more textures as color attachments, @@ -1396,7 +1407,8 @@ QRhiTextureRenderTargetDescription::QRhiTextureRenderTargetDescription(const QRh /*! \class QRhiTextureSubresourceUploadDescription - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the source for one mip level in a layer in a texture upload operation. The source content is specified either as a QImage or as a raw blob. The @@ -1476,7 +1488,8 @@ QRhiTextureSubresourceUploadDescription::QRhiTextureSubresourceUploadDescription /*! \class QRhiTextureUploadEntry - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes one layer (face for cubemaps) in a texture upload operation. */ @@ -1504,7 +1517,8 @@ QRhiTextureUploadEntry::QRhiTextureUploadEntry(int layer, int level, /*! \class QRhiTextureUploadDescription - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a texture upload operation. Used with QRhiResourceUpdateBatch::uploadTexture(). That function has two @@ -1609,7 +1623,8 @@ void QRhiTextureUploadDescription::append(const QRhiTextureUploadEntry &entry) /*! \class QRhiTextureCopyDescription - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a texture-to-texture copy operation. An empty pixelSize() indicates that the entire subresource is to be copied. @@ -1632,7 +1647,8 @@ void QRhiTextureUploadDescription::append(const QRhiTextureUploadEntry &entry) /*! \class QRhiReadbackDescription - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a readback (reading back texture contents from possibly GPU-only memory) operation. The source of the readback operation is either a QRhiTexture or the @@ -1678,7 +1694,8 @@ QRhiReadbackDescription::QRhiReadbackDescription(QRhiTexture *texture) /*! \class QRhiReadbackResult - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the results of a potentially asynchronous readback operation. When \l completed is set, the function is invoked when the \l data is @@ -1688,13 +1705,15 @@ QRhiReadbackDescription::QRhiReadbackDescription(QRhiTexture *texture) /*! \class QRhiNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Base class for classes exposing backend-specific collections of native resource objects. */ /*! \class QRhiResource - \inmodule QtRhi + \internal + \inmodule QtGui \brief Base class for classes encapsulating native resource objects. */ @@ -1813,7 +1832,8 @@ quint64 QRhiResource::globalResourceId() const /*! \class QRhiBuffer - \inmodule QtRhi + \internal + \inmodule QtGui \brief Vertex, index, or uniform (constant) buffer resource. */ @@ -1914,7 +1934,8 @@ QRhiResource::Type QRhiBuffer::resourceType() const /*! \class QRhiRenderBuffer - \inmodule QtRhi + \internal + \inmodule QtGui \brief Renderbuffer resource. Renderbuffers cannot be sampled or read but have some benefits over @@ -1990,7 +2011,8 @@ QRhiResource::Type QRhiRenderBuffer::resourceType() const /*! \class QRhiTexture - \inmodule QtRhi + \internal + \inmodule QtGui \brief Texture resource. */ @@ -2158,7 +2180,8 @@ bool QRhiTexture::buildFrom(const QRhiNativeHandles *src) /*! \class QRhiSampler - \inmodule QtRhi + \internal + \inmodule QtGui \brief Sampler resource. */ @@ -2220,7 +2243,8 @@ QRhiResource::Type QRhiSampler::resourceType() const /*! \class QRhiRenderPassDescriptor - \inmodule QtRhi + \internal + \inmodule QtGui \brief Render pass resource. */ @@ -2242,7 +2266,8 @@ QRhiResource::Type QRhiRenderPassDescriptor::resourceType() const /*! \class QRhiRenderTarget - \inmodule QtRhi + \internal + \inmodule QtGui \brief Represents an onscreen (swapchain) or offscreen (texture) render target. */ @@ -2279,7 +2304,8 @@ QRhiResource::Type QRhiRenderTarget::resourceType() const /*! \class QRhiTextureRenderTarget - \inmodule QtRhi + \internal + \inmodule QtGui \brief Texture render target resource. A texture render target allows rendering into one or more textures, @@ -2396,7 +2422,8 @@ QRhiResource::Type QRhiTextureRenderTarget::resourceType() const /*! \class QRhiShaderResourceBindings - \inmodule QtRhi + \internal + \inmodule QtGui \brief Encapsulates resources for making buffer, texture, sampler resources visible to shaders. A QRhiShaderResourceBindings is a collection of QRhiShaderResourceBinding @@ -2513,7 +2540,8 @@ bool QRhiShaderResourceBindings::isLayoutCompatible(const QRhiShaderResourceBind /*! \class QRhiShaderResourceBinding - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the shader resource for a single binding point. A QRhiShaderResourceBinding cannot be constructed directly. Instead, use @@ -3038,7 +3066,8 @@ QDebug operator<<(QDebug dbg, const QRhiShaderResourceBindings &srb) /*! \class QRhiGraphicsPipeline - \inmodule QtRhi + \internal + \inmodule QtGui \brief Graphics pipeline state resource. \note Setting the shader resource bindings is mandatory. The referenced @@ -3193,7 +3222,8 @@ QDebug operator<<(QDebug dbg, const QRhiShaderResourceBindings &srb) /*! \class QRhiGraphicsPipeline::TargetBlend - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the blend state for one color attachment. Defaults to color write enabled, blending disabled. The blend values are @@ -3203,7 +3233,8 @@ QDebug operator<<(QDebug dbg, const QRhiShaderResourceBindings &srb) /*! \class QRhiGraphicsPipeline::StencilOpState - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the stencil operation state. */ @@ -3258,7 +3289,8 @@ QRhiResource::Type QRhiGraphicsPipeline::resourceType() const /*! \class QRhiSwapChain - \inmodule QtRhi + \internal + \inmodule QtGui \brief Swapchain resource. A swapchain enables presenting rendering results to a surface. A swapchain @@ -3520,7 +3552,8 @@ QRhiResource::Type QRhiSwapChain::resourceType() const /*! \class QRhiComputePipeline - \inmodule QtRhi + \internal + \inmodule QtGui \brief Compute pipeline state resource. \note Setting the shader resource bindings is mandatory. The referenced @@ -3548,7 +3581,8 @@ QRhiComputePipeline::QRhiComputePipeline(QRhiImplementation *rhi) /*! \class QRhiCommandBuffer - \inmodule QtRhi + \internal + \inmodule QtGui \brief Command buffer resource. Not creatable by applications at the moment. The only ways to obtain a @@ -4008,7 +4042,8 @@ void QRhi::runCleanup() /*! \class QRhiResourceUpdateBatch - \inmodule QtRhi + \internal + \inmodule QtGui \brief Records upload and copy type of operations. With QRhi it is no longer possible to perform copy type of operations at diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp index ddcc5179d2..9b411c5021 100644 --- a/src/gui/rhi/qrhid3d11.cpp +++ b/src/gui/rhi/qrhid3d11.cpp @@ -58,7 +58,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiD3D11InitParams - \inmodule QtRhi + \internal + \inmodule QtGui \brief Direct3D 11 specific initialization parameters. A D3D11-based QRhi needs no special parameters for initialization. If @@ -97,7 +98,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiD3D11NativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Holds the D3D device and device context used by the QRhi. \note The class uses \c{void *} as the type since including the COM-based @@ -107,7 +109,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiD3D11TextureNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Holds the D3D texture object that is backing a QRhiTexture instance. \note The class uses \c{void *} as the type since including the COM-based diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 4ad68d6cd0..26e7fa2759 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -58,7 +58,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiGles2InitParams - \inmodule QtRhi + \internal + \inmodule QtGui \brief OpenGL specific initialization parameters. An OpenGL-based QRhi needs an already created QOffscreenSurface at minimum. @@ -130,13 +131,15 @@ QT_BEGIN_NAMESPACE /*! \class QRhiGles2NativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Holds the OpenGL context used by the QRhi. */ /*! \class QRhiGles2TextureNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Holds the OpenGL texture object that is backing a QRhiTexture instance. */ diff --git a/src/gui/rhi/qrhinull.cpp b/src/gui/rhi/qrhinull.cpp index 1314e53893..048dce0dde 100644 --- a/src/gui/rhi/qrhinull.cpp +++ b/src/gui/rhi/qrhinull.cpp @@ -41,7 +41,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiNullInitParams - \inmodule QtRhi + \internal + \inmodule QtGui \brief Null backend specific initialization parameters. A Null QRhi needs no special parameters for initialization. @@ -60,13 +61,15 @@ QT_BEGIN_NAMESPACE /*! \class QRhiNullNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Empty. */ /*! \class QRhiNullTextureNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Empty. */ diff --git a/src/gui/rhi/qrhiprofiler.cpp b/src/gui/rhi/qrhiprofiler.cpp index 15e3007d49..e74e446a1c 100644 --- a/src/gui/rhi/qrhiprofiler.cpp +++ b/src/gui/rhi/qrhiprofiler.cpp @@ -41,7 +41,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiProfiler - \inmodule QtRhi + \internal + \inmodule QtGui \brief Collects resource and timing information from an active QRhi. @@ -142,7 +143,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiProfiler::CpuTime - \inmodule QtRhi + \internal + \inmodule QtGui \brief Contains CPU-side frame timings. Once sufficient number of frames have been rendered, the minimum, maximum, @@ -155,7 +157,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiProfiler::GpuTime - \inmodule QtRhi + \internal + \inmodule QtGui \brief Contains GPU-side frame timings. Once sufficient number of frames have been rendered, the minimum, maximum, diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index 61a1595a50..321fd92f88 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -62,7 +62,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiVulkanInitParams - \inmodule QtRhi + \internal + \inmodule QtGui \brief Vulkan specific initialization parameters. A Vulkan-based QRhi needs at minimum a valid QVulkanInstance. It is up to @@ -146,7 +147,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiVulkanNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Collects device, queue, and other Vulkan objects that are used by the QRhi. \note Ownership of the Vulkan objects is never transferred. @@ -154,7 +156,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiVulkanTextureNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Holds the Vulkan image object that is backing a QRhiTexture. Importing and exporting Vulkan image objects that back a QRhiTexture when @@ -168,7 +171,8 @@ QT_BEGIN_NAMESPACE /*! \class QRhiVulkanCommandBufferNativeHandles - \inmodule QtRhi + \internal + \inmodule QtGui \brief Holds the Vulkan command buffer object that is backing a QRhiCommandBuffer. \note The Vulkan command buffer object is only guaranteed to be valid, and diff --git a/src/gui/rhi/qshader.cpp b/src/gui/rhi/qshader.cpp index 9098180f69..72ce53c87a 100644 --- a/src/gui/rhi/qshader.cpp +++ b/src/gui/rhi/qshader.cpp @@ -42,7 +42,8 @@ QT_BEGIN_NAMESPACE /*! \class QShader - \inmodule QtRhi + \internal + \inmodule QtGui \brief Contains multiple versions of a shader translated to multiple shading languages, together with reflection metadata. @@ -134,7 +135,8 @@ QT_BEGIN_NAMESPACE /*! \class QShaderVersion - \inmodule QtRhi + \internal + \inmodule QtGui \brief Specifies the shading language version. @@ -171,7 +173,8 @@ QT_BEGIN_NAMESPACE /*! \class QShaderKey - \inmodule QtRhi + \internal + \inmodule QtGui \brief Specifies the shading language, the version with flags, and the variant. @@ -202,7 +205,8 @@ QT_BEGIN_NAMESPACE /*! \class QShaderCode - \inmodule QtRhi + \internal + \inmodule QtGui \brief Contains source or binary code for a shader and additional metadata. diff --git a/src/gui/rhi/qshaderdescription.cpp b/src/gui/rhi/qshaderdescription.cpp index 77aceaddba..c38a83c497 100644 --- a/src/gui/rhi/qshaderdescription.cpp +++ b/src/gui/rhi/qshaderdescription.cpp @@ -43,7 +43,8 @@ QT_BEGIN_NAMESPACE /*! \class QShaderDescription - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes the interface of a shader. @@ -231,21 +232,24 @@ QT_BEGIN_NAMESPACE /*! \class QShaderDescription::InOutVariable - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes an input or output variable in the shader. */ /*! \class QShaderDescription::BlockVariable - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a member of a uniform or push constant block. */ /*! \class QShaderDescription::UniformBlock - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a uniform block. @@ -257,14 +261,16 @@ QT_BEGIN_NAMESPACE /*! \class QShaderDescription::PushConstantBlock - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a push constant block. */ /*! \class QShaderDescription::StorageBlock - \inmodule QtRhi + \internal + \inmodule QtGui \brief Describes a shader storage block. */ -- cgit v1.2.3 From c1e4c7d7639b84c0220e3a2ddd455d03c0910893 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Mon, 26 Aug 2019 11:11:10 +0200 Subject: Improve docs of QSysInfo - Compile the docs for deprecated APIs conditionally, based on deprecation version. - Document the alternatives to be used instead of the deprecated APIs. Change-Id: I671b3b8dd14a0dc079a31cbc8e048c41cc603bb9 Reviewed-by: Leena Miettinen Reviewed-by: Volker Hilsheimer --- src/corelib/global/qglobal.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index dd54ef61dc..15cb809377 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -1199,11 +1199,14 @@ bool qSharedBuild() noexcept the application is compiled (32 or 64). */ +#if QT_DEPRECATED_SINCE(5, 9) /*! \deprecated \variable QSysInfo::WindowsVersion \brief the version of the Windows operating system on which the application is run. + + Use QOperatingSystemVersion::current() instead. */ /*! @@ -1211,6 +1214,8 @@ bool qSharedBuild() noexcept \fn QSysInfo::WindowsVersion QSysInfo::windowsVersion() \since 4.4 + Use QOperatingSystemVersion::current() instead. + Returns the version of the Windows operating system on which the application is run, or WV_None if the operating system is not Windows. @@ -1221,16 +1226,21 @@ bool qSharedBuild() noexcept \variable QSysInfo::MacintoshVersion \brief the version of the Macintosh operating system on which the application is run. + + Use QOperatingSystemVersion::current() instead. */ /*! \deprecated \fn QSysInfo::MacVersion QSysInfo::macVersion() + Use QOperatingSystemVersion::current() instead. + Returns the version of Darwin (\macos or iOS) on which the application is run, or MV_None if the operating system is not a version of Darwin. */ +#endif /*! \enum QSysInfo::Endian @@ -1241,10 +1251,13 @@ bool qSharedBuild() noexcept the platform's byte order. */ +#if QT_DEPRECATED_SINCE(5, 9) /*! \deprecated \enum QSysInfo::WinVersion + Use the versions defined in QOperatingSystemVersion instead. + This enum provides symbolic names for the various versions of the Windows operating system. On Windows, the QSysInfo::WindowsVersion variable gives the version of the system @@ -1302,6 +1315,8 @@ bool qSharedBuild() noexcept \deprecated \enum QSysInfo::MacVersion + Use the versions defined in QOperatingSystemVersion instead. + This enum provides symbolic names for the various versions of the Darwin operating system, covering both \macos and iOS. The QSysInfo::MacintoshVersion variable gives the version of the @@ -1372,6 +1387,7 @@ bool qSharedBuild() noexcept \sa WinVersion */ +#endif /*! \macro Q_OS_DARWIN -- cgit v1.2.3 From 25026defdc610e2d3d1acee25d2928e6e623dc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 26 Aug 2019 14:57:44 +0200 Subject: widgets: Clarify QWidgetRepaintManager::sync of specific widget Change-Id: Ifa2a8245decfcb2b36c1952a39ec60b7eeca6e43 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 99373f758c..11647ae05e 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -707,9 +707,9 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) /*! Synchronizes the \a exposedRegion of the \a exposedWidget with the backing store. - If there's nothing to repaint, the area is flushed and painting does not occur; - otherwise the area is marked as dirty on screen and will be flushed right after - we are done with all painting. + If there are dirty widgets, including but not limited to the \a exposedWidget, + these will be repainted first. The backingstore is then flushed to the screen, + regardless of whether or not there were any repaints. */ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedRegion) { @@ -730,6 +730,9 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR return; } + // As requests to sync a specific widget typically comes from an expose event + // we can't rely solely on our own dirty tracking to decide what to flush, and + // need to respect the platform's request to at least flush the entire widget, QPoint offset = exposedWidget != tlw ? exposedWidget->mapTo(tlw, QPoint()) : QPoint(); markNeedsFlush(exposedWidget, exposedRegion, offset); -- cgit v1.2.3 From ebec918722a283410624af6df38345b9dfc0b8f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 26 Aug 2019 15:10:49 +0200 Subject: widgets: Simplify markNeedsFlush in QWidgetPrivate::drawWidget QWidgetRepaintManager::markNeedsFlush already ignores paintOnScreen widgets. Change-Id: I8b5d6f79c8fd60115f77d65aef05cc4baf840bdd Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index c024f7f1f3..9e8c0cb500 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5309,7 +5309,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP // Native widgets need to be marked dirty on screen so painting will be done in correct context // Same check as in the no effects case below. - if (repaintManager && !onScreen && !asRoot && (q->internalWinId() || !q->nativeParentWidget()->isWindow())) + if (repaintManager && !asRoot && (q->internalWinId() || !q->nativeParentWidget()->isWindow())) repaintManager->markNeedsFlush(q, rgn, offset); return; @@ -5417,7 +5417,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP } // Native widgets need to be marked dirty on screen so painting will be done in correct context - if (repaintManager && !onScreen && !asRoot && (q->internalWinId() || (q->nativeParentWidget() && !q->nativeParentWidget()->isWindow()))) + if (repaintManager && !asRoot && (q->internalWinId() || (q->nativeParentWidget() && !q->nativeParentWidget()->isWindow()))) repaintManager->markNeedsFlush(q, toBePainted, offset); //restore -- cgit v1.2.3 From 00d972fa4f458554cece7f66f1b43f00b0a5458c Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 22 Aug 2019 10:46:29 +0200 Subject: QReadWriteLock QT_NO_THREAD shell: make API compatible with the regular one - add missing explicit - drop static from member functions that aren't static in the regular version (ie. all functions) As a drive-by, remove redundant inline keyword where it doesn't cause wanton inconsistency with surrounding code. Change-Id: I5aed73c3afa85d98d97b57c2c1874b1a5e664960 Reviewed-by: Edward Welbourne Reviewed-by: Volker Hilsheimer --- src/corelib/thread/qreadwritelock.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/corelib/thread/qreadwritelock.h b/src/corelib/thread/qreadwritelock.h index 139fde9214..3c1ed91b94 100644 --- a/src/corelib/thread/qreadwritelock.h +++ b/src/corelib/thread/qreadwritelock.h @@ -183,15 +183,15 @@ public: inline explicit QReadWriteLock(RecursionMode = NonRecursive) noexcept { } inline ~QReadWriteLock() { } - static inline void lockForRead() noexcept { } - static inline bool tryLockForRead() noexcept { return true; } - static inline bool tryLockForRead(int timeout) noexcept { Q_UNUSED(timeout); return true; } + void lockForRead() noexcept { } + bool tryLockForRead() noexcept { return true; } + bool tryLockForRead(int timeout) noexcept { Q_UNUSED(timeout); return true; } - static inline void lockForWrite() noexcept { } - static inline bool tryLockForWrite() noexcept { return true; } - static inline bool tryLockForWrite(int timeout) noexcept { Q_UNUSED(timeout); return true; } + void lockForWrite() noexcept { } + bool tryLockForWrite() noexcept { return true; } + bool tryLockForWrite(int timeout) noexcept { Q_UNUSED(timeout); return true; } - static inline void unlock() noexcept { } + void unlock() noexcept { } private: Q_DISABLE_COPY(QReadWriteLock) @@ -200,12 +200,12 @@ private: class Q_CORE_EXPORT QReadLocker { public: - inline QReadLocker(QReadWriteLock *) noexcept { } + inline explicit QReadLocker(QReadWriteLock *) noexcept { } inline ~QReadLocker() noexcept { } - static inline void unlock() noexcept { } - static inline void relock() noexcept { } - static inline QReadWriteLock *readWriteLock() noexcept { return nullptr; } + void unlock() noexcept { } + void relock() noexcept { } + QReadWriteLock *readWriteLock() noexcept { return nullptr; } private: Q_DISABLE_COPY(QReadLocker) @@ -217,9 +217,9 @@ public: inline explicit QWriteLocker(QReadWriteLock *) noexcept { } inline ~QWriteLocker() noexcept { } - static inline void unlock() noexcept { } - static inline void relock() noexcept { } - static inline QReadWriteLock *readWriteLock() noexcept { return nullptr; } + void unlock() noexcept { } + void relock() noexcept { } + QReadWriteLock *readWriteLock() noexcept { return nullptr; } private: Q_DISABLE_COPY(QWriteLocker) -- cgit v1.2.3 From 4cc3615b4e3b48f8fda19f0165ad542da9b39768 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 20 Aug 2019 10:06:29 +0300 Subject: Use QLatin1String where possible Change-Id: I8f94ba4880bcac735e4445d71f0e22774d9f78eb Reviewed-by: Marc Mutz --- src/tools/androiddeployqt/main.cpp | 229 ++++++++++++++++++------------------- 1 file changed, 114 insertions(+), 115 deletions(-) diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 4c7b8a6917..4cba67051b 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -259,7 +259,7 @@ static QString shellQuoteUnix(const QString &arg) }; // 0-32 \'"$`<>|;&(){}*?#!~[] if (!arg.length()) - return QString::fromLatin1("\"\""); + return QLatin1String("\"\""); QString ret(arg); if (hasSpecialChars(ret, iqm)) { @@ -282,7 +282,7 @@ static QString shellQuoteWin(const QString &arg) }; if (!arg.length()) - return QString::fromLatin1("\"\""); + return QLatin1String("\"\""); QString ret(arg); if (hasSpecialChars(ret, iqm)) { @@ -324,11 +324,11 @@ QString fileArchitecture(const Options &options, const QString &path) if (!arch.isEmpty()) return arch; - QString readElf = QStringLiteral("%1/toolchains/%2/prebuilt/%3/bin/llvm-readobj").arg(options.ndkPath, + QString readElf = QLatin1String("%1/toolchains/%2/prebuilt/%3/bin/llvm-readobj").arg(options.ndkPath, options.toolchainPrefix, options.ndkHost); #if defined(Q_OS_WIN32) - readElf += QStringLiteral(".exe"); + readElf += QLatin1String(".exe"); #endif if (!QFile::exists(readElf)) { @@ -336,7 +336,7 @@ QString fileArchitecture(const Options &options, const QString &path) return {}; } - readElf = QStringLiteral("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(path)); + readElf = QLatin1String("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(path)); FILE *readElfCommand = openProcess(readElf); if (!readElfCommand) { @@ -524,7 +524,7 @@ Options parseOptions() } if (options.inputFileName.isEmpty()) - options.inputFileName = QString::fromLatin1("android-lib%1.so-deployment-settings.json").arg(QDir::current().dirName()); + options.inputFileName = QLatin1String("android-lib%1.so-deployment-settings.json").arg(QDir::current().dirName()); options.timing = qEnvironmentVariableIsSet("ANDROIDDEPLOYQT_TIMING_OUTPUT"); @@ -717,7 +717,7 @@ QString cleanPackageName(QString packageName) } } if (keywords.contains(word)) { - packageName.insert(next, QStringLiteral("_")); + packageName.insert(next, QLatin1String("_")); index = next + 1; } else { index = next; @@ -729,7 +729,7 @@ QString cleanPackageName(QString packageName) QString detectLatestAndroidPlatform(const QString &sdkPath) { - QDir dir(sdkPath + QStringLiteral("/platforms")); + QDir dir(sdkPath + QLatin1String("/platforms")); if (!dir.exists()) { fprintf(stderr, "Directory %s does not exist\n", qPrintable(dir.absolutePath())); return QString(); @@ -759,7 +759,7 @@ QString packageNameFromAndroidManifest(const QString &androidManifestPath) reader.attributes().value(QLatin1String("package")).toString()); } } - return QString(); + return {}; } bool readInputFile(Options *options) @@ -801,13 +801,13 @@ bool readInputFile(Options *options) { - const QJsonValue value = jsonObject.value(QStringLiteral("sdkBuildToolsRevision")); + const QJsonValue value = jsonObject.value(QLatin1String("sdkBuildToolsRevision")); if (!value.isUndefined()) options->sdkBuildToolsVersion = value.toString(); } { - const QJsonValue qtInstallDirectory = jsonObject.value(QStringLiteral("qt")); + const QJsonValue qtInstallDirectory = jsonObject.value(QLatin1String("qt")); if (qtInstallDirectory.isUndefined()) { fprintf(stderr, "No Qt directory in json file %s\n", qPrintable(options->inputFileName)); return false; @@ -824,13 +824,13 @@ bool readInputFile(Options *options) } { - const QJsonValue androidSourcesDirectory = jsonObject.value(QStringLiteral("android-package-source-directory")); + const QJsonValue androidSourcesDirectory = jsonObject.value(QLatin1String("android-package-source-directory")); if (!androidSourcesDirectory.isUndefined()) options->androidSourceDirectory = androidSourcesDirectory.toString(); } { - const QJsonValue androidVersionName = jsonObject.value(QStringLiteral("android-version-name")); + const QJsonValue androidVersionName = jsonObject.value(QLatin1String("android-version-name")); if (!androidVersionName.isUndefined()) options->versionName = androidVersionName.toString(); else @@ -838,7 +838,7 @@ bool readInputFile(Options *options) } { - const QJsonValue androidVersionCode = jsonObject.value(QStringLiteral("android-version-code")); + const QJsonValue androidVersionCode = jsonObject.value(QLatin1String("android-version-code")); if (!androidVersionCode.isUndefined()) options->versionCode = androidVersionCode.toString(); else @@ -846,7 +846,7 @@ bool readInputFile(Options *options) } { - const QJsonObject targetArchitectures = jsonObject.value(QStringLiteral("architectures")).toObject(); + const QJsonObject targetArchitectures = jsonObject.value(QLatin1String("architectures")).toObject(); if (targetArchitectures.isEmpty()) { fprintf(stderr, "No target architecture defined in json file.\n"); return false; @@ -863,7 +863,7 @@ bool readInputFile(Options *options) } { - const QJsonValue ndk = jsonObject.value(QStringLiteral("ndk")); + const QJsonValue ndk = jsonObject.value(QLatin1String("ndk")); if (ndk.isUndefined()) { fprintf(stderr, "No NDK path defined in json file.\n"); return false; @@ -872,7 +872,7 @@ bool readInputFile(Options *options) } { - const QJsonValue toolchainPrefix = jsonObject.value(QStringLiteral("toolchain-prefix")); + const QJsonValue toolchainPrefix = jsonObject.value(QLatin1String("toolchain-prefix")); if (toolchainPrefix.isUndefined()) { fprintf(stderr, "No toolchain prefix defined in json file.\n"); return false; @@ -881,7 +881,7 @@ bool readInputFile(Options *options) } { - const QJsonValue ndkHost = jsonObject.value(QStringLiteral("ndk-host")); + const QJsonValue ndkHost = jsonObject.value(QLatin1String("ndk-host")); if (ndkHost.isUndefined()) { fprintf(stderr, "No NDK host defined in json file.\n"); return false; @@ -890,19 +890,19 @@ bool readInputFile(Options *options) } { - const QJsonValue extraLibs = jsonObject.value(QStringLiteral("android-extra-libs")); + const QJsonValue extraLibs = jsonObject.value(QLatin1String("android-extra-libs")); if (!extraLibs.isUndefined()) options->extraLibs = extraLibs.toString().split(QLatin1Char(','), QString::SkipEmptyParts); } { - const QJsonValue extraPlugins = jsonObject.value(QStringLiteral("android-extra-plugins")); + const QJsonValue extraPlugins = jsonObject.value(QLatin1String("android-extra-plugins")); if (!extraPlugins.isUndefined()) options->extraPlugins = extraPlugins.toString().split(QLatin1Char(',')); } { - const QJsonValue stdcppPath = jsonObject.value(QStringLiteral("stdcpp-path")); + const QJsonValue stdcppPath = jsonObject.value(QLatin1String("stdcpp-path")); if (stdcppPath.isUndefined()) { fprintf(stderr, "No stdcpp-path defined in json file.\n"); return false; @@ -911,19 +911,19 @@ bool readInputFile(Options *options) } { - const QJsonValue qmlRootPath = jsonObject.value(QStringLiteral("qml-root-path")); + const QJsonValue qmlRootPath = jsonObject.value(QLatin1String("qml-root-path")); if (!qmlRootPath.isUndefined()) options->rootPath = qmlRootPath.toString(); } { - const QJsonValue qmlImportPaths = jsonObject.value(QStringLiteral("qml-import-paths")); + const QJsonValue qmlImportPaths = jsonObject.value(QLatin1String("qml-import-paths")); if (!qmlImportPaths.isUndefined()) options->qmlImportPaths = qmlImportPaths.toString().split(QLatin1Char(',')); } { - const QJsonValue applicationBinary = jsonObject.value(QStringLiteral("application-binary")); + const QJsonValue applicationBinary = jsonObject.value(QLatin1String("application-binary")); if (applicationBinary.isUndefined()) { fprintf(stderr, "No application binary defined in json file.\n"); return false; @@ -931,7 +931,7 @@ bool readInputFile(Options *options) options->applicationBinary = applicationBinary.toString(); if (options->build) { for (auto it = options->architectures.constBegin(); it != options->architectures.constEnd(); ++it) { - if (!QFile::exists(QStringLiteral("%1/libs/%2/lib%3_%2.so").arg(options->outputDirectory, it.key(), options->applicationBinary))) { + if (!QFile::exists(QLatin1String("%1/libs/%2/lib%3_%2.so").arg(options->outputDirectory, it.key(), options->applicationBinary))) { fprintf(stderr, "Cannot find application binary %s.\n", qPrintable(options->applicationBinary)); return false; } @@ -940,7 +940,7 @@ bool readInputFile(Options *options) } { - const QJsonValue deploymentDependencies = jsonObject.value(QStringLiteral("deployment-dependencies")); + const QJsonValue deploymentDependencies = jsonObject.value(QLatin1String("deployment-dependencies")); if (!deploymentDependencies.isUndefined()) { QString deploymentDependenciesString = deploymentDependencies.toString(); const auto dependencies = deploymentDependenciesString.splitRef(QLatin1Char(',')); @@ -975,9 +975,9 @@ bool readInputFile(Options *options) } } - options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QStringLiteral("/AndroidManifest.xml")); + options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QLatin1String("/AndroidManifest.xml")); if (options->packageName.isEmpty()) - options->packageName = cleanPackageName(QStringLiteral("org.qtproject.example.%1").arg(options->applicationBinary)); + options->packageName = cleanPackageName(QLatin1String("org.qtproject.example.%1").arg(options->applicationBinary)); return true; } @@ -993,7 +993,7 @@ bool copyFiles(const QDir &sourceDirectory, const QDir &destinationDirectory, co return false; } - if (!copyFiles(dir, QDir(destinationDirectory.path() + QStringLiteral("/") + dir.dirName()), options, forceOverwrite)) + if (!copyFiles(dir, QDir(destinationDirectory.path() + QLatin1Char('/') + dir.dirName()), options, forceOverwrite)) return false; } else { QString destination = destinationDirectory.absoluteFilePath(entry.fileName()); @@ -1107,13 +1107,13 @@ bool copyAndroidExtraLibs(Options *options) fprintf(stdout, "Skipping \"%s\", architecture mismatch.\n", qPrintable(extraLib)); continue; } - if (!extraLibInfo.fileName().startsWith(QStringLiteral("lib")) || extraLibInfo.suffix() != QStringLiteral("so")) { + if (!extraLibInfo.fileName().startsWith(QLatin1String("lib")) || extraLibInfo.suffix() != QLatin1String("so")) { fprintf(stderr, "The file name of external library %s must begin with \"lib\" and end with the suffix \".so\".\n", qPrintable(extraLib)); return false; } QString destinationFile(options->outputDirectory - + QStringLiteral("/libs/") + + QLatin1String("/libs/") + options->currentArchitecture + QLatin1Char('/') + extraLibInfo.fileName()); @@ -1157,19 +1157,19 @@ bool copyAndroidExtraResources(Options *options) } QDir resourceDir(extraResource); - QString assetsDir = options->outputDirectory + QStringLiteral("/assets/") + resourceDir.dirName() + QLatin1Char('/'); - QString libsDir = options->outputDirectory + QStringLiteral("/libs/") + options->currentArchitecture + QLatin1Char('/'); + QString assetsDir = options->outputDirectory + QLatin1String("/assets/") + resourceDir.dirName() + QLatin1Char('/'); + QString libsDir = options->outputDirectory + QLatin1String("/libs/") + options->currentArchitecture + QLatin1Char('/'); const QStringList files = allFilesInside(resourceDir, resourceDir); for (const QString &resourceFile : files) { QString originFile(resourceDir.filePath(resourceFile)); QString destinationFile; - if (!resourceFile.endsWith(QStringLiteral(".so"))) { + if (!resourceFile.endsWith(QLatin1String(".so"))) { destinationFile = assetsDir + resourceFile; } else { if (!checkArchitecture(*options, originFile)) continue; - destinationFile = libsDir + QStringLiteral("/lib") + QString(resourceDir.dirName() + QLatin1Char('/') + resourceFile).replace(QLatin1Char('/'), QLatin1Char('_')); + destinationFile = libsDir + QLatin1String("/lib") + QString(resourceDir.dirName() + QLatin1Char('/') + resourceFile).replace(QLatin1Char('/'), QLatin1Char('_')); options->archExtraPlugins[options->currentArchitecture] += resourceFile; } if (!copyFileIfNewer(originFile, destinationFile, *options)) @@ -1229,7 +1229,7 @@ bool updateLibsXml(Options *options) if (options->verbose) fprintf(stdout, " -- res/values/libs.xml\n"); - QString fileName = options->outputDirectory + QStringLiteral("/res/values/libs.xml"); + QString fileName = options->outputDirectory + QLatin1String("/res/values/libs.xml"); if (!QFile::exists(fileName)) { fprintf(stderr, "Cannot find %s in prepared packaged. This file is required.\n", qPrintable(fileName)); return false; @@ -1242,22 +1242,22 @@ bool updateLibsXml(Options *options) QString extraLibs; for (auto it = options->architectures.constBegin(); it != options->architectures.constEnd(); ++it) { - QString libsPath = QStringLiteral("libs/") + it.key() + QLatin1Char('/'); + QString libsPath = QLatin1String("libs/") + it.key() + QLatin1Char('/'); - qtLibs += QStringLiteral(" %1;%2\n").arg(it.key(), options->stdCppName); + qtLibs += QLatin1String(" %1;%2\n").arg(it.key(), options->stdCppName); for (const Options::BundledFile &bundledFile : options->bundledFiles[it.key()]) { - if (bundledFile.second.startsWith(QStringLiteral("lib/"))) { + if (bundledFile.second.startsWith(QLatin1String("lib/"))) { QString s = bundledFile.second.mid(sizeof("lib/lib") - 1); s.chop(sizeof(".so") - 1); - qtLibs += QStringLiteral(" %1;%2\n").arg(it.key(), s); + qtLibs += QLatin1String(" %1;%2\n").arg(it.key(), s); } else if (bundledFile.first.startsWith(libsPath)) { QString s = bundledFile.first.mid(libsPath.length()); bundledInLibs += QString::fromLatin1(" %1;%2:%3\n") .arg(it.key(), s, bundledFile.second); - } else if (bundledFile.first.startsWith(QStringLiteral("assets/"))) { + } else if (bundledFile.first.startsWith(QLatin1String("assets/"))) { QString s = bundledFile.first.mid(sizeof("assets/") - 1); bundledInAssets += QString::fromLatin1(" %1:%2\n") - .arg(s).arg(bundledFile.second); + .arg(s, bundledFile.second); } } @@ -1267,11 +1267,11 @@ bool updateLibsXml(Options *options) const QStringList files = allFilesInside(resourceDir, resourceDir); for (const QString &file : files) { QString destinationPath = resourceDir.dirName() + QLatin1Char('/') + file; - if (!file.endsWith(QStringLiteral(".so"))) { - bundledInAssets += QStringLiteral(" %1:%1\n") + if (!file.endsWith(QLatin1String(".so"))) { + bundledInAssets += QLatin1String(" %1:%1\n") .arg(destinationPath); } else { - bundledInLibs += QStringLiteral(" %1;lib%2:%3\n") + bundledInLibs += QLatin1String(" %1;lib%2:%3\n") .arg(it.key(), QString(destinationPath).replace(QLatin1Char('/'), QLatin1Char('_')), destinationPath); @@ -1285,7 +1285,7 @@ bool updateLibsXml(Options *options) QFileInfo extraLibInfo(extraLib); QString name = extraLibInfo.fileName().mid(sizeof("lib") - 1); name.chop(sizeof(".so") - 1); - extraLibs += QStringLiteral(" %1;%2").arg(it.key(), name); + extraLibs += QLatin1String(" %1;%2").arg(it.key(), name); } } @@ -1295,8 +1295,8 @@ bool updateLibsXml(Options *options) if (localLibs.isEmpty()) { QString plugin; for (const QtDependency &qtDependency : options->qtDependencies[it.key()]) { - if (qtDependency.relativePath.endsWith(QStringLiteral("libqtforandroid.so")) - || qtDependency.relativePath.endsWith(QStringLiteral("libqtforandroidGL.so"))) { + if (qtDependency.relativePath.endsWith(QLatin1String("libqtforandroid.so")) + || qtDependency.relativePath.endsWith(QLatin1String("libqtforandroidGL.so"))) { if (!plugin.isEmpty() && plugin != qtDependency.relativePath) { fprintf(stderr, "Both platform plugins libqtforandroid.so and libqtforandroidGL.so included in package. Please include only one.\n"); return false; @@ -1304,8 +1304,8 @@ bool updateLibsXml(Options *options) plugin = qtDependency.relativePath; } - if (qtDependency.relativePath.contains(QStringLiteral("libQt5OpenGL")) - || qtDependency.relativePath.contains(QStringLiteral("libQt5Quick"))) { + if (qtDependency.relativePath.contains(QLatin1String("libQt5OpenGL")) + || qtDependency.relativePath.contains(QLatin1String("libQt5Quick"))) { options->usesOpenGL |= true; break; } @@ -1322,8 +1322,8 @@ bool updateLibsXml(Options *options) if (options->verbose) fprintf(stdout, " -- Using platform plugin %s\n", qPrintable(plugin)); } - allLocalLibs += QStringLiteral(" %1;%2\n").arg(it.key(), localLibs.join(QLatin1Char(':')) - .replace(QStringLiteral("lib/"), QString{}) + allLocalLibs += QLatin1String(" %1;%2\n").arg(it.key(), localLibs.join(QLatin1Char(':')) + .replace(QLatin1String("lib/"), QString{}) .replace(QLatin1Char('/'), QLatin1Char('_'))); } @@ -1351,7 +1351,7 @@ bool updateStringsXml(const Options &options) QHash replacements; replacements[QStringLiteral("")] = options.applicationBinary; - QString fileName = options.outputDirectory + QStringLiteral("/res/values/strings.xml"); + QString fileName = options.outputDirectory + QLatin1String("/res/values/strings.xml"); if (!QFile::exists(fileName)) { if (options.verbose) fprintf(stdout, " -- Create strings.xml since it's missing.\n"); @@ -1387,22 +1387,22 @@ bool updateAndroidManifest(Options &options) replacements[QStringLiteral("-- %%INSERT_INIT_CLASSES%% --")] = options.initClasses.join(QLatin1Char(':')); replacements[QStringLiteral("-- %%INSERT_VERSION_NAME%% --")] = options.versionName; replacements[QStringLiteral("-- %%INSERT_VERSION_CODE%% --")] = options.versionCode; - replacements[QStringLiteral("package=\"org.qtproject.example\"")] = QStringLiteral("package=\"%1\"").arg(options.packageName); + replacements[QStringLiteral("package=\"org.qtproject.example\"")] = QLatin1String("package=\"%1\"").arg(options.packageName); replacements[QStringLiteral("-- %%BUNDLE_LOCAL_QT_LIBS%% --")] - = (options.deploymentMechanism == Options::Bundled) ? QStringLiteral("1") : QStringLiteral("0"); + = (options.deploymentMechanism == Options::Bundled) ? QLatin1String("1") : QLatin1String("0"); replacements[QStringLiteral("-- %%USE_LOCAL_QT_LIBS%% --")] - = (options.deploymentMechanism != Options::Ministro) ? QStringLiteral("1") : QStringLiteral("0"); + = (options.deploymentMechanism != Options::Ministro) ? QLatin1String("1") : QLatin1String("0"); QString permissions; for (const QString &permission : qAsConst(options.permissions)) - permissions += QStringLiteral(" \n").arg(permission); + permissions += QLatin1String(" \n").arg(permission); replacements[QStringLiteral("")] = permissions.trimmed(); QString features; for (const QString &feature : qAsConst(options.features)) - features += QStringLiteral(" \n").arg(feature); + features += QLatin1String(" \n").arg(feature); if (options.usesOpenGL) - features += QStringLiteral(" "); + features += QLatin1String(" "); replacements[QStringLiteral("")] = features.trimmed(); @@ -1522,7 +1522,7 @@ bool readAndroidDependencyXml(Options *options, QSet *usedDependencies, QSet *remainingDependencies) { - QString androidDependencyName = absoluteFilePath(options, QStringLiteral("/lib/%1-android-dependencies.xml").arg(moduleName)); + QString androidDependencyName = absoluteFilePath(options, QLatin1String("/lib/%1-android-dependencies.xml").arg(moduleName)); QFile androidDependencyFile(androidDependencyName); if (androidDependencyFile.exists()) { @@ -1593,7 +1593,7 @@ bool readAndroidDependencyXml(Options *options, } else if (!fileName.isEmpty()) { options->localLibs[options->currentArchitecture].append(fileName); } - if (fileName.endsWith(QStringLiteral(".so")) && checkArchitecture(*options, fileName)) { + if (fileName.endsWith(QLatin1String(".so")) && checkArchitecture(*options, fileName)) { remainingDependencies->insert(fileName); } } else if (reader.name() == QLatin1String("permission")) { @@ -1621,11 +1621,11 @@ bool readAndroidDependencyXml(Options *options, QStringList getQtLibsFromElf(const Options &options, const QString &fileName) { - QString readElf = QStringLiteral("%1/toolchains/%2/prebuilt/%3/bin/llvm-readobj").arg(options.ndkPath, + QString readElf = QLatin1String("%1/toolchains/%2/prebuilt/%3/bin/llvm-readobj").arg(options.ndkPath, options.toolchainPrefix, options.ndkHost); #if defined(Q_OS_WIN32) - readElf += QStringLiteral(".exe"); + readElf += QLatin1String(".exe"); #endif if (!QFile::exists(readElf)) { @@ -1633,7 +1633,7 @@ QStringList getQtLibsFromElf(const Options &options, const QString &fileName) return QStringList(); } - readElf = QStringLiteral("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(fileName)); + readElf = QLatin1String("%1 -needed-libs %2").arg(shellQuote(readElf), shellQuote(fileName)); FILE *readElfCommand = openProcess(readElf); if (!readElfCommand) { @@ -1664,7 +1664,7 @@ QStringList getQtLibsFromElf(const Options &options, const QString &fileName) if (!line.startsWith("lib")) continue; library = QString::fromLatin1(line); - QString libraryName = QStringLiteral("lib/") + library; + QString libraryName = QLatin1String("lib/") + library; if (QFile::exists(absoluteFilePath(&options, libraryName))) ret += libraryName; } @@ -1751,9 +1751,8 @@ bool scanImports(Options *options, QSet *usedDependencies) for (const QString &qmlImportPath : qAsConst(options->qmlImportPaths)) importPaths += shellQuote(qmlImportPath); - qmlImportScanner += QString::fromLatin1(" -rootPath %1 -importPath %2") - .arg(shellQuote(rootPath)) - .arg(importPaths.join(QLatin1Char(' '))); + qmlImportScanner += QLatin1String(" -rootPath %1 -importPath %2") + .arg(shellQuote(rootPath), importPaths.join(QLatin1Char(' '))); if (options->verbose) { fprintf(stdout, "Running qmlimportscanner with the following command: %s\n", @@ -1846,10 +1845,10 @@ bool scanImports(Options *options, QSet *usedDependencies) fprintf(stdout, " -- Appending dependency found by qmlimportscanner: %s\n", qPrintable(fileName.absolutePath)); // Put all imports in default import path in assets - fileName.relativePath.prepend(QStringLiteral("qml/")); + fileName.relativePath.prepend(QLatin1String("qml/")); options->qtDependencies[options->currentArchitecture].append(fileName); - if (fileName.absolutePath.endsWith(QStringLiteral(".so")) && checkArchitecture(*options, fileName.absolutePath)) { + if (fileName.absolutePath.endsWith(QLatin1String(".so")) && checkArchitecture(*options, fileName.absolutePath)) { QSet remainingDependencies; if (!readDependenciesFromElf(options, fileName.absolutePath, usedDependencies, &remainingDependencies)) return false; @@ -1878,7 +1877,7 @@ bool readDependencies(Options *options) QSet remainingDependencies; // Add dependencies of application binary first - if (!readDependenciesFromElf(options, QStringLiteral("%1/libs/%2/lib%3_%2.so").arg(options->outputDirectory, options->currentArchitecture, options->applicationBinary), &usedDependencies, &remainingDependencies)) + if (!readDependenciesFromElf(options, QLatin1String("%1/libs/%2/lib%3_%2.so").arg(options->outputDirectory, options->currentArchitecture, options->applicationBinary), &usedDependencies, &remainingDependencies)) return false; while (!remainingDependencies.isEmpty()) { @@ -1926,10 +1925,10 @@ bool containsApplicationBinary(Options *options) fprintf(stdout, "Checking if application binary is in package.\n"); QFileInfo applicationBinary(options->applicationBinary); - QString applicationFileName = QStringLiteral("lib%1_%2.so").arg(options->applicationBinary, + QString applicationFileName = QLatin1String("lib%1_%2.so").arg(options->applicationBinary, options->currentArchitecture); - QString applicationPath = QStringLiteral("%1/libs/%2/%3").arg(options->outputDirectory, + QString applicationPath = QLatin1String("%1/libs/%2/%3").arg(options->outputDirectory, options->currentArchitecture, applicationFileName); if (!QFile::exists(applicationPath)) { @@ -1962,7 +1961,7 @@ FILE *runAdb(const Options &options, const QString &arguments) if (!options.installLocation.isEmpty()) installOption = QLatin1String(" -s ") + shellQuote(options.installLocation); - adb = QString::fromLatin1("%1%2 %3").arg(shellQuote(adb)).arg(installOption).arg(arguments); + adb = QLatin1String("%1%2 %3").arg(shellQuote(adb), installOption, arguments); if (options.verbose) fprintf(stdout, "Running command \"%s\"\n", adb.toLocal8Bit().constData()); @@ -2012,24 +2011,24 @@ bool copyQtFiles(Options *options) if (!options->build) return true; - QString libsDirectory = QLatin1String("libs/"); + QString libsDirectory = QLatin1String("libs/"); // Copy other Qt dependencies - QString assetsDestinationDirectory = QStringLiteral("assets/--Added-by-androiddeployqt--/"); + auto assetsDestinationDirectory = QLatin1String("assets/--Added-by-androiddeployqt--/"); for (const QtDependency &qtDependency : qAsConst(options->qtDependencies[options->currentArchitecture])) { QString sourceFileName = qtDependency.absolutePath; QString destinationFileName; - if (qtDependency.relativePath.endsWith(QStringLiteral(".so"))) { + if (qtDependency.relativePath.endsWith(QLatin1String(".so"))) { QString garbledFileName; - if (qtDependency.relativePath.startsWith(QStringLiteral("lib/"))) { + if (qtDependency.relativePath.startsWith(QLatin1String("lib/"))) { garbledFileName = qtDependency.relativePath.mid(sizeof("lib/") - 1); } else { garbledFileName = QString(qtDependency.relativePath).replace(QLatin1Char('/'), QLatin1Char('_')); } destinationFileName = libsDirectory + options->currentArchitecture + QLatin1Char('/') + garbledFileName; - } else if (qtDependency.relativePath.startsWith(QStringLiteral("jar/"))) { + } else if (qtDependency.relativePath.startsWith(QLatin1String("jar/"))) { destinationFileName = libsDirectory + qtDependency.relativePath.mid(sizeof("jar/") - 1); } else { destinationFileName = assetsDestinationDirectory + qtDependency.relativePath; @@ -2118,7 +2117,7 @@ bool createAndroidProject(const Options &options) return false; } - QString androidTool = QString::fromLatin1("%1 update project --path %2 --target %3 --name QtApp") + QString androidTool = QLatin1String("%1 update project --path %2 --target %3 --name QtApp") .arg(shellQuote(androidToolExecutable)) .arg(shellQuote(options.outputDirectory)) .arg(shellQuote(options.androidPlatform)); @@ -2140,7 +2139,7 @@ bool createAndroidProject(const Options &options) if (options.verbose) fprintf(stdout, "Updating subproject %s\n", qPrintable(libraryProject)); - androidTool = QString::fromLatin1("%1 update lib-project --path %2 --target %3") + androidTool = QLatin1String("%1 update lib-project --path %2 --target %3") .arg(shellQuote(androidToolExecutable)) .arg(shellQuote(libraryProject)) .arg(shellQuote(options.androidPlatform)); @@ -2272,7 +2271,7 @@ bool buildAndroidProject(const Options &options) return false; } - QString commandLine = QString::fromLatin1("%1 --no-daemon %2").arg(shellQuote(gradlePath)).arg(options.releasePackage ? QLatin1String(" assembleRelease") : QLatin1String(" assembleDebug")); + QString commandLine = QLatin1String("%1 --no-daemon %2").arg(shellQuote(gradlePath), options.releasePackage ? QLatin1String(" assembleRelease") : QLatin1String(" assembleDebug")); if (options.verbose) commandLine += QLatin1String(" --info"); @@ -2407,7 +2406,7 @@ bool copyStdCpp(Options *options) if (options->verbose) fprintf(stdout, "Copying STL library\n"); - QString stdCppPath = QStringLiteral("%1/%2/lib%3.so").arg(options->stdCppPath, options->architectures[options->currentArchitecture], options->stdCppName); + QString stdCppPath = QLatin1String("%1/%2/lib%3.so").arg(options->stdCppPath, options->architectures[options->currentArchitecture], options->stdCppName); if (!QFile::exists(stdCppPath)) { fprintf(stderr, "STL library does not exist at %s\n", qPrintable(stdCppPath)); fflush(stdout); @@ -2415,7 +2414,7 @@ bool copyStdCpp(Options *options) return false; } - const QString destinationFile = QStringLiteral("%1/libs/%2/lib%3.so").arg(options->outputDirectory, + const QString destinationFile = QLatin1String("%1/libs/%2/lib%3.so").arg(options->outputDirectory, options->currentArchitecture, options->stdCppName); return copyFileIfNewer(stdCppPath, destinationFile, *options); @@ -2432,9 +2431,9 @@ bool jarSignerSignPackage(const Options &options) jdkPath = QString::fromLocal8Bit(qgetenv("JAVA_HOME")); #if defined(Q_OS_WIN32) - QString jarSignerTool = QString::fromLatin1("jarsigner.exe"); + QString jarSignerTool = QLatin1String("jarsigner.exe"); #else - QString jarSignerTool = QString::fromLatin1("jarsigner"); + QString jarSignerTool = QLatin1String("jarsigner"); #endif if (jdkPath.isEmpty() || !QFile::exists(jdkPath + QLatin1String("/bin/") + jarSignerTool)) @@ -2447,29 +2446,29 @@ bool jarSignerSignPackage(const Options &options) return false; } - jarSignerTool = QString::fromLatin1("%1 -sigalg %2 -digestalg %3 -keystore %4") - .arg(shellQuote(jarSignerTool)).arg(shellQuote(options.sigAlg)).arg(shellQuote(options.digestAlg)).arg(shellQuote(options.keyStore)); + jarSignerTool = QLatin1String("%1 -sigalg %2 -digestalg %3 -keystore %4") + .arg(shellQuote(jarSignerTool), shellQuote(options.sigAlg), shellQuote(options.digestAlg), shellQuote(options.keyStore)); if (!options.keyStorePassword.isEmpty()) - jarSignerTool += QString::fromLatin1(" -storepass %1").arg(shellQuote(options.keyStorePassword)); + jarSignerTool += QLatin1String(" -storepass %1").arg(shellQuote(options.keyStorePassword)); if (!options.storeType.isEmpty()) - jarSignerTool += QString::fromLatin1(" -storetype %1").arg(shellQuote(options.storeType)); + jarSignerTool += QLatin1String(" -storetype %1").arg(shellQuote(options.storeType)); if (!options.keyPass.isEmpty()) - jarSignerTool += QString::fromLatin1(" -keypass %1").arg(shellQuote(options.keyPass)); + jarSignerTool += QLatin1String(" -keypass %1").arg(shellQuote(options.keyPass)); if (!options.sigFile.isEmpty()) - jarSignerTool += QString::fromLatin1(" -sigfile %1").arg(shellQuote(options.sigFile)); + jarSignerTool += QLatin1String(" -sigfile %1").arg(shellQuote(options.sigFile)); if (!options.signedJar.isEmpty()) - jarSignerTool += QString::fromLatin1(" -signedjar %1").arg(shellQuote(options.signedJar)); + jarSignerTool += QLatin1String(" -signedjar %1").arg(shellQuote(options.signedJar)); if (!options.tsaUrl.isEmpty()) - jarSignerTool += QString::fromLatin1(" -tsa %1").arg(shellQuote(options.tsaUrl)); + jarSignerTool += QLatin1String(" -tsa %1").arg(shellQuote(options.tsaUrl)); if (!options.tsaCert.isEmpty()) - jarSignerTool += QString::fromLatin1(" -tsacert %1").arg(shellQuote(options.tsaCert)); + jarSignerTool += QLatin1String(" -tsacert %1").arg(shellQuote(options.tsaCert)); if (options.internalSf) jarSignerTool += QLatin1String(" -internalsf"); @@ -2480,7 +2479,7 @@ bool jarSignerSignPackage(const Options &options) if (options.protectedAuthenticationPath) jarSignerTool += QLatin1String(" -protected"); - jarSignerTool += QString::fromLatin1(" %1 %2") + jarSignerTool += QLatin1String(" %1 %2") .arg(apkPath(options, UnsignedAPK)) .arg(shellQuote(options.keyStoreAlias)); @@ -2520,11 +2519,11 @@ bool jarSignerSignPackage(const Options &options) } } - zipAlignTool = QString::fromLatin1("%1%2 -f 4 %3 %4") - .arg(shellQuote(zipAlignTool)) - .arg(options.verbose ? QString::fromLatin1(" -v") : QString()) - .arg(apkPath(options, UnsignedAPK)) - .arg(apkPath(options, SignedAPK)); + zipAlignTool = QLatin1String("%1%2 -f 4 %3 %4") + .arg(shellQuote(zipAlignTool), + options.verbose ? QLatin1String(" -v") : QLatin1String(), + apkPath(options, UnsignedAPK), + apkPath(options, SignedAPK)); FILE *zipAlignCommand = openProcess(zipAlignTool); if (zipAlignCommand == 0) { @@ -2575,11 +2574,11 @@ bool signPackage(const Options &options) } } - zipAlignTool = QString::fromLatin1("%1%2 -f 4 %3 %4") - .arg(shellQuote(zipAlignTool)) - .arg(options.verbose ? QString::fromLatin1(" -v") : QString()) - .arg(apkPath(options, UnsignedAPK)) - .arg(apkPath(options, SignedAPK)); + zipAlignTool = QLatin1String("%1%2 -f 4 %3 %4") + .arg(shellQuote(zipAlignTool), + options.verbose ? QLatin1String(" -v") : QLatin1String(), + apkPath(options, UnsignedAPK), + apkPath(options, SignedAPK)); FILE *zipAlignCommand = openProcess(zipAlignTool); if (zipAlignCommand == 0) { @@ -2599,22 +2598,22 @@ bool signPackage(const Options &options) return false; } - QString apkSignerCommandLine = QString::fromLatin1("%1 sign --ks %2") - .arg(shellQuote(apksignerTool)).arg(shellQuote(options.keyStore)); + QString apkSignerCommandLine = QLatin1String("%1 sign --ks %2") + .arg(shellQuote(apksignerTool), shellQuote(options.keyStore)); if (!options.keyStorePassword.isEmpty()) - apkSignerCommandLine += QString::fromLatin1(" --ks-pass pass:%1").arg(shellQuote(options.keyStorePassword)); + apkSignerCommandLine += QLatin1String(" --ks-pass pass:%1").arg(shellQuote(options.keyStorePassword)); if (!options.keyStoreAlias.isEmpty()) - apkSignerCommandLine += QString::fromLatin1(" --ks-key-alias %1").arg(shellQuote(options.keyStoreAlias)); + apkSignerCommandLine += QLatin1String(" --ks-key-alias %1").arg(shellQuote(options.keyStoreAlias)); if (!options.keyPass.isEmpty()) - apkSignerCommandLine += QString::fromLatin1(" --key-pass pass:%1").arg(shellQuote(options.keyPass)); + apkSignerCommandLine += QLatin1String(" --key-pass pass:%1").arg(shellQuote(options.keyPass)); if (options.verbose) apkSignerCommandLine += QLatin1String(" --verbose"); - apkSignerCommandLine += QString::fromLatin1(" %1") + apkSignerCommandLine += QLatin1String(" %1") .arg(apkPath(options, SignedAPK)); auto apkSignerRunner = [&] { @@ -2642,8 +2641,8 @@ bool signPackage(const Options &options) if (!apkSignerRunner()) return false; - apkSignerCommandLine = QString::fromLatin1("%1 verify --verbose %2") - .arg(shellQuote(apksignerTool)).arg(apkPath(options, SignedAPK)); + apkSignerCommandLine = QLatin1String("%1 verify --verbose %2") + .arg(shellQuote(apksignerTool), apkPath(options, SignedAPK)); // Verify the package and remove the unsigned apk return apkSignerRunner() && QFile::remove(apkPath(options, UnsignedAPK)); @@ -2672,7 +2671,7 @@ bool generateAssetsFileList(const Options &options) const QString name = dirIterator.next().mid(assetsPath.length()); int slashIndex = name.lastIndexOf(QLatin1Char('/')); - QString pathName = slashIndex >= 0 ? name.left(slashIndex) : QString::fromLatin1("/"); + QString pathName = slashIndex >= 0 ? name.left(slashIndex) : QStringLiteral("/"); QString fileName = slashIndex >= 0 ? name.mid(pathName.length() + 1) : name; if (!fileName.isEmpty() && dirIterator.fileInfo().isDir() && !fileName.endsWith(QLatin1Char('/'))) -- cgit v1.2.3 From 3542fc4958918dc855f2e867eccb880daa621069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 26 Aug 2019 16:23:46 +0200 Subject: widgets: Simplify QWidgetRepaintManager::flush Change-Id: Icba88fa068aac2ac5d8bb04e46a3e3f34e279a48 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidgetrepaintmanager.cpp | 13 ++++--------- src/widgets/kernel/qwidgetrepaintmanager_p.h | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 11647ae05e..6b5ca4b594 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -1063,17 +1063,15 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io /*! Flushes the contents of the backing store into the top-level widget. - If the \a widget is non-zero, the content is flushed to the \a widget. */ -void QWidgetRepaintManager::flush(QWidget *widget) +void QWidgetRepaintManager::flush() { const bool hasNeedsFlushWidgets = !needsFlushWidgets.isEmpty(); bool flushed = false; // Flush the top level widget if (!topLevelNeedsFlush.isEmpty()) { - QWidget *target = widget ? widget : tlw; - flush(target, topLevelNeedsFlush, widgetTexturesFor(tlw, tlw)); + flush(tlw, topLevelNeedsFlush, widgetTexturesFor(tlw, tlw)); topLevelNeedsFlush = QRegion(); flushed = true; } @@ -1082,11 +1080,8 @@ void QWidgetRepaintManager::flush(QWidget *widget) if (!flushed && !hasNeedsFlushWidgets) { #ifndef QT_NO_OPENGL if (!tlw->d_func()->topData()->widgetTextures.empty()) { - QPlatformTextureList *widgetTextures = widgetTexturesFor(tlw, tlw); - if (widgetTextures) { - QWidget *target = widget ? widget : tlw; - flush(target, QRegion(), widgetTextures); - } + if (QPlatformTextureList *widgetTextures = widgetTexturesFor(tlw, tlw)) + flush(tlw, QRegion(), widgetTextures); } #endif } diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index e81eee0816..d7e38a9d69 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -115,7 +115,7 @@ private: void markNeedsFlush(QWidget *widget, const QRegion ®ion = QRegion()); - void flush(QWidget *widget = nullptr); + void flush(); void flush(QWidget *widget, const QRegion ®ion, QPlatformTextureList *widgetTextures); bool isDirty() const; -- cgit v1.2.3 From 3db14b5bd38001eea3e61009c2b7c108eced54dc Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 19 Aug 2019 11:42:51 +0300 Subject: Say hello to -android-abis configure param This configure parameter is useful to compile Qt only for a selected ABIs. The old parameter, -android-arch, does the same thing, it's kept for compatibility. [ChangeLog][Android] -android-abis configure script parameter useful to compile Qt only for a selected Android ABIs. Change-Id: I1f418c7e0914dd83b98d763e8cd8c09841e20fdf Reviewed-by: Eskil Abrahamsen Blomfeldt --- config_help.txt | 4 ++-- configure.json | 1 + configure.pri | 11 ++++++----- mkspecs/android-clang/qmake.conf | 4 +++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/config_help.txt b/config_help.txt index 3f31fd351f..5880c1e00d 100644 --- a/config_help.txt +++ b/config_help.txt @@ -203,8 +203,8 @@ Build environment: -android-ndk-platform Set Android platform -android-ndk-host .... Set Android NDK host (linux-x86, linux-x86_64, etc.) [$ANDROID_NDK_HOST] - -android-arch ........ Set Android architecture (armeabi, armeabi-v7a, - arm64-v8a, x86, x86_64) + -android-abis ....... Comma separated Android abis, default is: + armeabi-v7a,arm64-v8a,x86,x86_64 -android-toolchain-version ... Set Android toolchain version -android-style-assets Automatically extract style assets from the device at run time. This option makes the Android style behave diff --git a/configure.json b/configure.json index 6a7b5924cd..c6ea80b076 100644 --- a/configure.json +++ b/configure.json @@ -51,6 +51,7 @@ "translationdir": "string", "android-arch": "string", + "android-abis": "string", "android-ndk": "string", "android-ndk-host": "string", "android-ndk-platform": "string", diff --git a/configure.pri b/configure.pri index cbd11c2f67..d803dcf086 100644 --- a/configure.pri +++ b/configure.pri @@ -618,10 +618,11 @@ defineTest(qtConfOutput_prepareOptions) { qtConfFatalError("Specified Android NDK host is invalid.") } - target_arch = $$eval(config.input.android-arch) - isEmpty(target_arch): \ - target_arch = armeabi-v7a - + android_abis = $$eval(config.input.android-abis) + isEmpty(android_abis): \ + android_abis = $$eval(config.input.android-arch) + isEmpty(android_abis): \ + android_abis = armeabi-v7a,arm64-v8a,x86,x86_64 platform = $$eval(config.input.android-ndk-platform) isEmpty(platform): \ platform = android-21 @@ -631,7 +632,7 @@ defineTest(qtConfOutput_prepareOptions) { "DEFAULT_ANDROID_NDK_ROOT = $$val_escape(ndk_root)" \ "DEFAULT_ANDROID_PLATFORM = $$platform" \ "DEFAULT_ANDROID_NDK_HOST = $$ndk_host" \ - "DEFAULT_ANDROID_TARGET_ARCH = $$target_arch" \ + "DEFAULT_ANDROID_ABIS = $$split(android_abis, ',')" \ "DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION = $$ndk_tc_ver" } diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index 8252f400a1..21847cdc7c 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -37,7 +37,9 @@ isEmpty(ANDROID_SDK_BUILD_TOOLS_REVISION) { } } -ALL_ANDROID_ABIS = arm64-v8a armeabi-v7a x86_64 x86 +ALL_ANDROID_ABIS = $$(ALL_ANDROID_ABIS) +isEmpty(ALL_ANDROID_ABIS): ALL_ANDROID_ABIS = $$DEFAULT_ANDROID_ABIS +isEmpty(ALL_ANDROID_ABIS): ALL_ANDROID_ABIS = arm64-v8a armeabi-v7a x86_64 x86 CONFIG += $$ANDROID_PLATFORM -- cgit v1.2.3 From 0315e1945e0f385106e01ef151e934c29434903b Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 26 Aug 2019 13:02:31 +0300 Subject: Android: install qmlfiles only for first ABI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit qmlfiles are the same for all ABIs, and installing them for all leads to race condition Change-Id: I69fe062f59f1d7c028dff5212e2f2fac7e71398d Reviewed-by: Jörg Bornemann --- mkspecs/features/qml_module.prf | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf index 57cfec78b3..c0b50416c9 100644 --- a/mkspecs/features/qml_module.prf +++ b/mkspecs/features/qml_module.prf @@ -52,15 +52,26 @@ builtin_resources { qmldir.base = $$qmldir_path qmldir.files = $$qmldir_file qmldir.path = $$[QT_INSTALL_QML]/$$TARGETPATH -INSTALLS += qmldir qmlfiles.base = $$_PRO_FILE_PWD_ qmlfiles.files = $$fq_aux_qml_files install_qml_files: qmlfiles.files += $$fq_qml_files qmlfiles.path = $${qmldir.path} -INSTALLS += qmlfiles -!debug_and_release|!build_all|CONFIG(release, debug|release) { +INSTALL_QML_FILES = false + +android { + build_pass { + isEmpty(ANDROID_ABIS): ANDROID_ABIS = $$ALL_ANDROID_ABIS + ABI = $$first(ANDROID_ABIS) + equals(ABI, $$QT_ARCH): INSTALL_QML_FILES = true + } +} else: !debug_and_release|!build_all|CONFIG(release, debug|release): INSTALL_QML_FILES = true + +equals(INSTALL_QML_FILES, true) { + INSTALLS += qmldir + INSTALLS += qmlfiles + !prefix_build { COPIES += qmldir qmlfiles } else { -- cgit v1.2.3 From 271d3bae38ffa009f9718ffdd3a808cc75163a3a Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Mon, 26 Aug 2019 19:50:03 +0200 Subject: QGraphicsItem: mark GraphicsItemChange::ItemMatrixChange as deprecated The enum GraphicsItemChange::ItemMatrixChange is deprecated since Qt4 times. The corresponding matrix functions were also marked as deprecated in 5.13 but the enum was forgotten. Therefore also mark it as deprecated so it can be removed with Qt6. Change-Id: I39bec89af14aaefe2e504f5a890ef314574766a1 Reviewed-by: Andreas Aardal Hanssen --- src/widgets/graphicsview/qgraphicsitem.cpp | 2 ++ src/widgets/graphicsview/qgraphicsitem.h | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp index 6273de56a6..bb00db4c01 100644 --- a/src/widgets/graphicsview/qgraphicsitem.cpp +++ b/src/widgets/graphicsview/qgraphicsitem.cpp @@ -11523,9 +11523,11 @@ QDebug operator<<(QDebug debug, QGraphicsItem::GraphicsItemChange change) case QGraphicsItem::ItemFlagsHaveChanged: str = "ItemFlagsHaveChanged"; break; +#if QT_DEPRECATED_SINCE(5, 14) case QGraphicsItem::ItemMatrixChange: str = "ItemMatrixChange"; break; +#endif case QGraphicsItem::ItemParentChange: str = "ItemParentChange"; break; diff --git a/src/widgets/graphicsview/qgraphicsitem.h b/src/widgets/graphicsview/qgraphicsitem.h index 7dd4441ae9..d66a4917e5 100644 --- a/src/widgets/graphicsview/qgraphicsitem.h +++ b/src/widgets/graphicsview/qgraphicsitem.h @@ -110,8 +110,10 @@ public: enum GraphicsItemChange { ItemPositionChange, - ItemMatrixChange, - ItemVisibleChange, +#if QT_DEPRECATED_SINCE(5, 14) + ItemMatrixChange Q_DECL_ENUMERATOR_DEPRECATED_X("Use ItemTransformChange instead"), +#endif + ItemVisibleChange = 2, ItemEnabledChange, ItemSelectedChange, ItemParentChange, -- cgit v1.2.3 From 984df39c79e6129250fd0f8516fbfb2e28bcefd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 26 Aug 2019 17:34:35 +0200 Subject: widgets: Add logging for widget painting Change-Id: I551ec290812369e3848c1096fed7e813cd9e1cd6 Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 8 +++++++- src/widgets/kernel/qwidget_p.h | 2 ++ src/widgets/kernel/qwidgetrepaintmanager.cpp | 24 ++++++++++++++++++++++++ src/widgets/kernel/qwidgetrepaintmanager_p.h | 3 +++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 9e8c0cb500..45be132e59 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -119,6 +119,8 @@ QT_BEGIN_NAMESPACE +Q_LOGGING_CATEGORY(lcWidgetPainting, "qt.widgets.painting", QtWarningMsg); + static inline bool qRectIntersects(const QRect &r1, const QRect &r2) { return (qMax(r1.left(), r2.left()) <= qMin(r1.right(), r2.right()) && @@ -5273,10 +5275,14 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP if (rgn.isEmpty()) return; + Q_Q(QWidget); + + qCInfo(lcWidgetPainting) << "Drawing" << rgn << "of" << q << "at" << offset + << "into paint device" << pdev << "with" << flags; + const bool asRoot = flags & DrawAsRoot; bool onScreen = shouldPaintOnScreen(); - Q_Q(QWidget); #if QT_CONFIG(graphicseffect) if (graphicsEffect && graphicsEffect->isEnabled()) { QGraphicsEffectSource *source = graphicsEffect->d_func()->source; diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index 7d8a3ae737..698928b0b0 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -80,6 +80,8 @@ QT_BEGIN_NAMESPACE +Q_DECLARE_LOGGING_CATEGORY(lcWidgetPainting); + // Extra QWidget data // - to minimize memory usage for members that are seldom used. // - top-level widgets have extra extra data to reduce cost further diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index 6b5ca4b594..d1ebf7dc25 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -206,6 +206,9 @@ static inline QRect widgetRectFor(QWidget *widget, const QRegion &) { return wid template void QWidgetRepaintManager::markDirty(const T &r, QWidget *widget, UpdateTime updateTime, BufferState bufferState) { + qCInfo(lcWidgetPainting) << "Marking" << r << "of" << widget << "dirty" + << "with" << updateTime; + Q_ASSERT(tlw->d_func()->extra); Q_ASSERT(tlw->d_func()->extra->topextra); Q_ASSERT(!tlw->d_func()->extra->topextra->inTopLevelResize); @@ -370,6 +373,8 @@ void QWidgetRepaintManager::sendUpdateRequest(QWidget *widget, UpdateTime update if (!widget) return; + qCInfo(lcWidgetPainting) << "Sending update request to" << widget << "with" << updateTime; + #ifndef QT_NO_OPENGL // Having every repaint() leading to a sync/flush is bad as it causes // compositing and waiting for vsync each and every time. Change to @@ -713,6 +718,8 @@ static QPlatformTextureList *widgetTexturesFor(QWidget *tlw, QWidget *widget) */ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedRegion) { + qCInfo(lcWidgetPainting) << "Syncing" << exposedRegion << "of" << exposedWidget; + QTLWExtra *tlwExtra = tlw->d_func()->maybeTopData(); if (!tlw->isVisible() || !tlwExtra || tlwExtra->inTopLevelResize) return; @@ -745,6 +752,8 @@ void QWidgetRepaintManager::sync(QWidget *exposedWidget, const QRegion &exposedR */ void QWidgetRepaintManager::sync() { + qCInfo(lcWidgetPainting) << "Syncing dirty widgets"; + updateRequestSent = false; if (qt_widget_private(tlw)->shouldDiscardSyncRequest()) { // If the top-level is minimized, it's not visible on the screen so we can delay the @@ -798,6 +807,9 @@ bool QWidgetRepaintManager::syncAllowed() void QWidgetRepaintManager::paintAndFlush() { + qCInfo(lcWidgetPainting) << "Painting and flushing dirty" + << "top level" << dirty << "and dirty widgets" << dirtyWidgets; + const bool updatesDisabled = !tlw->updatesEnabled(); bool repaintAllWidgets = false; @@ -1027,10 +1039,15 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io if (widget == tlw) { // Top-level (native) + qCInfo(lcWidgetPainting) << "Marking" << region << "of top level" + << widget << "as needing flush"; if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) topLevelNeedsFlush += region; } else if (!hasPlatformWindow(widget) && !widget->isWindow()) { QWidget *nativeParent = widget->nativeParentWidget(); + qCInfo(lcWidgetPainting) << "Marking" << region << "of" + << widget << "as needing flush in" << nativeParent + << "at offset" << topLevelOffset; if (nativeParent == tlw) { // Alien widgets with the top-level as the native parent (common case) if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) @@ -1042,6 +1059,8 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io } } else { // Native child widgets + qCInfo(lcWidgetPainting) << "Marking" << region + << "of native child" << widget << "as needing flush"; markNeedsFlush(widget, region); } } @@ -1066,6 +1085,9 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io */ void QWidgetRepaintManager::flush() { + qCInfo(lcWidgetPainting) << "Flushing top level" + << topLevelNeedsFlush << "and children" << needsFlushWidgets; + const bool hasNeedsFlushWidgets = !needsFlushWidgets.isEmpty(); bool flushed = false; @@ -1123,6 +1145,8 @@ void QWidgetRepaintManager::flush(QWidget *widget, const QRegion ®ion, QPlatf return; } + qCInfo(lcWidgetPainting) << "Flushing" << region << "of" << widget; + static bool fpsDebug = qEnvironmentVariableIntValue("QT_DEBUG_FPS"); if (fpsDebug) { if (!perfFrames++) diff --git a/src/widgets/kernel/qwidgetrepaintmanager_p.h b/src/widgets/kernel/qwidgetrepaintmanager_p.h index d7e38a9d69..58687383f4 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager_p.h +++ b/src/widgets/kernel/qwidgetrepaintmanager_p.h @@ -65,16 +65,19 @@ class QWidgetRepaintManager; class Q_AUTOTEST_EXPORT QWidgetRepaintManager { + Q_GADGET public: enum UpdateTime { UpdateNow, UpdateLater }; + Q_ENUM(UpdateTime) enum BufferState{ BufferValid, BufferInvalid }; + Q_ENUM(BufferState) QWidgetRepaintManager(QWidget *t); ~QWidgetRepaintManager(); -- cgit v1.2.3 From 79bf1b7e348d186934b14c417859a48bf9b3a06c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 26 Aug 2019 22:08:59 +0200 Subject: widgets: Mark widgets as needing flush during painting Except for the case of syncing in response to an expose event, where the platform asked us to flush a specific region, we should strive to only flush parts that have been repainted. And we should flush those parts to their nearest native child, instead of unconditionally flushing the root/top level widget as well. By allowing drawWidget to schedule the flush we automatically flush the minimal region, to the right widgets. Change-Id: I73c143761d4a0da6991433b41dea0a0bc83a448a Reviewed-by: Paul Olav Tvete --- src/widgets/kernel/qwidget.cpp | 7 ++----- src/widgets/kernel/qwidgetrepaintmanager.cpp | 12 ++---------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 45be132e59..cf5a81c204 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -5313,9 +5313,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP } sourced->context = 0; - // Native widgets need to be marked dirty on screen so painting will be done in correct context - // Same check as in the no effects case below. - if (repaintManager && !asRoot && (q->internalWinId() || !q->nativeParentWidget()->isWindow())) + if (repaintManager) repaintManager->markNeedsFlush(q, rgn, offset); return; @@ -5422,8 +5420,7 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP sendPaintEvent(toBePainted); } - // Native widgets need to be marked dirty on screen so painting will be done in correct context - if (repaintManager && !asRoot && (q->internalWinId() || (q->nativeParentWidget() && !q->nativeParentWidget()->isWindow()))) + if (repaintManager) repaintManager->markNeedsFlush(q, toBePainted, offset); //restore diff --git a/src/widgets/kernel/qwidgetrepaintmanager.cpp b/src/widgets/kernel/qwidgetrepaintmanager.cpp index d1ebf7dc25..4eb298e108 100644 --- a/src/widgets/kernel/qwidgetrepaintmanager.cpp +++ b/src/widgets/kernel/qwidgetrepaintmanager.cpp @@ -979,12 +979,6 @@ void QWidgetRepaintManager::paintAndFlush() } #endif - // Always flush repainted areas. FIXME: We should mark individual widgets, - // not the top level widget unconditionally, as this results in always - // flushing the top level widget, even if the painted region is entirely - // within a native child. - markNeedsFlush(tlw, toClean, QPoint()); - store->beginPaint(toClean); // Must do this before sending any paint events because @@ -1041,8 +1035,7 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io // Top-level (native) qCInfo(lcWidgetPainting) << "Marking" << region << "of top level" << widget << "as needing flush"; - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - topLevelNeedsFlush += region; + topLevelNeedsFlush += region; } else if (!hasPlatformWindow(widget) && !widget->isWindow()) { QWidget *nativeParent = widget->nativeParentWidget(); qCInfo(lcWidgetPainting) << "Marking" << region << "of" @@ -1050,8 +1043,7 @@ void QWidgetRepaintManager::markNeedsFlush(QWidget *widget, const QRegion ®io << "at offset" << topLevelOffset; if (nativeParent == tlw) { // Alien widgets with the top-level as the native parent (common case) - if (!widget->testAttribute(Qt::WA_WState_InPaintEvent)) - topLevelNeedsFlush += region.translated(topLevelOffset); + topLevelNeedsFlush += region.translated(topLevelOffset); } else { // Alien widgets with native parent != tlw const QPoint nativeParentOffset = widget->mapTo(nativeParent, QPoint()); -- cgit v1.2.3 From 8e54fc08801d4669b861208d13c1f5513662f644 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 26 Aug 2019 13:03:56 +0300 Subject: Android: AUX template doesn't require a multi arch build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I7b7abe7f016b4b85546986354653fc4ddf320dcc Reviewed-by: Jörg Bornemann --- mkspecs/features/android/resolve_config.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkspecs/features/android/resolve_config.prf b/mkspecs/features/android/resolve_config.prf index c542017e31..0cc4e73cc9 100644 --- a/mkspecs/features/android/resolve_config.prf +++ b/mkspecs/features/android/resolve_config.prf @@ -1,6 +1,6 @@ load(resolve_config) -!host_build:!single_arch:!java:android { +!equals(TEMPLATE, aux):!host_build:!single_arch:!java:android { isEmpty(ANDROID_ABIS): ANDROID_ABIS = $$ALL_ANDROID_ABIS ALL_ABIS = $$join(ANDROID_ABIS, _and_) -- cgit v1.2.3 From c28b881c98fadcd3415370fad2525b558f6b03e4 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 27 Aug 2019 12:43:23 +0300 Subject: Android: Use LLVM tools where possible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Properly set CROSS_COMPILE qmake variable Fixes: QTBUG-77890 Change-Id: I73e22d0f936d35c373c064d30ea8d92005d79b2c Reviewed-by: Jörg Bornemann --- mkspecs/android-clang/qmake.conf | 12 ++++++++---- mkspecs/features/android/default_pre.prf | 11 ++++++----- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/mkspecs/android-clang/qmake.conf b/mkspecs/android-clang/qmake.conf index 21847cdc7c..81609c3962 100644 --- a/mkspecs/android-clang/qmake.conf +++ b/mkspecs/android-clang/qmake.conf @@ -50,10 +50,14 @@ QMAKE_CFLAGS_USE_PRECOMPILE = -include ${QMAKE_PCH_OUTPUT_BASE} QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT} QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST -QMAKE_CC = $$NDK_LLVM_PATH/bin/clang -QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++ -QMAKE_LINK = $$QMAKE_CXX +NDK_LLVM_PATH = $$NDK_ROOT/toolchains/llvm/prebuilt/$$NDK_HOST +QMAKE_CC = $$NDK_LLVM_PATH/bin/clang +QMAKE_CXX = $$NDK_LLVM_PATH/bin/clang++ +QMAKE_LINK = $$QMAKE_CXX +QMAKE_OBJCOPY = $$NDK_LLVM_PATH/bin/llvm-objcopy +QMAKE_AR = $$NDK_LLVM_PATH/bin/llvm-ar cqs +QMAKE_OBJCOPY = $$NDK_LLVM_PATH/bin/llvm-objcopy +QMAKE_NM = $$NDK_LLVM_PATH/bin/llvm-nm -P QMAKE_CFLAGS_OPTIMIZE = -Oz QMAKE_CFLAGS_OPTIMIZE_FULL = -Oz diff --git a/mkspecs/features/android/default_pre.prf b/mkspecs/features/android/default_pre.prf index d4f84a8fcc..a73cd4b39c 100644 --- a/mkspecs/features/android/default_pre.prf +++ b/mkspecs/features/android/default_pre.prf @@ -61,14 +61,15 @@ QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD QMAKE_LIBS_EGL = -lEGL QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 -# modifications to linux.conf -QMAKE_AR = $${CROSS_COMPILE}ar cqs -QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy -QMAKE_NM = $${CROSS_COMPILE}nm -P - QMAKE_STRIP = #$${CROSS_COMPILE}strip + +equals(QT_ARCH, x86): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/i686-linux-android- +else: equals(QT_ARCH, x86_64): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/x86_64-linux-android- +else: equals(QT_ARCH, arm64-v8a): CROSS_COMPILE = $$NDK_LLVM_PATH/bin/aarch64-linux-android- +else: CROSS_COMPILE = $$NDK_LLVM_PATH/bin/arm-linux-androideabi- + QMAKE_RANLIB = $${CROSS_COMPILE}ranlib QMAKE_LINK_SHLIB = $$QMAKE_LINK QMAKE_LFLAGS = -- cgit v1.2.3 From d6551fe125209f11445936a90ce2a4207a183917 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Tue, 27 Aug 2019 10:08:28 +0200 Subject: QTree/TableView: Don't emit clicked when releasing after double click MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If an item is double clicked, then without this fix, the views emit the clicked() signal when the mousebutton is released after the double click event. This is unexpected and wrong. QAbstractItemView keeps track of the item the mouse was pressed on, to verify that the release occurred on the same item before emitting clicked, and to make sure we have a valid pressed item before initiating drag'n'drop. By resetting d->pressedItem when a double click has been handled, we can prevent the emission of a clicked signal in the next release event. [ChangeLog][QtWidgets][QTreeView] Don't emit clicked signal after a doubleClicked signal. Fixes: QTBUG-77771 Change-Id: I05988e9e2222157f4216cebc40c22507e8d83b82 Reviewed-by: André de la Rocha Reviewed-by: Jesus Fernandez --- src/widgets/itemviews/qabstractitemview.cpp | 1 + src/widgets/itemviews/qtreeview.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 2ed5df46b8..089f398e71 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -1966,6 +1966,7 @@ void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event) if ((event->button() == Qt::LeftButton) && !edit(persistent, DoubleClicked, event) && !style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, 0, this)) emit activated(persistent); + d->pressedIndex = QModelIndex(); } #if QT_CONFIG(draganddrop) diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 823be1ca08..413cc2a9cd 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -1943,6 +1943,7 @@ void QTreeView::mouseDoubleClickEvent(QMouseEvent *event) if (!style()->styleHint(QStyle::SH_ItemView_ActivateItemOnSingleClick, 0, this)) emit activated(persistent); + d->pressedIndex = QModelIndex(); d->executePostedLayout(); // we need to make sure viewItems is updated if (d->itemsExpandable && d->expandsOnDoubleClick -- cgit v1.2.3 From 2d7fc7a1527211fb9e41310b3ea75ba6d61cee8d Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 26 Aug 2019 15:19:59 +0200 Subject: rhi: vulkan: Expose the VkRenderPass via the usual mechanisms Qt Quick in turn will expose it via QSGRendererInterface. Essential when adding custom Vulkan rendering into a Qt Quick application because the custom pipeline state objects will need to reference a VkRenderPass. Change-Id: Idf4092cfc3937830fb8123164081059b0d8d030e Reviewed-by: Andy Nichols --- src/gui/rhi/qrhi.cpp | 16 ++++++++++++++++ src/gui/rhi/qrhi_p.h | 2 ++ src/gui/rhi/qrhivulkan.cpp | 13 +++++++++++++ src/gui/rhi/qrhivulkan_p.h | 5 +++++ src/gui/rhi/qrhivulkan_p_p.h | 2 ++ 5 files changed, 38 insertions(+) diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp index 1076b21c1e..0f4b3d675a 100644 --- a/src/gui/rhi/qrhi.cpp +++ b/src/gui/rhi/qrhi.cpp @@ -2246,6 +2246,10 @@ QRhiResource::Type QRhiSampler::resourceType() const \internal \inmodule QtGui \brief Render pass resource. + + A render pass, if such a concept exists in the underlying graphics API, is + a collection of attachments (color, depth, stencil) and describes how those + attachments are used. */ /*! @@ -2264,6 +2268,18 @@ QRhiResource::Type QRhiRenderPassDescriptor::resourceType() const return RenderPassDescriptor; } +/*! + \return a pointer to a backend-specific QRhiNativeHandles subclass, such as + QRhiVulkanRenderPassNativeHandles. The returned value is null when exposing + the underlying native resources is not supported by the backend. + + \sa QRhiVulkanRenderPassNativeHandles + */ +const QRhiNativeHandles *QRhiRenderPassDescriptor::nativeHandles() +{ + return nullptr; +} + /*! \class QRhiRenderTarget \internal diff --git a/src/gui/rhi/qrhi_p.h b/src/gui/rhi/qrhi_p.h index df30817ef4..51c60f1831 100644 --- a/src/gui/rhi/qrhi_p.h +++ b/src/gui/rhi/qrhi_p.h @@ -843,6 +843,8 @@ class Q_GUI_EXPORT QRhiRenderPassDescriptor : public QRhiResource public: QRhiResource::Type resourceType() const override; + virtual const QRhiNativeHandles *nativeHandles(); + protected: QRhiRenderPassDescriptor(QRhiImplementation *rhi); }; diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index 321fd92f88..a0f32252cf 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -182,6 +182,13 @@ QT_BEGIN_NAMESPACE \l{QRhi::endOffsrceenFrame()}{endOffscreenFrame()} pair. */ +/*! + \class QRhiVulkanRenderPassNativeHandles + \internal + \inmodule QtGui + \brief Holds the Vulkan render pass object backing a QRhiRenderPassDescriptor. + */ + static inline VkDeviceSize aligned(VkDeviceSize v, VkDeviceSize byteAlign) { return (v + byteAlign - 1) & ~(byteAlign - 1); @@ -5098,6 +5105,12 @@ void QVkRenderPassDescriptor::release() rhiD->unregisterResource(this); } +const QRhiNativeHandles *QVkRenderPassDescriptor::nativeHandles() +{ + nativeHandlesStruct.renderPass = rp; + return &nativeHandlesStruct; +} + QVkReferenceRenderTarget::QVkReferenceRenderTarget(QRhiImplementation *rhi) : QRhiRenderTarget(rhi) { diff --git a/src/gui/rhi/qrhivulkan_p.h b/src/gui/rhi/qrhivulkan_p.h index 545ef5ad72..ff19c7a54e 100644 --- a/src/gui/rhi/qrhivulkan_p.h +++ b/src/gui/rhi/qrhivulkan_p.h @@ -80,6 +80,11 @@ struct Q_GUI_EXPORT QRhiVulkanCommandBufferNativeHandles : public QRhiNativeHand VkCommandBuffer commandBuffer = VK_NULL_HANDLE; }; +struct Q_GUI_EXPORT QRhiVulkanRenderPassNativeHandles : public QRhiNativeHandles +{ + VkRenderPass renderPass = VK_NULL_HANDLE; +}; + QT_END_NAMESPACE #endif diff --git a/src/gui/rhi/qrhivulkan_p_p.h b/src/gui/rhi/qrhivulkan_p_p.h index 31e0eaa585..e2ea8fec2a 100644 --- a/src/gui/rhi/qrhivulkan_p_p.h +++ b/src/gui/rhi/qrhivulkan_p_p.h @@ -171,9 +171,11 @@ struct QVkRenderPassDescriptor : public QRhiRenderPassDescriptor QVkRenderPassDescriptor(QRhiImplementation *rhi); ~QVkRenderPassDescriptor(); void release() override; + const QRhiNativeHandles *nativeHandles() override; VkRenderPass rp = VK_NULL_HANDLE; bool ownsRp = false; + QRhiVulkanRenderPassNativeHandles nativeHandlesStruct; int lastActiveFrameSlot = -1; }; -- cgit v1.2.3 From 4e97c4061e0ac7d885e62cfaf9ab7eb1918906f1 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Mon, 26 Aug 2019 16:10:31 +0200 Subject: rhi: Attempt to fix up the logic around beginExternal() Mainly for Vulkan where it lacked the recording of the still queued commands. Uncovered by Qt Quick examples that integrate custom Vulkan rendering. This still has an issue that needs to be tackled separately. (we probably will switch to using a dedicated secondary command buffer with RENDER_PASS_CONTINUE_BIT for the external commands, and then just have a vkCmdExecuteCommands in our own queue instead of recording everything in beginExternal). The possibility of losing glMemoryBarrier() calls due to begin/endExternal() with the OpenGL backend is fixed too. The logic here mirrors Vulkan to some extent except that we do not have a concept of (and so the trouble with) renderpass instances. Clean up around the implementations of finish() as well. Attempting to share code via a "flushCommandBuffer" function is admirable but is not worth it since some semantics are different. (finish() cannot be called within a begin/endPass, unlike begin/endExternal). Change-Id: I5137db598d6a40d484e53678f5c919abf750d9ed Reviewed-by: Andy Nichols --- src/gui/rhi/qrhid3d11.cpp | 34 +++++++++--------- src/gui/rhi/qrhid3d11_p_p.h | 3 +- src/gui/rhi/qrhigles2.cpp | 84 +++++++++++++++++++++++++++----------------- src/gui/rhi/qrhigles2_p_p.h | 13 +++---- src/gui/rhi/qrhivulkan.cpp | 30 ++++++++++++---- src/gui/rhi/qrhivulkan_p_p.h | 5 +-- 6 files changed, 102 insertions(+), 67 deletions(-) diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp index 9b411c5021..e978536dd7 100644 --- a/src/gui/rhi/qrhid3d11.cpp +++ b/src/gui/rhi/qrhid3d11.cpp @@ -873,8 +873,10 @@ const QRhiNativeHandles *QRhiD3D11::nativeHandles(QRhiCommandBuffer *cb) void QRhiD3D11::beginExternal(QRhiCommandBuffer *cb) { - Q_UNUSED(cb); - flushCommandBuffer(); + QD3D11CommandBuffer *cbD = QRHI_RES(QD3D11CommandBuffer, cb); + // no timestampSwapChain, in order to avoid timestamp mess + executeCommandBuffer(cbD); + cbD->resetCommands(); } void QRhiD3D11::endExternal(QRhiCommandBuffer *cb) @@ -1135,27 +1137,25 @@ static inline bool isDepthTextureFormat(QRhiTexture::Format format) QRhi::FrameOpResult QRhiD3D11::finish() { - if (inFrame) - flushCommandBuffer(); + if (inFrame) { + if (ofr.active) { + Q_ASSERT(!contextState.currentSwapChain); + Q_ASSERT(ofr.cbWrapper.recordingPass == QD3D11CommandBuffer::NoPass); + executeCommandBuffer(&ofr.cbWrapper); + ofr.cbWrapper.resetCommands(); + } else { + Q_ASSERT(contextState.currentSwapChain); + Q_ASSERT(contextState.currentSwapChain->cb.recordingPass == QD3D11CommandBuffer::NoPass); + executeCommandBuffer(&contextState.currentSwapChain->cb); // no timestampSwapChain, in order to avoid timestamp mess + contextState.currentSwapChain->cb.resetCommands(); + } + } finishActiveReadbacks(); return QRhi::FrameOpSuccess; } -void QRhiD3D11::flushCommandBuffer() -{ - if (ofr.active) { - Q_ASSERT(!contextState.currentSwapChain); - executeCommandBuffer(&ofr.cbWrapper); - ofr.cbWrapper.resetCommands(); - } else { - Q_ASSERT(contextState.currentSwapChain); - executeCommandBuffer(&contextState.currentSwapChain->cb); // no timestampSwapChain, in order to avoid timestamp mess - contextState.currentSwapChain->cb.resetCommands(); - } -} - void QRhiD3D11::enqueueSubresUpload(QD3D11Texture *texD, QD3D11CommandBuffer *cbD, int layer, int level, const QRhiTextureSubresourceUploadDescription &subresDesc) { diff --git a/src/gui/rhi/qrhid3d11_p_p.h b/src/gui/rhi/qrhid3d11_p_p.h index 3ceb055b27..096c192183 100644 --- a/src/gui/rhi/qrhid3d11_p_p.h +++ b/src/gui/rhi/qrhid3d11_p_p.h @@ -473,9 +473,9 @@ struct QD3D11CommandBuffer : public QRhiCommandBuffer imageRetainPool.clear(); } void resetState() { - resetCommands(); recordingPass = NoPass; currentTarget = nullptr; + resetCommands(); resetCachedState(); } void resetCachedState() { @@ -633,7 +633,6 @@ public: void sendVMemStatsToProfiler() override; void makeThreadLocalNativeContextCurrent() override; - void flushCommandBuffer(); void enqueueSubresUpload(QD3D11Texture *texD, QD3D11CommandBuffer *cbD, int layer, int level, const QRhiTextureSubresourceUploadDescription &subresDesc); void enqueueResourceUpdates(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates); diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 26e7fa2759..2cc489ea8b 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -1094,15 +1094,36 @@ const QRhiNativeHandles *QRhiGles2::nativeHandles(QRhiCommandBuffer *cb) void QRhiGles2::beginExternal(QRhiCommandBuffer *cb) { - Q_UNUSED(cb); - flushCommandBuffer(); // also ensures the context is current + if (ofr.active) { + Q_ASSERT(!currentSwapChain); + if (!ensureContext()) + return; + } else { + Q_ASSERT(currentSwapChain); + if (!ensureContext(currentSwapChain->surface)) + return; + } + + QGles2CommandBuffer *cbD = QRHI_RES(QGles2CommandBuffer, cb); + executeCommandBuffer(cbD); + cbD->resetCommands(); } void QRhiGles2::endExternal(QRhiCommandBuffer *cb) { QGles2CommandBuffer *cbD = QRHI_RES(QGles2CommandBuffer, cb); - Q_ASSERT(cbD->commands.isEmpty()); + Q_ASSERT(cbD->commands.isEmpty() && cbD->currentPassResTrackerIndex == -1); + cbD->resetCachedState(); + + if (cbD->recordingPass != QGles2CommandBuffer::NoPass) { + // Commands that come after this point need a resource tracker and also + // a BarriersForPass command enqueued. (the ones we had from + // beginPass() are now gone since beginExternal() processed all that + // due to calling executeCommandBuffer()). + enqueueBarriersForPass(cbD); + } + if (cbD->currentTarget) enqueueBindFramebuffer(cbD->currentTarget, cbD); } @@ -1196,23 +1217,22 @@ QRhi::FrameOpResult QRhiGles2::endOffscreenFrame() QRhi::FrameOpResult QRhiGles2::finish() { - return inFrame ? flushCommandBuffer() : QRhi::FrameOpSuccess; -} - -QRhi::FrameOpResult QRhiGles2::flushCommandBuffer() -{ - if (ofr.active) { - Q_ASSERT(!currentSwapChain); - if (!ensureContext()) - return QRhi::FrameOpError; - executeCommandBuffer(&ofr.cbWrapper); - ofr.cbWrapper.resetCommands(); - } else { - Q_ASSERT(currentSwapChain); - if (!ensureContext(currentSwapChain->surface)) - return QRhi::FrameOpError; - executeCommandBuffer(¤tSwapChain->cb); - currentSwapChain->cb.resetCommands(); + if (inFrame) { + if (ofr.active) { + Q_ASSERT(!currentSwapChain); + Q_ASSERT(ofr.cbWrapper.recordingPass == QGles2CommandBuffer::NoPass); + if (!ensureContext()) + return QRhi::FrameOpError; + executeCommandBuffer(&ofr.cbWrapper); + ofr.cbWrapper.resetCommands(); + } else { + Q_ASSERT(currentSwapChain); + Q_ASSERT(currentSwapChain->cb.recordingPass == QGles2CommandBuffer::NoPass); + if (!ensureContext(currentSwapChain->surface)) + return QRhi::FrameOpError; + executeCommandBuffer(¤tSwapChain->cb); + currentSwapChain->cb.resetCommands(); + } } return QRhi::FrameOpSuccess; } @@ -2483,6 +2503,16 @@ QGles2RenderTargetData *QRhiGles2::enqueueBindFramebuffer(QRhiRenderTarget *rt, return rtD; } +void QRhiGles2::enqueueBarriersForPass(QGles2CommandBuffer *cbD) +{ + cbD->passResTrackers.append(QRhiPassResourceTracker()); + cbD->currentPassResTrackerIndex = cbD->passResTrackers.count() - 1; + QGles2CommandBuffer::Command cmd; + cmd.cmd = QGles2CommandBuffer::Command::BarriersForPass; + cmd.args.barriersForPass.trackerIndex = cbD->currentPassResTrackerIndex; + cbD->commands.append(cmd); +} + void QRhiGles2::beginPass(QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, @@ -2497,12 +2527,7 @@ void QRhiGles2::beginPass(QRhiCommandBuffer *cb, // Get a new resource tracker. Then add a command that will generate // glMemoryBarrier() calls based on that tracker when submitted. - cbD->passResTrackers.append(QRhiPassResourceTracker()); - cbD->currentPassResTrackerIndex = cbD->passResTrackers.count() - 1; - QGles2CommandBuffer::Command cmd; - cmd.cmd = QGles2CommandBuffer::Command::BarriersForPass; - cmd.args.barriersForPass.trackerIndex = cbD->currentPassResTrackerIndex; - cbD->commands.append(cmd); + enqueueBarriersForPass(cbD); bool wantsColorClear, wantsDsClear; QGles2RenderTargetData *rtD = enqueueBindFramebuffer(rt, cbD, &wantsColorClear, &wantsDsClear); @@ -2578,12 +2603,7 @@ void QRhiGles2::beginComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch if (resourceUpdates) enqueueResourceUpdates(cb, resourceUpdates); - cbD->passResTrackers.append(QRhiPassResourceTracker()); - cbD->currentPassResTrackerIndex = cbD->passResTrackers.count() - 1; - QGles2CommandBuffer::Command cmd; - cmd.cmd = QGles2CommandBuffer::Command::BarriersForPass; - cmd.args.barriersForPass.trackerIndex = cbD->currentPassResTrackerIndex; - cbD->commands.append(cmd); + enqueueBarriersForPass(cbD); cbD->recordingPass = QGles2CommandBuffer::ComputePass; diff --git a/src/gui/rhi/qrhigles2_p_p.h b/src/gui/rhi/qrhigles2_p_p.h index 462ce8032c..3602d62122 100644 --- a/src/gui/rhi/qrhigles2_p_p.h +++ b/src/gui/rhi/qrhigles2_p_p.h @@ -525,19 +525,16 @@ struct QGles2CommandBuffer : public QRhiCommandBuffer } void resetCommands() { commands.clear(); - // beginExternal() can lead to calling resetCommands() inside a pass, - // hence the condition - if (recordingPass == NoPass) { - passResTrackers.clear(); - currentPassResTrackerIndex = -1; - } dataRetainPool.clear(); imageRetainPool.clear(); + + passResTrackers.clear(); + currentPassResTrackerIndex = -1; } void resetState() { - resetCommands(); recordingPass = NoPass; currentTarget = nullptr; + resetCommands(); resetCachedState(); } void resetCachedState() { @@ -671,7 +668,6 @@ public: bool ensureContext(QSurface *surface = nullptr) const; void executeDeferredReleases(); - QRhi::FrameOpResult flushCommandBuffer(); void trackedBufferBarrier(QGles2CommandBuffer *cbD, QGles2Buffer *bufD, QGles2Buffer::Access access); void trackedImageBarrier(QGles2CommandBuffer *cbD, QGles2Texture *texD, QGles2Texture::Access access); void enqueueSubresUpload(QGles2Texture *texD, QGles2CommandBuffer *cbD, @@ -692,6 +688,7 @@ public: const uint *dynOfsPairs, int dynOfsCount); QGles2RenderTargetData *enqueueBindFramebuffer(QRhiRenderTarget *rt, QGles2CommandBuffer *cbD, bool *wantsColorClear = nullptr, bool *wantsDsClear = nullptr); + void enqueueBarriersForPass(QGles2CommandBuffer *cbD); int effectiveSampleCount(int sampleCount) const; bool compileShader(GLuint program, const QRhiShaderStage &shaderStage, QShaderDescription *desc, int *glslVersionUsed); diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index a0f32252cf..0381def9f1 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -1868,12 +1868,16 @@ QRhi::FrameOpResult QRhiVulkan::finish() VkCommandBuffer cb; if (ofr.active) { Q_ASSERT(!currentSwapChain); + Q_ASSERT(ofr.cbWrapper.recordingPass == QVkCommandBuffer::NoPass); recordCommandBuffer(&ofr.cbWrapper); + ofr.cbWrapper.resetCommands(); cb = ofr.cbWrapper.cb; } else { Q_ASSERT(currentSwapChain); + Q_ASSERT(currentSwapChain->cbWrapper.recordingPass == QVkCommandBuffer::NoPass); swapChainD = currentSwapChain; recordCommandBuffer(&swapChainD->cbWrapper); + swapChainD->cbWrapper.resetCommands(); cb = swapChainD->cbWrapper.cb; } QRhi::FrameOpResult submitres = endAndSubmitCommandBuffer(cb, VK_NULL_HANDLE, nullptr, nullptr); @@ -3120,17 +3124,16 @@ VkSampleCountFlagBits QRhiVulkan::effectiveSampleCount(int sampleCount) void QRhiVulkan::enqueueTransitionPassResources(QVkCommandBuffer *cbD) { cbD->passResTrackers.append(QRhiPassResourceTracker()); + cbD->currentPassResTrackerIndex = cbD->passResTrackers.count() - 1; + QVkCommandBuffer::Command cmd; cmd.cmd = QVkCommandBuffer::Command::TransitionPassResources; cmd.args.transitionResources.trackerIndex = cbD->passResTrackers.count() - 1; cbD->commands.append(cmd); - cbD->currentPassResTrackerIndex = cbD->passResTrackers.count() - 1; } void QRhiVulkan::recordCommandBuffer(QVkCommandBuffer *cbD) { - Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::NoPass); - for (QVkCommandBuffer::Command &cmd : cbD->commands) { switch (cmd.cmd) { case QVkCommandBuffer::Command::CopyBuffer: @@ -3244,8 +3247,6 @@ void QRhiVulkan::recordCommandBuffer(QVkCommandBuffer *cbD) break; } } - - cbD->resetCommands(); } static inline VkAccessFlags toVkAccess(QRhiPassResourceTracker::BufferAccess access) @@ -4138,13 +4139,30 @@ const QRhiNativeHandles *QRhiVulkan::nativeHandles(QRhiCommandBuffer *cb) void QRhiVulkan::beginExternal(QRhiCommandBuffer *cb) { - Q_UNUSED(cb); + QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); + recordCommandBuffer(cbD); + cbD->resetCommands(); } void QRhiVulkan::endExternal(QRhiCommandBuffer *cb) { QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); + Q_ASSERT(cbD->commands.isEmpty() && cbD->currentPassResTrackerIndex == -1); + cbD->resetCachedState(); + + // ### FIXME this is all broken (leads to barriers within a renderpass + // instance which (1) would need a self-dependency for the subpass and (2) is + // not what we want anyway since it then has a different sychronization scope). + // + // To be replaced with a secondary command buffer for the external content. + // + if (cbD->recordingPass != QVkCommandBuffer::NoPass) { + // Commands that come after this point need a resource tracker and the + // corresponding barriers. Note that we are inside a renderpass + // instance here and that needs a self-dependency for the subpass. + enqueueTransitionPassResources(cbD); + } } void QRhiVulkan::setObjectName(uint64_t object, VkDebugReportObjectTypeEXT type, const QByteArray &name, int slot) diff --git a/src/gui/rhi/qrhivulkan_p_p.h b/src/gui/rhi/qrhivulkan_p_p.h index e2ea8fec2a..dd9a7d4216 100644 --- a/src/gui/rhi/qrhivulkan_p_p.h +++ b/src/gui/rhi/qrhivulkan_p_p.h @@ -324,9 +324,9 @@ struct QVkCommandBuffer : public QRhiCommandBuffer }; void resetState() { - resetCommands(); recordingPass = NoPass; currentTarget = nullptr; + resetCommands(); resetCachedState(); } @@ -510,9 +510,10 @@ struct QVkCommandBuffer : public QRhiCommandBuffer void resetCommands() { commands.clear(); + resetPools(); + passResTrackers.clear(); currentPassResTrackerIndex = -1; - resetPools(); } void resetPools() { -- cgit v1.2.3 From 0077e0f88cd3dfa59779ef121e4010f309f2ff7a Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 27 Aug 2019 11:05:48 +0200 Subject: rhi: vulkan: Add missing VK_QUERY_RESULT_WAIT_BIT Mainly to get the validation layer from newer Vulkan SDKs to shut up. Change-Id: I3a00d2e7b5617eb1656625b1b2a919bb3c07feb9 Reviewed-by: Andy Nichols --- src/gui/rhi/qrhivulkan.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index 0381def9f1..7806afc4fe 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -1525,7 +1525,8 @@ QRhi::FrameOpResult QRhiVulkan::beginFrame(QRhiSwapChain *swapChain, QRhi::Begin if (frame.timestampQueryIndex >= 0) { quint64 timestamp[2] = { 0, 0 }; VkResult err = df->vkGetQueryPoolResults(dev, timestampQueryPool, frame.timestampQueryIndex, 2, - 2 * sizeof(quint64), timestamp, sizeof(quint64), VK_QUERY_RESULT_64_BIT); + 2 * sizeof(quint64), timestamp, sizeof(quint64), + VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT); timestampQueryPoolMap.clearBit(frame.timestampQueryIndex / 2); frame.timestampQueryIndex = -1; if (err == VK_SUCCESS) { -- cgit v1.2.3 From 2602209f545ea3873f0dc880c258669a508d283a Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Tue, 27 Aug 2019 12:49:38 +0200 Subject: rhi: vulkan: Introduce secondary command buffer usage As an option. Must opt in via setting ExternalContentsInPass in the flags for beginFrame(). It is somewhat unfortunate to require declaring this up front, but forcing using secondary command buffers always, even though beginExternal() may not be used in many applications, would be an overkill. Change-Id: I8d52bcab40c96f89f140c4c7877b6c459925e3c7 Reviewed-by: Andy Nichols --- src/gui/rhi/qrhi.cpp | 46 ++- src/gui/rhi/qrhi_p.h | 5 +- src/gui/rhi/qrhi_p_p.h | 4 +- src/gui/rhi/qrhid3d11.cpp | 6 +- src/gui/rhi/qrhid3d11_p_p.h | 4 +- src/gui/rhi/qrhigles2.cpp | 6 +- src/gui/rhi/qrhigles2_p_p.h | 4 +- src/gui/rhi/qrhimetal.mm | 7 +- src/gui/rhi/qrhimetal_p_p.h | 4 +- src/gui/rhi/qrhinull.cpp | 6 +- src/gui/rhi/qrhinull_p_p.h | 4 +- src/gui/rhi/qrhivulkan.cpp | 510 ++++++++++++++++++++------- src/gui/rhi/qrhivulkan_p_p.h | 50 ++- tests/manual/rhi/shared/examplefw.h | 3 +- tests/manual/rhi/triquadcube/triquadcube.cpp | 5 + 15 files changed, 491 insertions(+), 173 deletions(-) diff --git a/src/gui/rhi/qrhi.cpp b/src/gui/rhi/qrhi.cpp index 0f4b3d675a..4414b61d55 100644 --- a/src/gui/rhi/qrhi.cpp +++ b/src/gui/rhi/qrhi.cpp @@ -275,6 +275,8 @@ Q_LOGGING_CATEGORY(QRHI_LOG_INFO, "qt.rhi.general") QRhi does not expose APIs for resource barriers or image layout transitions. Such synchronization is done implicitly by the backends, where applicable (for example, Vulkan), by tracking resource usage as necessary. + Buffer and image barriers are inserted before render or compute passes + transparently to the application. \note Resources within a render or compute pass are expected to be bound to a single usage during that pass. For example, a buffer can be used as @@ -554,6 +556,11 @@ Q_LOGGING_CATEGORY(QRHI_LOG_INFO, "qt.rhi.general") /*! \enum QRhi::BeginFrameFlag Flag values for QRhi::beginFrame() + + \value ExternalContentsInPass Specifies that one or more render or compute + passes in this frame will call QRhiCommandBuffer::beginExternal(). Some + backends, Vulkan in particular, will fail if this flag is not set and + beginExternal() is still called. */ /*! @@ -4801,6 +4808,11 @@ const QRhiNativeHandles *QRhiCommandBuffer::nativeHandles() enqueue commands to the current pass' command buffer by calling graphics API functions directly. + \note This is only available when the intent was declared up front in + beginFrame(). Therefore this function must only be called when the frame + was started with specifying QRhi::ExternalContentsInPass in the flags + passed to QRhi::beginFrame(). + With Vulkan or Metal one can query the native command buffer or encoder objects via nativeHandles() and enqueue commands to them. With OpenGL or Direct3D 11 the (device) context can be retrieved from @@ -4818,6 +4830,16 @@ const QRhiNativeHandles *QRhiCommandBuffer::nativeHandles() functions (\c set* or \c draw*) must be called on the QRhiCommandBuffer until endExternal(). + \warning Some backends may return a native command buffer object from + QRhiCommandBuffer::nativeHandles() that is different from the primary one + when inside a beginExternal() - endExternal() block. Therefore it is + important to (re)query the native command buffer object after calling + beginExternal(). In practical terms this means that with Vulkan for example + the externally recorded Vulkan commands are placed onto a secondary command + buffer (with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT). + nativeHandles() returns this secondary command buffer when called between + begin/endExternal. + \sa endExternal(), nativeHandles() */ void QRhiCommandBuffer::beginExternal() @@ -5124,6 +5146,13 @@ QRhiSwapChain *QRhi::newSwapChain() /*! Starts a new frame targeting the next available buffer of \a swapChain. + A frame consists of resource updates and one or more render and compute + passes. + + \a flags can indicate certain special cases. For example, the fact that + QRhiCommandBuffer::beginExternal() will be called within this new frame + must be declared up front by setting the ExternalContentsInPass flag. + The high level pattern of rendering into a QWindow using a swapchain: \list @@ -5151,9 +5180,7 @@ QRhiSwapChain *QRhi::newSwapChain() \endlist - \a flags is currently unused. - - \sa endFrame() + \sa endFrame(), beginOffscreenFrame() */ QRhi::FrameOpResult QRhi::beginFrame(QRhiSwapChain *swapChain, BeginFrameFlags flags) { @@ -5253,7 +5280,8 @@ int QRhi::currentFrameSlot() const /*! Starts a new offscreen frame. Provides a command buffer suitable for - recording rendering commands in \a cb. + recording rendering commands in \a cb. \a flags is used to indicate + certain special cases, just like with beginFrame(). \note The QRhiCommandBuffer stored to *cb is not owned by the caller. @@ -5287,14 +5315,14 @@ int QRhi::currentFrameSlot() const // image data available in rbResult \endcode - \sa endOffscreenFrame() + \sa endOffscreenFrame(), beginFrame() */ -QRhi::FrameOpResult QRhi::beginOffscreenFrame(QRhiCommandBuffer **cb) +QRhi::FrameOpResult QRhi::beginOffscreenFrame(QRhiCommandBuffer **cb, BeginFrameFlags flags) { if (d->inFrame) qWarning("Attempted to call beginOffscreenFrame() within a still active frame; ignored"); - QRhi::FrameOpResult r = !d->inFrame ? d->beginOffscreenFrame(cb) : FrameOpSuccess; + QRhi::FrameOpResult r = !d->inFrame ? d->beginOffscreenFrame(cb, flags) : FrameOpSuccess; if (r == FrameOpSuccess) d->inFrame = true; @@ -5306,12 +5334,12 @@ QRhi::FrameOpResult QRhi::beginOffscreenFrame(QRhiCommandBuffer **cb) \sa beginOffscreenFrame() */ -QRhi::FrameOpResult QRhi::endOffscreenFrame() +QRhi::FrameOpResult QRhi::endOffscreenFrame(EndFrameFlags flags) { if (!d->inFrame) qWarning("Attempted to call endOffscreenFrame() without an active frame; ignored"); - QRhi::FrameOpResult r = d->inFrame ? d->endOffscreenFrame() : FrameOpSuccess; + QRhi::FrameOpResult r = d->inFrame ? d->endOffscreenFrame(flags) : FrameOpSuccess; d->inFrame = false; qDeleteAll(d->pendingReleaseAndDestroyResources); d->pendingReleaseAndDestroyResources.clear(); diff --git a/src/gui/rhi/qrhi_p.h b/src/gui/rhi/qrhi_p.h index 51c60f1831..2d36c19e99 100644 --- a/src/gui/rhi/qrhi_p.h +++ b/src/gui/rhi/qrhi_p.h @@ -1326,6 +1326,7 @@ public: }; enum BeginFrameFlag { + ExternalContentsInPass = 0x01 }; Q_DECLARE_FLAGS(BeginFrameFlags, BeginFrameFlag) @@ -1386,8 +1387,8 @@ public: bool isRecordingFrame() const; int currentFrameSlot() const; - FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb); - FrameOpResult endOffscreenFrame(); + FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, BeginFrameFlags flags = BeginFrameFlags()); + FrameOpResult endOffscreenFrame(EndFrameFlags flags = EndFrameFlags()); QRhi::FrameOpResult finish(); diff --git a/src/gui/rhi/qrhi_p_p.h b/src/gui/rhi/qrhi_p_p.h index b592fe82f2..0914cf268b 100644 --- a/src/gui/rhi/qrhi_p_p.h +++ b/src/gui/rhi/qrhi_p_p.h @@ -95,8 +95,8 @@ public: virtual QRhiSwapChain *createSwapChain() = 0; virtual QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) = 0; virtual QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) = 0; - virtual QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb) = 0; - virtual QRhi::FrameOpResult endOffscreenFrame() = 0; + virtual QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) = 0; + virtual QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) = 0; virtual QRhi::FrameOpResult finish() = 0; virtual void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) = 0; diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp index e978536dd7..3e136cdb80 100644 --- a/src/gui/rhi/qrhid3d11.cpp +++ b/src/gui/rhi/qrhid3d11.cpp @@ -991,8 +991,9 @@ QRhi::FrameOpResult QRhiD3D11::endFrame(QRhiSwapChain *swapChain, QRhi::EndFrame return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiD3D11::beginOffscreenFrame(QRhiCommandBuffer **cb) +QRhi::FrameOpResult QRhiD3D11::beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) { + Q_UNUSED(flags); ofr.active = true; ofr.cbWrapper.resetState(); @@ -1001,8 +1002,9 @@ QRhi::FrameOpResult QRhiD3D11::beginOffscreenFrame(QRhiCommandBuffer **cb) return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiD3D11::endOffscreenFrame() +QRhi::FrameOpResult QRhiD3D11::endOffscreenFrame(QRhi::EndFrameFlags flags) { + Q_UNUSED(flags); ofr.active = false; executeCommandBuffer(&ofr.cbWrapper); diff --git a/src/gui/rhi/qrhid3d11_p_p.h b/src/gui/rhi/qrhid3d11_p_p.h index 096c192183..582146315d 100644 --- a/src/gui/rhi/qrhid3d11_p_p.h +++ b/src/gui/rhi/qrhid3d11_p_p.h @@ -569,8 +569,8 @@ public: QRhiSwapChain *createSwapChain() override; QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override; QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override; - QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb) override; - QRhi::FrameOpResult endOffscreenFrame() override; + QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override; + QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override; QRhi::FrameOpResult finish() override; void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override; diff --git a/src/gui/rhi/qrhigles2.cpp b/src/gui/rhi/qrhigles2.cpp index 2cc489ea8b..f4e711e33e 100644 --- a/src/gui/rhi/qrhigles2.cpp +++ b/src/gui/rhi/qrhigles2.cpp @@ -1184,8 +1184,9 @@ QRhi::FrameOpResult QRhiGles2::endFrame(QRhiSwapChain *swapChain, QRhi::EndFrame return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiGles2::beginOffscreenFrame(QRhiCommandBuffer **cb) +QRhi::FrameOpResult QRhiGles2::beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) { + Q_UNUSED(flags); if (!ensureContext()) return QRhi::FrameOpError; @@ -1200,8 +1201,9 @@ QRhi::FrameOpResult QRhiGles2::beginOffscreenFrame(QRhiCommandBuffer **cb) return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiGles2::endOffscreenFrame() +QRhi::FrameOpResult QRhiGles2::endOffscreenFrame(QRhi::EndFrameFlags flags) { + Q_UNUSED(flags); Q_ASSERT(ofr.active); ofr.active = false; diff --git a/src/gui/rhi/qrhigles2_p_p.h b/src/gui/rhi/qrhigles2_p_p.h index 3602d62122..6da529be92 100644 --- a/src/gui/rhi/qrhigles2_p_p.h +++ b/src/gui/rhi/qrhigles2_p_p.h @@ -602,8 +602,8 @@ public: QRhiSwapChain *createSwapChain() override; QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override; QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override; - QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb) override; - QRhi::FrameOpResult endOffscreenFrame() override; + QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override; + QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override; QRhi::FrameOpResult finish() override; void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override; diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm index b7cc1da3fe..07753c985c 100644 --- a/src/gui/rhi/qrhimetal.mm +++ b/src/gui/rhi/qrhimetal.mm @@ -1243,8 +1243,10 @@ QRhi::FrameOpResult QRhiMetal::endFrame(QRhiSwapChain *swapChain, QRhi::EndFrame return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiMetal::beginOffscreenFrame(QRhiCommandBuffer **cb) +QRhi::FrameOpResult QRhiMetal::beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) { + Q_UNUSED(flags); + currentFrameSlot = (currentFrameSlot + 1) % QMTL_FRAMES_IN_FLIGHT; if (swapchains.count() > 1) { for (QMetalSwapChain *sc : qAsConst(swapchains)) { @@ -1268,8 +1270,9 @@ QRhi::FrameOpResult QRhiMetal::beginOffscreenFrame(QRhiCommandBuffer **cb) return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiMetal::endOffscreenFrame() +QRhi::FrameOpResult QRhiMetal::endOffscreenFrame(QRhi::EndFrameFlags flags) { + Q_UNUSED(flags); Q_ASSERT(d->ofr.active); d->ofr.active = false; diff --git a/src/gui/rhi/qrhimetal_p_p.h b/src/gui/rhi/qrhimetal_p_p.h index 8b0256991d..c448865f4d 100644 --- a/src/gui/rhi/qrhimetal_p_p.h +++ b/src/gui/rhi/qrhimetal_p_p.h @@ -354,8 +354,8 @@ public: QRhiSwapChain *createSwapChain() override; QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override; QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override; - QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb) override; - QRhi::FrameOpResult endOffscreenFrame() override; + QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override; + QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override; QRhi::FrameOpResult finish() override; void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override; diff --git a/src/gui/rhi/qrhinull.cpp b/src/gui/rhi/qrhinull.cpp index 048dce0dde..dff6e05268 100644 --- a/src/gui/rhi/qrhinull.cpp +++ b/src/gui/rhi/qrhinull.cpp @@ -356,14 +356,16 @@ QRhi::FrameOpResult QRhiNull::endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameF return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiNull::beginOffscreenFrame(QRhiCommandBuffer **cb) +QRhi::FrameOpResult QRhiNull::beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) { + Q_UNUSED(flags); *cb = &offscreenCommandBuffer; return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiNull::endOffscreenFrame() +QRhi::FrameOpResult QRhiNull::endOffscreenFrame(QRhi::EndFrameFlags flags) { + Q_UNUSED(flags); return QRhi::FrameOpSuccess; } diff --git a/src/gui/rhi/qrhinull_p_p.h b/src/gui/rhi/qrhinull_p_p.h index b0227bc110..bdf0d59724 100644 --- a/src/gui/rhi/qrhinull_p_p.h +++ b/src/gui/rhi/qrhinull_p_p.h @@ -220,8 +220,8 @@ public: QRhiSwapChain *createSwapChain() override; QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override; QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override; - QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb) override; - QRhi::FrameOpResult endOffscreenFrame() override; + QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override; + QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override; QRhi::FrameOpResult finish() override; void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override; diff --git a/src/gui/rhi/qrhivulkan.cpp b/src/gui/rhi/qrhivulkan.cpp index 7806afc4fe..dfc85fb853 100644 --- a/src/gui/rhi/qrhivulkan.cpp +++ b/src/gui/rhi/qrhivulkan.cpp @@ -58,6 +58,28 @@ QT_BEGIN_NAMESPACE and a separate, host visible staging buffer is used to upload data to them. "Dynamic" buffers are in host visible memory and are duplicated (since there can be 2 frames in flight). This is handled transparently to the application. + + Barriers are generated automatically for each render or compute pass, based + on the resources that are used in that pass (in QRhiShaderResourceBindings, + vertex inputs, etc.). This implies deferring the recording of the command + buffer since the barriers have to be placed at the right place (before the + pass), and that can only be done once we know all the things the pass does. + + This in turn has implications for integrating external commands + (beginExternal() - direct Vulkan calls - endExternal()) because that is + incompatible with this approach by nature. Therefore we support another mode + of operation, where each render or compute pass uses one or more secondary + command buffers (recorded right away), with each beginExternal() leading to + closing the current secondary cb, creating a new secondary cb for the + external content, and then starting yet another one in endExternal() for + whatever comes afterwards in the pass. This way the primary command buffer + only has vkCmdExecuteCommand(s) within a renderpass instance + (Begin-EndRenderPass). (i.e. our only subpass is then + VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS instead of + VK_SUBPASS_CONTENTS_INLINE) + + The command buffer management mode is decided on a per frame basis, + controlled by the ExternalContentsInPass flag of beginFrame(). */ /*! @@ -1476,7 +1498,6 @@ static inline bool checkDeviceLost(VkResult err) QRhi::FrameOpResult QRhiVulkan::beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) { - Q_UNUSED(flags); QVkSwapChain *swapChainD = QRHI_RES(QVkSwapChain, swapChain); QVkSwapChain::FrameResources &frame(swapChainD->frameRes[swapChainD->currentFrameSlot]); QRhiProfilerPrivate *rhiP = profilerPrivateOrNull(); @@ -1548,7 +1569,7 @@ QRhi::FrameOpResult QRhiVulkan::beginFrame(QRhiSwapChain *swapChain, QRhi::Begin } // build new draw command buffer - QRhi::FrameOpResult cbres = startCommandBuffer(&frame.cmdBuf); + QRhi::FrameOpResult cbres = startPrimaryCommandBuffer(&frame.cmdBuf); if (cbres != QRhi::FrameOpSuccess) return cbres; @@ -1572,6 +1593,8 @@ QRhi::FrameOpResult QRhiVulkan::beginFrame(QRhiSwapChain *swapChain, QRhi::Begin } swapChainD->cbWrapper.cb = frame.cmdBuf; + swapChainD->cbWrapper.useSecondaryCb = flags.testFlag(QRhi::ExternalContentsInPass); + QVkSwapChain::ImageResources &image(swapChainD->imageRes[swapChainD->currentImageIndex]); swapChainD->rtWrapper.d.fb = image.fb; @@ -1592,7 +1615,7 @@ QRhi::FrameOpResult QRhiVulkan::endFrame(QRhiSwapChain *swapChain, QRhi::EndFram QVkSwapChain *swapChainD = QRHI_RES(QVkSwapChain, swapChain); Q_ASSERT(currentSwapChain == swapChainD); - recordCommandBuffer(&swapChainD->cbWrapper); + recordPrimaryCommandBuffer(&swapChainD->cbWrapper); QVkSwapChain::FrameResources &frame(swapChainD->frameRes[swapChainD->currentFrameSlot]); QVkSwapChain::ImageResources &image(swapChainD->imageRes[swapChainD->currentImageIndex]); @@ -1636,10 +1659,10 @@ QRhi::FrameOpResult QRhiVulkan::endFrame(QRhiSwapChain *swapChain, QRhi::EndFram // stop recording and submit to the queue Q_ASSERT(!frame.cmdFenceWaitable); const bool needsPresent = !flags.testFlag(QRhi::SkipPresent); - QRhi::FrameOpResult submitres = endAndSubmitCommandBuffer(frame.cmdBuf, - frame.cmdFence, - frame.imageSemWaitable ? &frame.imageSem : nullptr, - needsPresent ? &frame.drawSem : nullptr); + QRhi::FrameOpResult submitres = endAndSubmitPrimaryCommandBuffer(frame.cmdBuf, + frame.cmdFence, + frame.imageSemWaitable ? &frame.imageSem : nullptr, + needsPresent ? &frame.drawSem : nullptr); if (submitres != QRhi::FrameOpSuccess) return submitres; @@ -1710,7 +1733,7 @@ void QRhiVulkan::prepareNewFrame(QRhiCommandBuffer *cb) finishActiveReadbacks(); // last, in case the readback-completed callback issues rhi calls } -QRhi::FrameOpResult QRhiVulkan::startCommandBuffer(VkCommandBuffer *cb) +QRhi::FrameOpResult QRhiVulkan::startPrimaryCommandBuffer(VkCommandBuffer *cb) { if (*cb) { df->vkFreeCommandBuffers(dev, cmdPool, 1, cb); @@ -1749,8 +1772,8 @@ QRhi::FrameOpResult QRhiVulkan::startCommandBuffer(VkCommandBuffer *cb) return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiVulkan::endAndSubmitCommandBuffer(VkCommandBuffer cb, VkFence cmdFence, - VkSemaphore *waitSem, VkSemaphore *signalSem) +QRhi::FrameOpResult QRhiVulkan::endAndSubmitPrimaryCommandBuffer(VkCommandBuffer cb, VkFence cmdFence, + VkSemaphore *waitSem, VkSemaphore *signalSem) { VkResult err = df->vkEndCommandBuffer(cb); if (err != VK_SUCCESS) { @@ -1801,9 +1824,9 @@ void QRhiVulkan::waitCommandCompletion(int frameSlot) } } -QRhi::FrameOpResult QRhiVulkan::beginOffscreenFrame(QRhiCommandBuffer **cb) +QRhi::FrameOpResult QRhiVulkan::beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) { - QRhi::FrameOpResult cbres = startCommandBuffer(&ofr.cbWrapper.cb); + QRhi::FrameOpResult cbres = startPrimaryCommandBuffer(&ofr.cbWrapper.cb); if (cbres != QRhi::FrameOpSuccess) return cbres; @@ -1820,6 +1843,8 @@ QRhi::FrameOpResult QRhiVulkan::beginOffscreenFrame(QRhiCommandBuffer **cb) if (swapchains.count() > 1) waitCommandCompletion(currentFrameSlot); + ofr.cbWrapper.useSecondaryCb = flags.testFlag(QRhi::ExternalContentsInPass); + prepareNewFrame(&ofr.cbWrapper); ofr.active = true; @@ -1827,12 +1852,13 @@ QRhi::FrameOpResult QRhiVulkan::beginOffscreenFrame(QRhiCommandBuffer **cb) return QRhi::FrameOpSuccess; } -QRhi::FrameOpResult QRhiVulkan::endOffscreenFrame() +QRhi::FrameOpResult QRhiVulkan::endOffscreenFrame(QRhi::EndFrameFlags flags) { + Q_UNUSED(flags); Q_ASSERT(ofr.active); ofr.active = false; - recordCommandBuffer(&ofr.cbWrapper); + recordPrimaryCommandBuffer(&ofr.cbWrapper); if (!ofr.cmdFence) { VkFenceCreateInfo fenceInfo; @@ -1845,7 +1871,7 @@ QRhi::FrameOpResult QRhiVulkan::endOffscreenFrame() } } - QRhi::FrameOpResult submitres = endAndSubmitCommandBuffer(ofr.cbWrapper.cb, ofr.cmdFence, nullptr, nullptr); + QRhi::FrameOpResult submitres = endAndSubmitPrimaryCommandBuffer(ofr.cbWrapper.cb, ofr.cmdFence, nullptr, nullptr); if (submitres != QRhi::FrameOpSuccess) return submitres; @@ -1870,18 +1896,18 @@ QRhi::FrameOpResult QRhiVulkan::finish() if (ofr.active) { Q_ASSERT(!currentSwapChain); Q_ASSERT(ofr.cbWrapper.recordingPass == QVkCommandBuffer::NoPass); - recordCommandBuffer(&ofr.cbWrapper); + recordPrimaryCommandBuffer(&ofr.cbWrapper); ofr.cbWrapper.resetCommands(); cb = ofr.cbWrapper.cb; } else { Q_ASSERT(currentSwapChain); Q_ASSERT(currentSwapChain->cbWrapper.recordingPass == QVkCommandBuffer::NoPass); swapChainD = currentSwapChain; - recordCommandBuffer(&swapChainD->cbWrapper); + recordPrimaryCommandBuffer(&swapChainD->cbWrapper); swapChainD->cbWrapper.resetCommands(); cb = swapChainD->cbWrapper.cb; } - QRhi::FrameOpResult submitres = endAndSubmitCommandBuffer(cb, VK_NULL_HANDLE, nullptr, nullptr); + QRhi::FrameOpResult submitres = endAndSubmitPrimaryCommandBuffer(cb, VK_NULL_HANDLE, nullptr, nullptr); if (submitres != QRhi::FrameOpSuccess) return submitres; } @@ -1891,9 +1917,9 @@ QRhi::FrameOpResult QRhiVulkan::finish() if (inFrame) { // Allocate and begin recording on a new command buffer. if (ofr.active) - startCommandBuffer(&ofr.cbWrapper.cb); + startPrimaryCommandBuffer(&ofr.cbWrapper.cb); else - startCommandBuffer(&swapChainD->frameRes[swapChainD->currentFrameSlot].cmdBuf); + startPrimaryCommandBuffer(&swapChainD->frameRes[swapChainD->currentFrameSlot].cmdBuf); } executeDeferredReleases(true); @@ -1967,6 +1993,69 @@ void QRhiVulkan::resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch * enqueueResourceUpdates(cbD, resourceUpdates); } +VkCommandBuffer QRhiVulkan::startSecondaryCommandBuffer(QVkRenderTargetData *rtD) +{ + VkCommandBuffer secondaryCb; + + VkCommandBufferAllocateInfo cmdBufInfo; + memset(&cmdBufInfo, 0, sizeof(cmdBufInfo)); + cmdBufInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; + cmdBufInfo.commandPool = cmdPool; + cmdBufInfo.level = VK_COMMAND_BUFFER_LEVEL_SECONDARY; + cmdBufInfo.commandBufferCount = 1; + VkResult err = df->vkAllocateCommandBuffers(dev, &cmdBufInfo, &secondaryCb); + if (err != VK_SUCCESS) { + qWarning("Failed to create secondary command buffer: %d", err); + return VK_NULL_HANDLE; + } + + VkCommandBufferBeginInfo cmdBufBeginInfo; + memset(&cmdBufBeginInfo, 0, sizeof(cmdBufBeginInfo)); + cmdBufBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; + cmdBufBeginInfo.flags = rtD ? VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT : 0; + VkCommandBufferInheritanceInfo cmdBufInheritInfo; + memset(&cmdBufInheritInfo, 0, sizeof(cmdBufInheritInfo)); + cmdBufInheritInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO; + cmdBufInheritInfo.subpass = 0; + if (rtD) { + cmdBufInheritInfo.renderPass = rtD->rp->rp; + cmdBufInheritInfo.framebuffer = rtD->fb; + } + cmdBufBeginInfo.pInheritanceInfo = &cmdBufInheritInfo; + + err = df->vkBeginCommandBuffer(secondaryCb, &cmdBufBeginInfo); + if (err != VK_SUCCESS) { + qWarning("Failed to begin secondary command buffer: %d", err); + df->vkFreeCommandBuffers(dev, cmdPool, 1, &secondaryCb); + return VK_NULL_HANDLE; + } + + return secondaryCb; +} + +void QRhiVulkan::endAndEnqueueSecondaryCommandBuffer(VkCommandBuffer cb, QVkCommandBuffer *cbD) +{ + VkResult err = df->vkEndCommandBuffer(cb); + if (err != VK_SUCCESS) + qWarning("Failed to end secondary command buffer: %d", err); + + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::ExecuteSecondary; + cmd.args.executeSecondary.cb = cb; + cbD->commands.append(cmd); + + deferredReleaseSecondaryCommandBuffer(cb); +} + +void QRhiVulkan::deferredReleaseSecondaryCommandBuffer(VkCommandBuffer cb) +{ + QRhiVulkan::DeferredReleaseEntry e; + e.type = QRhiVulkan::DeferredReleaseEntry::CommandBuffer; + e.lastActiveFrameSlot = currentFrameSlot; + e.commandBuffer.cb = cb; + releaseQueue.append(e); +} + void QRhiVulkan::beginPass(QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, @@ -2046,6 +2135,9 @@ void QRhiVulkan::beginPass(QRhiCommandBuffer *cb, cmd.args.beginRenderPass.clearValueIndex = cbD->pools.clearValue.count(); cbD->pools.clearValue.append(cvs.constData(), cvs.count()); cbD->commands.append(cmd); + + if (cbD->useSecondaryCb) + cbD->secondaryCbs.append(startSecondaryCommandBuffer(rtD)); } void QRhiVulkan::endPass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) @@ -2053,6 +2145,13 @@ void QRhiVulkan::endPass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourc QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::RenderPass); + if (cbD->useSecondaryCb) { + VkCommandBuffer secondaryCb = cbD->secondaryCbs.last(); + cbD->secondaryCbs.removeLast(); + endAndEnqueueSecondaryCommandBuffer(secondaryCb, cbD); + cbD->resetCachedState(); + } + QVkCommandBuffer::Command cmd; cmd.cmd = QVkCommandBuffer::Command::EndRenderPass; cbD->commands.append(cmd); @@ -2075,6 +2174,9 @@ void QRhiVulkan::beginComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch enqueueTransitionPassResources(cbD); cbD->recordingPass = QVkCommandBuffer::ComputePass; + + if (cbD->useSecondaryCb) + cbD->secondaryCbs.append(startSecondaryCommandBuffer()); } void QRhiVulkan::endComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) @@ -2082,6 +2184,13 @@ void QRhiVulkan::endComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch * QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::ComputePass); + if (cbD->useSecondaryCb) { + VkCommandBuffer secondaryCb = cbD->secondaryCbs.last(); + cbD->secondaryCbs.removeLast(); + endAndEnqueueSecondaryCommandBuffer(secondaryCb, cbD); + cbD->resetCachedState(); + } + cbD->recordingPass = QVkCommandBuffer::NoPass; if (resourceUpdates) @@ -2096,11 +2205,15 @@ void QRhiVulkan::setComputePipeline(QRhiCommandBuffer *cb, QRhiComputePipeline * Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::ComputePass); if (cbD->currentComputePipeline != ps || cbD->currentPipelineGeneration != psD->generation) { - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::BindPipeline; - cmd.args.bindPipeline.bindPoint = VK_PIPELINE_BIND_POINT_COMPUTE; - cmd.args.bindPipeline.pipeline = psD->pipeline; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdBindPipeline(cbD->secondaryCbs.last(), VK_PIPELINE_BIND_POINT_COMPUTE, psD->pipeline); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::BindPipeline; + cmd.args.bindPipeline.bindPoint = VK_PIPELINE_BIND_POINT_COMPUTE; + cmd.args.bindPipeline.pipeline = psD->pipeline; + cbD->commands.append(cmd); + } cbD->currentGraphicsPipeline = nullptr; cbD->currentComputePipeline = ps; @@ -2115,12 +2228,16 @@ void QRhiVulkan::dispatch(QRhiCommandBuffer *cb, int x, int y, int z) QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::ComputePass); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::Dispatch; - cmd.args.dispatch.x = x; - cmd.args.dispatch.y = y; - cmd.args.dispatch.z = z; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdDispatch(cbD->secondaryCbs.last(), x, y, z); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::Dispatch; + cmd.args.dispatch.x = x; + cmd.args.dispatch.y = y; + cmd.args.dispatch.z = z; + cbD->commands.append(cmd); + } } VkShaderModule QRhiVulkan::createShader(const QByteArray &spirv) @@ -3025,6 +3142,9 @@ void QRhiVulkan::executeDeferredReleases(bool forced) case QRhiVulkan::DeferredReleaseEntry::StagingBuffer: vmaDestroyBuffer(toVmaAllocator(allocator), e.stagingBuffer.stagingBuffer, toVmaAllocation(e.stagingBuffer.stagingAllocation)); break; + case QRhiVulkan::DeferredReleaseEntry::CommandBuffer: + df->vkFreeCommandBuffers(dev, cmdPool, 1, &e.commandBuffer.cb); + break; default: Q_UNREACHABLE(); break; @@ -3133,8 +3253,10 @@ void QRhiVulkan::enqueueTransitionPassResources(QVkCommandBuffer *cbD) cbD->commands.append(cmd); } -void QRhiVulkan::recordCommandBuffer(QVkCommandBuffer *cbD) +void QRhiVulkan::recordPrimaryCommandBuffer(QVkCommandBuffer *cbD) { + Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::NoPass); + for (QVkCommandBuffer::Command &cmd : cbD->commands) { switch (cmd.cmd) { case QVkCommandBuffer::Command::CopyBuffer: @@ -3176,7 +3298,8 @@ void QRhiVulkan::recordCommandBuffer(QVkCommandBuffer *cbD) break; case QVkCommandBuffer::Command::BeginRenderPass: cmd.args.beginRenderPass.desc.pClearValues = cbD->pools.clearValue.constData() + cmd.args.beginRenderPass.clearValueIndex; - df->vkCmdBeginRenderPass(cbD->cb, &cmd.args.beginRenderPass.desc, VK_SUBPASS_CONTENTS_INLINE); + df->vkCmdBeginRenderPass(cbD->cb, &cmd.args.beginRenderPass.desc, + cbD->useSecondaryCb ? VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS : VK_SUBPASS_CONTENTS_INLINE); break; case QVkCommandBuffer::Command::EndRenderPass: df->vkCmdEndRenderPass(cbD->cb); @@ -3229,13 +3352,15 @@ void QRhiVulkan::recordCommandBuffer(QVkCommandBuffer *cbD) break; case QVkCommandBuffer::Command::DebugMarkerBegin: cmd.args.debugMarkerBegin.marker.pMarkerName = - cbD->pools.debugMarkerName[cmd.args.debugMarkerBegin.markerNameIndex].constData(); + cbD->pools.debugMarkerData[cmd.args.debugMarkerBegin.markerNameIndex].constData(); vkCmdDebugMarkerBegin(cbD->cb, &cmd.args.debugMarkerBegin.marker); break; case QVkCommandBuffer::Command::DebugMarkerEnd: vkCmdDebugMarkerEnd(cbD->cb); break; case QVkCommandBuffer::Command::DebugMarkerInsert: + cmd.args.debugMarkerInsert.marker.pMarkerName = + cbD->pools.debugMarkerData[cmd.args.debugMarkerInsert.markerNameIndex].constData(); vkCmdDebugMarkerInsert(cbD->cb, &cmd.args.debugMarkerInsert.marker); break; case QVkCommandBuffer::Command::TransitionPassResources: @@ -3244,6 +3369,9 @@ void QRhiVulkan::recordCommandBuffer(QVkCommandBuffer *cbD) case QVkCommandBuffer::Command::Dispatch: df->vkCmdDispatch(cbD->cb, cmd.args.dispatch.x, cmd.args.dispatch.y, cmd.args.dispatch.z); break; + case QVkCommandBuffer::Command::ExecuteSecondary: + df->vkCmdExecuteCommands(cbD->cb, 1, &cmd.args.executeSecondary.cb); + break; default: break; } @@ -3664,11 +3792,15 @@ void QRhiVulkan::setGraphicsPipeline(QRhiCommandBuffer *cb, QRhiGraphicsPipeline Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::RenderPass); if (cbD->currentGraphicsPipeline != ps || cbD->currentPipelineGeneration != psD->generation) { - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::BindPipeline; - cmd.args.bindPipeline.bindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; - cmd.args.bindPipeline.pipeline = psD->pipeline; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdBindPipeline(cbD->secondaryCbs.last(), VK_PIPELINE_BIND_POINT_GRAPHICS, psD->pipeline); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::BindPipeline; + cmd.args.bindPipeline.bindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; + cmd.args.bindPipeline.pipeline = psD->pipeline; + cbD->commands.append(cmd); + } cbD->currentGraphicsPipeline = ps; cbD->currentComputePipeline = nullptr; @@ -3866,16 +3998,25 @@ void QRhiVulkan::setShaderResources(QRhiCommandBuffer *cb, QRhiShaderResourceBin } } - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::BindDescriptorSet; - cmd.args.bindDescriptorSet.bindPoint = gfxPsD ? VK_PIPELINE_BIND_POINT_GRAPHICS - : VK_PIPELINE_BIND_POINT_COMPUTE; - cmd.args.bindDescriptorSet.pipelineLayout = gfxPsD ? gfxPsD->layout : compPsD->layout; - cmd.args.bindDescriptorSet.descSet = srbD->descSets[descSetIdx]; - cmd.args.bindDescriptorSet.dynamicOffsetCount = dynOfs.count(); - cmd.args.bindDescriptorSet.dynamicOffsetIndex = cbD->pools.dynamicOffset.count(); - cbD->pools.dynamicOffset.append(dynOfs.constData(), dynOfs.count()); - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdBindDescriptorSets(cbD->secondaryCbs.last(), + gfxPsD ? VK_PIPELINE_BIND_POINT_GRAPHICS : VK_PIPELINE_BIND_POINT_COMPUTE, + gfxPsD ? gfxPsD->layout : compPsD->layout, + 0, 1, &srbD->descSets[descSetIdx], + dynOfs.count(), + dynOfs.count() ? dynOfs.constData() : nullptr); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::BindDescriptorSet; + cmd.args.bindDescriptorSet.bindPoint = gfxPsD ? VK_PIPELINE_BIND_POINT_GRAPHICS + : VK_PIPELINE_BIND_POINT_COMPUTE; + cmd.args.bindDescriptorSet.pipelineLayout = gfxPsD ? gfxPsD->layout : compPsD->layout; + cmd.args.bindDescriptorSet.descSet = srbD->descSets[descSetIdx]; + cmd.args.bindDescriptorSet.dynamicOffsetCount = dynOfs.count(); + cmd.args.bindDescriptorSet.dynamicOffsetIndex = cbD->pools.dynamicOffset.count(); + cbD->pools.dynamicOffset.append(dynOfs.constData(), dynOfs.count()); + cbD->commands.append(cmd); + } if (gfxPsD) { cbD->currentGraphicsSrb = srb; @@ -3931,15 +4072,20 @@ void QRhiVulkan::setVertexInput(QRhiCommandBuffer *cb, QRhiPassResourceTracker::BufVertexInputStage); } - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::BindVertexBuffer; - cmd.args.bindVertexBuffer.startBinding = startBinding; - cmd.args.bindVertexBuffer.count = bufs.count(); - cmd.args.bindVertexBuffer.vertexBufferIndex = cbD->pools.vertexBuffer.count(); - cbD->pools.vertexBuffer.append(bufs.constData(), bufs.count()); - cmd.args.bindVertexBuffer.vertexBufferOffsetIndex = cbD->pools.vertexBufferOffset.count(); - cbD->pools.vertexBufferOffset.append(ofs.constData(), ofs.count()); - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdBindVertexBuffers(cbD->secondaryCbs.last(), startBinding, + bufs.count(), bufs.constData(), ofs.constData()); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::BindVertexBuffer; + cmd.args.bindVertexBuffer.startBinding = startBinding; + cmd.args.bindVertexBuffer.count = bufs.count(); + cmd.args.bindVertexBuffer.vertexBufferIndex = cbD->pools.vertexBuffer.count(); + cbD->pools.vertexBuffer.append(bufs.constData(), bufs.count()); + cmd.args.bindVertexBuffer.vertexBufferOffsetIndex = cbD->pools.vertexBufferOffset.count(); + cbD->pools.vertexBufferOffset.append(ofs.constData(), ofs.count()); + cbD->commands.append(cmd); + } } if (indexBuf) { @@ -3962,12 +4108,16 @@ void QRhiVulkan::setVertexInput(QRhiCommandBuffer *cb, cbD->currentIndexOffset = indexOffset; cbD->currentIndexFormat = type; - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::BindIndexBuffer; - cmd.args.bindIndexBuffer.buf = vkindexbuf; - cmd.args.bindIndexBuffer.ofs = indexOffset; - cmd.args.bindIndexBuffer.type = type; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdBindIndexBuffer(cbD->secondaryCbs.last(), vkindexbuf, indexOffset, type); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::BindIndexBuffer; + cmd.args.bindIndexBuffer.buf = vkindexbuf; + cmd.args.bindIndexBuffer.ofs = indexOffset; + cmd.args.bindIndexBuffer.type = type; + cbD->commands.append(cmd); + } trackedRegisterBuffer(&passResTracker, ibufD, slot, QRhiPassResourceTracker::BufIndexRead, @@ -3988,7 +4138,6 @@ void QRhiVulkan::setViewport(QRhiCommandBuffer *cb, const QRhiViewport &viewport return; QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::SetViewport; VkViewport *vp = &cmd.args.setViewport.viewport; vp->x = x; vp->y = y; @@ -3996,16 +4145,26 @@ void QRhiVulkan::setViewport(QRhiCommandBuffer *cb, const QRhiViewport &viewport vp->height = h; vp->minDepth = viewport.minDepth(); vp->maxDepth = viewport.maxDepth(); - cbD->commands.append(cmd); + + if (cbD->useSecondaryCb) { + df->vkCmdSetViewport(cbD->secondaryCbs.last(), 0, 1, vp); + } else { + cmd.cmd = QVkCommandBuffer::Command::SetViewport; + cbD->commands.append(cmd); + } if (!QRHI_RES(QVkGraphicsPipeline, cbD->currentGraphicsPipeline)->m_flags.testFlag(QRhiGraphicsPipeline::UsesScissor)) { - cmd.cmd = QVkCommandBuffer::Command::SetScissor; VkRect2D *s = &cmd.args.setScissor.scissor; s->offset.x = x; s->offset.y = y; s->extent.width = w; s->extent.height = h; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdSetScissor(cbD->secondaryCbs.last(), 0, 1, s); + } else { + cmd.cmd = QVkCommandBuffer::Command::SetScissor; + cbD->commands.append(cmd); + } } } @@ -4022,13 +4181,18 @@ void QRhiVulkan::setScissor(QRhiCommandBuffer *cb, const QRhiScissor &scissor) return; QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::SetScissor; VkRect2D *s = &cmd.args.setScissor.scissor; s->offset.x = x; s->offset.y = y; s->extent.width = w; s->extent.height = h; - cbD->commands.append(cmd); + + if (cbD->useSecondaryCb) { + df->vkCmdSetScissor(cbD->secondaryCbs.last(), 0, 1, s); + } else { + cmd.cmd = QVkCommandBuffer::Command::SetScissor; + cbD->commands.append(cmd); + } } void QRhiVulkan::setBlendConstants(QRhiCommandBuffer *cb, const QColor &c) @@ -4036,13 +4200,18 @@ void QRhiVulkan::setBlendConstants(QRhiCommandBuffer *cb, const QColor &c) QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::RenderPass); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::SetBlendConstants; - cmd.args.setBlendConstants.c[0] = c.redF(); - cmd.args.setBlendConstants.c[1] = c.greenF(); - cmd.args.setBlendConstants.c[2] = c.blueF(); - cmd.args.setBlendConstants.c[3] = c.alphaF(); - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + float constants[] = { float(c.redF()), float(c.greenF()), float(c.blueF()), float(c.alphaF()) }; + df->vkCmdSetBlendConstants(cbD->secondaryCbs.last(), constants); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::SetBlendConstants; + cmd.args.setBlendConstants.c[0] = c.redF(); + cmd.args.setBlendConstants.c[1] = c.greenF(); + cmd.args.setBlendConstants.c[2] = c.blueF(); + cmd.args.setBlendConstants.c[3] = c.alphaF(); + cbD->commands.append(cmd); + } } void QRhiVulkan::setStencilRef(QRhiCommandBuffer *cb, quint32 refValue) @@ -4050,10 +4219,14 @@ void QRhiVulkan::setStencilRef(QRhiCommandBuffer *cb, quint32 refValue) QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::RenderPass); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::SetStencilRef; - cmd.args.setStencilRef.ref = refValue; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdSetStencilReference(cbD->secondaryCbs.last(), VK_STENCIL_FRONT_AND_BACK, refValue); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::SetStencilRef; + cmd.args.setStencilRef.ref = refValue; + cbD->commands.append(cmd); + } } void QRhiVulkan::draw(QRhiCommandBuffer *cb, quint32 vertexCount, @@ -4062,13 +4235,17 @@ void QRhiVulkan::draw(QRhiCommandBuffer *cb, quint32 vertexCount, QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::RenderPass); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::Draw; - cmd.args.draw.vertexCount = vertexCount; - cmd.args.draw.instanceCount = instanceCount; - cmd.args.draw.firstVertex = firstVertex; - cmd.args.draw.firstInstance = firstInstance; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdDraw(cbD->secondaryCbs.last(), vertexCount, instanceCount, firstVertex, firstInstance); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::Draw; + cmd.args.draw.vertexCount = vertexCount; + cmd.args.draw.instanceCount = instanceCount; + cmd.args.draw.firstVertex = firstVertex; + cmd.args.draw.firstInstance = firstInstance; + cbD->commands.append(cmd); + } } void QRhiVulkan::drawIndexed(QRhiCommandBuffer *cb, quint32 indexCount, @@ -4077,14 +4254,19 @@ void QRhiVulkan::drawIndexed(QRhiCommandBuffer *cb, quint32 indexCount, QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); Q_ASSERT(cbD->recordingPass == QVkCommandBuffer::RenderPass); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::DrawIndexed; - cmd.args.drawIndexed.indexCount = indexCount; - cmd.args.drawIndexed.instanceCount = instanceCount; - cmd.args.drawIndexed.firstIndex = firstIndex; - cmd.args.drawIndexed.vertexOffset = vertexOffset; - cmd.args.drawIndexed.firstInstance = firstInstance; - cbD->commands.append(cmd); + if (cbD->useSecondaryCb) { + df->vkCmdDrawIndexed(cbD->secondaryCbs.last(), indexCount, instanceCount, + firstIndex, vertexOffset, firstInstance); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::DrawIndexed; + cmd.args.drawIndexed.indexCount = indexCount; + cmd.args.drawIndexed.instanceCount = instanceCount; + cmd.args.drawIndexed.firstIndex = firstIndex; + cmd.args.drawIndexed.vertexOffset = vertexOffset; + cmd.args.drawIndexed.firstInstance = firstInstance; + cbD->commands.append(cmd); + } } void QRhiVulkan::debugMarkBegin(QRhiCommandBuffer *cb, const QByteArray &name) @@ -4097,12 +4279,17 @@ void QRhiVulkan::debugMarkBegin(QRhiCommandBuffer *cb, const QByteArray &name) marker.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT; QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::DebugMarkerBegin; - cmd.args.debugMarkerBegin.marker = marker; - cmd.args.debugMarkerBegin.markerNameIndex = cbD->pools.debugMarkerName.count(); - cbD->pools.debugMarkerName.append(name); - cbD->commands.append(cmd); + if (cbD->recordingPass != QVkCommandBuffer::NoPass && cbD->useSecondaryCb) { + marker.pMarkerName = name.constData(); + vkCmdDebugMarkerBegin(cbD->secondaryCbs.last(), &marker); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::DebugMarkerBegin; + cmd.args.debugMarkerBegin.marker = marker; + cmd.args.debugMarkerBegin.markerNameIndex = cbD->pools.debugMarkerData.count(); + cbD->pools.debugMarkerData.append(name); + cbD->commands.append(cmd); + } } void QRhiVulkan::debugMarkEnd(QRhiCommandBuffer *cb) @@ -4111,9 +4298,13 @@ void QRhiVulkan::debugMarkEnd(QRhiCommandBuffer *cb) return; QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::DebugMarkerEnd; - cbD->commands.append(cmd); + if (cbD->recordingPass != QVkCommandBuffer::NoPass && cbD->useSecondaryCb) { + vkCmdDebugMarkerEnd(cbD->secondaryCbs.last()); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::DebugMarkerEnd; + cbD->commands.append(cmd); + } } void QRhiVulkan::debugMarkMsg(QRhiCommandBuffer *cb, const QByteArray &msg) @@ -4124,13 +4315,19 @@ void QRhiVulkan::debugMarkMsg(QRhiCommandBuffer *cb, const QByteArray &msg) VkDebugMarkerMarkerInfoEXT marker; memset(&marker, 0, sizeof(marker)); marker.sType = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT; - marker.pMarkerName = msg.constData(); QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); - QVkCommandBuffer::Command cmd; - cmd.cmd = QVkCommandBuffer::Command::DebugMarkerInsert; - cmd.args.debugMarkerInsert.marker = marker; - cbD->commands.append(cmd); + if (cbD->recordingPass != QVkCommandBuffer::NoPass && cbD->useSecondaryCb) { + marker.pMarkerName = msg.constData(); + vkCmdDebugMarkerInsert(cbD->secondaryCbs.last(), &marker); + } else { + QVkCommandBuffer::Command cmd; + cmd.cmd = QVkCommandBuffer::Command::DebugMarkerInsert; + cmd.args.debugMarkerInsert.marker = marker; + cmd.args.debugMarkerInsert.markerNameIndex = cbD->pools.debugMarkerData.count(); + cbD->pools.debugMarkerData.append(msg); + cbD->commands.append(cmd); + } } const QRhiNativeHandles *QRhiVulkan::nativeHandles(QRhiCommandBuffer *cb) @@ -4138,32 +4335,77 @@ const QRhiNativeHandles *QRhiVulkan::nativeHandles(QRhiCommandBuffer *cb) return QRHI_RES(QVkCommandBuffer, cb)->nativeHandles(); } +static inline QVkRenderTargetData *maybeRenderTargetData(QVkCommandBuffer *cbD) +{ + Q_ASSERT(cbD->currentTarget); + QVkRenderTargetData *rtD = nullptr; + if (cbD->recordingPass == QVkCommandBuffer::RenderPass) { + switch (cbD->currentTarget->resourceType()) { + case QRhiResource::RenderTarget: + rtD = &QRHI_RES(QVkReferenceRenderTarget, cbD->currentTarget)->d; + break; + case QRhiResource::TextureRenderTarget: + rtD = &QRHI_RES(QVkTextureRenderTarget, cbD->currentTarget)->d; + break; + default: + Q_UNREACHABLE(); + break; + } + } + return rtD; +} + void QRhiVulkan::beginExternal(QRhiCommandBuffer *cb) { QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); - recordCommandBuffer(cbD); - cbD->resetCommands(); + + // When not in a pass, it is simple: record what we have (but do not + // submit), the cb can then be used to record more external commands. + if (cbD->recordingPass == QVkCommandBuffer::NoPass) { + recordPrimaryCommandBuffer(cbD); + cbD->resetCommands(); + return; + } + + // Otherwise, inside a pass, have a secondary command buffer (with + // RENDER_PASS_CONTINUE). Using the main one is not acceptable since we + // cannot just record at this stage, that would mess up the resource + // tracking and commands like TransitionPassResources. + + if (cbD->inExternal) + return; + + if (!cbD->useSecondaryCb) { + qWarning("beginExternal() within a pass is only supported with secondary command buffers. " + "This can be enabled by passing QRhi::ExternalContentsInPass to beginFrame()."); + return; + } + + VkCommandBuffer secondaryCb = cbD->secondaryCbs.last(); + cbD->secondaryCbs.removeLast(); + endAndEnqueueSecondaryCommandBuffer(secondaryCb, cbD); + + VkCommandBuffer extCb = startSecondaryCommandBuffer(maybeRenderTargetData(cbD)); + if (extCb) { + cbD->secondaryCbs.append(extCb); + cbD->inExternal = true; + } } void QRhiVulkan::endExternal(QRhiCommandBuffer *cb) { QVkCommandBuffer *cbD = QRHI_RES(QVkCommandBuffer, cb); - Q_ASSERT(cbD->commands.isEmpty() && cbD->currentPassResTrackerIndex == -1); - - cbD->resetCachedState(); - // ### FIXME this is all broken (leads to barriers within a renderpass - // instance which (1) would need a self-dependency for the subpass and (2) is - // not what we want anyway since it then has a different sychronization scope). - // - // To be replaced with a secondary command buffer for the external content. - // - if (cbD->recordingPass != QVkCommandBuffer::NoPass) { - // Commands that come after this point need a resource tracker and the - // corresponding barriers. Note that we are inside a renderpass - // instance here and that needs a self-dependency for the subpass. - enqueueTransitionPassResources(cbD); + if (cbD->recordingPass == QVkCommandBuffer::NoPass) { + Q_ASSERT(cbD->commands.isEmpty() && cbD->currentPassResTrackerIndex == -1); + } else if (cbD->inExternal) { + VkCommandBuffer extCb = cbD->secondaryCbs.last(); + cbD->secondaryCbs.removeLast(); + endAndEnqueueSecondaryCommandBuffer(extCb, cbD); + cbD->secondaryCbs.append(startSecondaryCommandBuffer(maybeRenderTargetData(cbD))); } + + cbD->resetCachedState(); } void QRhiVulkan::setObjectName(uint64_t object, VkDebugReportObjectTypeEXT type, const QByteArray &name, int slot) @@ -5818,6 +6060,22 @@ void QVkCommandBuffer::release() // nothing to do here, cb is not owned by us } +const QRhiNativeHandles *QVkCommandBuffer::nativeHandles() +{ + // Ok this is messy but no other way has been devised yet. Outside + // begin(Compute)Pass - end(Compute)Pass it is simple - just return the + // primary VkCommandBuffer. Inside, however, we need to provide the current + // secondary command buffer (typically the one started by beginExternal(), + // in case we are between beginExternal - endExternal inside a pass). + + if (useSecondaryCb && !secondaryCbs.isEmpty()) + nativeHandlesStruct.commandBuffer = secondaryCbs.last(); + else + nativeHandlesStruct.commandBuffer = cb; + + return &nativeHandlesStruct; +} + QVkSwapChain::QVkSwapChain(QRhiImplementation *rhi) : QRhiSwapChain(rhi), rtWrapper(rhi), diff --git a/src/gui/rhi/qrhivulkan_p_p.h b/src/gui/rhi/qrhivulkan_p_p.h index dd9a7d4216..962a1b8eb7 100644 --- a/src/gui/rhi/qrhivulkan_p_p.h +++ b/src/gui/rhi/qrhivulkan_p_p.h @@ -309,13 +309,11 @@ struct QVkCommandBuffer : public QRhiCommandBuffer ~QVkCommandBuffer(); void release() override; - VkCommandBuffer cb = VK_NULL_HANDLE; - QRhiVulkanCommandBufferNativeHandles nativeHandlesStruct; + const QRhiNativeHandles *nativeHandles(); - const QRhiNativeHandles *nativeHandles() { - nativeHandlesStruct.commandBuffer = cb; - return &nativeHandlesStruct; - } + VkCommandBuffer cb = VK_NULL_HANDLE; // primary + bool useSecondaryCb = false; + QRhiVulkanCommandBufferNativeHandles nativeHandlesStruct; enum PassType { NoPass, @@ -326,6 +324,9 @@ struct QVkCommandBuffer : public QRhiCommandBuffer void resetState() { recordingPass = NoPass; currentTarget = nullptr; + + secondaryCbs.clear(); + resetCommands(); resetCachedState(); } @@ -343,6 +344,7 @@ struct QVkCommandBuffer : public QRhiCommandBuffer currentIndexFormat = VK_INDEX_TYPE_UINT16; memset(currentVertexBuffers, 0, sizeof(currentVertexBuffers)); memset(currentVertexOffsets, 0, sizeof(currentVertexOffsets)); + inExternal = false; } PassType recordingPass; @@ -360,6 +362,8 @@ struct QVkCommandBuffer : public QRhiCommandBuffer static const int VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; VkBuffer currentVertexBuffers[VERTEX_INPUT_RESOURCE_SLOT_COUNT]; quint32 currentVertexOffsets[VERTEX_INPUT_RESOURCE_SLOT_COUNT]; + QVarLengthArray secondaryCbs; + bool inExternal; struct Command { enum Cmd { @@ -386,7 +390,8 @@ struct QVkCommandBuffer : public QRhiCommandBuffer DebugMarkerEnd, DebugMarkerInsert, TransitionPassResources, - Dispatch + Dispatch, + ExecuteSecondary }; Cmd cmd; @@ -495,6 +500,7 @@ struct QVkCommandBuffer : public QRhiCommandBuffer } debugMarkerEnd; struct { VkDebugMarkerMarkerInfoEXT marker; + int markerNameIndex; } debugMarkerInsert; struct { int trackerIndex; @@ -502,6 +508,9 @@ struct QVkCommandBuffer : public QRhiCommandBuffer struct { int x, y, z; } dispatch; + struct { + VkCommandBuffer cb; + } executeSecondary; } args; }; QVector commands; @@ -522,7 +531,7 @@ struct QVkCommandBuffer : public QRhiCommandBuffer pools.dynamicOffset.clear(); pools.vertexBuffer.clear(); pools.vertexBufferOffset.clear(); - pools.debugMarkerName.clear(); + pools.debugMarkerData.clear(); } struct { @@ -531,7 +540,7 @@ struct QVkCommandBuffer : public QRhiCommandBuffer QVarLengthArray dynamicOffset; QVarLengthArray vertexBuffer; QVarLengthArray vertexBufferOffset; - QVarLengthArray debugMarkerName; + QVarLengthArray debugMarkerData; } pools; friend class QRhiVulkan; @@ -595,7 +604,7 @@ struct QVkSwapChain : public QRhiSwapChain bool imageAcquired = false; bool imageSemWaitable = false; quint32 imageIndex = 0; - VkCommandBuffer cmdBuf = VK_NULL_HANDLE; + VkCommandBuffer cmdBuf = VK_NULL_HANDLE; // primary VkFence cmdFence = VK_NULL_HANDLE; bool cmdFenceWaitable = false; int timestampQueryIndex = -1; @@ -640,8 +649,8 @@ public: QRhiSwapChain *createSwapChain() override; QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override; QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override; - QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb) override; - QRhi::FrameOpResult endOffscreenFrame() override; + QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override; + QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override; QRhi::FrameOpResult finish() override; void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override; @@ -730,9 +739,12 @@ public: VkShaderModule createShader(const QByteArray &spirv); void prepareNewFrame(QRhiCommandBuffer *cb); - QRhi::FrameOpResult startCommandBuffer(VkCommandBuffer *cb); - QRhi::FrameOpResult endAndSubmitCommandBuffer(VkCommandBuffer cb, VkFence cmdFence, - VkSemaphore *waitSem, VkSemaphore *signalSem); + VkCommandBuffer startSecondaryCommandBuffer(QVkRenderTargetData *rtD = nullptr); + void endAndEnqueueSecondaryCommandBuffer(VkCommandBuffer cb, QVkCommandBuffer *cbD); + void deferredReleaseSecondaryCommandBuffer(VkCommandBuffer cb); + QRhi::FrameOpResult startPrimaryCommandBuffer(VkCommandBuffer *cb); + QRhi::FrameOpResult endAndSubmitPrimaryCommandBuffer(VkCommandBuffer cb, VkFence cmdFence, + VkSemaphore *waitSem, VkSemaphore *signalSem); void waitCommandCompletion(int frameSlot); VkDeviceSize subresUploadByteSize(const QRhiTextureSubresourceUploadDescription &subresDesc) const; using BufferImageCopyList = QVarLengthArray; @@ -743,7 +755,7 @@ public: void enqueueResourceUpdates(QVkCommandBuffer *cbD, QRhiResourceUpdateBatch *resourceUpdates); void executeBufferHostWritesForCurrentFrame(QVkBuffer *bufD); void enqueueTransitionPassResources(QVkCommandBuffer *cbD); - void recordCommandBuffer(QVkCommandBuffer *cbD); + void recordPrimaryCommandBuffer(QVkCommandBuffer *cbD); void trackedRegisterBuffer(QRhiPassResourceTracker *passResTracker, QVkBuffer *bufD, int slot, @@ -859,7 +871,8 @@ public: Sampler, TextureRenderTarget, RenderPass, - StagingBuffer + StagingBuffer, + CommandBuffer }; Type type; int lastActiveFrameSlot; // -1 if not used otherwise 0..FRAMES_IN_FLIGHT-1 @@ -906,6 +919,9 @@ public: VkBuffer stagingBuffer; QVkAlloc stagingAllocation; } stagingBuffer; + struct { + VkCommandBuffer cb; + } commandBuffer; }; }; QVector releaseQueue; diff --git a/tests/manual/rhi/shared/examplefw.h b/tests/manual/rhi/shared/examplefw.h index 450aa172c2..1a29ef5f7e 100644 --- a/tests/manual/rhi/shared/examplefw.h +++ b/tests/manual/rhi/shared/examplefw.h @@ -124,6 +124,7 @@ QString graphicsApiName() QRhi::Flags rhiFlags = QRhi::EnableDebugMarkers; int sampleCount = 1; QRhiSwapChain::Flags scFlags = 0; +QRhi::BeginFrameFlags beginFrameFlags = 0; QRhi::EndFrameFlags endFrameFlags = 0; class Window : public QWindow @@ -375,7 +376,7 @@ void Window::render() // GPU/present, and that's what throttles the thread to the refresh rate. // (except for OpenGL where it happens either in endFrame or somewhere else // depending on the GL implementation) - QRhi::FrameOpResult r = m_r->beginFrame(m_sc); + QRhi::FrameOpResult r = m_r->beginFrame(m_sc, beginFrameFlags); if (r == QRhi::FrameOpSwapChainOutOfDate) { resizeSwapChain(); if (!m_hasSwapChain) diff --git a/tests/manual/rhi/triquadcube/triquadcube.cpp b/tests/manual/rhi/triquadcube/triquadcube.cpp index 4165e96127..76dbe558ab 100644 --- a/tests/manual/rhi/triquadcube/triquadcube.cpp +++ b/tests/manual/rhi/triquadcube/triquadcube.cpp @@ -71,6 +71,7 @@ //#define READBACK_SWAPCHAIN //#define NO_VSYNC //#define USE_MIN_SWAPCHAIN_BUFFERS +//#define DECLARE_EXT_CONTENTS struct { TriangleRenderer triRenderer; @@ -118,6 +119,10 @@ void preInit() scFlags |= QRhiSwapChain::MinimalBufferCount; #endif +#ifdef DECLARE_EXT_CONTENTS + beginFrameFlags |= QRhi::ExternalContentsInPass; +#endif + // For OpenGL some of these are incorporated into the QSurfaceFormat by // examplefw.h after returning from here as that is out of the RHI's control. } -- cgit v1.2.3 From 81408c0e76616b127c46779dc14bbcf084a3d87b Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Mon, 19 Aug 2019 14:20:11 +0300 Subject: QEventDispatcherWin32: avoid livelock in a foreign event loop According to Windows docs, GetMessage() function retrieves the messages from the input queue in defined order, where posted messages are processed ahead of input messages, even if they were posted later. Therefore, if the application produces a posted event permanently, as a result of processing that event, user input messages may be blocked due to hard CPU usage by the application. It's not a problem, if an internal Qt event loop is running. By calling sendPostedEvents() on the beginning of processEvents(), we are sending posted events only once per iteration. However, during execution of the foreign loop, we should artificially lower the priority of the WM_QT_SENDPOSTEDEVENTS message in order to enable delivery of other input messages. To solve the problem, it is proposed to postpone the WM_QT_SENDPOSTEDEVENTS message until the message queue becomes empty, as it works for the internal loop. Task-number: QTBUG-77464 Change-Id: I8dedb6837c6fc41aa6f497e67ab2352c2b4f3772 Reviewed-by: Laszlo Agocs --- src/corelib/kernel/qeventdispatcher_win.cpp | 67 +++++++++++----------- src/corelib/kernel/qeventdispatcher_win_p.h | 2 + .../gui/kernel/noqteventloop/tst_noqteventloop.cpp | 31 +++++++++- 3 files changed, 67 insertions(+), 33 deletions(-) diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp index c15d740f9e..87623f304a 100644 --- a/src/corelib/kernel/qeventdispatcher_win.cpp +++ b/src/corelib/kernel/qeventdispatcher_win.cpp @@ -100,7 +100,7 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA QEventDispatcherWin32Private::QEventDispatcherWin32Private() : threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), - wakeUps(0), activateNotifiersPosted(false), + getMessageHook(0), wakeUps(0), activateNotifiersPosted(false), winEventNotifierActivatedEvent(NULL) { } @@ -245,9 +245,6 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA case WM_QT_SENDPOSTEDEVENTS: Q_ASSERT(d != 0); - // Allow posting WM_QT_SENDPOSTEDEVENTS message. - d->wakeUps.storeRelaxed(0); - // We send posted events manually, if the window procedure was invoked // by the foreign event loop (e.g. from the native modal dialog). q->sendPostedEvents(); @@ -257,9 +254,9 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA return DefWindowProc(hwnd, message, wp, lp); } -static inline UINT inputTimerMask() +static inline UINT inputQueueMask() { - UINT result = QS_TIMER | QS_INPUT | QS_RAWINPUT; + UINT result = QS_ALLEVENTS; // QTBUG 28513, QTBUG-29097, QTBUG-29435: QS_TOUCH, QS_POINTER became part of // QS_INPUT in Windows Kit 8. They should not be used when running on pre-Windows 8. #if WINVER > 0x0601 @@ -269,6 +266,25 @@ static inline UINT inputTimerMask() return result; } +LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp) +{ + QEventDispatcherWin32 *q = qobject_cast(QAbstractEventDispatcher::instance()); + Q_ASSERT(q != 0); + QEventDispatcherWin32Private *d = q->d_func(); + MSG *msg = reinterpret_cast(lp); + static const UINT mask = inputQueueMask(); + + if (HIWORD(GetQueueStatus(mask)) == 0 && wp == PM_REMOVE) { + // Allow posting WM_QT_SENDPOSTEDEVENTS message. + d->wakeUps.storeRelaxed(0); + if (!(msg->hwnd == d->internalHwnd && msg->message == WM_QT_SENDPOSTEDEVENTS)) { + PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, + WMWP_QT_TOFOREIGNLOOP, 0); + } + } + return d->getMessageHook ? CallNextHookEx(0, code, wp, lp) : 0; +} + // Provide class name and atom for the message window used by // QEventDispatcherWin32Private via Q_GLOBAL_STATIC shared between threads. struct QWindowsMessageWindowClassContext @@ -447,6 +463,14 @@ void QEventDispatcherWin32::createInternalHwnd() return; d->internalHwnd = qt_create_internal_window(this); + // setup GetMessage hook needed to drive our posted events + d->getMessageHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC) qt_GetMessageHook, NULL, GetCurrentThreadId()); + if (Q_UNLIKELY(!d->getMessageHook)) { + int errorCode = GetLastError(); + qFatal("Qt: INTERNAL ERROR: failed to install GetMessage hook: %d, %ls", + errorCode, qUtf16Printable(qt_error_string(errorCode))); + } + // start all normal timers for (int i = 0; i < d->timerVec.count(); ++i) d->registerTimer(d->timerVec.at(i)); @@ -499,7 +523,6 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) bool canWait; bool retVal = false; - bool needWM_QT_SENDPOSTEDEVENTS = false; do { DWORD waitRet = 0; DWORD nCount = 0; @@ -549,11 +572,8 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) if (haveMessage) { if (d->internalHwnd == msg.hwnd && msg.message == WM_QT_SENDPOSTEDEVENTS) { // Set result to 'true', if the message was sent by wakeUp(). - if (msg.wParam == WMWP_QT_FROMWAKEUP) { - d->wakeUps.storeRelaxed(0); + if (msg.wParam == WMWP_QT_FROMWAKEUP) retVal = true; - } - needWM_QT_SENDPOSTEDEVENTS = true; continue; } if (msg.message == WM_TIMER) { @@ -573,22 +593,10 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) } if (!filterNativeEvent(QByteArrayLiteral("windows_generic_MSG"), &msg, 0)) { - // Post WM_QT_SENDPOSTEDEVENTS before calling external code, - // as it can start a foreign event loop. - if (needWM_QT_SENDPOSTEDEVENTS) { - needWM_QT_SENDPOSTEDEVENTS = false; - PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, - WMWP_QT_TOFOREIGNLOOP, 0); - } TranslateMessage(&msg); DispatchMessage(&msg); } } else if (waitRet - WAIT_OBJECT_0 < nCount) { - if (needWM_QT_SENDPOSTEDEVENTS) { - needWM_QT_SENDPOSTEDEVENTS = false; - PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, - WMWP_QT_TOFOREIGNLOOP, 0); - } activateEventNotifiers(); } else { // nothing todo so break @@ -606,21 +614,12 @@ bool QEventDispatcherWin32::processEvents(QEventLoop::ProcessEventsFlags flags) waitRet = MsgWaitForMultipleObjectsEx(nCount, pHandles, INFINITE, QS_ALLINPUT, MWMO_ALERTABLE | MWMO_INPUTAVAILABLE); emit awake(); if (waitRet - WAIT_OBJECT_0 < nCount) { - if (needWM_QT_SENDPOSTEDEVENTS) { - needWM_QT_SENDPOSTEDEVENTS = false; - PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, - WMWP_QT_TOFOREIGNLOOP, 0); - } activateEventNotifiers(); retVal = true; } } } while (canWait); - if (needWM_QT_SENDPOSTEDEVENTS) - PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, - WMWP_QT_TOFOREIGNLOOP, 0); - return retVal; } @@ -1004,6 +1003,10 @@ void QEventDispatcherWin32::closingDown() d->timerDict.clear(); d->closingDown = true; + + if (d->getMessageHook) + UnhookWindowsHookEx(d->getMessageHook); + d->getMessageHook = 0; } bool QEventDispatcherWin32::event(QEvent *e) diff --git a/src/corelib/kernel/qeventdispatcher_win_p.h b/src/corelib/kernel/qeventdispatcher_win_p.h index 697c07f912..e6620178d8 100644 --- a/src/corelib/kernel/qeventdispatcher_win_p.h +++ b/src/corelib/kernel/qeventdispatcher_win_p.h @@ -113,6 +113,7 @@ protected: private: friend LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPARAM lp); + friend LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int, WPARAM, LPARAM); }; struct QSockNot { @@ -166,6 +167,7 @@ public: // internal window handle used for socketnotifiers/timers/etc HWND internalHwnd; + HHOOK getMessageHook; // for controlling when to send posted events QAtomicInt wakeUps; diff --git a/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp b/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp index 19c5c8a4a0..3d1876f00f 100644 --- a/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp +++ b/tests/auto/gui/kernel/noqteventloop/tst_noqteventloop.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include @@ -49,7 +50,7 @@ class tst_NoQtEventLoop : public QObject private slots: void consumeMouseEvents(); void consumeSocketEvents(); - + void deliverEventsInLivelock(); }; class Window : public QRasterWindow @@ -312,6 +313,34 @@ void tst_NoQtEventLoop::consumeSocketEvents() QVERIFY(server.hasPendingConnections()); } +void tst_NoQtEventLoop::deliverEventsInLivelock() +{ + int argc = 1; + char *argv[] = { const_cast("test"), 0 }; + QGuiApplication app(argc, argv); + + QTimer livelockTimer; + livelockTimer.start(0); + QTimer::singleShot(100, Qt::CoarseTimer, &livelockTimer, &QTimer::stop); + + QElapsedTimer elapsedTimer; + elapsedTimer.start(); + + // Exec own message loop + MSG msg; + forever { + if (elapsedTimer.hasExpired(3000) || !livelockTimer.isActive()) + break; + + if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + } + + QVERIFY(!livelockTimer.isActive()); +} + #include QTEST_APPLESS_MAIN(tst_NoQtEventLoop) -- cgit v1.2.3 From 949482f8e43533d3370201c0f216253c7b5872bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= Date: Tue, 26 Feb 2019 09:31:18 +0100 Subject: Add QObject allocation benchmarks The benchmark measures the performance of QObject allocation, including costs of memory allocations. Change-Id: I5d8ecfb97fe0be3375340b5ce84eb423e8a4ddaf Reviewed-by: Volker Hilsheimer --- tests/benchmarks/corelib/kernel/qobject/main.cpp | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tests/benchmarks/corelib/kernel/qobject/main.cpp b/tests/benchmarks/corelib/kernel/qobject/main.cpp index 04ca69ad3b..918227f74e 100644 --- a/tests/benchmarks/corelib/kernel/qobject/main.cpp +++ b/tests/benchmarks/corelib/kernel/qobject/main.cpp @@ -51,8 +51,55 @@ private slots: void connect_disconnect_benchmark_data(); void connect_disconnect_benchmark(); void receiver_destroyed_benchmark(); + + void stdAllocator(); }; +class QObjectUsingStandardAllocator : public QObject +{ + Q_OBJECT +public: + QObjectUsingStandardAllocator() + { + } +}; + +template +inline void allocator() +{ + // We need to allocate certain amount of objects otherwise the new implementation + // may re-use the previous allocation, hiding the somehow high cost of allocation. It + // also helps us to reduce the noise ratio, which is high for memory allocation. + // + // The check depends on memory allocation performance, which is quite non-deterministic. + // When a new memory is requested, the new operator, depending on implementation, is trying + // to re-use existing, already allocated for the process memory. If there is not enough, it + // asks OS to give more. Of course the first case is faster then the second. In the same + // time, from an application perspective the first is also more likely. + // + // As a result, depending on which use-case one wants to test, it may be recommended to run this + // test in separation from others, to "force" expensive code path in the memory allocation. + // + // The time based results are heavily affected by background noise. One really needs to + // prepare OS (no other tasks, CPU and RAM reservations) to run this test, or use + // instruction counting which seems to be less fragile. + + const int count = 256 * 1024; + + QScopedPointer objects[count]; + QBENCHMARK_ONCE { + for (int i = 0; i < count; ++i) + objects[i].reset(new T); + for (int i = 0; i < count; ++i) + objects[i].reset(); + } +} + +void QObjectBenchmark::stdAllocator() +{ + allocator(); +} + struct Functor { void operator()(){} }; -- cgit v1.2.3 From ea1c8d4e65676bf49ad0ae8e4e0d390fb7be37f6 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 26 Aug 2019 11:11:13 +0200 Subject: Remove nonsensical initialization from QMakeLocalFileName The c'tor that takes a QString detects whether the string's first and *last but one* characters are double quotes. In that case it removes the first and *last* characters, resulting in a conversion from "\"C:\\foo\"\\" to "C:\\foo\"". It's highly unlikely that this code path was ever triggered, because its erroneous result would have been noticed. Remove it. Change-Id: I653e6a4667ae3620c35e509420eb22a71bb986a9 Reviewed-by: Edward Welbourne --- qmake/generators/makefiledeps.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp index d68539814e..1b1b0426bb 100644 --- a/qmake/generators/makefiledeps.cpp +++ b/qmake/generators/makefiledeps.cpp @@ -61,13 +61,8 @@ inline bool qmake_endOfLine(const char &c) { return (c == '\r' || c == '\n'); } #endif QMakeLocalFileName::QMakeLocalFileName(const QString &name) : is_null(name.isNull()) + , real_name(name) { - if(!name.isEmpty()) { - if(name.at(0) == QLatin1Char('"') && name.at(name.length()-2) == QLatin1Char('"')) - real_name = name.mid(1, name.length()-2); - else - real_name = name; - } } const QString &QMakeLocalFileName::local() const -- cgit v1.2.3 From 048e66a11d87845eaba9e8cf23de3fb4acac924d Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Wed, 28 Aug 2019 14:37:25 +0200 Subject: Close popups on windowWillMiniaturize notification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We do this on windowDidMove/windowWillClose, but we don't on a 'will miniaturize' notification. This can leave an application with an orphan popup window, such as context menu which looks really weird. I err on a safe side though - I don't close all popups - the application's logic can be such that it has several windows and one of them gets minimized (we can do this via QWidget's interface, for example) - would be strange if all popups close. So I only close popups that have the miniaturized window as a transient parent. Task-number: QTBUG-77833 Change-Id: Ib655a27c0ce8661f9e7156e6035f7fffaff901b1 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/cocoa/qcocoaintegration.h | 2 ++ src/plugins/platforms/cocoa/qcocoaintegration.mm | 13 +++++++++++++ src/plugins/platforms/cocoa/qcocoawindow.h | 1 + src/plugins/platforms/cocoa/qcocoawindow.mm | 17 +++++++---------- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.h b/src/plugins/platforms/cocoa/qcocoaintegration.h index bfc3bfe9de..0e2656e046 100644 --- a/src/plugins/platforms/cocoa/qcocoaintegration.h +++ b/src/plugins/platforms/cocoa/qcocoaintegration.h @@ -124,6 +124,8 @@ public: void beep() const override; + void closePopups(QWindow *forWindow = nullptr); + private Q_SLOTS: void focusWindowChanged(QWindow *); diff --git a/src/plugins/platforms/cocoa/qcocoaintegration.mm b/src/plugins/platforms/cocoa/qcocoaintegration.mm index 9a2f19c2f2..67ad0b3492 100644 --- a/src/plugins/platforms/cocoa/qcocoaintegration.mm +++ b/src/plugins/platforms/cocoa/qcocoaintegration.mm @@ -487,6 +487,19 @@ void QCocoaIntegration::beep() const NSBeep(); } +void QCocoaIntegration::closePopups(QWindow *forWindow) +{ + for (auto it = m_popupWindowStack.begin(); it != m_popupWindowStack.end();) { + auto *popup = *it; + if (!forWindow || popup->window()->transientParent() == forWindow) { + it = m_popupWindowStack.erase(it); + QWindowSystemInterface::handleCloseEvent(popup->window()); + } else { + ++it; + } + } +} + void QCocoaIntegration::focusWindowChanged(QWindow *focusWindow) { // Don't revert icon just because we lost focus diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h index fef72bc496..1e46cd2dde 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.h +++ b/src/plugins/platforms/cocoa/qcocoawindow.h @@ -151,6 +151,7 @@ public: Q_NOTIFICATION_HANDLER(NSWindowDidEndLiveResizeNotification) void windowDidEndLiveResize(); Q_NOTIFICATION_HANDLER(NSWindowDidBecomeKeyNotification) void windowDidBecomeKey(); Q_NOTIFICATION_HANDLER(NSWindowDidResignKeyNotification) void windowDidResignKey(); + Q_NOTIFICATION_HANDLER(NSWindowWillMiniaturizeNotification) void windowWillMiniaturize(); Q_NOTIFICATION_HANDLER(NSWindowDidMiniaturizeNotification) void windowDidMiniaturize(); Q_NOTIFICATION_HANDLER(NSWindowDidDeminiaturizeNotification) void windowDidDeminiaturize(); Q_NOTIFICATION_HANDLER(NSWindowWillEnterFullScreenNotification) void windowWillEnterFullScreen(); diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 0c7ec7f736..7621508bdd 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -71,14 +71,6 @@ enum { defaultWindowHeight = 160 }; -static void qt_closePopups() -{ - while (QCocoaWindow *popup = QCocoaIntegration::instance()->popPopupWindow()) { - QWindowSystemInterface::handleCloseEvent(popup->window()); - QWindowSystemInterface::flushWindowSystemEvents(); - } -} - Q_LOGGING_CATEGORY(lcCocoaNotifications, "qt.qpa.cocoa.notifications"); static void qRegisterNotificationCallbacks() @@ -800,6 +792,11 @@ void QCocoaWindow::windowDidExitFullScreen() } } +void QCocoaWindow::windowWillMiniaturize() +{ + QCocoaIntegration::instance()->closePopups(window()); +} + void QCocoaWindow::windowDidMiniaturize() { if (!isContentView()) @@ -1138,7 +1135,7 @@ void QCocoaWindow::viewDidChangeGlobalFrame() void QCocoaWindow::windowWillMove() { // Close any open popups on window move - qt_closePopups(); + QCocoaIntegration::instance()->closePopups(); } void QCocoaWindow::windowDidMove() @@ -1267,7 +1264,7 @@ void QCocoaWindow::windowWillClose() { // Close any open popups on window closing. if (window() && !windowIsPopupType(window()->type())) - qt_closePopups(); + QCocoaIntegration::instance()->closePopups(); } // ----------------------- NSWindowDelegate callbacks ----------------------- -- cgit v1.2.3 From 108382e236dcdc09a822b89db35cc8bc4509273f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Thu, 29 Aug 2019 12:50:48 +0200 Subject: Mark QNetworkAccessManager::autoDeleteReplies as const From the API review. Amends cd816d4b6ac4358a92dbda906288ba6d969fc1cd. Change-Id: I3d3e2ef331501fa498545c5eec0e321544165b0d Reviewed-by: Timur Pocheptsov Reviewed-by: Edward Welbourne --- src/network/access/qnetworkaccessmanager.cpp | 2 +- src/network/access/qnetworkaccessmanager.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index fdc3cd3b3a..76b95b5823 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1689,7 +1689,7 @@ void QNetworkAccessManager::clearConnectionCache() \sa setAutoDeleteReplies, QNetworkRequest::AutoDeleteReplyOnFinishAttribute */ -bool QNetworkAccessManager::autoDeleteReplies() +bool QNetworkAccessManager::autoDeleteReplies() const { return d_func()->autoDeleteReplies; } diff --git a/src/network/access/qnetworkaccessmanager.h b/src/network/access/qnetworkaccessmanager.h index 601d0420ff..98498d07d2 100644 --- a/src/network/access/qnetworkaccessmanager.h +++ b/src/network/access/qnetworkaccessmanager.h @@ -167,7 +167,7 @@ public: void setRedirectPolicy(QNetworkRequest::RedirectPolicy policy); QNetworkRequest::RedirectPolicy redirectPolicy() const; - bool autoDeleteReplies(); + bool autoDeleteReplies() const; void setAutoDeleteReplies(bool autoDelete); Q_SIGNALS: -- cgit v1.2.3 From 20f69beae48d2efb1fdb5754218a8cdc990ba13e Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 8 Aug 2019 19:40:32 +0200 Subject: Optimize QDate by shortcutting some gregorian calendar methods Add some static methods to QGregorianCalendar, some of which serve to implement its methods, that QDate can use to bypass vtables and exploit fixed truths of the Gregorian calendar in its default handling. Change-Id: Iec191cdf4d52945dbd5679e609180cb4fe59b5fd Reviewed-by: Volker Hilsheimer --- src/corelib/time/qdatetime.cpp | 107 +++++++++++++++++++++++++++----- src/corelib/time/qgregoriancalendar.cpp | 39 +++++++++++- src/corelib/time/qgregoriancalendar_p.h | 8 +++ 3 files changed, 139 insertions(+), 15 deletions(-) diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index 020eac6dec..a9fc47e053 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -74,6 +74,7 @@ #endif #include "qcalendar.h" +#include "qgregoriancalendar_p.h" QT_BEGIN_NAMESPACE @@ -105,6 +106,17 @@ static inline QDate fixedDate(QCalendar::YearMonthDay &&parts, QCalendar cal) return cal.dateFromParts(parts); } +static inline QDate fixedDate(QCalendar::YearMonthDay &&parts) +{ + if (parts.year) { + parts.day = qMin(parts.day, QGregorianCalendar::monthLength(parts.month, parts.year)); + qint64 jd; + if (QGregorianCalendar::julianFromParts(parts.year, parts.month, parts.day, &jd)) + return QDate::fromJulianDay(jd); + } + return QDate(); +} + /***************************************************************************** Date/Time formatting helper functions *****************************************************************************/ @@ -340,7 +352,8 @@ static int fromOffsetString(const QStringRef &offsetString, bool *valid) noexcep QDate::QDate(int y, int m, int d) { - *this = QCalendar().dateFromParts(y, m, d); + if (!QGregorianCalendar::julianFromParts(y, m, d, &jd)) + jd = nullJd(); } QDate::QDate(int y, int m, int d, QCalendar cal) @@ -405,7 +418,12 @@ int QDate::year(QCalendar cal) const int QDate::year() const { - return year(QCalendar()); + if (isValid()) { + const auto parts = QGregorianCalendar::partsFromJulian(jd); + if (parts.isValid()) + return parts.year; + } + return 0; } /*! @@ -452,7 +470,12 @@ int QDate::month(QCalendar cal) const int QDate::month() const { - return month(QCalendar()); + if (isValid()) { + const auto parts = QGregorianCalendar::partsFromJulian(jd); + if (parts.isValid()) + return parts.month; + } + return 0; } /*! @@ -480,7 +503,12 @@ int QDate::day(QCalendar cal) const int QDate::day() const { - return day(QCalendar()); + if (isValid()) { + const auto parts = QGregorianCalendar::partsFromJulian(jd); + if (parts.isValid()) + return parts.day; + } + return 0; } /*! @@ -507,7 +535,7 @@ int QDate::dayOfWeek(QCalendar cal) const int QDate::dayOfWeek() const { - return dayOfWeek(QCalendar()); + return isValid() ? QGregorianCalendar::weekDayOfJulian(jd) : 0; } /*! @@ -535,7 +563,12 @@ int QDate::dayOfYear(QCalendar cal) const int QDate::dayOfYear() const { - return dayOfYear(QCalendar()); + if (isValid()) { + qint64 first; + if (QGregorianCalendar::julianFromParts(year(), 1, 1, &first)) + return jd - first + 1; + } + return 0; } /*! @@ -563,7 +596,12 @@ int QDate::daysInMonth(QCalendar cal) const int QDate::daysInMonth() const { - return daysInMonth(QCalendar()); + if (isValid()) { + const auto parts = QGregorianCalendar::partsFromJulian(jd); + if (parts.isValid()) + return QGregorianCalendar::monthLength(parts.month, parts.year); + } + return 0; } /*! @@ -589,7 +627,7 @@ int QDate::daysInYear(QCalendar cal) const int QDate::daysInYear() const { - return daysInYear(QCalendar()); + return isValid() ? QGregorianCalendar::leapTest(year()) ? 366 : 365 : 0; } /*! @@ -1303,7 +1341,11 @@ QString QDate::toString(const QString &format, QCalendar cal) const */ bool QDate::setDate(int year, int month, int day) { - return setDate(year, month, day, QCalendar()); + if (QGregorianCalendar::julianFromParts(year, month, day, &jd)) + return true; + + jd = nullJd(); + return false; } /*! @@ -1339,7 +1381,7 @@ void QDate::getDate(int *year, int *month, int *day) const { QCalendar::YearMonthDay parts; // invalid by default if (isValid()) - parts = QCalendar().partsFromDate(*this); + parts = QGregorianCalendar::partsFromJulian(jd); const bool ok = parts.isValid(); if (year) @@ -1428,7 +1470,30 @@ QDate QDate::addMonths(int nmonths, QCalendar cal) const QDate QDate::addMonths(int nmonths) const { - return addMonths(nmonths, QCalendar()); + if (isNull()) + return QDate(); + + if (nmonths == 0) + return *this; + + auto parts = QGregorianCalendar::partsFromJulian(jd); + + if (!parts.isValid()) + return QDate(); + Q_ASSERT(parts.year); + + parts.month += nmonths; + while (parts.month <= 0) { + if (--parts.year) // skip over year 0 + parts.month += 12; + } + while (parts.month > 12) { + parts.month -= 12; + if (!++parts.year) // skip over year 0 + ++parts.year; + } + + return fixedDate(std::move(parts)); } /*! @@ -1470,7 +1535,21 @@ QDate QDate::addYears(int nyears, QCalendar cal) const QDate QDate::addYears(int nyears) const { - return addYears(nyears, QCalendar()); + if (isNull()) + return QDate(); + + auto parts = QGregorianCalendar::partsFromJulian(jd); + if (!parts.isValid()) + return QDate(); + + int old_y = parts.year; + parts.year += nyears; + + // If we just crossed (or hit) a missing year zero, adjust year by +/- 1: + if ((old_y > 0) != (parts.year > 0) || !parts.year) + parts.year += nyears > 0 ? +1 : -1; + + return fixedDate(std::move(parts)); } /*! @@ -1719,7 +1798,7 @@ QDate QDate::fromString(const QString &string, const QString &format) bool QDate::isValid(int year, int month, int day) { - return QCalendar().isDateValid(year, month, day); + return QGregorianCalendar::validParts(year, month, day); } /*! @@ -1733,7 +1812,7 @@ bool QDate::isValid(int year, int month, int day) bool QDate::isLeapYear(int y) { - return QCalendar().isLeapYear(y); + return QGregorianCalendar::leapTest(y); } /*! \fn static QDate QDate::fromJulianDay(qint64 jd) diff --git a/src/corelib/time/qgregoriancalendar.cpp b/src/corelib/time/qgregoriancalendar.cpp index d3db572aa7..447185d124 100644 --- a/src/corelib/time/qgregoriancalendar.cpp +++ b/src/corelib/time/qgregoriancalendar.cpp @@ -77,6 +77,11 @@ QCalendar::System QGregorianCalendar::calendarSystem() const } bool QGregorianCalendar::isLeapYear(int year) const +{ + return leapTest(year); +} + +bool QGregorianCalendar::leapTest(int year) { if (year == QCalendar::Unspecified) return false; @@ -88,10 +93,37 @@ bool QGregorianCalendar::isLeapYear(int year) const return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0); } +// Duplicating code from QRomanCalendar, but inlining isLeapYear() as leapTest(): +int QGregorianCalendar::monthLength(int month, int year) +{ + if (month < 1 || month > 12) + return 0; + + if (month == 2) + return leapTest(year) ? 29 : 28; + + return 30 | ((month & 1) ^ (month >> 3)); +} + +bool QGregorianCalendar::validParts(int year, int month, int day) +{ + return year && 0 < day && day <= monthLength(month, year); +} + +int QGregorianCalendar::weekDayOfJulian(qint64 jd) +{ + return qMod(jd, 7) + 1; +} + bool QGregorianCalendar::dateToJulianDay(int year, int month, int day, qint64 *jd) const +{ + return julianFromParts(year, month, day, jd); +} + +bool QGregorianCalendar::julianFromParts(int year, int month, int day, qint64 *jd) { Q_ASSERT(jd); - if (!isDateValid(year, month, day)) + if (!validParts(year, month, day)) return false; if (year < 0) @@ -111,6 +143,11 @@ bool QGregorianCalendar::dateToJulianDay(int year, int month, int day, qint64 *j } QCalendar::YearMonthDay QGregorianCalendar::julianDayToDate(qint64 jd) const +{ + return partsFromJulian(jd); +} + +QCalendar::YearMonthDay QGregorianCalendar::partsFromJulian(qint64 jd) { /* * Math from The Calendar FAQ at http://www.tondering.dk/claus/cal/julperiod.php diff --git a/src/corelib/time/qgregoriancalendar_p.h b/src/corelib/time/qgregoriancalendar_p.h index 4e6c42ef76..191f9c127b 100644 --- a/src/corelib/time/qgregoriancalendar_p.h +++ b/src/corelib/time/qgregoriancalendar_p.h @@ -75,6 +75,14 @@ public: QLocale::FormatType format) const override; QString standaloneMonthName(const QLocale &locale, int month, int year, QLocale::FormatType format) const override; + + // Static optimized versions for the benefit of QDate: + static int weekDayOfJulian(qint64 jd); + static bool leapTest(int year); + static int monthLength(int month, int year); + static bool validParts(int year, int month, int day); + static QCalendar::YearMonthDay partsFromJulian(qint64 jd); + static bool julianFromParts(int year, int month, int day, qint64 *jd); }; QT_END_NAMESPACE -- cgit v1.2.3 From 2faa6cafa91b4478d129ec570d1cd8e6ed2f147d Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 8 Aug 2019 15:27:11 +0200 Subject: Pass QDate, QTime as value classes, rather than by const reference This can, of course, only be done in private APIs - but comment on public APIs to do the same at Qt 6. Change-Id: I3c79951572be3c37b0b0c5b1b05bced051a40964 Reviewed-by: Volker Hilsheimer Reviewed-by: Paul Wicking --- src/corelib/text/qlocale_win.cpp | 8 +- src/corelib/time/qdatetime.h | 16 ++-- src/widgets/widgets/qcalendarwidget.cpp | 106 ++++++++++----------- src/widgets/widgets/qdatetimeedit.cpp | 6 +- src/widgets/widgets/qdatetimeedit_p.h | 12 +-- .../widgets/qdatetimeedit/tst_qdatetimeedit.cpp | 6 +- 6 files changed, 76 insertions(+), 78 deletions(-) diff --git a/src/corelib/text/qlocale_win.cpp b/src/corelib/text/qlocale_win.cpp index dc904ad02d..79ea67f966 100644 --- a/src/corelib/text/qlocale_win.cpp +++ b/src/corelib/text/qlocale_win.cpp @@ -116,8 +116,8 @@ struct QSystemLocalePrivate QVariant dateTimeFormat(QLocale::FormatType); QVariant dayName(int, QLocale::FormatType); QVariant monthName(int, QLocale::FormatType); - QVariant toString(const QDate &, QLocale::FormatType); - QVariant toString(const QTime &, QLocale::FormatType); + QVariant toString(QDate, QLocale::FormatType); + QVariant toString(QTime, QLocale::FormatType); QVariant toString(const QDateTime &, QLocale::FormatType); QVariant measurementSystem(); QVariant collation(); @@ -394,7 +394,7 @@ QVariant QSystemLocalePrivate::monthName(int month, QLocale::FormatType type) return getLocaleInfo(lctype); } -QVariant QSystemLocalePrivate::toString(const QDate &date, QLocale::FormatType type) +QVariant QSystemLocalePrivate::toString(QDate date, QLocale::FormatType type) { SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); @@ -413,7 +413,7 @@ QVariant QSystemLocalePrivate::toString(const QDate &date, QLocale::FormatType t return QString(); } -QVariant QSystemLocalePrivate::toString(const QTime &time, QLocale::FormatType type) +QVariant QSystemLocalePrivate::toString(QTime time, QLocale::FormatType type) { SYSTEMTIME st; memset(&st, 0, sizeof(SYSTEMTIME)); diff --git a/src/corelib/time/qdatetime.h b/src/corelib/time/qdatetime.h index e1909b85e3..3eae8ebf64 100644 --- a/src/corelib/time/qdatetime.h +++ b/src/corelib/time/qdatetime.h @@ -58,7 +58,7 @@ class QCalendar; class QTimeZone; class QDateTime; -class Q_CORE_EXPORT QDate +class Q_CORE_EXPORT QDate // ### Qt 6: change to be used by value, not const & { public: enum MonthNameType { // ### Qt 6: remove, along with methods using it @@ -138,7 +138,7 @@ public: Q_REQUIRED_RESULT QDate addYears(int years) const; Q_REQUIRED_RESULT QDate addMonths(int months, QCalendar cal) const; Q_REQUIRED_RESULT QDate addYears(int years, QCalendar cal) const; - qint64 daysTo(const QDate &) const; + qint64 daysTo(const QDate &) const; // ### Qt 6: QDate Q_DECL_CONSTEXPR bool operator==(const QDate &other) const { return jd == other.jd; } Q_DECL_CONSTEXPR bool operator!=(const QDate &other) const { return jd != other.jd; } @@ -177,7 +177,7 @@ private: }; Q_DECLARE_TYPEINFO(QDate, Q_MOVABLE_TYPE); -class Q_CORE_EXPORT QTime +class Q_CORE_EXPORT QTime // ### Qt 6: change to be used by value, not const & { explicit Q_DECL_CONSTEXPR QTime(int ms) : mds(ms) {} @@ -203,9 +203,9 @@ public: bool setHMS(int h, int m, int s, int ms = 0); Q_REQUIRED_RESULT QTime addSecs(int secs) const; - int secsTo(const QTime &) const; + int secsTo(const QTime &) const; // ### Qt 6: plain QTime Q_REQUIRED_RESULT QTime addMSecs(int ms) const; - int msecsTo(const QTime &) const; + int msecsTo(const QTime &) const; // ### Qt 6: plain QTime Q_DECL_CONSTEXPR bool operator==(const QTime &other) const { return mds == other.mds; } Q_DECL_CONSTEXPR bool operator!=(const QTime &other) const { return mds != other.mds; } @@ -236,7 +236,7 @@ private: friend class QDateTime; friend class QDateTimePrivate; -#ifndef QT_NO_DATASTREAM +#ifndef QT_NO_DATASTREAM // ### Qt 6: plain QTime friend Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QTime &); friend Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QTime &); #endif @@ -287,7 +287,7 @@ class Q_CORE_EXPORT QDateTime public: QDateTime() noexcept(Data::CanBeSmall); - explicit QDateTime(const QDate &); + explicit QDateTime(const QDate &); // ### Qt 6: plain QDate, QTime QDateTime(const QDate &, const QTime &, Qt::TimeSpec spec = Qt::LocalTime); // ### Qt 6: Merge with above with default offsetSeconds = 0 QDateTime(const QDate &date, const QTime &time, Qt::TimeSpec spec, int offsetSeconds); @@ -319,7 +319,7 @@ public: qint64 toMSecsSinceEpoch() const; qint64 toSecsSinceEpoch() const; - void setDate(const QDate &date); + void setDate(const QDate &date); // ### Qt 6: plain QDate void setTime(const QTime &time); void setTimeSpec(Qt::TimeSpec spec); void setOffsetFromUtc(int offsetSeconds); diff --git a/src/widgets/widgets/qcalendarwidget.cpp b/src/widgets/widgets/qcalendarwidget.cpp index 296a15f94b..ec19b64d4a 100644 --- a/src/widgets/widgets/qcalendarwidget.cpp +++ b/src/widgets/widgets/qcalendarwidget.cpp @@ -91,10 +91,10 @@ public: QCalendarDateSectionValidator() {} virtual ~QCalendarDateSectionValidator() {} virtual Section handleKey(int key) = 0; - virtual QDate applyToDate(const QDate &date, QCalendar cal = QCalendar()) const = 0; - virtual void setDate(const QDate &date, QCalendar cal = QCalendar()) = 0; + virtual QDate applyToDate(QDate date, QCalendar cal = QCalendar()) const = 0; + virtual void setDate(QDate date, QCalendar cal = QCalendar()) = 0; virtual QString text() const = 0; - virtual QString text(const QDate &date, QCalendar cal, int repeat) const = 0; + virtual QString text(QDate date, QCalendar cal, int repeat) const = 0; QLocale m_locale; @@ -117,10 +117,10 @@ class QCalendarDayValidator : public QCalendarDateSectionValidator public: QCalendarDayValidator(); virtual Section handleKey(int key) override; - virtual QDate applyToDate(const QDate &date, QCalendar cal) const override; - virtual void setDate(const QDate &date, QCalendar cal) override; + virtual QDate applyToDate(QDate date, QCalendar cal) const override; + virtual void setDate(QDate date, QCalendar cal) override; virtual QString text() const override; - virtual QString text(const QDate &date, QCalendar cal, int repeat) const override; + virtual QString text(QDate date, QCalendar cal, int repeat) const override; private: int m_pos; int m_day; @@ -181,7 +181,7 @@ QCalendarDateSectionValidator::Section QCalendarDayValidator::handleKey(int key) return QCalendarDateSectionValidator::ThisSection; } -QDate QCalendarDayValidator::applyToDate(const QDate &date, QCalendar cal) const +QDate QCalendarDayValidator::applyToDate(QDate date, QCalendar cal) const { auto parts = cal.partsFromDate(date); if (!parts.isValid()) @@ -190,7 +190,7 @@ QDate QCalendarDayValidator::applyToDate(const QDate &date, QCalendar cal) const return cal.dateFromParts(parts); } -void QCalendarDayValidator::setDate(const QDate &date, QCalendar cal) +void QCalendarDayValidator::setDate(QDate date, QCalendar cal) { m_day = m_oldDay = date.day(cal); m_pos = 0; @@ -201,7 +201,7 @@ QString QCalendarDayValidator::text() const return highlightString(formatNumber(m_day, 2), m_pos); } -QString QCalendarDayValidator::text(const QDate &date, QCalendar cal, int repeat) const +QString QCalendarDayValidator::text(QDate date, QCalendar cal, int repeat) const { if (repeat <= 1) { return QString::number(date.day(cal)); @@ -222,10 +222,10 @@ class QCalendarMonthValidator : public QCalendarDateSectionValidator public: QCalendarMonthValidator(); virtual Section handleKey(int key) override; - virtual QDate applyToDate(const QDate &date, QCalendar cal) const override; - virtual void setDate(const QDate &date, QCalendar cal) override; + virtual QDate applyToDate(QDate date, QCalendar cal) const override; + virtual void setDate(QDate date, QCalendar cal) override; virtual QString text() const override; - virtual QString text(const QDate &date, QCalendar cal, int repeat) const override; + virtual QString text(QDate date, QCalendar cal, int repeat) const override; private: int m_pos; int m_month; @@ -286,7 +286,7 @@ QCalendarDateSectionValidator::Section QCalendarMonthValidator::handleKey(int ke return QCalendarDateSectionValidator::ThisSection; } -QDate QCalendarMonthValidator::applyToDate(const QDate &date, QCalendar cal) const +QDate QCalendarMonthValidator::applyToDate(QDate date, QCalendar cal) const { auto parts = cal.partsFromDate(date); if (!parts.isValid()) @@ -296,7 +296,7 @@ QDate QCalendarMonthValidator::applyToDate(const QDate &date, QCalendar cal) con return cal.dateFromParts(parts); } -void QCalendarMonthValidator::setDate(const QDate &date, QCalendar cal) +void QCalendarMonthValidator::setDate(QDate date, QCalendar cal) { m_month = m_oldMonth = date.month(cal); m_pos = 0; @@ -307,7 +307,7 @@ QString QCalendarMonthValidator::text() const return highlightString(formatNumber(m_month, 2), m_pos); } -QString QCalendarMonthValidator::text(const QDate &date, QCalendar cal, int repeat) const +QString QCalendarMonthValidator::text(QDate date, QCalendar cal, int repeat) const { if (repeat <= 1) { return QString::number(date.month(cal)); @@ -328,10 +328,10 @@ class QCalendarYearValidator : public QCalendarDateSectionValidator public: QCalendarYearValidator(); virtual Section handleKey(int key) override; - virtual QDate applyToDate(const QDate &date, QCalendar cal) const override; - virtual void setDate(const QDate &date, QCalendar cal) override; + virtual QDate applyToDate(QDate date, QCalendar cal) const override; + virtual void setDate(QDate date, QCalendar cal) override; virtual QString text() const override; - virtual QString text(const QDate &date, QCalendar cal, int repeat) const override; + virtual QString text(QDate date, QCalendar cal, int repeat) const override; private: int pow10(int n); int m_pos; @@ -392,7 +392,7 @@ QCalendarDateSectionValidator::Section QCalendarYearValidator::handleKey(int key return QCalendarDateSectionValidator::ThisSection; } -QDate QCalendarYearValidator::applyToDate(const QDate &date, QCalendar cal) const +QDate QCalendarYearValidator::applyToDate(QDate date, QCalendar cal) const { auto parts = cal.partsFromDate(date); if (!parts.isValid()) @@ -403,7 +403,7 @@ QDate QCalendarYearValidator::applyToDate(const QDate &date, QCalendar cal) cons return cal.dateFromParts(parts); } -void QCalendarYearValidator::setDate(const QDate &date, QCalendar cal) +void QCalendarYearValidator::setDate(QDate date, QCalendar cal) { m_year = m_oldYear = date.year(cal); m_pos = 0; @@ -414,7 +414,7 @@ QString QCalendarYearValidator::text() const return highlightString(formatNumber(m_year, 4), m_pos); } -QString QCalendarYearValidator::text(const QDate &date, QCalendar cal, int repeat) const +QString QCalendarYearValidator::text(QDate date, QCalendar cal, int repeat) const { if (repeat < 4) return formatNumber(date.year(cal) % 100, 2); @@ -444,7 +444,7 @@ public: QString currentText(QCalendar cal) const; QDate currentDate() const { return m_currentDate; } void setFormat(const QString &format); - void setInitialDate(const QDate &date, QCalendar cal); + void setInitialDate(QDate date, QCalendar cal); void setLocale(const QLocale &locale); @@ -501,7 +501,7 @@ int QCalendarDateValidator::countRepeat(const QString &str, int index) const return count; } -void QCalendarDateValidator::setInitialDate(const QDate &date, QCalendar cal) +void QCalendarDateValidator::setInitialDate(QDate date, QCalendar cal) { m_yearValidator.setDate(date, cal); m_monthValidator.setDate(date, cal); @@ -648,13 +648,13 @@ public: int dateEditAcceptDelay() const; void setDateEditAcceptDelay(int delay); - void setDate(const QDate &date); + void setDate(QDate date); bool eventFilter(QObject *o, QEvent *e) override; void timerEvent(QTimerEvent *e) override; signals: - void dateChanged(const QDate &date); + void dateChanged(QDate date); void editingFinished(); private: @@ -684,7 +684,7 @@ void QCalendarTextNavigator::setWidget(QWidget *widget) m_widget = widget; } -void QCalendarTextNavigator::setDate(const QDate &date) +void QCalendarTextNavigator::setDate(QDate date) { m_date = date; } @@ -891,15 +891,15 @@ public: } void showMonth(int year, int month); - void setDate(const QDate &d); + void setDate(QDate d); void setCalendar(QCalendar c); QCalendar calendar() const; - void setMinimumDate(const QDate &date); - void setMaximumDate(const QDate &date); + void setMinimumDate(QDate date); + void setMaximumDate(QDate date); - void setRange(const QDate &min, const QDate &max); + void setRange(QDate min, QDate max); void setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat format); @@ -913,7 +913,7 @@ public: Qt::DayOfWeek dayOfWeekForColumn(int section) const; int columnForDayOfWeek(Qt::DayOfWeek day) const; QDate dateForCell(int row, int column) const; - void cellForDate(const QDate &date, int *row, int *column) const; + void cellForDate(QDate date, int *row, int *column) const; QString dayName(Qt::DayOfWeek day) const; void setView(QCalendarView *view) @@ -921,7 +921,7 @@ public: void internalUpdate(); QDate referenceDate() const; - int columnForFirstOfMonth(const QDate &date) const; + int columnForFirstOfMonth(QDate date) const; int m_firstColumn; int m_firstRow; @@ -951,9 +951,9 @@ public: virtual void keyboardSearch(const QString & search) override { Q_UNUSED(search) } signals: - void showDate(const QDate &date); - void changeDate(const QDate &date, bool changeMonth); - void clicked(const QDate &date); + void showDate(QDate date); + void changeDate(QDate date, bool changeMonth); + void clicked(QDate date); void editingFinished(); protected: QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override; @@ -1039,7 +1039,7 @@ QDate QCalendarModel::referenceDate() const return QDate(); } -int QCalendarModel::columnForFirstOfMonth(const QDate &date) const +int QCalendarModel::columnForFirstOfMonth(QDate date) const { return (columnForDayOfWeek(static_cast(m_calendar.dayOfWeek(date))) - (date.day(m_calendar) % 7) + 8) % 7; @@ -1063,7 +1063,7 @@ QDate QCalendarModel::dateForCell(int row, int column) const return refDate.addDays(requestedDay); } -void QCalendarModel::cellForDate(const QDate &date, int *row, int *column) const +void QCalendarModel::cellForDate(QDate date, int *row, int *column) const { if (!row && !column) return; @@ -1206,7 +1206,7 @@ Qt::ItemFlags QCalendarModel::flags(const QModelIndex &index) const return QAbstractTableModel::flags(index); } -void QCalendarModel::setDate(const QDate &d) +void QCalendarModel::setDate(QDate d) { m_date = d; if (m_date < m_minimumDate) @@ -1240,7 +1240,7 @@ void QCalendarModel::showMonth(int year, int month) internalUpdate(); } -void QCalendarModel::setMinimumDate(const QDate &d) +void QCalendarModel::setMinimumDate(QDate d) { if (!d.isValid() || d == m_minimumDate) return; @@ -1253,7 +1253,7 @@ void QCalendarModel::setMinimumDate(const QDate &d) internalUpdate(); } -void QCalendarModel::setMaximumDate(const QDate &d) +void QCalendarModel::setMaximumDate(QDate d) { if (!d.isValid() || d == m_maximumDate) return; @@ -1266,7 +1266,7 @@ void QCalendarModel::setMaximumDate(const QDate &d) internalUpdate(); } -void QCalendarModel::setRange(const QDate &min, const QDate &max) +void QCalendarModel::setRange(QDate min, QDate max) { m_minimumDate = min; m_maximumDate = max; @@ -1597,7 +1597,7 @@ public: { } virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override; - void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const; + void paintCell(QPainter *painter, const QRect &rect, QDate date) const; private: QCalendarWidgetPrivate *calendarWidgetPrivate; @@ -1658,11 +1658,11 @@ public: void showMonth(int year, int month); void update(); - void paintCell(QPainter *painter, const QRect &rect, const QDate &date) const; + void paintCell(QPainter *painter, const QRect &rect, QDate date) const; - void _q_slotShowDate(const QDate &date); - void _q_slotChangeDate(const QDate &date); - void _q_slotChangeDate(const QDate &date, bool changeMonth); + void _q_slotShowDate(QDate date); + void _q_slotChangeDate(QDate date); + void _q_slotChangeDate(QDate date, bool changeMonth); void _q_editingFinished(); void _q_monthChanged(QAction*); void _q_prevMonthClicked(); @@ -1675,7 +1675,7 @@ public: void updateMonthMenu(); void updateMonthMenuNames(); void updateNavigationBar(); - void updateCurrentPage(const QDate &newDate); + void updateCurrentPage(QDate newDate); inline QDate getCurrentDate(); void setNavigatorEnabled(bool enable); @@ -1714,7 +1714,7 @@ void QCalendarDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt } } -void QCalendarDelegate::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const +void QCalendarDelegate::paintCell(QPainter *painter, const QRect &rect, QDate date) const { storedOption.rect = rect; int row = -1; @@ -1881,7 +1881,7 @@ void QCalendarWidgetPrivate::updateMonthMenuNames() } } -void QCalendarWidgetPrivate::updateCurrentPage(const QDate &date) +void QCalendarWidgetPrivate::updateCurrentPage(QDate date) { Q_Q(QCalendarWidget); QCalendar cal = m_model->calendar(); @@ -1999,23 +1999,23 @@ void QCalendarWidgetPrivate::update() } } -void QCalendarWidgetPrivate::paintCell(QPainter *painter, const QRect &rect, const QDate &date) const +void QCalendarWidgetPrivate::paintCell(QPainter *painter, const QRect &rect, QDate date) const { Q_Q(const QCalendarWidget); q->paintCell(painter, rect, date); } -void QCalendarWidgetPrivate::_q_slotShowDate(const QDate &date) +void QCalendarWidgetPrivate::_q_slotShowDate(QDate date) { updateCurrentPage(date); } -void QCalendarWidgetPrivate::_q_slotChangeDate(const QDate &date) +void QCalendarWidgetPrivate::_q_slotChangeDate(QDate date) { _q_slotChangeDate(date, true); } -void QCalendarWidgetPrivate::_q_slotChangeDate(const QDate &date, bool changeMonth) +void QCalendarWidgetPrivate::_q_slotChangeDate(QDate date, bool changeMonth) { QDate oldDate = m_model->m_date; m_model->setDate(date); diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp index 31607d77e7..e26993fb23 100644 --- a/src/widgets/widgets/qdatetimeedit.cpp +++ b/src/widgets/widgets/qdatetimeedit.cpp @@ -2636,13 +2636,13 @@ void QCalendarPopup::setCalendarWidget(QCalendarWidget *cw) } -void QCalendarPopup::setDate(const QDate &date) +void QCalendarPopup::setDate(QDate date) { oldDate = date; verifyCalendarInstance()->setSelectedDate(date); } -void QCalendarPopup::setDateRange(const QDate &min, const QDate &max) +void QCalendarPopup::setDateRange(QDate min, QDate max) { QCalendarWidget *cw = verifyCalendarInstance(); cw->setMinimumDate(min); @@ -2686,7 +2686,7 @@ void QCalendarPopup::dateSelectionChanged() dateChanged = true; emit newDateSelected(verifyCalendarInstance()->selectedDate()); } -void QCalendarPopup::dateSelected(const QDate &date) +void QCalendarPopup::dateSelected(QDate date) { dateChanged = true; emit activated(date); diff --git a/src/widgets/widgets/qdatetimeedit_p.h b/src/widgets/widgets/qdatetimeedit_p.h index 453ac36d15..dcf8863c8b 100644 --- a/src/widgets/widgets/qdatetimeedit_p.h +++ b/src/widgets/widgets/qdatetimeedit_p.h @@ -148,19 +148,19 @@ public: explicit QCalendarPopup(QWidget *parent = nullptr, QCalendarWidget *cw = nullptr, QCalendar ca = QCalendar()); QDate selectedDate() { return verifyCalendarInstance()->selectedDate(); } - void setDate(const QDate &date); - void setDateRange(const QDate &min, const QDate &max); + void setDate(QDate date); + void setDateRange(QDate min, QDate max); void setFirstDayOfWeek(Qt::DayOfWeek dow) { verifyCalendarInstance()->setFirstDayOfWeek(dow); } QCalendarWidget *calendarWidget() const { return const_cast(this)->verifyCalendarInstance(); } void setCalendarWidget(QCalendarWidget *cw); Q_SIGNALS: - void activated(const QDate &date); - void newDateSelected(const QDate &newDate); - void hidingCalendar(const QDate &oldDate); + void activated(QDate date); + void newDateSelected(QDate newDate); + void hidingCalendar(QDate oldDate); void resetButton(); private Q_SLOTS: - void dateSelected(const QDate &date); + void dateSelected(QDate date); void dateSelectionChanged(); protected: diff --git a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp index 810f081b73..26b4b7d020 100644 --- a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp +++ b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp @@ -348,8 +348,7 @@ static QLatin1String sectionToName(const QDateTimeEdit::Section section) } } -static QDate stepDate(const QDate& startDate, const QDateTimeEdit::Section section, - const int steps) +static QDate stepDate(QDate startDate, const QDateTimeEdit::Section section, const int steps) { switch (section) { case QDateTimeEdit::DaySection: @@ -364,8 +363,7 @@ static QDate stepDate(const QDate& startDate, const QDateTimeEdit::Section secti } } -static QTime stepTime(const QTime& startTime, const QDateTimeEdit::Section section, - const int steps) +static QTime stepTime(QTime startTime, const QDateTimeEdit::Section section, const int steps) { switch (section) { case QDateTimeEdit::SecondSection: -- cgit v1.2.3 From 06f69700af0bb312f08f9455f127abf452896d48 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 29 Aug 2019 13:41:17 +0200 Subject: Fix some bogus date calculations in QDateTime's benchmark Multiplying a Julian Day number by the number of milliseconds per day does not get you a time since the start of 1970; it gets you a time since the start of the Julian Day number system, which was several millennia earlier. Change-Id: Ic90a6c3de445baf9cfd30f28dd847f146e6a7adf Reviewed-by: David Faure --- tests/benchmarks/corelib/time/qdatetime/main.cpp | 38 ++++++++++++++++-------- 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/tests/benchmarks/corelib/time/qdatetime/main.cpp b/tests/benchmarks/corelib/time/qdatetime/main.cpp index b693400376..728c4acb91 100644 --- a/tests/benchmarks/corelib/time/qdatetime/main.cpp +++ b/tests/benchmarks/corelib/time/qdatetime/main.cpp @@ -41,6 +41,7 @@ class tst_QDateTime : public QObject MSECS_PER_DAY = 86400000, JULIAN_DAY_1950 = 2433283, JULIAN_DAY_1960 = 2436935, + JULIAN_DAY_1970 = 2440588, // Epoch JULIAN_DAY_2010 = 2455198, JULIAN_DAY_2011 = 2455563, JULIAN_DAY_2020 = 2458850, @@ -299,7 +300,7 @@ void tst_QDateTime::setOffsetFromUtc() void tst_QDateTime::setMSecsSinceEpoch() { - qint64 msecs = qint64(JULIAN_DAY_2010 + 180) * MSECS_PER_DAY; + qint64 msecs = qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970 + 180) * MSECS_PER_DAY; QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -313,11 +314,12 @@ void tst_QDateTime::setMSecsSinceEpochTz() { QTimeZone cet = QTimeZone("Europe/Oslo"); QList list; + const qint64 msecs = qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970 + 180) * MSECS_PER_DAY; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); QBENCHMARK { foreach (QDateTime test, list) - test.setMSecsSinceEpoch((JULIAN_DAY_2010 + 180) * MSECS_PER_DAY); + test.setMSecsSinceEpoch(msecs); } } @@ -424,7 +426,8 @@ void tst_QDateTime::toOffsetFromUtc() void tst_QDateTime::daysTo() { - QDateTime other = QDateTime::fromMSecsSinceEpoch(qint64(JULIAN_DAY_2010) * MSECS_PER_DAY); + const QDateTime other = QDateTime::fromMSecsSinceEpoch( + qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -436,7 +439,8 @@ void tst_QDateTime::daysTo() void tst_QDateTime::msecsTo() { - QDateTime other = QDateTime::fromMSecsSinceEpoch(qint64(JULIAN_DAY_2010) * MSECS_PER_DAY); + const QDateTime other = QDateTime::fromMSecsSinceEpoch( + qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -449,7 +453,8 @@ void tst_QDateTime::msecsTo() void tst_QDateTime::equivalent() { bool result; - QDateTime other = QDateTime::fromMSecsSinceEpoch(qint64(JULIAN_DAY_2010) * MSECS_PER_DAY); + const QDateTime other = QDateTime::fromMSecsSinceEpoch( + qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -463,7 +468,8 @@ void tst_QDateTime::equivalent() void tst_QDateTime::equivalentUtc() { bool result = false; - QDateTime other = QDateTime::fromMSecsSinceEpoch(qint64(JULIAN_DAY_2010) * MSECS_PER_DAY, Qt::UTC); + const QDateTime other = QDateTime::fromMSecsSinceEpoch( + qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY, Qt::UTC); QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -477,7 +483,8 @@ void tst_QDateTime::equivalentUtc() void tst_QDateTime::lessThan() { bool result = false; - QDateTime other = QDateTime::fromMSecsSinceEpoch(qint64(JULIAN_DAY_2010) * MSECS_PER_DAY); + const QDateTime other = QDateTime::fromMSecsSinceEpoch( + qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -491,7 +498,8 @@ void tst_QDateTime::lessThan() void tst_QDateTime::lessThanUtc() { bool result = false; - QDateTime other = QDateTime::fromMSecsSinceEpoch(qint64(JULIAN_DAY_2010) * MSECS_PER_DAY, Qt::UTC); + const QDateTime other = QDateTime::fromMSecsSinceEpoch( + qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY, Qt::UTC); QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); @@ -573,25 +581,31 @@ void tst_QDateTime::fromStringIso() void tst_QDateTime::fromMSecsSinceEpoch() { + const int start = JULIAN_DAY_2010 - JULIAN_DAY_1970; + const int end = JULIAN_DAY_2020 - JULIAN_DAY_1970; QBENCHMARK { - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) + for (int jd = start; jd < end; ++jd) QDateTime::fromMSecsSinceEpoch(jd * MSECS_PER_DAY, Qt::LocalTime); } } void tst_QDateTime::fromMSecsSinceEpochUtc() { + const int start = JULIAN_DAY_2010 - JULIAN_DAY_1970; + const int end = JULIAN_DAY_2020 - JULIAN_DAY_1970; QBENCHMARK { - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) + for (int jd = start; jd < end; ++jd) QDateTime::fromMSecsSinceEpoch(jd * MSECS_PER_DAY, Qt::UTC); } } void tst_QDateTime::fromMSecsSinceEpochTz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); + const int start = JULIAN_DAY_2010 - JULIAN_DAY_1970; + const int end = JULIAN_DAY_2020 - JULIAN_DAY_1970; + const QTimeZone cet("Europe/Oslo"); QBENCHMARK { - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) + for (int jd = start; jd < end; ++jd) QDateTime test = QDateTime::fromMSecsSinceEpoch(jd * MSECS_PER_DAY, cet); } } -- cgit v1.2.3 From 54f6c9bfd900fbee8800d720879ecb0c023585ac Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 29 Aug 2019 14:05:48 +0200 Subject: Fix unused variable warnings in QDateTime benchmark Change-Id: Id123ace74cfa7b5ff406eabbfda0aad9f58c3fd4 Reviewed-by: David Faure --- tests/benchmarks/corelib/time/qdatetime/main.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/tests/benchmarks/corelib/time/qdatetime/main.cpp b/tests/benchmarks/corelib/time/qdatetime/main.cpp index 728c4acb91..e616181bea 100644 --- a/tests/benchmarks/corelib/time/qdatetime/main.cpp +++ b/tests/benchmarks/corelib/time/qdatetime/main.cpp @@ -221,37 +221,43 @@ void tst_QDateTime::toMSecsSinceEpoch2050() void tst_QDateTime::toMSecsSinceEpochTz() { QTimeZone cet = QTimeZone("Europe/Oslo"); + qint64 result; QList list; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); QBENCHMARK { foreach (const QDateTime &test, list) - qint64 result = test.toMSecsSinceEpoch(); + result = test.toMSecsSinceEpoch(); } + Q_UNUSED(result); } void tst_QDateTime::toMSecsSinceEpoch1950Tz() { QTimeZone cet = QTimeZone("Europe/Oslo"); + qint64 result; QList list; for (int jd = JULIAN_DAY_1950; jd < JULIAN_DAY_1960; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); QBENCHMARK { foreach (const QDateTime &test, list) - qint64 result = test.toMSecsSinceEpoch(); + result = test.toMSecsSinceEpoch(); } + Q_UNUSED(result); } void tst_QDateTime::toMSecsSinceEpoch2050Tz() { QTimeZone cet = QTimeZone("Europe/Oslo"); + qint64 result; QList list; for (int jd = JULIAN_DAY_2050; jd < JULIAN_DAY_2060; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); QBENCHMARK { foreach (const QDateTime &test, list) - qint64 result = test.toMSecsSinceEpoch(); + result = test.toMSecsSinceEpoch(); } + Q_UNUSED(result); } void tst_QDateTime::setDate() @@ -359,12 +365,14 @@ void tst_QDateTime::toStringIsoFormat() void tst_QDateTime::addDays() { QList list; + QDateTime next; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); QBENCHMARK { foreach (const QDateTime &test, list) - test.addDays(1); + next = test.addDays(1); } + Q_UNUSED(next); } void tst_QDateTime::addDaysTz() @@ -382,12 +390,14 @@ void tst_QDateTime::addDaysTz() void tst_QDateTime::addMSecs() { QList list; + QDateTime next; for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); QBENCHMARK { foreach (const QDateTime &test, list) - test.addMSecs(1); + next = test.addMSecs(1); } + Q_UNUSED(next); } void tst_QDateTime::addMSecsTz() -- cgit v1.2.3 From c78a716b723812e14563b2e1c96c050703dbc9c7 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 29 Aug 2019 21:58:32 +0200 Subject: QDateTimeParser: replace QVector with QVarLengthArray<12> The lists of month and day-of-week names usually currently do not exceed 13 elements (incl. possible leap months), so don't use QVector, use QVarLengthArray with Prealloc = 13. This value may be increased when ISO week-as-month is merged, but the container remains valid even with 52 "months" (though the code that calculates its runtime size will naturally need to be adjusted). Change-Id: I4ead897d933f89fc092850fcc22ca41da0a6ddc6 Reviewed-by: Edward Welbourne --- src/corelib/time/qdatetimeparser.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/corelib/time/qdatetimeparser.cpp b/src/corelib/time/qdatetimeparser.cpp index 3c54a259a4..d0f34358b9 100644 --- a/src/corelib/time/qdatetimeparser.cpp +++ b/src/corelib/time/qdatetimeparser.cpp @@ -60,6 +60,9 @@ QT_BEGIN_NAMESPACE +template +using ShortVector = QVarLengthArray; // enough for month (incl. leap) and day-of-week names + QDateTimeParser::~QDateTimeParser() { } @@ -1538,7 +1541,7 @@ QDateTimeParser::parse(QString input, int position, const QDateTime &defaultValu length of overlap in *used (if \a used is non-NULL) and the first entry that overlapped this much in *usedText (if \a usedText is non-NULL). */ -static int findTextEntry(const QString &text, const QVector &entries, QString *usedText, int *used) +static int findTextEntry(const QString &text, const ShortVector &entries, QString *usedText, int *used) { if (text.isEmpty()) return -1; @@ -1586,7 +1589,7 @@ int QDateTimeParser::findMonth(const QString &str1, int startMonth, int sectionI QLocale::FormatType type = sn.count == 3 ? QLocale::ShortFormat : QLocale::LongFormat; QLocale l = locale(); - QVector monthNames; + ShortVector monthNames; monthNames.reserve(13 - startMonth); for (int month = startMonth; month <= 12; ++month) monthNames.append(calendar.monthName(l, month, year, type)); @@ -1605,7 +1608,7 @@ int QDateTimeParser::findDay(const QString &str1, int startDay, int sectionIndex QLocale::FormatType type = sn.count == 4 ? QLocale::LongFormat : QLocale::ShortFormat; QLocale l = locale(); - QVector daysOfWeek; + ShortVector daysOfWeek; daysOfWeek.reserve(8 - startDay); for (int day = startDay; day <= 7; ++day) daysOfWeek.append(l.dayName(day, type)); -- cgit v1.2.3 From 0556366ddb3a59071256a5646c3c82e7da23d619 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 29 Aug 2019 15:24:52 +0200 Subject: Deduplicate list-building code in QDateTime benchmark Aside from the start-date and the end-date, and a variant with a time-zone, the lists various tests were building were all built the same way; so pack that up as a pair of functions (one without time-zone, one with) to save duplication. Make the list in each function const, ready for conversion of foreach loops to ranged for. In the process, replace QList with QVector, reserve space before we populate and use auto for the now-const list variables it's saved in. Change-Id: I7d8cce459a4d6111cd645e8d3966ad769ab7e201 Reviewed-by: Marc Mutz --- tests/benchmarks/corelib/time/qdatetime/main.cpp | 165 ++++++++--------------- 1 file changed, 57 insertions(+), 108 deletions(-) diff --git a/tests/benchmarks/corelib/time/qdatetime/main.cpp b/tests/benchmarks/corelib/time/qdatetime/main.cpp index e616181bea..2730e7e18b 100644 --- a/tests/benchmarks/corelib/time/qdatetime/main.cpp +++ b/tests/benchmarks/corelib/time/qdatetime/main.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include class tst_QDateTime : public QObject @@ -49,6 +50,9 @@ class tst_QDateTime : public QObject JULIAN_DAY_2060 = 2473460 }; + static QVector daily(qint64 start, qint64 end); + static QVector norse(qint64 start, qint64 end); + private Q_SLOTS: void create(); void isNull(); @@ -98,6 +102,25 @@ private Q_SLOTS: void fromMSecsSinceEpochTz(); }; +QVector tst_QDateTime::daily(qint64 start, qint64 end) +{ + QVector list; + list.reserve(end - start); + for (int jd = start; jd < end; ++jd) + list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + return list; +} + +QVector tst_QDateTime::norse(qint64 start, qint64 end) +{ + const QTimeZone cet("Europe/Oslo"); + QVector list; + list.reserve(end - start); + for (int jd = start; jd < end; ++jd) + list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + return list; +} + void tst_QDateTime::create() { QBENCHMARK { @@ -110,9 +133,7 @@ void tst_QDateTime::create() void tst_QDateTime::isNull() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.isNull(); @@ -121,9 +142,7 @@ void tst_QDateTime::isNull() void tst_QDateTime::isValid() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.isValid(); @@ -132,9 +151,7 @@ void tst_QDateTime::isValid() void tst_QDateTime::date() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.date(); @@ -143,9 +160,7 @@ void tst_QDateTime::date() void tst_QDateTime::time() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.time(); @@ -154,9 +169,7 @@ void tst_QDateTime::time() void tst_QDateTime::timeSpec() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.timeSpec(); @@ -165,9 +178,7 @@ void tst_QDateTime::timeSpec() void tst_QDateTime::offsetFromUtc() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.offsetFromUtc(); @@ -176,9 +187,7 @@ void tst_QDateTime::offsetFromUtc() void tst_QDateTime::timeZoneAbbreviation() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.timeZoneAbbreviation(); @@ -187,9 +196,7 @@ void tst_QDateTime::timeZoneAbbreviation() void tst_QDateTime::toMSecsSinceEpoch() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.toMSecsSinceEpoch(); @@ -198,9 +205,7 @@ void tst_QDateTime::toMSecsSinceEpoch() void tst_QDateTime::toMSecsSinceEpoch1950() { - QList list; - for (int jd = JULIAN_DAY_1950; jd < JULIAN_DAY_1960; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_1950, JULIAN_DAY_1960); QBENCHMARK { foreach (const QDateTime &test, list) test.toMSecsSinceEpoch(); @@ -209,9 +214,7 @@ void tst_QDateTime::toMSecsSinceEpoch1950() void tst_QDateTime::toMSecsSinceEpoch2050() { - QList list; - for (int jd = JULIAN_DAY_2050; jd < JULIAN_DAY_2060; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2050, JULIAN_DAY_2060); QBENCHMARK { foreach (const QDateTime &test, list) test.toMSecsSinceEpoch(); @@ -220,11 +223,8 @@ void tst_QDateTime::toMSecsSinceEpoch2050() void tst_QDateTime::toMSecsSinceEpochTz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); qint64 result; - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) result = test.toMSecsSinceEpoch(); @@ -234,11 +234,8 @@ void tst_QDateTime::toMSecsSinceEpochTz() void tst_QDateTime::toMSecsSinceEpoch1950Tz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); qint64 result; - QList list; - for (int jd = JULIAN_DAY_1950; jd < JULIAN_DAY_1960; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + const auto list = norse(JULIAN_DAY_1950, JULIAN_DAY_1960); QBENCHMARK { foreach (const QDateTime &test, list) result = test.toMSecsSinceEpoch(); @@ -248,11 +245,8 @@ void tst_QDateTime::toMSecsSinceEpoch1950Tz() void tst_QDateTime::toMSecsSinceEpoch2050Tz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); qint64 result; - QList list; - for (int jd = JULIAN_DAY_2050; jd < JULIAN_DAY_2060; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + const auto list = norse(JULIAN_DAY_2050, JULIAN_DAY_2060); QBENCHMARK { foreach (const QDateTime &test, list) result = test.toMSecsSinceEpoch(); @@ -262,9 +256,7 @@ void tst_QDateTime::toMSecsSinceEpoch2050Tz() void tst_QDateTime::setDate() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (QDateTime test, list) test.setDate(QDate::fromJulianDay(JULIAN_DAY_2010)); @@ -273,9 +265,7 @@ void tst_QDateTime::setDate() void tst_QDateTime::setTime() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (QDateTime test, list) test.setTime(QTime(12, 0, 0)); @@ -284,9 +274,7 @@ void tst_QDateTime::setTime() void tst_QDateTime::setTimeSpec() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (QDateTime test, list) test.setTimeSpec(Qt::UTC); @@ -295,9 +283,7 @@ void tst_QDateTime::setTimeSpec() void tst_QDateTime::setOffsetFromUtc() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (QDateTime test, list) test.setOffsetFromUtc(3600); @@ -307,9 +293,7 @@ void tst_QDateTime::setOffsetFromUtc() void tst_QDateTime::setMSecsSinceEpoch() { qint64 msecs = qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970 + 180) * MSECS_PER_DAY; - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (QDateTime test, list) test.setMSecsSinceEpoch(msecs); @@ -318,11 +302,8 @@ void tst_QDateTime::setMSecsSinceEpoch() void tst_QDateTime::setMSecsSinceEpochTz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); - QList list; const qint64 msecs = qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970 + 180) * MSECS_PER_DAY; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (QDateTime test, list) test.setMSecsSinceEpoch(msecs); @@ -331,9 +312,7 @@ void tst_QDateTime::setMSecsSinceEpochTz() void tst_QDateTime::toString() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2011; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2011); QBENCHMARK { foreach (const QDateTime &test, list) test.toString(QStringLiteral("yyy-MM-dd hh:mm:ss.zzz t")); @@ -342,9 +321,7 @@ void tst_QDateTime::toString() void tst_QDateTime::toStringTextFormat() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2011; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2011); QBENCHMARK { foreach (const QDateTime &test, list) test.toString(Qt::TextDate); @@ -353,9 +330,7 @@ void tst_QDateTime::toStringTextFormat() void tst_QDateTime::toStringIsoFormat() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2011; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2011); QBENCHMARK { foreach (const QDateTime &test, list) test.toString(Qt::ISODate); @@ -364,10 +339,8 @@ void tst_QDateTime::toStringIsoFormat() void tst_QDateTime::addDays() { - QList list; + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QDateTime next; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); QBENCHMARK { foreach (const QDateTime &test, list) next = test.addDays(1); @@ -377,10 +350,7 @@ void tst_QDateTime::addDays() void tst_QDateTime::addDaysTz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) QDateTime result = test.addDays(1); @@ -389,10 +359,8 @@ void tst_QDateTime::addDaysTz() void tst_QDateTime::addMSecs() { - QList list; + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QDateTime next; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); QBENCHMARK { foreach (const QDateTime &test, list) next = test.addMSecs(1); @@ -402,10 +370,7 @@ void tst_QDateTime::addMSecs() void tst_QDateTime::addMSecsTz() { - QTimeZone cet = QTimeZone("Europe/Oslo"); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0), cet)); + const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) QDateTime result = test.addMSecs(1); @@ -414,9 +379,7 @@ void tst_QDateTime::addMSecsTz() void tst_QDateTime::toTimeSpec() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.toTimeSpec(Qt::UTC); @@ -425,9 +388,7 @@ void tst_QDateTime::toTimeSpec() void tst_QDateTime::toOffsetFromUtc() { - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.toOffsetFromUtc(3600); @@ -438,9 +399,7 @@ void tst_QDateTime::daysTo() { const QDateTime other = QDateTime::fromMSecsSinceEpoch( qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.daysTo(other); @@ -451,9 +410,7 @@ void tst_QDateTime::msecsTo() { const QDateTime other = QDateTime::fromMSecsSinceEpoch( qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) test.msecsTo(other); @@ -465,9 +422,7 @@ void tst_QDateTime::equivalent() bool result; const QDateTime other = QDateTime::fromMSecsSinceEpoch( qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) result = (test == other); @@ -480,9 +435,7 @@ void tst_QDateTime::equivalentUtc() bool result = false; const QDateTime other = QDateTime::fromMSecsSinceEpoch( qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY, Qt::UTC); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) result = (test == other); @@ -495,9 +448,7 @@ void tst_QDateTime::lessThan() bool result = false; const QDateTime other = QDateTime::fromMSecsSinceEpoch( qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) result = (test < other); @@ -510,9 +461,7 @@ void tst_QDateTime::lessThanUtc() bool result = false; const QDateTime other = QDateTime::fromMSecsSinceEpoch( qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY, Qt::UTC); - QList list; - for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) - list.append(QDateTime(QDate::fromJulianDay(jd), QTime::fromMSecsSinceStartOfDay(0))); + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { foreach (const QDateTime &test, list) result = (test < other); -- cgit v1.2.3 From 14aa4816149bc05de753e3cc00740fc3666aab1b Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 29 Aug 2019 14:16:32 +0200 Subject: Convert foreach to ranged for in QDateTime benchmark Change-Id: I05cf7b1916afa94a9f0f9b83af9b4ebe20a04cf0 Reviewed-by: Marc Mutz --- tests/benchmarks/corelib/time/qdatetime/main.cpp | 68 ++++++++++++------------ 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/tests/benchmarks/corelib/time/qdatetime/main.cpp b/tests/benchmarks/corelib/time/qdatetime/main.cpp index 2730e7e18b..740e08cc46 100644 --- a/tests/benchmarks/corelib/time/qdatetime/main.cpp +++ b/tests/benchmarks/corelib/time/qdatetime/main.cpp @@ -135,7 +135,7 @@ void tst_QDateTime::isNull() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.isNull(); } } @@ -144,7 +144,7 @@ void tst_QDateTime::isValid() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.isValid(); } } @@ -153,7 +153,7 @@ void tst_QDateTime::date() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.date(); } } @@ -162,7 +162,7 @@ void tst_QDateTime::time() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.time(); } } @@ -171,7 +171,7 @@ void tst_QDateTime::timeSpec() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.timeSpec(); } } @@ -180,7 +180,7 @@ void tst_QDateTime::offsetFromUtc() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.offsetFromUtc(); } } @@ -189,7 +189,7 @@ void tst_QDateTime::timeZoneAbbreviation() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.timeZoneAbbreviation(); } } @@ -198,7 +198,7 @@ void tst_QDateTime::toMSecsSinceEpoch() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toMSecsSinceEpoch(); } } @@ -207,7 +207,7 @@ void tst_QDateTime::toMSecsSinceEpoch1950() { const auto list = daily(JULIAN_DAY_1950, JULIAN_DAY_1960); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toMSecsSinceEpoch(); } } @@ -216,7 +216,7 @@ void tst_QDateTime::toMSecsSinceEpoch2050() { const auto list = daily(JULIAN_DAY_2050, JULIAN_DAY_2060); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toMSecsSinceEpoch(); } } @@ -226,7 +226,7 @@ void tst_QDateTime::toMSecsSinceEpochTz() qint64 result; const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = test.toMSecsSinceEpoch(); } Q_UNUSED(result); @@ -237,7 +237,7 @@ void tst_QDateTime::toMSecsSinceEpoch1950Tz() qint64 result; const auto list = norse(JULIAN_DAY_1950, JULIAN_DAY_1960); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = test.toMSecsSinceEpoch(); } Q_UNUSED(result); @@ -248,7 +248,7 @@ void tst_QDateTime::toMSecsSinceEpoch2050Tz() qint64 result; const auto list = norse(JULIAN_DAY_2050, JULIAN_DAY_2060); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = test.toMSecsSinceEpoch(); } Q_UNUSED(result); @@ -258,7 +258,7 @@ void tst_QDateTime::setDate() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (QDateTime test, list) + for (QDateTime test : list) test.setDate(QDate::fromJulianDay(JULIAN_DAY_2010)); } } @@ -267,7 +267,7 @@ void tst_QDateTime::setTime() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (QDateTime test, list) + for (QDateTime test : list) test.setTime(QTime(12, 0, 0)); } } @@ -276,7 +276,7 @@ void tst_QDateTime::setTimeSpec() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (QDateTime test, list) + for (QDateTime test : list) test.setTimeSpec(Qt::UTC); } } @@ -285,7 +285,7 @@ void tst_QDateTime::setOffsetFromUtc() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (QDateTime test, list) + for (QDateTime test : list) test.setOffsetFromUtc(3600); } } @@ -295,7 +295,7 @@ void tst_QDateTime::setMSecsSinceEpoch() qint64 msecs = qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970 + 180) * MSECS_PER_DAY; const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (QDateTime test, list) + for (QDateTime test : list) test.setMSecsSinceEpoch(msecs); } } @@ -305,7 +305,7 @@ void tst_QDateTime::setMSecsSinceEpochTz() const qint64 msecs = qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970 + 180) * MSECS_PER_DAY; const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (QDateTime test, list) + for (QDateTime test : list) test.setMSecsSinceEpoch(msecs); } } @@ -314,7 +314,7 @@ void tst_QDateTime::toString() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2011); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toString(QStringLiteral("yyy-MM-dd hh:mm:ss.zzz t")); } } @@ -323,7 +323,7 @@ void tst_QDateTime::toStringTextFormat() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2011); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toString(Qt::TextDate); } } @@ -332,7 +332,7 @@ void tst_QDateTime::toStringIsoFormat() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2011); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toString(Qt::ISODate); } } @@ -342,7 +342,7 @@ void tst_QDateTime::addDays() const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QDateTime next; QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) next = test.addDays(1); } Q_UNUSED(next); @@ -352,7 +352,7 @@ void tst_QDateTime::addDaysTz() { const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) QDateTime result = test.addDays(1); } } @@ -362,7 +362,7 @@ void tst_QDateTime::addMSecs() const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QDateTime next; QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) next = test.addMSecs(1); } Q_UNUSED(next); @@ -372,7 +372,7 @@ void tst_QDateTime::addMSecsTz() { const auto list = norse(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) QDateTime result = test.addMSecs(1); } } @@ -381,7 +381,7 @@ void tst_QDateTime::toTimeSpec() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toTimeSpec(Qt::UTC); } } @@ -390,7 +390,7 @@ void tst_QDateTime::toOffsetFromUtc() { const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.toOffsetFromUtc(3600); } } @@ -401,7 +401,7 @@ void tst_QDateTime::daysTo() qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.daysTo(other); } } @@ -412,7 +412,7 @@ void tst_QDateTime::msecsTo() qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) test.msecsTo(other); } } @@ -424,7 +424,7 @@ void tst_QDateTime::equivalent() qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = (test == other); } Q_UNUSED(result) @@ -437,7 +437,7 @@ void tst_QDateTime::equivalentUtc() qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY, Qt::UTC); const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = (test == other); } Q_UNUSED(result) @@ -450,7 +450,7 @@ void tst_QDateTime::lessThan() qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY); const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = (test < other); } Q_UNUSED(result) @@ -463,7 +463,7 @@ void tst_QDateTime::lessThanUtc() qint64(JULIAN_DAY_2010 - JULIAN_DAY_1970) * MSECS_PER_DAY, Qt::UTC); const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); QBENCHMARK { - foreach (const QDateTime &test, list) + for (const QDateTime &test : list) result = (test < other); } Q_UNUSED(result) -- cgit v1.2.3 From acd7259a03d0168682fedd278ee14ae70a4d87a6 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 29 Aug 2019 15:27:28 +0200 Subject: Extend QDate's benchmark Test more methods. Document what the existing test covers. Use the right #include for QDate. Change-Id: I051542c244e5bc381aafa3ae38144e246919db7a Reviewed-by: Marc Mutz --- .../corelib/time/qdate/tst_bench_qdate.cpp | 170 ++++++++++++++++++++- 1 file changed, 165 insertions(+), 5 deletions(-) diff --git a/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp b/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp index 399ac44065..10c013c080 100644 --- a/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp +++ b/tests/benchmarks/corelib/time/qdate/tst_bench_qdate.cpp @@ -26,27 +26,187 @@ ** ****************************************************************************/ -#include +#include #include +#include class tst_QDate : public QObject { Q_OBJECT + enum : qint64 + { + JULIAN_DAY_2010 = 2455198, + JULIAN_DAY_2011 = 2455563, + JULIAN_DAY_2020 = 2458850, + }; + + static QVector daily(qint64 start, qint64 end); + static QVector yearly(qint32 first, qint32 last); + private Q_SLOTS: - void monthLengths(); + void create(); + void year(); + void month(); + void day(); + void dayOfWeek(); + void dayOfYear(); + void monthLengths(); // isValid() and daysInMonth() + void daysInYear(); + void isLeapYear(); + void getSetDate(); + void addDays(); + void addMonths(); + void addYears(); }; +QVector tst_QDate::daily(qint64 start, qint64 end) +{ + QVector list; + list.reserve(end - start); + for (qint64 jd = start; jd < end; ++jd) + list.append(QDate::fromJulianDay(jd)); + return list; +} + +QVector tst_QDate::yearly(qint32 first, qint32 last) +{ + QVector list; + list.reserve(last + 1 - first); + for (qint32 year = first; year <= last; ++year) + list.append(QDate(year, 3, 21)); + return list; +} + +void tst_QDate::create() +{ + QDate test; + QBENCHMARK { + for (int jd = JULIAN_DAY_2010; jd < JULIAN_DAY_2020; ++jd) + test = QDate::fromJulianDay(jd); + } + Q_UNUSED(test); +} + +void tst_QDate::year() +{ + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const QDate &test : list) + test.year(); + } +} + +void tst_QDate::month() +{ + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const QDate &test : list) + test.month(); + } +} + +void tst_QDate::day() +{ + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const QDate &test : list) + test.day(); + } +} + +void tst_QDate::dayOfWeek() +{ + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const QDate &test : list) + test.dayOfWeek(); + } +} + +void tst_QDate::dayOfYear() +{ + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const QDate &test : list) + test.dayOfYear(); + } +} + void tst_QDate::monthLengths() { + bool check = true; QBENCHMARK { for (int year = 1900; year <= 2100; year++) { - bool check = true; for (int month = 1; month <= 12; month++) - check &= QDate::isValid(year, month, QDate(year, month, 1).daysInMonth()); - Q_UNUSED(check); + check = QDate::isValid(year, month, QDate(year, month, 1).daysInMonth()); + } + } + Q_UNUSED(check); +} + +void tst_QDate::daysInYear() +{ + const auto list = yearly(1601, 2401); + QBENCHMARK { + for (const QDate date : list) + date.daysInYear(); + } +} + +void tst_QDate::isLeapYear() +{ + QBENCHMARK { + for (qint32 year = 1601; year <= 2401; year++) + QDate::isLeapYear(year); + } +} + +void tst_QDate::getSetDate() +{ + QDate store; + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const auto test : list) { + int year, month, day; + test.getDate(&year, &month, &day); + store.setDate(year, month, day); } } + Q_UNUSED(store); +} + +void tst_QDate::addDays() +{ + QDate store; + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const auto test : list) + store = test.addDays(17); + } + Q_UNUSED(store); +} + +void tst_QDate::addMonths() +{ + QDate store; + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const auto test : list) + store = test.addMonths(17); + } + Q_UNUSED(store); +} + +void tst_QDate::addYears() +{ + QDate store; + const auto list = daily(JULIAN_DAY_2010, JULIAN_DAY_2020); + QBENCHMARK { + for (const auto test : list) + store = test.addYears(17); + } + Q_UNUSED(store); } QTEST_MAIN(tst_QDate) -- cgit v1.2.3 From 11206b5340cf6551d01b266cf096d1641796d300 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 6 Aug 2019 14:35:04 +0200 Subject: Remove QMakeLocalFileName::is_null This is never different from real_name.isNull(). Change-Id: Ic1442f2eec4d7dfb2d3694e85d664f1509d4b68b Reviewed-by: Oliver Wolff --- qmake/generators/makefiledeps.cpp | 6 +++--- qmake/generators/makefiledeps.h | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp index 1b1b0426bb..7c4be64aa8 100644 --- a/qmake/generators/makefiledeps.cpp +++ b/qmake/generators/makefiledeps.cpp @@ -60,14 +60,14 @@ QT_BEGIN_NAMESPACE inline bool qmake_endOfLine(const char &c) { return (c == '\r' || c == '\n'); } #endif -QMakeLocalFileName::QMakeLocalFileName(const QString &name) : is_null(name.isNull()) - , real_name(name) +QMakeLocalFileName::QMakeLocalFileName(const QString &name) + : real_name(name) { } const QString &QMakeLocalFileName::local() const { - if(!is_null && local_name.isNull()) + if (!isNull() && local_name.isNull()) local_name = Option::normalizePath(real_name); return local_name; } diff --git a/qmake/generators/makefiledeps.h b/qmake/generators/makefiledeps.h index 66b87bf470..7e39396754 100644 --- a/qmake/generators/makefiledeps.h +++ b/qmake/generators/makefiledeps.h @@ -41,14 +41,14 @@ struct SourceFile; struct SourceDependChildren; class SourceFiles; -class QMakeLocalFileName { - bool is_null; +class QMakeLocalFileName +{ QString real_name; mutable QString local_name; public: - QMakeLocalFileName() : is_null(true) {} + QMakeLocalFileName() = default; QMakeLocalFileName(const QString &); - bool isNull() const { return is_null; } + bool isNull() const { return real_name.isNull(); } inline const QString &real() const { return real_name; } const QString &local() const; -- cgit v1.2.3 From f00bbd5eb77d0d4669e0a15a277c3937c49ed813 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Fri, 7 Jun 2019 13:03:20 +0200 Subject: Update QPA mouse event handling in offscreen and VNC plugins This is needed after a37785ec7638e7485112b87dd7e767881fecc114 deprecated the versions of QWindowSystemInterface::handleMouseEvent() that were in use here. Change-Id: Ib704ae2be905436f5a4a80ae6686b5fe3972d34c Reviewed-by: Andy Nichols --- src/plugins/platforms/offscreen/qoffscreencommon.cpp | 3 ++- src/plugins/platforms/vnc/qvncclient.cpp | 13 +++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/plugins/platforms/offscreen/qoffscreencommon.cpp b/src/plugins/platforms/offscreen/qoffscreencommon.cpp index f0eb69718a..eae25012c1 100644 --- a/src/plugins/platforms/offscreen/qoffscreencommon.cpp +++ b/src/plugins/platforms/offscreen/qoffscreencommon.cpp @@ -77,7 +77,8 @@ public: if (containing != previous) QWindowSystemInterface::handleEnterLeaveEvent(containing, previous, local, pos); - QWindowSystemInterface::handleMouseEvent(containing, local, pos, QGuiApplication::mouseButtons(), QGuiApplication::keyboardModifiers()); + QWindowSystemInterface::handleMouseEvent(containing, local, pos, QGuiApplication::mouseButtons(), Qt::NoButton, + QEvent::MouseMove, QGuiApplication::keyboardModifiers(), Qt::MouseEventSynthesizedByQt); QOffscreenScreen::windowContainingCursor = containing ? containing->handle() : 0; } diff --git a/src/plugins/platforms/vnc/qvncclient.cpp b/src/plugins/platforms/vnc/qvncclient.cpp index 9dfe873927..3a373a5e4b 100644 --- a/src/plugins/platforms/vnc/qvncclient.cpp +++ b/src/plugins/platforms/vnc/qvncclient.cpp @@ -587,9 +587,18 @@ void QVncClient::frameBufferUpdateRequest() void QVncClient::pointerEvent() { QRfbPointerEvent ev; + static int buttonState = Qt::NoButton; if (ev.read(m_clientSocket)) { - const QPoint pos = m_server->screen()->geometry().topLeft() + QPoint(ev.x, ev.y); - QWindowSystemInterface::handleMouseEvent(0, pos, pos, ev.buttons, QGuiApplication::keyboardModifiers()); + const QPointF pos = m_server->screen()->geometry().topLeft() + QPoint(ev.x, ev.y); + int buttonStateChange = buttonState ^ int(ev.buttons); + QEvent::Type type = QEvent::MouseMove; + if (int(ev.buttons) > buttonState) + type = QEvent::MouseButtonPress; + else if (int(ev.buttons) < buttonState) + type = QEvent::MouseButtonRelease; + QWindowSystemInterface::handleMouseEvent(nullptr, pos, pos, ev.buttons, Qt::MouseButton(buttonStateChange), + type, QGuiApplication::keyboardModifiers()); + buttonState = int(ev.buttons); m_handleMsg = false; } } -- cgit v1.2.3 From ca3be922349d5fa282578fbb6c1dc2bd25d1f5aa Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Thu, 29 Aug 2019 16:22:53 +0200 Subject: Remove QFileInfo::type and related enum from 5.14 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The API is problematic for several reasons: - the mixing of flags and enum in a single enum type - the name "type" as somewhat overloaded - the ease of misuse when comparing the result rather than testing for a bit being set In light of this, focus for 5.14 on the new isShortcut and isSymbolicLink functions, thus migitating the problematic isSymLink which conflates the two concepts. Change-Id: I57e02321edd5061f69a775f04a0932ef89adf866 Reviewed-by: Tor Arne Vestbø Reviewed-by: Marc Mutz --- src/corelib/io/qfileinfo.cpp | 93 ++++------- src/corelib/io/qfileinfo.h | 19 +-- tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp | 189 ++++++++++++---------- 3 files changed, 136 insertions(+), 165 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index b720966d8f..a6f8b45ea3 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -310,19 +310,6 @@ QDateTime &QFileInfoPrivate::getFileTime(QAbstractFileEngine::FileTime request) \sa QDir, QFile */ -/*! - \enum QFileInfo::FileType - - This enum is returned by type() to describe the type of the file system - entity described by the QFileInfo object. - - \value Unknown The object refers to an unknown item. - \value Regular The object refers to a regular file. - \value Directory The object refers to a directory. - \value SymbolicLink The object refers to a symbolic link. - \value Shortcut The object refers to a shortcut. -*/ - /*! \fn QFileInfo &QFileInfo::operator=(QFileInfo &&other) @@ -1008,7 +995,11 @@ bool QFileInfo::isNativePath() const */ bool QFileInfo::isFile() const { - return (type() & FileTypeMask) == Regular; + Q_D(const QFileInfo); + return d->checkAttribute( + QFileSystemMetaData::FileType, + [d]() { return d->metaData.isFile(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::FileType); }); } /*! @@ -1019,7 +1010,11 @@ bool QFileInfo::isFile() const */ bool QFileInfo::isDir() const { - return (type() & FileTypeMask) == Directory; + Q_D(const QFileInfo); + return d->checkAttribute( + QFileSystemMetaData::DirectoryType, + [d]() { return d->metaData.isDirectory(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::DirectoryType); }); } @@ -1070,8 +1065,6 @@ bool QFileInfo::isSymLink() const } /*! - \fn bool QFileInfo::isSymbolicLink() const - Returns \c true if this object points to a symbolic link; otherwise returns \c false. @@ -1091,9 +1084,16 @@ bool QFileInfo::isSymLink() const \sa isFile(), isDir(), isShortcut(), symLinkTarget() */ -/*! - \fn bool QFileInfo::isShortcut() const +bool QFileInfo::isSymbolicLink() const +{ + Q_D(const QFileInfo); + return d->checkAttribute( + QFileSystemMetaData::LegacyLinkType, + [d]() { return d->metaData.isLink(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); }); +} +/*! Returns \c true if this object points to a shortcut; otherwise returns \c false. @@ -1110,6 +1110,14 @@ bool QFileInfo::isSymLink() const \sa isFile(), isDir(), isSymbolicLink(), symLinkTarget() */ +bool QFileInfo::isShortcut() const +{ + Q_D(const QFileInfo); + return d->checkAttribute( + QFileSystemMetaData::LegacyLinkType, + [d]() { return d->metaData.isLnkFile(); }, + [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); }); +} /*! Returns \c true if the object points to a directory or to a symbolic @@ -1314,53 +1322,6 @@ qint64 QFileInfo::size() const }); } -/*! - Returns the QFileInfo::FileTypes. - - QFileInfo::FileTypes combines with an indirection flag (link type) and a - base type it refers to. - - For example, \c SymbolicLink combines with \c Regular meaning a symlink to - a regular file. - - In addition, FileTypeMask and LinkTypeMask are used to extract the base - type and link type respectively. - - \sa isFile(), isDir(), isShortcut(), isSymbolicLink() -*/ -QFileInfo::FileTypes QFileInfo::type() const -{ - Q_D(const QFileInfo); - - QFileInfo::FileTypes type = QFileInfo::Unknown; - if (d->checkAttribute( - QFileSystemMetaData::LegacyLinkType, - [d]() { return d->metaData.isLnkFile(); }, - [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); })) { - type = QFileInfo::Shortcut; - } else if (d->checkAttribute( - QFileSystemMetaData::LegacyLinkType, - [d]() { return d->metaData.isLink(); }, - [d]() { return d->getFileFlags(QAbstractFileEngine::LinkType); })) { - type = QFileInfo::SymbolicLink; - } - - if (d->checkAttribute( - QFileSystemMetaData::DirectoryType, - [d]() { return d->metaData.isDirectory(); }, - [d]() { return d->getFileFlags(QAbstractFileEngine::DirectoryType); })) { - return type | QFileInfo::Directory; - } - - if (d->checkAttribute( - QFileSystemMetaData::FileType, - [d]() { return d->metaData.isFile(); }, - [d]() { return d->getFileFlags(QAbstractFileEngine::FileType); })) { - return type | QFileInfo::Regular; - } - return type; -} - #if QT_DEPRECATED_SINCE(5, 10) /*! \deprecated diff --git a/src/corelib/io/qfileinfo.h b/src/corelib/io/qfileinfo.h index 1cbeafdd4a..3ac028085a 100644 --- a/src/corelib/io/qfileinfo.h +++ b/src/corelib/io/qfileinfo.h @@ -66,20 +66,6 @@ public: QFileInfo(const QFileInfo &fileinfo); ~QFileInfo(); - enum FileType { - Unknown, - // base type - Regular, - Directory, - // indirection flag - SymbolicLink = 0x10, - Shortcut = 0x20, - // mask - FileTypeMask = 0x0f, - LinkTypeMask = 0xf0 - }; - Q_DECLARE_FLAGS(FileTypes, FileType) - QFileInfo &operator=(const QFileInfo &fileinfo); QFileInfo &operator=(QFileInfo &&other) noexcept { swap(other); return *this; } @@ -125,8 +111,8 @@ public: bool isFile() const; bool isDir() const; bool isSymLink() const; - inline bool isSymbolicLink() const { return type() & SymbolicLink; } - inline bool isShortcut() const { return type() & Shortcut; } + bool isSymbolicLink() const; + bool isShortcut() const; bool isRoot() const; bool isBundle() const; @@ -145,7 +131,6 @@ public: QFile::Permissions permissions() const; qint64 size() const; - FileTypes type() const; // ### Qt6: inline these functions #if QT_DEPRECATED_SINCE(5, 10) diff --git a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp index 6fcfe87c83..921847a087 100644 --- a/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp +++ b/tests/auto/corelib/io/qfileinfo/tst_qfileinfo.cpp @@ -236,6 +236,13 @@ private slots: void isSymLink_data(); void isSymLink(); + + void isSymbolicLink_data(); + void isSymbolicLink(); + + void isShortcut_data(); + void isShortcut(); + void link_data(); void link(); @@ -279,9 +286,6 @@ private slots: void invalidState(); void nonExistingFile(); - void type_data(); - void type(); - private: const QString m_currentDir; QString m_sourceFile; @@ -1342,7 +1346,92 @@ void tst_QFileInfo::isSymLink() #endif } -Q_DECLARE_METATYPE(QFileInfo::FileType) +void tst_QFileInfo::isShortcut_data() +{ + QFile::remove("link.lnk"); + QFile::remove("symlink.lnk"); + QFile::remove("link"); + QFile::remove("symlink"); + QFile::remove("directory.lnk"); + QFile::remove("directory"); + + QTest::addColumn("path"); + QTest::addColumn("isShortcut"); + + QFile regularFile(m_sourceFile); + QTest::newRow("regular") + << regularFile.fileName() << false; + QTest::newRow("directory") + << QDir::currentPath() << false; +#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) + // windows shortcuts + QVERIFY(regularFile.link("link.lnk")); + QTest::newRow("shortcut") + << "link.lnk" << true; + QVERIFY(regularFile.link("link")); + QTest::newRow("invalid-shortcut") + << "link" << false; + QVERIFY(QFile::link(QDir::currentPath(), "directory.lnk")); + QTest::newRow("directory-shortcut") + << "directory.lnk" << true; +#endif +} + +void tst_QFileInfo::isShortcut() +{ + QFETCH(QString, path); + QFETCH(bool, isShortcut); + + QFileInfo fi(path); + QCOMPARE(fi.isShortcut(), isShortcut); +} + +void tst_QFileInfo::isSymbolicLink_data() +{ + QTest::addColumn("path"); + QTest::addColumn("isSymbolicLink"); + + QFile regularFile(m_sourceFile); + QTest::newRow("regular") + << regularFile.fileName() << false; + QTest::newRow("directory") + << QDir::currentPath() << false; + +#ifndef Q_NO_SYMLINKS +#if defined(Q_OS_WIN) +#if !defined(Q_OS_WINRT) + QString errorMessage; + const DWORD creationResult = createSymbolicLink("symlink", m_sourceFile, &errorMessage); + if (creationResult == ERROR_PRIVILEGE_NOT_HELD) { + QWARN(msgInsufficientPrivileges(errorMessage)); + } else { + QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); + QTest::newRow("NTFS-symlink") + << "symlink" << true; + } +#endif // !Q_OS_WINRT +#else // Unix: + QVERIFY(regularFile.link("symlink.lnk")); + QTest::newRow("symlink.lnk") + << "symlink.lnk" << true; + QVERIFY(regularFile.link("symlink")); + QTest::newRow("symlink") + << "symlink" << true; + QVERIFY(QFile::link(QDir::currentPath(), "directory")); + QTest::newRow("directory-symlink") + << "directory" << true; +#endif +#endif // !Q_NO_SYMLINKS +} + +void tst_QFileInfo::isSymbolicLink() +{ + QFETCH(QString, path); + QFETCH(bool, isSymbolicLink); + + QFileInfo fi(path); + QCOMPARE(fi.isSymbolicLink(), isSymbolicLink); +} void tst_QFileInfo::link_data() { @@ -1354,23 +1443,24 @@ void tst_QFileInfo::link_data() QFile::remove("relative/link"); QTest::addColumn("path"); - QTest::addColumn("linkType"); + QTest::addColumn("isShortcut"); + QTest::addColumn("isSymbolicLink"); QTest::addColumn("linkTarget"); QFile file1(m_sourceFile); QFile file2("dummyfile"); file2.open(QIODevice::WriteOnly); - QTest::newRow("existent file") << m_sourceFile << QFileInfo::Unknown << ""; + QTest::newRow("existent file") << m_sourceFile << false << false << ""; #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) // windows shortcuts QVERIFY(file1.link("link.lnk")); QTest::newRow("link.lnk") - << "link.lnk" << QFileInfo::Shortcut << QFileInfo(m_sourceFile).absoluteFilePath(); + << "link.lnk" << true << false << QFileInfo(m_sourceFile).absoluteFilePath(); QVERIFY(file2.link("brokenlink.lnk")); QTest::newRow("broken link.lnk") - << "brokenlink.lnk" << QFileInfo::Shortcut << QFileInfo("dummyfile").absoluteFilePath(); + << "brokenlink.lnk" << true << false << QFileInfo("dummyfile").absoluteFilePath(); #endif #ifndef Q_NO_SYMLINKS @@ -1383,7 +1473,7 @@ void tst_QFileInfo::link_data() } else { QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); QTest::newRow("link") - << "link" << QFileInfo::SymbolicLink << QFileInfo(m_sourceFile).absoluteFilePath(); + << "link" << false << true << QFileInfo(m_sourceFile).absoluteFilePath(); } creationResult = createSymbolicLink("brokenlink", "dummyfile", &errorMessage); @@ -1392,22 +1482,22 @@ void tst_QFileInfo::link_data() } else { QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); QTest::newRow("broken link") - << "brokenlink" << QFileInfo::SymbolicLink << QFileInfo("dummyfile").absoluteFilePath(); + << "brokenlink" << false << true << QFileInfo("dummyfile").absoluteFilePath(); } #endif // !Q_OS_WINRT #else // Unix: QVERIFY(file1.link("link")); QTest::newRow("link") - << "link" << QFileInfo::SymbolicLink << QFileInfo(m_sourceFile).absoluteFilePath(); + << "link" << false << true << QFileInfo(m_sourceFile).absoluteFilePath(); QVERIFY(file2.link("brokenlink")); QTest::newRow("broken link") - << "brokenlink" << QFileInfo::SymbolicLink << QFileInfo("dummyfile").absoluteFilePath(); + << "brokenlink" << false << true << QFileInfo("dummyfile").absoluteFilePath(); QDir::current().mkdir("relative"); QFile::link("../dummyfile", "relative/link"); QTest::newRow("relative link") - << "relative/link" << QFileInfo::SymbolicLink << QFileInfo("dummyfile").absoluteFilePath(); + << "relative/link" << false << true << QFileInfo("dummyfile").absoluteFilePath(); #endif #endif // !Q_NO_SYMLINKS file2.remove(); @@ -1416,11 +1506,13 @@ void tst_QFileInfo::link_data() void tst_QFileInfo::link() { QFETCH(QString, path); - QFETCH(QFileInfo::FileType, linkType); + QFETCH(bool, isShortcut); + QFETCH(bool, isSymbolicLink); QFETCH(QString, linkTarget); QFileInfo fi(path); - QCOMPARE(fi.type() & QFileInfo::LinkTypeMask, linkType); + QCOMPARE(fi.isShortcut(), isShortcut); + QCOMPARE(fi.isSymbolicLink(), isSymbolicLink); QCOMPARE(fi.symLinkTarget(), linkTarget); } @@ -2179,73 +2271,6 @@ void tst_QFileInfo::nonExistingFile() stateCheck(info, dirname, filename); } -Q_DECLARE_METATYPE(QFileInfo::FileTypes) - -void tst_QFileInfo::type_data() -{ - QFile::remove("link.lnk"); - QFile::remove("symlink.lnk"); - QFile::remove("link"); - QFile::remove("symlink"); - QFile::remove("directory.lnk"); - QFile::remove("directory"); - - QTest::addColumn("path"); - QTest::addColumn("type"); - - QFile regularFile(m_sourceFile); - QTest::newRow("regular") - << regularFile.fileName() << QFileInfo::FileTypes(QFileInfo::Regular); - QTest::newRow("directory") - << QDir::currentPath() << QFileInfo::FileTypes(QFileInfo::Directory); -#if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) - // windows shortcuts - QVERIFY(regularFile.link("link.lnk")); - QTest::newRow("shortcut") - << "link.lnk" << QFileInfo::FileTypes(QFileInfo::Shortcut | QFileInfo::Regular); - QVERIFY(regularFile.link("link")); - QTest::newRow("invalid-shortcut") - << "link" << QFileInfo::FileTypes(QFileInfo::Regular); - QVERIFY(QFile::link(QDir::currentPath(), "directory.lnk")); - QTest::newRow("directory-shortcut") - << "directory.lnk" << QFileInfo::FileTypes(QFileInfo::Shortcut | QFileInfo::Directory); -#endif - -#ifndef Q_NO_SYMLINKS -#if defined(Q_OS_WIN) -#if !defined(Q_OS_WINRT) - QString errorMessage; - const DWORD creationResult = createSymbolicLink("symlink", m_sourceFile, &errorMessage); - if (creationResult == ERROR_PRIVILEGE_NOT_HELD) { - QWARN(msgInsufficientPrivileges(errorMessage)); - } else { - QVERIFY2(creationResult == ERROR_SUCCESS, qPrintable(errorMessage)); - QTest::newRow("NTFS-symlink") - << "symlink" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Regular); - } -#endif // !Q_OS_WINRT -#else // Unix: - QVERIFY(regularFile.link("symlink.lnk")); - QTest::newRow("symlink.lnk") - << "symlink.lnk" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Regular); - QVERIFY(regularFile.link("symlink")); - QTest::newRow("symlink") - << "symlink" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Regular); - QVERIFY(QFile::link(QDir::currentPath(), "directory")); - QTest::newRow("directory-symlink") - << "directory" << QFileInfo::FileTypes(QFileInfo::SymbolicLink | QFileInfo::Directory); -#endif -#endif // !Q_NO_SYMLINKS -} - -void tst_QFileInfo::type() -{ - QFETCH(QString, path); - QFETCH(QFileInfo::FileTypes, type); - - QFileInfo info(path); - QCOMPARE(info.type(), type); -} QTEST_MAIN(tst_QFileInfo) #include "tst_qfileinfo.moc" -- cgit v1.2.3 From fc49d73c44463d35c9cd0753e678e9ebcf668fe4 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 28 Aug 2019 16:06:49 +0200 Subject: Fix spelling of primarily in QCalendar::isSolar()'s doc It was missing a y. Change-Id: I12dac02e451addff966f554811ca1999acadbb1b Reviewed-by: Jesus Fernandez --- src/corelib/time/qcalendar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/time/qcalendar.cpp b/src/corelib/time/qcalendar.cpp index f6bb242788..b569a6834c 100644 --- a/src/corelib/time/qcalendar.cpp +++ b/src/corelib/time/qcalendar.cpp @@ -810,7 +810,7 @@ bool QCalendar::isLuniSolar() const /*! Returns \c true if this calendar is solar. - A solar calendar is based primaril on the Sun's varying position in the sky, + A solar calendar is based primarily on the Sun's varying position in the sky, relative to the fixed stars. */ bool QCalendar::isSolar() const -- cgit v1.2.3 From a5ba29b79d4793a3c18aaf64f24582d93c0fe4e8 Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Fri, 30 Aug 2019 14:34:03 +0200 Subject: Add support to override Qml Import Scanner binary to androiddeployqt This patch is required to properly support the CMake port of Qt. With CMake we have to build the host tools separately. When androiddeployqt attempts locate the qmlimportscanner binary it is unable to do so, since its not build. This patch adds the --qml-importscanner-binary option to androiddeployqt and it also allows the optio to be set via the qml-importscanner-binary setting in the deployment configuration file. Change-Id: I5393340bc1bc3e8fedae69f8bc3eb5adfe7dbfd7 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/tools/androiddeployqt/main.cpp | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 4cba67051b..8a95086eef 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -129,6 +129,7 @@ struct Options , jarSigner(false) , installApk(false) , uninstallApk(false) + , qmlImportScannerBinaryPath() {} enum DeploymentMechanism @@ -230,6 +231,9 @@ struct Options QStringList initClasses; QStringList permissions; QStringList features; + + // Override qml import scanner path + QString qmlImportScannerBinaryPath; }; static const QHash elfArchitecures = { @@ -520,6 +524,8 @@ Options parseOptions() options.generateAssetsFileList = false; } else if (argument.compare(QLatin1String("--aux-mode"), Qt::CaseInsensitive) == 0) { options.auxMode = true; + } else if (argument.compare(QLatin1String("--qml-importscanner-binary"), Qt::CaseInsensitive) == 0) { + options.qmlImportScannerBinaryPath = arguments.at(++i).trimmed(); } } @@ -602,6 +608,10 @@ void printHelp() " dependencies into the build directory and update the XML templates.\n" " The project will not be built or installed.\n" " --apk : Path where to copy the built apk.\n" + " --qml-importscanner-binary : Override the\n" + " default qmlimportscanner binary path. By default the\n" + " qmlimportscanner binary is located using the Qt directory\n" + " specified in the input file.\n" " --help: Displays this information.\n\n", qPrintable(QCoreApplication::arguments().at(0)) ); @@ -922,6 +932,12 @@ bool readInputFile(Options *options) options->qmlImportPaths = qmlImportPaths.toString().split(QLatin1Char(',')); } + { + const QJsonValue qmlImportScannerBinaryPath = jsonObject.value(QLatin1String("qml-importscanner-binary")); + if (!qmlImportScannerBinaryPath.isUndefined()) + options->qmlImportScannerBinaryPath = qmlImportScannerBinaryPath.toString(); + } + { const QJsonValue applicationBinary = jsonObject.value(QLatin1String("application-binary")); if (applicationBinary.isUndefined()) { @@ -1726,10 +1742,15 @@ bool scanImports(Options *options, QSet *usedDependencies) if (options->verbose) fprintf(stdout, "Scanning for QML imports.\n"); - QString qmlImportScanner = options->qtInstallDirectory + QLatin1String("/bin/qmlimportscanner"); + QString qmlImportScanner; + if (!options->qmlImportScannerBinaryPath.isEmpty()) { + qmlImportScanner = options->qmlImportScannerBinaryPath; + } else { + options->qtInstallDirectory + QLatin1String("/bin/qmlimportscanner"); #if defined(Q_OS_WIN32) - qmlImportScanner += QLatin1String(".exe"); + qmlImportScanner += QLatin1String(".exe"); #endif + } if (!QFile::exists(qmlImportScanner)) { fprintf(stderr, "qmlimportscanner not found: %s\n", qPrintable(qmlImportScanner)); -- cgit v1.2.3 From 65dfc485adc1c5de4840f217c47c6ad79d26ae82 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 28 Aug 2019 08:31:00 +0300 Subject: Android: clean configure params for android MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -android-toolchain-version is not needed anymore as we are using exclusively the llvm toolchain. Change-Id: Ia033297a6a2c968352c364758eb1436380a5f96e Reviewed-by: Jörg Bornemann --- config_help.txt | 1 - configure.json | 1 - configure.pri | 12 ++---------- mkspecs/features/android/android_deployment_settings.prf | 1 - 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/config_help.txt b/config_help.txt index 5880c1e00d..e47fc9adb7 100644 --- a/config_help.txt +++ b/config_help.txt @@ -205,7 +205,6 @@ Build environment: [$ANDROID_NDK_HOST] -android-abis ....... Comma separated Android abis, default is: armeabi-v7a,arm64-v8a,x86,x86_64 - -android-toolchain-version ... Set Android toolchain version -android-style-assets Automatically extract style assets from the device at run time. This option makes the Android style behave correctly, but also makes the Android platform plugin diff --git a/configure.json b/configure.json index c6ea80b076..5fc35a1658 100644 --- a/configure.json +++ b/configure.json @@ -56,7 +56,6 @@ "android-ndk-host": "string", "android-ndk-platform": "string", "android-sdk": "string", - "android-toolchain-version": "string", "android-style-assets": "boolean", "appstore-compliant": "boolean", diff --git a/configure.pri b/configure.pri index d803dcf086..ecd46b8e38 100644 --- a/configure.pri +++ b/configure.pri @@ -573,14 +573,7 @@ defineTest(qtConfOutput_prepareOptions) { qtConfFatalError("Cannot find Android NDK." \ "Please use -android-ndk option to specify one.") - ndk_tc_ver = $$eval(config.input.android-toolchain-version) - isEmpty(ndk_tc_ver): \ - ndk_tc_ver = 4.9 - !exists($$ndk_root/toolchains/arm-linux-androideabi-$$ndk_tc_ver/prebuilt/*): \ - qtConfFatalError("Cannot detect Android NDK toolchain." \ - "Please use -android-toolchain-version to specify it.") - - ndk_tc_pfx = $$ndk_root/toolchains/arm-linux-androideabi-$$ndk_tc_ver/prebuilt + ndk_tc_pfx = $$ndk_root/toolchains/llvm/prebuilt ndk_host = $$eval(config.input.android-ndk-host) isEmpty(ndk_host): \ ndk_host = $$getenv(ANDROID_NDK_HOST) @@ -632,8 +625,7 @@ defineTest(qtConfOutput_prepareOptions) { "DEFAULT_ANDROID_NDK_ROOT = $$val_escape(ndk_root)" \ "DEFAULT_ANDROID_PLATFORM = $$platform" \ "DEFAULT_ANDROID_NDK_HOST = $$ndk_host" \ - "DEFAULT_ANDROID_ABIS = $$split(android_abis, ',')" \ - "DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION = $$ndk_tc_ver" + "DEFAULT_ANDROID_ABIS = $$split(android_abis, ',')" } export($${currentConfig}.output.devicePro) diff --git a/mkspecs/features/android/android_deployment_settings.prf b/mkspecs/features/android/android_deployment_settings.prf index 998a985bb5..4d6101e297 100644 --- a/mkspecs/features/android/android_deployment_settings.prf +++ b/mkspecs/features/android/android_deployment_settings.prf @@ -71,4 +71,3 @@ contains(TEMPLATE, ".*app"):!build_pass:!android-embedded { write_file($$ANDROID_DEPLOYMENT_SETTINGS_FILE, FILE_CONTENT)|error() } - -- cgit v1.2.3 From e45e6efa723297e8aaa1132251ef55b65201d174 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 23 Aug 2019 09:51:39 +0200 Subject: QTouchDevice: don't play ping-pong with q*PostRoutine() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removing a qPostRoutine is an O(N) operation. It's perfectly ok to keep calling it even if the list has become empty before. Just qAddPostRoutine in the deviceList's ctor and never remove it again. Add a missing qAsConst as a drive-by. Change-Id: I25f824b74012146214568cfccb22c5dba3ca38ef Reviewed-by: Jan Arve Sæther --- src/gui/kernel/qtouchdevice.cpp | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/gui/kernel/qtouchdevice.cpp b/src/gui/kernel/qtouchdevice.cpp index 511e92566e..ea187f54aa 100644 --- a/src/gui/kernel/qtouchdevice.cpp +++ b/src/gui/kernel/qtouchdevice.cpp @@ -44,6 +44,7 @@ #include #include +#include QT_BEGIN_NAMESPACE @@ -201,15 +202,20 @@ void QTouchDevice::setName(const QString &name) d->name = name; } -typedef QList TouchDevices; -Q_GLOBAL_STATIC(TouchDevices, deviceList) static QBasicMutex devicesMutex; -static void cleanupDevicesList() +struct TouchDevices { + TouchDevices(); + QList list; +}; +Q_GLOBAL_STATIC(TouchDevices, deviceList) + +TouchDevices::TouchDevices() { - QMutexLocker lock(&devicesMutex); - qDeleteAll(*deviceList()); - deviceList()->clear(); + qAddPostRoutine([]{ + const auto locker = qt_scoped_lock(devicesMutex); + qDeleteAll(qExchange(deviceList->list, {})); + }); } /*! @@ -223,7 +229,7 @@ static void cleanupDevicesList() QList QTouchDevice::devices() { QMutexLocker lock(&devicesMutex); - return *deviceList(); + return deviceList->list; } /*! @@ -232,13 +238,13 @@ QList QTouchDevice::devices() bool QTouchDevicePrivate::isRegistered(const QTouchDevice *dev) { QMutexLocker locker(&devicesMutex); - return deviceList()->contains(dev); + return deviceList->list.contains(dev); } const QTouchDevice *QTouchDevicePrivate::deviceById(quint8 id) { QMutexLocker locker(&devicesMutex); - for (const QTouchDevice *dev : *deviceList()) + for (const QTouchDevice *dev : qAsConst(deviceList->list)) if (QTouchDevicePrivate::get(const_cast(dev))->id == id) return dev; return nullptr; @@ -250,9 +256,7 @@ const QTouchDevice *QTouchDevicePrivate::deviceById(quint8 id) void QTouchDevicePrivate::registerDevice(const QTouchDevice *dev) { QMutexLocker lock(&devicesMutex); - if (deviceList()->isEmpty()) - qAddPostRoutine(cleanupDevicesList); - deviceList()->append(dev); + deviceList->list.append(dev); } /*! @@ -261,9 +265,7 @@ void QTouchDevicePrivate::registerDevice(const QTouchDevice *dev) void QTouchDevicePrivate::unregisterDevice(const QTouchDevice *dev) { QMutexLocker lock(&devicesMutex); - bool wasRemoved = deviceList()->removeOne(dev); - if (wasRemoved && deviceList()->isEmpty()) - qRemovePostRoutine(cleanupDevicesList); + deviceList->list.removeOne(dev); } #ifndef QT_NO_DEBUG_STREAM -- cgit v1.2.3 From 8ce653e048746d65ae46773f555ee8786b10ff68 Mon Sep 17 00:00:00 2001 From: Kevin Funk Date: Fri, 30 Aug 2019 10:18:22 +0200 Subject: Make sure QLatin1Literal fwd header is generated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This broke when QLatin1Literal got deprecated in change 45373c19243aea335897ba0f371a1dd53ae8f079 Both hunks in this patch are needed. The hunk in syncqt.pl removes the QT_DEPRECATED_X(...) macro if it appears solely on a line in source code, the second hunk inserts a newline after the QT_DEPRECATED_X(...) macro usage to trigger that code path in the Perl script. Before/after comparison of the headers generated in include/QtCore: ``` % diff ~/old.txt ~/new.txt 105a106 > QLatin1Literal ``` Change-Id: I468dd2dd54bf115521ed82c6182236905556f568 Reviewed-by: Jörg Bornemann --- bin/syncqt.pl | 1 + src/corelib/text/qstring.h | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/syncqt.pl b/bin/syncqt.pl index 43ecff53dd..1258994f93 100755 --- a/bin/syncqt.pl +++ b/bin/syncqt.pl @@ -228,6 +228,7 @@ sub classNames { $line .= ";" if($line =~ m/^Q_[A-Z_0-9]*\(.*\)[\r\n]*$/); #qt macro $line .= ";" if($line =~ m/^QT_(BEGIN|END)_HEADER[\r\n]*$/); #qt macro $line .= ";" if($line =~ m/^QT_(BEGIN|END)_NAMESPACE(_[A-Z]+)*[\r\n]*$/); #qt macro + $line .= ";" if($line =~ m/^QT_DEPRECATED_X\(.*\)[\r\n]*$/); #qt macro $line .= ";" if($line =~ m/^QT_MODULE\(.*\)[\r\n]*$/); # QT_MODULE macro $line .= ";" if($line =~ m/^QT_WARNING_(PUSH|POP|DISABLE_\w+\(.*\))[\r\n]*$/); # qt macros $$requires = $1 if ($line =~ m/^QT_REQUIRE_CONFIG\((.*)\);[\r\n]*$/); diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 7b1351666d..5def2c81a1 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -220,7 +220,8 @@ Q_DECLARE_TYPEINFO(QLatin1String, Q_MOVABLE_TYPE); // Qt 4.x compatibility #if QT_DEPRECATED_SINCE(5, 14) -QT_DEPRECATED_X("Use QLatin1String") typedef QLatin1String QLatin1Literal; +QT_DEPRECATED_X("Use QLatin1String") +typedef QLatin1String QLatin1Literal; #endif // -- cgit v1.2.3 From 60bea1c85a4efa21e34b374ca54b6a3635680acb Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 2 Sep 2019 11:36:14 +0200 Subject: QFileSystemModel: Fix naming of Option enumeration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix an API review finding in 5.14, amending 6b9d319b26da2e4b6f939ee92a176f8604c1c539. Change-Id: I6c67ebde91021b87a43a86ff831b724f098019aa Reviewed-by: Tor Arne Vestbø --- examples/widgets/itemviews/dirview/main.cpp | 2 +- src/widgets/dialogs/qfilesystemmodel.cpp | 10 +++++----- src/widgets/dialogs/qfilesystemmodel.h | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/widgets/itemviews/dirview/main.cpp b/examples/widgets/itemviews/dirview/main.cpp index bf485e6c3c..9fecffda40 100644 --- a/examples/widgets/itemviews/dirview/main.cpp +++ b/examples/widgets/itemviews/dirview/main.cpp @@ -79,7 +79,7 @@ int main(int argc, char *argv[]) if (parser.isSet(dontUseCustomDirectoryIconsOption)) model.setOption(QFileSystemModel::DontUseCustomDirectoryIcons); if (parser.isSet(dontWatchOption)) - model.setOption(QFileSystemModel::DontWatch); + model.setOption(QFileSystemModel::DontWatchForChanges); QTreeView tree; tree.setModel(&model); if (!rootPath.isEmpty()) { diff --git a/src/widgets/dialogs/qfilesystemmodel.cpp b/src/widgets/dialogs/qfilesystemmodel.cpp index 212223359a..e9e49e0c33 100644 --- a/src/widgets/dialogs/qfilesystemmodel.cpp +++ b/src/widgets/dialogs/qfilesystemmodel.cpp @@ -1267,7 +1267,7 @@ Qt::DropActions QFileSystemModel::supportedDropActions() const \enum QFileSystemModel::Option \since 5.14 - \value DontWatch Do not add file watchers to the paths. + \value DontWatchForChanges Do not add file watchers to the paths. This reduces overhead when using the model for simple tasks like line edit completion. @@ -1331,8 +1331,8 @@ void QFileSystemModel::setOptions(Options options) #if QT_CONFIG(filesystemwatcher) Q_D(QFileSystemModel); - if (changed.testFlag(DontWatch)) - d->fileInfoGatherer.setWatching(!options.testFlag(DontWatch)); + if (changed.testFlag(DontWatchForChanges)) + d->fileInfoGatherer.setWatching(!options.testFlag(DontWatchForChanges)); #endif if (changed.testFlag(DontUseCustomDirectoryIcons)) { @@ -1353,9 +1353,9 @@ QFileSystemModel::Options QFileSystemModel::options() const result.setFlag(DontResolveSymlinks, !resolveSymlinks()); #if QT_CONFIG(filesystemwatcher) Q_D(const QFileSystemModel); - result.setFlag(DontWatch, !d->fileInfoGatherer.isWatching()); + result.setFlag(DontWatchForChanges, !d->fileInfoGatherer.isWatching()); #else - result.setFlag(DontWatch); + result.setFlag(DontWatchForChanges); #endif if (auto provider = iconProvider()) { result.setFlag(DontUseCustomDirectoryIcons, diff --git a/src/widgets/dialogs/qfilesystemmodel.h b/src/widgets/dialogs/qfilesystemmodel.h index 877b7891d4..b0f289dfcd 100644 --- a/src/widgets/dialogs/qfilesystemmodel.h +++ b/src/widgets/dialogs/qfilesystemmodel.h @@ -78,7 +78,7 @@ public: enum Option { - DontWatch = 0x00000001, + DontWatchForChanges = 0x00000001, DontResolveSymlinks = 0x00000002, DontUseCustomDirectoryIcons = 0x00000004 }; -- cgit v1.2.3 From c9f8893000249bd5701674c53d18a823b4a1c629 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Mon, 26 Aug 2019 16:58:47 +0300 Subject: Add support for aab Change-Id: I4814a51b25d5e3953e5e1c71d9a0e1bf3fed7385 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/tools/androiddeployqt/main.cpp | 113 +++++++++++++++++++++++-------------- 1 file changed, 71 insertions(+), 42 deletions(-) diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 4cba67051b..206c0ff374 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -121,8 +121,8 @@ struct Options , auxMode(false) , deploymentMechanism(Bundled) , releasePackage(false) - , digestAlg(QLatin1String("SHA1")) - , sigAlg(QLatin1String("SHA1withRSA")) + , digestAlg(QLatin1String("SHA-256")) + , sigAlg(QLatin1String("SHA256withRSA")) , internalSf(false) , sectionsOnly(false) , protectedAuthenticationPath(false) @@ -181,6 +181,8 @@ struct Options QString currentArchitecture; QString toolchainPrefix; QString ndkHost; + bool buildAAB = false; + // Package information DeploymentMechanism deploymentMechanism; @@ -412,7 +414,10 @@ Options parseOptions() options.helpRequested = true; else options.inputFileName = arguments.at(++i); - } else if (argument.compare(QLatin1String("--no-build"), Qt::CaseInsensitive) == 0) { + } else if (argument.compare(QLatin1String("--aab"), Qt::CaseInsensitive) == 0) { + options.buildAAB = true; + options.build = true; + } else if (options.buildAAB && argument.compare(QLatin1String("--no-build"), Qt::CaseInsensitive) == 0) { options.build = false; } else if (argument.compare(QLatin1String("--install"), Qt::CaseInsensitive) == 0) { options.installApk = true; @@ -553,6 +558,7 @@ void printHelp() " --deployment : Supported deployment mechanisms:\n" " bundled (default): Include Qt files in stand-alone package.\n" " ministro: Use the Ministro service to manage Qt files.\n" + " --aab: Build an Android App Bundle.\n" " --no-build: Do not build the package, it is useful to just install\n" " a package previously built.\n" " --install: Installs apk to device/emulator. By default this step is\n" @@ -2272,6 +2278,9 @@ bool buildAndroidProject(const Options &options) } QString commandLine = QLatin1String("%1 --no-daemon %2").arg(shellQuote(gradlePath), options.releasePackage ? QLatin1String(" assembleRelease") : QLatin1String(" assembleDebug")); + if (options.buildAAB) + commandLine += QLatin1String(" bundle"); + if (options.verbose) commandLine += QLatin1String(" --info"); @@ -2332,28 +2341,38 @@ bool uninstallApk(const Options &options) } enum PackageType { + AAB, UnsignedAPK, SignedAPK }; -QString apkPath(const Options &options, PackageType pt) +QString packagePath(const Options &options, PackageType pt) { QString path(options.outputDirectory); - path += QLatin1String("/build/outputs/apk/"); + path += QLatin1String("/build/outputs/%1/").arg(pt >= UnsignedAPK ? QStringLiteral("apk") : QStringLiteral("bundle")); QString buildType(options.releasePackage ? QLatin1String("release/") : QLatin1String("debug/")); if (QDir(path + buildType).exists()) path += buildType; path += QDir(options.outputDirectory).dirName() + QLatin1Char('-'); if (options.releasePackage) { path += QLatin1String("release-"); - if (pt == UnsignedAPK) - path += QLatin1String("un"); - path += QLatin1String("signed.apk"); + if (pt >= UnsignedAPK) { + if (pt == UnsignedAPK) + path += QLatin1String("un"); + path += QLatin1String("signed.apk"); + } else { + path.chop(1); + path += QLatin1String(".aab"); + } } else { path += QLatin1String("debug"); - if (pt == SignedAPK) - path += QLatin1String("-signed"); - path += QLatin1String(".apk"); + if (pt >= UnsignedAPK) { + if (pt == SignedAPK) + path += QLatin1String("-signed"); + path += QLatin1String(".apk"); + } else { + path += QLatin1String(".aab"); + } } return shellQuote(path); } @@ -2370,7 +2389,7 @@ bool installApk(const Options &options) FILE *adbCommand = runAdb(options, QLatin1String(" install -r ") - + apkPath(options, options.keyStore.isEmpty() ? UnsignedAPK + + packagePath(options, options.keyStore.isEmpty() ? UnsignedAPK : SignedAPK)); if (adbCommand == 0) return false; @@ -2396,7 +2415,7 @@ bool installApk(const Options &options) bool copyPackage(const Options &options) { fflush(stdout); - auto from = apkPath(options, options.keyStore.isEmpty() ? UnsignedAPK : SignedAPK); + auto from = packagePath(options, options.keyStore.isEmpty() ? UnsignedAPK : SignedAPK); QFile::remove(options.apkPath); return QFile::copy(from, options.apkPath); } @@ -2479,29 +2498,39 @@ bool jarSignerSignPackage(const Options &options) if (options.protectedAuthenticationPath) jarSignerTool += QLatin1String(" -protected"); - jarSignerTool += QLatin1String(" %1 %2") - .arg(apkPath(options, UnsignedAPK)) - .arg(shellQuote(options.keyStoreAlias)); + auto signPackage = [&](const QString &file) { + fprintf(stdout, "Signing file %s\n", qPrintable(file)); + fflush(stdout); + auto command = jarSignerTool + QLatin1String(" %1 %2") + .arg(file) + .arg(shellQuote(options.keyStoreAlias)); - FILE *jarSignerCommand = openProcess(jarSignerTool); - if (jarSignerCommand == 0) { - fprintf(stderr, "Couldn't run jarsigner.\n"); - return false; - } + FILE *jarSignerCommand = openProcess(command); + if (jarSignerCommand == 0) { + fprintf(stderr, "Couldn't run jarsigner.\n"); + return false; + } - if (options.verbose) { - char buffer[512]; - while (fgets(buffer, sizeof(buffer), jarSignerCommand) != 0) - fprintf(stdout, "%s", buffer); - } + if (options.verbose) { + char buffer[512]; + while (fgets(buffer, sizeof(buffer), jarSignerCommand) != 0) + fprintf(stdout, "%s", buffer); + } - int errorCode = pclose(jarSignerCommand); - if (errorCode != 0) { - fprintf(stderr, "jarsigner command failed.\n"); - if (!options.verbose) - fprintf(stderr, " -- Run with --verbose for more information.\n"); + int errorCode = pclose(jarSignerCommand); + if (errorCode != 0) { + fprintf(stderr, "jarsigner command failed.\n"); + if (!options.verbose) + fprintf(stderr, " -- Run with --verbose for more information.\n"); + return false; + } + return true; + }; + + if (!signPackage(packagePath(options, UnsignedAPK))) + return false; + if (options.buildAAB && !signPackage(packagePath(options, AAB))) return false; - } QString zipAlignTool = options.sdkPath + QLatin1String("/tools/zipalign"); #if defined(Q_OS_WIN32) @@ -2522,8 +2551,8 @@ bool jarSignerSignPackage(const Options &options) zipAlignTool = QLatin1String("%1%2 -f 4 %3 %4") .arg(shellQuote(zipAlignTool), options.verbose ? QLatin1String(" -v") : QLatin1String(), - apkPath(options, UnsignedAPK), - apkPath(options, SignedAPK)); + packagePath(options, UnsignedAPK), + packagePath(options, SignedAPK)); FILE *zipAlignCommand = openProcess(zipAlignTool); if (zipAlignCommand == 0) { @@ -2535,7 +2564,7 @@ bool jarSignerSignPackage(const Options &options) while (fgets(buffer, sizeof(buffer), zipAlignCommand) != 0) fprintf(stdout, "%s", buffer); - errorCode = pclose(zipAlignCommand); + int errorCode = pclose(zipAlignCommand); if (errorCode != 0) { fprintf(stderr, "zipalign command failed.\n"); if (!options.verbose) @@ -2543,7 +2572,7 @@ bool jarSignerSignPackage(const Options &options) return false; } - return QFile::remove(apkPath(options, UnsignedAPK)); + return QFile::remove(packagePath(options, UnsignedAPK)); } bool signPackage(const Options &options) @@ -2577,8 +2606,8 @@ bool signPackage(const Options &options) zipAlignTool = QLatin1String("%1%2 -f 4 %3 %4") .arg(shellQuote(zipAlignTool), options.verbose ? QLatin1String(" -v") : QLatin1String(), - apkPath(options, UnsignedAPK), - apkPath(options, SignedAPK)); + packagePath(options, UnsignedAPK), + packagePath(options, SignedAPK)); FILE *zipAlignCommand = openProcess(zipAlignTool); if (zipAlignCommand == 0) { @@ -2614,7 +2643,7 @@ bool signPackage(const Options &options) apkSignerCommandLine += QLatin1String(" --verbose"); apkSignerCommandLine += QLatin1String(" %1") - .arg(apkPath(options, SignedAPK)); + .arg(packagePath(options, SignedAPK)); auto apkSignerRunner = [&] { FILE *apkSignerCommand = openProcess(apkSignerCommandLine); @@ -2642,10 +2671,10 @@ bool signPackage(const Options &options) return false; apkSignerCommandLine = QLatin1String("%1 verify --verbose %2") - .arg(shellQuote(apksignerTool), apkPath(options, SignedAPK)); + .arg(shellQuote(apksignerTool), packagePath(options, SignedAPK)); // Verify the package and remove the unsigned apk - return apkSignerRunner() && QFile::remove(apkPath(options, UnsignedAPK)); + return apkSignerRunner() && QFile::remove(packagePath(options, UnsignedAPK)); } bool generateAssetsFileList(const Options &options) @@ -2869,7 +2898,7 @@ int main(int argc, char *argv[]) if (options.installApk) fprintf(stdout, " -- It can now be run from the selected device/emulator.\n"); - fprintf(stdout, " -- File: %s\n", qPrintable(apkPath(options, options.keyStore.isEmpty() ? UnsignedAPK + fprintf(stdout, " -- File: %s\n", qPrintable(packagePath(options, options.keyStore.isEmpty() ? UnsignedAPK : SignedAPK))); fflush(stdout); return 0; -- cgit v1.2.3 From 162e23d838101ddcd8e6416dd346465ac20bd05d Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 27 Aug 2019 12:42:29 +0300 Subject: Android: Add aab target Move aab, apk, apk_install_target to !build_pass, otherwise these targets will be executed for each android abi. Change-Id: I18f6c8946f503f2c08338f24758bf9059987fe0f Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/features/android/android.prf | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/mkspecs/features/android/android.prf b/mkspecs/features/android/android.prf index a12c17c4ed..fc0ff553d0 100644 --- a/mkspecs/features/android/android.prf +++ b/mkspecs/features/android/android.prf @@ -4,17 +4,22 @@ APK_PATH = $$shell_path($$OUT_PWD/android-build/$${TARGET}.apk) apk_install_target.depends = first apk_install_target.commands = $(MAKE) -f $(MAKEFILE) INSTALL_ROOT=$$OUT_PWD/android-build install - apk.target = apk - apk.depends = apk_install_target qtPrepareTool(ANDROIDDEPLOYQT, androiddeployqt) isEmpty(ANDROID_DEPLOYMENT_SETTINGS_FILE): ANDROID_DEPLOYMENT_SETTINGS_FILE = $$OUT_PWD/android-$$TARGET-deployment-settings.json contains(QMAKE_HOST.os, Windows): extension = .exe + + apk.target = apk + apk.depends = apk_install_target apk.commands = $$ANDROIDDEPLOYQT --input $$ANDROID_DEPLOYMENT_SETTINGS_FILE --output $$OUT_PWD/android-build --apk $$APK_PATH + + aab.target = aab + aab.depends = apk_install_target + aab.commands = $$ANDROIDDEPLOYQT --input $$ANDROID_DEPLOYMENT_SETTINGS_FILE --output $$OUT_PWD/android-build --aab --apk $$APK_PATH } else { + prepareRecursiveTarget(aab) prepareRecursiveTarget(apk) prepareRecursiveTarget(apk_install_target) } -QMAKE_EXTRA_TARGETS *= apk apk_install_target build_pass { contains(TEMPLATE, ".*app") { @@ -34,4 +39,11 @@ build_pass { target.path = /libs/$$ANDROID_TARGET_ARCH/ INSTALLS *= target } +} else { + QMAKE_EXTRA_TARGETS *= aab apk apk_install_target + + android-build-distclean.commands = \ + $$QMAKE_DEL_TREE $$shell_quote($$shell_path($$OUT_PWD/android-build)) + QMAKE_EXTRA_TARGETS *= android-build-distclean + CLEAN_DEPS += android-build-distclean } -- cgit v1.2.3 From c8d3eb35e73e650e73fcc47c78af6d86ff58bfd9 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 12 Jul 2019 15:02:09 +0200 Subject: Fixup move semantics of QColorSpace Stop using QExplicitlySharedDataPointer, makes it possible to inline the move constructor and assign operator. Also protect other methods from nullptr d_ptr, and change the default constructed value to also have a null d_ptr, to match the result after a move. Change-Id: I40928feef90cc956ef84d0516a77b0ee0f8986c7 Reviewed-by: Allan Sandfeld Jensen --- src/gui/painting/qcolorspace.cpp | 74 +++++++++++++--------- src/gui/painting/qcolorspace.h | 14 +++- src/gui/painting/qcolorspace_p.h | 15 ++++- .../gui/painting/qcolorspace/tst_qcolorspace.cpp | 23 +++++++ 4 files changed, 89 insertions(+), 37 deletions(-) diff --git a/src/gui/painting/qcolorspace.cpp b/src/gui/painting/qcolorspace.cpp index 043a951521..86d0c57cfe 100644 --- a/src/gui/painting/qcolorspace.cpp +++ b/src/gui/painting/qcolorspace.cpp @@ -461,19 +461,19 @@ QColorTransform QColorSpacePrivate::transformationToColorSpace(const QColorSpace Creates a new colorspace object that represents \a colorSpaceId. */ QColorSpace::QColorSpace(QColorSpace::ColorSpaceId colorSpaceId) -{ - static QExplicitlySharedDataPointer predefinedColorspacePrivates[QColorSpace::Bt2020]; - if (colorSpaceId <= QColorSpace::Unknown) { - if (!predefinedColorspacePrivates[0]) - predefinedColorspacePrivates[0] = new QColorSpacePrivate(QColorSpace::Undefined); - d_ptr = predefinedColorspacePrivates[0]; // unknown and undefined both returns the static undefined colorspace. - } else { - if (!predefinedColorspacePrivates[colorSpaceId - 1]) - predefinedColorspacePrivates[colorSpaceId - 1] = new QColorSpacePrivate(colorSpaceId); - d_ptr = predefinedColorspacePrivates[colorSpaceId - 1]; + : d_ptr(nullptr) +{ + static QColorSpacePrivate *predefinedColorspacePrivates[QColorSpace::Bt2020]; + // Unknown and undefined both returns the static undefined colorspace + if (colorSpaceId > QColorSpace::Unknown) { + if (!predefinedColorspacePrivates[colorSpaceId - 2]) { + predefinedColorspacePrivates[colorSpaceId - 2] = new QColorSpacePrivate(colorSpaceId); + predefinedColorspacePrivates[colorSpaceId - 2]->ref.ref(); + } + d_ptr = predefinedColorspacePrivates[colorSpaceId - 2]; + d_ptr->ref.ref(); + Q_ASSERT(isValid()); } - - Q_ASSERT(colorSpaceId == QColorSpace::Undefined || isValid()); } /*! @@ -483,6 +483,7 @@ QColorSpace::QColorSpace(QColorSpace::ColorSpaceId colorSpaceId) QColorSpace::QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction fun, float gamma) : d_ptr(new QColorSpacePrivate(primaries, fun, gamma)) { + d_ptr->ref.ref(); } /*! @@ -492,6 +493,7 @@ QColorSpace::QColorSpace(QColorSpace::Primaries primaries, QColorSpace::Transfer QColorSpace::QColorSpace(QColorSpace::Primaries primaries, float gamma) : d_ptr(new QColorSpacePrivate(primaries, TransferFunction::Gamma, gamma)) { + d_ptr->ref.ref(); } /*! @@ -505,35 +507,34 @@ QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, QColorSpacePrimaries primaries(whitePoint, redPoint, greenPoint, bluePoint); if (!primaries.areValid()) { qWarning() << "QColorSpace attempted constructed from invalid primaries:" << whitePoint << redPoint << greenPoint << bluePoint; - d_ptr = QColorSpace(QColorSpace::Undefined).d_ptr; + d_ptr = nullptr; return; } d_ptr = new QColorSpacePrivate(primaries, fun, gamma); + d_ptr->ref.ref(); } QColorSpace::~QColorSpace() { -} - -QColorSpace::QColorSpace(QColorSpace &&colorSpace) noexcept - : d_ptr(std::move(colorSpace.d_ptr)) -{ + if (d_ptr && !d_ptr->ref.deref()) + delete d_ptr; } QColorSpace::QColorSpace(const QColorSpace &colorSpace) : d_ptr(colorSpace.d_ptr) { -} - -QColorSpace &QColorSpace::operator=(QColorSpace &&colorSpace) noexcept -{ - d_ptr = std::move(colorSpace.d_ptr); - return *this; + if (d_ptr) + d_ptr->ref.ref(); } QColorSpace &QColorSpace::operator=(const QColorSpace &colorSpace) { + QColorSpacePrivate *oldD = d_ptr; d_ptr = colorSpace.d_ptr; + if (d_ptr) + d_ptr->ref.ref(); + if (oldD && !oldD->ref.deref()) + delete oldD; return *this; } @@ -549,6 +550,8 @@ QColorSpace &QColorSpace::operator=(const QColorSpace &colorSpace) */ QColorSpace::ColorSpaceId QColorSpace::colorSpaceId() const noexcept { + if (Q_UNLIKELY(!d_ptr)) + return QColorSpace::Undefined; return d_ptr->id; } @@ -571,6 +574,8 @@ QColorSpace::Primaries QColorSpace::primaries() const noexcept */ QColorSpace::TransferFunction QColorSpace::transferFunction() const noexcept { + if (Q_UNLIKELY(!d_ptr)) + return QColorSpace::TransferFunction::Custom; return d_ptr->transferFunction; } @@ -583,6 +588,8 @@ QColorSpace::TransferFunction QColorSpace::transferFunction() const noexcept */ float QColorSpace::gamma() const noexcept { + if (Q_UNLIKELY(!d_ptr)) + return 0.0f; return d_ptr->gamma; } @@ -599,7 +606,7 @@ void QColorSpace::setTransferFunction(QColorSpace::TransferFunction transferFunc return; if (d_ptr->transferFunction == transferFunction && d_ptr->gamma == gamma) return; - d_ptr.detach(); + QColorSpacePrivate::getWritable(*this); // detach d_ptr->description.clear(); d_ptr->transferFunction = transferFunction; d_ptr->gamma = gamma; @@ -637,7 +644,7 @@ void QColorSpace::setPrimaries(QColorSpace::Primaries primariesId) return; if (d_ptr->primaries == primariesId) return; - d_ptr.detach(); + QColorSpacePrivate::getWritable(*this); // detach d_ptr->description.clear(); d_ptr->primaries = primariesId; d_ptr->identifyColorSpace(); @@ -663,7 +670,7 @@ void QColorSpace::setPrimaries(const QPointF &whitePoint, const QPointF &redPoin QColorMatrix toXyz = primaries.toXyzMatrix(); if (QColorVector(primaries.whitePoint) == d_ptr->whitePoint && toXyz == d_ptr->toXyz) return; - d_ptr.detach(); + QColorSpacePrivate::getWritable(*this); // detach d_ptr->description.clear(); d_ptr->primaries = QColorSpace::Primaries::Custom; d_ptr->toXyz = toXyz; @@ -685,6 +692,8 @@ void QColorSpace::setPrimaries(const QPointF &whitePoint, const QPointF &redPoin */ QByteArray QColorSpace::iccProfile() const { + if (Q_UNLIKELY(!d_ptr)) + return QByteArray(); if (!d_ptr->iccProfile.isEmpty()) return d_ptr->iccProfile; if (!isValid()) @@ -708,8 +717,9 @@ QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile) QColorSpace colorSpace; if (QIcc::fromIccProfile(iccProfile, &colorSpace)) return colorSpace; - colorSpace.d_ptr->id = QColorSpace::Undefined; - colorSpace.d_ptr->iccProfile = iccProfile; + QColorSpacePrivate *d = QColorSpacePrivate::getWritable(colorSpace); + d->id = QColorSpace::Undefined; + d->iccProfile = iccProfile; return colorSpace; } @@ -718,7 +728,7 @@ QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile) */ bool QColorSpace::isValid() const noexcept { - return d_ptr->id != QColorSpace::Undefined && d_ptr->toXyz.isValid() + return d_ptr && d_ptr->id != QColorSpace::Undefined && d_ptr->toXyz.isValid() && d_ptr->trc[0].isValid() && d_ptr->trc[1].isValid() && d_ptr->trc[2].isValid(); } @@ -731,6 +741,8 @@ bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2) { if (colorSpace1.d_ptr == colorSpace2.d_ptr) return true; + if (!colorSpace1.d_ptr || !colorSpace2.d_ptr) + return false; if (colorSpace1.colorSpaceId() == QColorSpace::Undefined && colorSpace2.colorSpaceId() == QColorSpace::Undefined) return colorSpace1.d_ptr->iccProfile == colorSpace2.d_ptr->iccProfile; @@ -780,7 +792,7 @@ QColorTransform QColorSpace::transformationToColorSpace(const QColorSpace &color if (!isValid() || !colorspace.isValid()) return QColorTransform(); - return d_ptr->transformationToColorSpace(colorspace.d_ptr.constData()); + return d_ptr->transformationToColorSpace(colorspace.d_ptr); } /***************************************************************************** diff --git a/src/gui/painting/qcolorspace.h b/src/gui/painting/qcolorspace.h index a7c1091911..5941682bbb 100644 --- a/src/gui/painting/qcolorspace.h +++ b/src/gui/painting/qcolorspace.h @@ -90,11 +90,19 @@ public: TransferFunction fun, float gamma = 0.0f); ~QColorSpace(); - QColorSpace(QColorSpace &&colorSpace) noexcept; QColorSpace(const QColorSpace &colorSpace); - QColorSpace &operator=(QColorSpace &&colorSpace) noexcept; QColorSpace &operator=(const QColorSpace &colorSpace); + QColorSpace(QColorSpace &&colorSpace) noexcept + : d_ptr(qExchange(colorSpace.d_ptr, nullptr)) + { } + QColorSpace &operator=(QColorSpace &&colorSpace) noexcept + { + // Make the deallocation of this->d_ptr happen in ~QColorSpace() + QColorSpace(std::move(colorSpace)).swap(*this); + return *this; + } + void swap(QColorSpace &colorSpace) noexcept { qSwap(d_ptr, colorSpace.d_ptr); } @@ -123,7 +131,7 @@ public: private: Q_DECLARE_PRIVATE(QColorSpace) - QExplicitlySharedDataPointer d_ptr; + QColorSpacePrivate *d_ptr; }; bool Q_GUI_EXPORT operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2); diff --git a/src/gui/painting/qcolorspace_p.h b/src/gui/painting/qcolorspace_p.h index 2a40a0cfd8..037111a0ae 100644 --- a/src/gui/painting/qcolorspace_p.h +++ b/src/gui/painting/qcolorspace_p.h @@ -95,15 +95,24 @@ public: QColorSpacePrivate(const QColorSpacePrimaries &primaries, QColorSpace::TransferFunction fun, float gamma); QColorSpacePrivate(const QColorSpacePrivate &other) = default; + // named different from get to avoid accidental detachs static QColorSpacePrivate *getWritable(QColorSpace &colorSpace) { - colorSpace.d_ptr.detach(); - return colorSpace.d_ptr.data(); + if (!colorSpace.d_ptr) { + colorSpace.d_ptr = new QColorSpacePrivate; + colorSpace.d_ptr->ref.ref(); + } else if (colorSpace.d_ptr->ref.loadRelaxed() != 1) { + colorSpace.d_ptr->ref.deref(); + colorSpace.d_ptr = new QColorSpacePrivate(*colorSpace.d_ptr); + colorSpace.d_ptr->ref.ref(); + } + Q_ASSERT(colorSpace.d_ptr->ref.loadRelaxed() == 1); + return colorSpace.d_ptr; } static const QColorSpacePrivate *get(const QColorSpace &colorSpace) { - return colorSpace.d_ptr.data(); + return colorSpace.d_ptr; } void initialize(); diff --git a/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp b/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp index bc1a45013c..9e13dc80b4 100644 --- a/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp +++ b/tests/auto/gui/painting/qcolorspace/tst_qcolorspace.cpp @@ -47,6 +47,7 @@ public: tst_QColorSpace(); private slots: + void movable(); void namedColorSpaces_data(); void namedColorSpaces(); @@ -75,6 +76,28 @@ tst_QColorSpace::tst_QColorSpace() { } +void tst_QColorSpace::movable() +{ + QColorSpace cs1 = QColorSpace::SRgb; + QColorSpace cs2 = QColorSpace::SRgbLinear; + QVERIFY(cs1.isValid()); + QVERIFY(cs2.isValid()); + QCOMPARE(cs1.colorSpaceId(), QColorSpace::SRgb); + + cs2 = std::move(cs1); + QVERIFY(!cs1.isValid()); + QVERIFY(cs2.isValid()); + QCOMPARE(cs2.colorSpaceId(), QColorSpace::SRgb); + QCOMPARE(cs1.colorSpaceId(), QColorSpace::Undefined); + QCOMPARE(cs1, QColorSpace()); + + QColorSpace cs3(std::move(cs2)); + QVERIFY(!cs2.isValid()); + QVERIFY(cs3.isValid()); + QCOMPARE(cs3.colorSpaceId(), QColorSpace::SRgb); + QCOMPARE(cs2.colorSpaceId(), QColorSpace::Undefined); +} + void tst_QColorSpace::namedColorSpaces_data() { QTest::addColumn("colorSpaceId"); -- cgit v1.2.3 From bc1f7c7cce30dc158b4a89f65acf7288f10447dd Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 30 Aug 2019 11:48:50 +0200 Subject: Fixup includes One include too many and one too little. Change-Id: I9963adb02523305d753135c0f5a6baefb83a06f1 Reviewed-by: Giuseppe D'Angelo --- src/gui/painting/qcolorspace.h | 2 ++ src/gui/painting/qcolortransform.h | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gui/painting/qcolorspace.h b/src/gui/painting/qcolorspace.h index 5941682bbb..880f0ad4cf 100644 --- a/src/gui/painting/qcolorspace.h +++ b/src/gui/painting/qcolorspace.h @@ -42,11 +42,13 @@ #include #include +#include #include QT_BEGIN_NAMESPACE class QColorSpacePrivate; +class QPointF; class Q_GUI_EXPORT QColorSpace { diff --git a/src/gui/painting/qcolortransform.h b/src/gui/painting/qcolortransform.h index 5fb51739a7..94b6b3a385 100644 --- a/src/gui/painting/qcolortransform.h +++ b/src/gui/painting/qcolortransform.h @@ -41,7 +41,6 @@ #define QCOLORTRANSFORM_H #include -#include #include QT_BEGIN_NAMESPACE -- cgit v1.2.3