From d236661940b09194cc6a864ffbe687569922787e Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 22 Nov 2016 15:35:57 +0100 Subject: Fix qrc test Make this test pass when we have the time stamp available in the qrc data (since commit d20773824529d191e7b483b505107dce6c1b1c3d in qtbase) or when not (when the engine falls back to the program executable). Change-Id: Idb9a6951d76515a2482d573b40da99871bc442cd Reviewed-by: Lars Knoll --- tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp index e2c0055ea1..f8698f0afa 100644 --- a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp +++ b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp @@ -563,7 +563,11 @@ void tst_qmldiskcache::cacheResources() QVERIFY2(cacheFile.open(QIODevice::ReadOnly), qPrintable(cacheFile.errorString())); QV4::CompiledData::Unit unit; QVERIFY(cacheFile.read(reinterpret_cast(&unit), sizeof(unit)) == sizeof(unit)); - QCOMPARE(qint64(unit.sourceTimeStamp), QFileInfo(QCoreApplication::applicationFilePath()).lastModified().toMSecsSinceEpoch()); + + QDateTime referenceTimeStamp = QFileInfo(":/test.qml").lastModified(); + if (!referenceTimeStamp.isValid()) + referenceTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified(); + QCOMPARE(qint64(unit.sourceTimeStamp), referenceTimeStamp.toMSecsSinceEpoch()); } } -- cgit v1.2.3 From eb7ec4fb9492b51d8371d8689b9538d6d22d13fd Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 22 Nov 2016 15:53:07 +0100 Subject: Fix handling of qrc:/// urls with disk caching Use the right function for converting a qrc:/// url to a local path. QUrl::toLocalFile() gives us an empty path, which prevents us from getting a time stamp and comparing it against the stamp in the cache file. This fixes disk caching with samegame. Change-Id: Id3eb270f1f7a7f25143d2f075a45f32bdb0384c5 Reviewed-by: Lars Knoll --- src/qml/compiler/qv4compileddata.cpp | 2 +- tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/qml/compiler/qv4compileddata.cpp b/src/qml/compiler/qv4compileddata.cpp index e815c41a86..f8668b48e4 100644 --- a/src/qml/compiler/qv4compileddata.cpp +++ b/src/qml/compiler/qv4compileddata.cpp @@ -397,7 +397,7 @@ bool CompilationUnit::loadFromDisk(const QUrl &url, EvalISelFactory *iselFactory return false; } - const QString sourcePath = url.toLocalFile(); + const QString sourcePath = QQmlFile::urlToLocalFileOrQrc(url); QScopedPointer cacheFile(new CompilationUnitMapper()); CompiledData::Unit *mappedUnit = cacheFile->open(cacheFilePath(url), sourcePath, errorString); diff --git a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp index f8698f0afa..8af446173d 100644 --- a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp +++ b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp @@ -549,7 +549,6 @@ void tst_qmldiskcache::cacheResources() { CleanlyLoadingComponent component(&engine, QUrl("qrc:/test.qml")); - qDebug() << component.errorString(); QScopedPointer obj(component.create()); QVERIFY(!obj.isNull()); QCOMPARE(obj->property("value").toInt(), 20); @@ -558,17 +557,37 @@ void tst_qmldiskcache::cacheResources() const QStringList entries = QDir(qmlCacheDirectory).entryList(QDir::NoDotAndDotDot | QDir::Files); QCOMPARE(entries.count(), 1); + QDateTime cacheFileTimeStamp; + { QFile cacheFile(qmlCacheDirectory + QLatin1Char('/') + entries.constFirst()); QVERIFY2(cacheFile.open(QIODevice::ReadOnly), qPrintable(cacheFile.errorString())); QV4::CompiledData::Unit unit; QVERIFY(cacheFile.read(reinterpret_cast(&unit), sizeof(unit)) == sizeof(unit)); + cacheFileTimeStamp = QFileInfo(cacheFile.fileName()).lastModified(); + QDateTime referenceTimeStamp = QFileInfo(":/test.qml").lastModified(); if (!referenceTimeStamp.isValid()) referenceTimeStamp = QFileInfo(QCoreApplication::applicationFilePath()).lastModified(); QCOMPARE(qint64(unit.sourceTimeStamp), referenceTimeStamp.toMSecsSinceEpoch()); } + + waitForFileSystem(); + + { + CleanlyLoadingComponent component(&engine, QUrl("qrc:///test.qml")); + QScopedPointer obj(component.create()); + QVERIFY(!obj.isNull()); + QCOMPARE(obj->property("value").toInt(), 20); + } + + { + const QStringList entries = QDir(qmlCacheDirectory).entryList(QDir::NoDotAndDotDot | QDir::Files); + QCOMPARE(entries.count(), 1); + + QCOMPARE(QFileInfo(qmlCacheDirectory + QLatin1Char('/') + entries.constFirst()).lastModified().toMSecsSinceEpoch(), cacheFileTimeStamp.toMSecsSinceEpoch()); + } } void tst_qmldiskcache::stableOrderOfDependentCompositeTypes() -- cgit v1.2.3 From d274cff81027983de6cac3553bed38e712976210 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 22 Nov 2016 16:49:06 +0100 Subject: Fix up QML grammar file Commit 45bd04ba73bd3e71c070e5724535ba87f6771323 changed the embedded license headers to the $LGPL tag but accidentally removed the header that is embedded in the output. In addition there have been changes to the generated code that were not reflected in the .g file. With these changes the qlalr output matches the files that are checked in. Change-Id: I693e20cf5237098425ba79182089d213179e6dfa Reviewed-by: Lars Knoll --- src/qml/parser/qqmljs.g | 85 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 14 deletions(-) diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index 161c8ffcde..a562ecdfa5 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -5,27 +5,33 @@ -- -- This file is part of the QtQml module of the Qt Toolkit. -- --- $QT_BEGIN_LICENSE:LGPL21$ +-- $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 http://www.qt.io/terms-conditions. For further --- information use the contact form at http://www.qt.io/contact-us. +-- 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 2.1 or version 3 as published by the Free --- Software Foundation and appearing in the file LICENSE.LGPLv21 and --- LICENSE.LGPLv3 included in the packaging of this file. Please review the --- following information to ensure the GNU Lesser General Public License --- requirements will be met: https://www.gnu.org/licenses/lgpl.html and --- http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +-- 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. -- --- As a special exception, The Qt Company gives you certain additional --- rights. These rights are described in The Qt Company LGPL Exception --- version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +-- 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$ -- @@ -136,6 +142,57 @@ ** ****************************************************************************/ +#include "qqmljsengine_p.h" +#include "qqmljslexer_p.h" +#include "qqmljsast_p.h" +#include "qqmljsmemorypool_p.h" + +#include +#include + +#include + +./ + +/:/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtQml 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$ +** +****************************************************************************/ + // // W A R N I N G @@ -273,7 +330,7 @@ public: inline DiagnosticMessage diagnosticMessage() const { - foreach (const DiagnosticMessage &d, diagnostic_messages) { + for (const DiagnosticMessage &d : diagnostic_messages) { if (d.kind != DiagnosticMessage::Warning) return d; } @@ -3003,7 +3060,7 @@ PropertyAssignmentListOpt: PropertyAssignmentList ; yylloc.startColumn += yylloc.length; yylloc.length = 0; - //const QString msg = qApp->translate("QQmlParser", "Missing `;'"); + //const QString msg = QCoreApplication::translate("QQmlParser", "Missing `;'"); //diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, yylloc, msg)); first_token = &token_buffer[0]; -- cgit v1.2.3 From 7b7fb7fe3ab8ce5db744329b2f138fd8b2a811ea Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Wed, 23 Nov 2016 09:47:48 +0100 Subject: Fix support for QML declared default list properties The grammar was not permitting to write default property list myChildren; and instead developers had to work around it with an alias property list myChildrenData; default property alias myChildren: myChildrenData which is not nice. Fortunately this is easy to fix in the grammar. Task-number: QTBUG-10822 Change-Id: I4e914ddb9588913da09e9fb6c6aa154cf8a9e18f Reviewed-by: Lars Knoll --- src/qml/parser/qqmljs.g | 17 + src/qml/parser/qqmljsgrammar.cpp | 1781 ++++++++++---------- src/qml/parser/qqmljsgrammar_p.h | 12 +- src/qml/parser/qqmljsparser.cpp | 389 ++--- src/qml/parser/qqmljsparser_p.h | 4 +- .../qml/qqmllanguage/data/QtObjectWithChildren.qml | 5 + .../qml/qqmllanguage/data/defaultListProperty.qml | 6 + tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp | 9 + 8 files changed, 1150 insertions(+), 1073 deletions(-) create mode 100644 tests/auto/qml/qqmllanguage/data/QtObjectWithChildren.qml create mode 100644 tests/auto/qml/qqmllanguage/data/defaultListProperty.qml diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index a562ecdfa5..a3ca9c44d0 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -1026,6 +1026,23 @@ case $rule_number: { } break; ./ +UiObjectMember: T_DEFAULT T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_SEMICOLON ; +/. +case $rule_number: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(5), stringRef(7)); + node->isDefaultMember = true; + node->defaultToken = loc(1); + node->typeModifier = stringRef(3); + node->propertyToken = loc(2); + node->typeModifierToken = loc(2); + node->typeToken = loc(4); + node->identifierToken = loc(7); + node->semicolonToken = loc(8); + sym(1).Node = node; +} break; +./ + UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_COLON UiScriptStatement ; /. case $rule_number: { diff --git a/src/qml/parser/qqmljsgrammar.cpp b/src/qml/parser/qqmljsgrammar.cpp index d7fea7d815..fdcd94b472 100644 --- a/src/qml/parser/qqmljsgrammar.cpp +++ b/src/qml/parser/qqmljsgrammar.cpp @@ -63,35 +63,35 @@ const short QQmlJSGrammar::lhs [] = { 130, 130, 130, 130, 130, 130, 130, 111, 138, 138, 138, 139, 139, 140, 140, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 124, 124, 124, 124, 124, 124, 124, + 111, 111, 111, 111, 111, 124, 124, 124, 124, 124, + 124, 124, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 143, 129, 145, - 145, 145, 145, 144, 144, 149, 149, 149, 147, 147, - 150, 150, 150, 150, 153, 153, 153, 153, 153, 153, + 129, 145, 145, 145, 145, 144, 144, 149, 149, 149, + 147, 147, 150, 150, 150, 150, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 154, 154, 120, 120, 120, - 120, 120, 157, 157, 158, 158, 158, 158, 156, 156, - 159, 159, 160, 160, 161, 161, 161, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, - 163, 164, 164, 164, 165, 165, 165, 165, 166, 166, - 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, - 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, - 169, 170, 170, 171, 171, 172, 172, 173, 173, 174, - 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, - 179, 180, 180, 181, 181, 148, 148, 182, 182, 183, - 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 183, 109, 109, 184, 184, 185, 185, 186, 186, 108, - 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 131, 195, 195, 194, 194, 142, - 142, 196, 196, 197, 197, 199, 199, 198, 200, 203, - 201, 201, 204, 202, 202, 132, 133, 133, 134, 134, - 187, 187, 187, 187, 187, 187, 187, 187, 188, 188, - 188, 188, 189, 189, 189, 189, 190, 190, 135, 136, - 205, 205, 208, 208, 206, 206, 209, 207, 191, 192, - 192, 137, 137, 137, 210, 211, 193, 193, 212, 141, - 155, 155, 213, 213, 152, 152, 151, 151, 214, 112, - 112, 215, 215, 110, 110, 146, 146, 216}; + 153, 153, 153, 153, 153, 153, 153, 154, 154, 120, + 120, 120, 120, 120, 157, 157, 158, 158, 158, 158, + 156, 156, 159, 159, 160, 160, 161, 161, 161, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 163, + 163, 163, 163, 164, 164, 164, 165, 165, 165, 165, + 166, 166, 166, 166, 166, 166, 166, 167, 167, 167, + 167, 167, 167, 168, 168, 168, 168, 168, 169, 169, + 169, 169, 169, 170, 170, 171, 171, 172, 172, 173, + 173, 174, 174, 175, 175, 176, 176, 177, 177, 178, + 178, 179, 179, 180, 180, 181, 181, 148, 148, 182, + 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, + 183, 183, 183, 109, 109, 184, 184, 185, 185, 186, + 186, 108, 108, 108, 108, 108, 108, 108, 108, 108, + 108, 108, 108, 108, 108, 108, 131, 195, 195, 194, + 194, 142, 142, 196, 196, 197, 197, 199, 199, 198, + 200, 203, 201, 201, 204, 202, 202, 132, 133, 133, + 134, 134, 187, 187, 187, 187, 187, 187, 187, 187, + 188, 188, 188, 188, 189, 189, 189, 189, 190, 190, + 135, 136, 205, 205, 208, 208, 206, 206, 209, 207, + 191, 192, 192, 137, 137, 137, 210, 211, 193, 193, + 212, 141, 155, 155, 213, 213, 152, 152, 151, 151, + 214, 112, 112, 215, 215, 110, 110, 146, 146, 216}; const short QQmlJSGrammar::rhs [] = { 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, @@ -100,111 +100,112 @@ const short QQmlJSGrammar::rhs [] = { 2, 1, 3, 2, 3, 2, 1, 5, 4, 4, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 2, 4, 6, 6, 3, 3, 7, - 7, 4, 4, 5, 5, 5, 6, 6, 10, 6, - 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 7, 4, 4, 5, 5, 8, 8, 5, 6, 6, + 10, 6, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 3, 3, 4, 5, 3, 4, 3, 1, 1, - 2, 3, 4, 1, 2, 3, 7, 8, 1, 3, + 1, 1, 2, 3, 3, 4, 5, 3, 4, 3, + 1, 1, 2, 3, 4, 1, 2, 3, 7, 8, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 3, 5, 1, 2, 4, 4, 4, 3, 0, 1, - 1, 3, 1, 1, 1, 2, 2, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, - 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, - 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, - 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, + 1, 4, 3, 5, 1, 2, 4, 4, 4, 3, + 0, 1, 1, 3, 1, 1, 1, 2, 2, 1, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, + 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, + 1, 3, 3, 3, 3, 3, 3, 1, 3, 3, + 3, 3, 3, 1, 3, 3, 3, 3, 1, 3, + 3, 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 5, 1, 5, 1, 3, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, + 3, 1, 3, 1, 5, 1, 5, 1, 3, 1, + 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 3, 1, 2, 0, 1, 3, - 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, - 0, 1, 2, 0, 1, 1, 2, 2, 7, 5, - 7, 7, 7, 5, 9, 10, 7, 8, 2, 2, - 3, 3, 2, 2, 3, 3, 3, 3, 5, 5, - 3, 5, 1, 2, 0, 1, 4, 3, 3, 3, - 3, 3, 3, 4, 5, 2, 2, 2, 1, 8, - 8, 7, 1, 3, 0, 1, 0, 1, 1, 1, - 1, 1, 2, 1, 1, 0, 1, 2}; + 1, 1, 1, 1, 1, 1, 3, 1, 2, 0, + 1, 3, 3, 1, 1, 1, 3, 1, 3, 2, + 2, 2, 0, 1, 2, 0, 1, 1, 2, 2, + 7, 5, 7, 7, 7, 5, 9, 10, 7, 8, + 2, 2, 3, 3, 2, 2, 3, 3, 3, 3, + 5, 5, 3, 5, 1, 2, 0, 1, 4, 3, + 3, 3, 3, 3, 3, 4, 5, 2, 2, 2, + 1, 8, 8, 7, 1, 3, 0, 1, 0, 1, + 1, 1, 1, 1, 2, 1, 1, 0, 1, 2}; const short QQmlJSGrammar::action_default [] = { - 0, 0, 28, 0, 0, 0, 28, 0, 185, 252, - 216, 224, 220, 164, 236, 212, 3, 149, 82, 165, - 228, 232, 153, 182, 163, 168, 148, 202, 189, 0, - 89, 90, 85, 0, 79, 74, 356, 0, 0, 0, - 0, 87, 0, 0, 83, 86, 78, 0, 0, 75, - 77, 80, 76, 88, 81, 0, 84, 0, 0, 178, - 0, 0, 165, 184, 167, 166, 0, 0, 0, 180, - 181, 179, 183, 0, 213, 0, 0, 0, 0, 203, - 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, - 187, 188, 186, 191, 195, 194, 192, 190, 205, 204, - 206, 0, 221, 0, 217, 0, 0, 159, 146, 158, - 147, 115, 116, 117, 142, 118, 143, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 144, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 145, 0, 0, 157, 253, 160, 0, 161, 0, - 162, 156, 0, 249, 242, 240, 247, 248, 246, 245, - 251, 244, 243, 241, 250, 237, 0, 225, 0, 0, - 229, 0, 0, 233, 0, 0, 159, 151, 0, 150, - 0, 155, 169, 0, 345, 345, 346, 0, 343, 0, - 344, 0, 347, 260, 267, 266, 274, 262, 0, 263, - 0, 348, 0, 355, 264, 265, 82, 270, 268, 352, - 349, 354, 271, 0, 282, 0, 0, 0, 0, 339, - 0, 356, 254, 296, 0, 0, 0, 283, 0, 0, - 272, 273, 0, 261, 269, 297, 298, 0, 345, 0, - 0, 347, 0, 340, 341, 0, 329, 353, 0, 313, - 314, 315, 316, 0, 309, 310, 311, 312, 337, 338, - 0, 0, 0, 0, 0, 301, 302, 303, 258, 256, - 218, 226, 222, 238, 214, 259, 0, 165, 230, 234, - 207, 196, 0, 0, 215, 0, 0, 0, 0, 208, - 0, 0, 0, 0, 0, 200, 198, 201, 199, 197, - 210, 209, 211, 0, 223, 0, 219, 0, 257, 165, - 0, 239, 254, 255, 0, 254, 0, 0, 305, 0, - 0, 0, 307, 0, 227, 0, 0, 231, 0, 0, - 235, 294, 0, 286, 295, 289, 0, 293, 0, 254, - 287, 0, 254, 0, 0, 306, 0, 0, 0, 308, - 0, 0, 0, 300, 0, 299, 82, 109, 357, 0, - 0, 114, 276, 279, 0, 115, 282, 118, 143, 120, - 121, 85, 125, 126, 79, 127, 130, 83, 86, 254, - 80, 88, 133, 81, 135, 84, 137, 138, 283, 140, - 141, 145, 0, 111, 110, 113, 97, 112, 96, 0, - 106, 277, 275, 0, 0, 0, 347, 0, 107, 153, - 154, 159, 0, 152, 0, 317, 318, 0, 345, 0, - 0, 347, 0, 108, 0, 0, 0, 320, 325, 323, - 326, 0, 0, 324, 325, 0, 321, 0, 322, 278, - 328, 0, 278, 327, 0, 330, 331, 0, 278, 332, - 333, 0, 0, 334, 0, 0, 0, 335, 336, 171, - 170, 0, 0, 0, 304, 0, 0, 0, 319, 291, - 284, 0, 292, 288, 0, 290, 280, 0, 281, 285, - 0, 0, 347, 0, 342, 100, 0, 0, 104, 91, - 0, 93, 102, 0, 94, 103, 105, 95, 101, 92, - 0, 98, 175, 173, 177, 174, 172, 176, 350, 6, - 351, 4, 2, 72, 99, 0, 0, 75, 77, 76, - 37, 5, 0, 73, 0, 51, 50, 49, 0, 0, - 64, 0, 65, 41, 42, 43, 44, 46, 47, 68, - 45, 0, 51, 0, 0, 0, 0, 0, 60, 0, - 61, 0, 0, 32, 0, 0, 69, 33, 0, 36, - 34, 30, 0, 35, 31, 0, 62, 0, 63, 153, - 0, 66, 70, 0, 0, 0, 0, 153, 278, 0, - 67, 82, 115, 282, 118, 143, 120, 121, 85, 125, - 126, 127, 130, 83, 86, 254, 88, 133, 81, 135, - 84, 137, 138, 283, 140, 141, 145, 71, 0, 58, - 52, 59, 53, 0, 0, 0, 0, 55, 0, 56, - 57, 54, 0, 0, 0, 0, 48, 0, 38, 39, - 0, 40, 8, 0, 0, 9, 0, 11, 0, 10, - 0, 1, 27, 15, 14, 26, 13, 12, 29, 7, - 0, 18, 0, 19, 0, 24, 25, 0, 20, 21, - 0, 22, 23, 16, 17, 358}; + 0, 0, 28, 0, 0, 0, 28, 0, 187, 254, + 218, 226, 222, 166, 238, 214, 3, 151, 84, 167, + 230, 234, 155, 184, 165, 170, 150, 204, 191, 0, + 91, 92, 87, 0, 81, 76, 358, 0, 0, 0, + 0, 89, 0, 0, 85, 88, 80, 0, 0, 77, + 79, 82, 78, 90, 83, 0, 86, 0, 0, 180, + 0, 0, 167, 186, 169, 168, 0, 0, 0, 182, + 183, 181, 185, 0, 215, 0, 0, 0, 0, 205, + 0, 0, 0, 0, 0, 0, 195, 0, 0, 0, + 189, 190, 188, 193, 197, 196, 194, 192, 207, 206, + 208, 0, 223, 0, 219, 0, 0, 161, 148, 160, + 149, 117, 118, 119, 144, 120, 145, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 146, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 147, 0, 0, 159, 255, 162, 0, 163, 0, + 164, 158, 0, 251, 244, 242, 249, 250, 248, 247, + 253, 246, 245, 243, 252, 239, 0, 227, 0, 0, + 231, 0, 0, 235, 0, 0, 161, 153, 0, 152, + 0, 157, 171, 0, 347, 347, 348, 0, 345, 0, + 346, 0, 349, 262, 269, 268, 276, 264, 0, 265, + 0, 350, 0, 357, 266, 267, 84, 272, 270, 354, + 351, 356, 273, 0, 284, 0, 0, 0, 0, 341, + 0, 358, 256, 298, 0, 0, 0, 285, 0, 0, + 274, 275, 0, 263, 271, 299, 300, 0, 347, 0, + 0, 349, 0, 342, 343, 0, 331, 355, 0, 315, + 316, 317, 318, 0, 311, 312, 313, 314, 339, 340, + 0, 0, 0, 0, 0, 303, 304, 305, 260, 258, + 220, 228, 224, 240, 216, 261, 0, 167, 232, 236, + 209, 198, 0, 0, 217, 0, 0, 0, 0, 210, + 0, 0, 0, 0, 0, 202, 200, 203, 201, 199, + 212, 211, 213, 0, 225, 0, 221, 0, 259, 167, + 0, 241, 256, 257, 0, 256, 0, 0, 307, 0, + 0, 0, 309, 0, 229, 0, 0, 233, 0, 0, + 237, 296, 0, 288, 297, 291, 0, 295, 0, 256, + 289, 0, 256, 0, 0, 308, 0, 0, 0, 310, + 0, 0, 0, 302, 0, 301, 84, 111, 359, 0, + 0, 116, 278, 281, 0, 117, 284, 120, 145, 122, + 123, 87, 127, 128, 81, 129, 132, 85, 88, 256, + 82, 90, 135, 83, 137, 86, 139, 140, 285, 142, + 143, 147, 0, 113, 112, 115, 99, 114, 98, 0, + 108, 279, 277, 0, 0, 0, 349, 0, 109, 155, + 156, 161, 0, 154, 0, 319, 320, 0, 347, 0, + 0, 349, 0, 110, 0, 0, 0, 322, 327, 325, + 328, 0, 0, 326, 327, 0, 323, 0, 324, 280, + 330, 0, 280, 329, 0, 332, 333, 0, 280, 334, + 335, 0, 0, 336, 0, 0, 0, 337, 338, 173, + 172, 0, 0, 0, 306, 0, 0, 0, 321, 293, + 286, 0, 294, 290, 0, 292, 282, 0, 283, 287, + 0, 0, 349, 0, 344, 102, 0, 0, 106, 93, + 0, 95, 104, 0, 96, 105, 107, 97, 103, 94, + 0, 100, 177, 175, 179, 176, 174, 178, 352, 6, + 353, 4, 2, 74, 101, 0, 0, 77, 79, 78, + 37, 5, 0, 75, 0, 51, 50, 49, 0, 0, + 51, 0, 0, 0, 66, 67, 0, 64, 0, 65, + 41, 42, 43, 44, 46, 47, 70, 45, 0, 51, + 0, 0, 0, 0, 0, 60, 0, 61, 0, 0, + 32, 0, 0, 71, 33, 0, 36, 34, 30, 0, + 35, 31, 0, 62, 0, 63, 155, 0, 68, 72, + 0, 0, 0, 0, 155, 280, 0, 69, 84, 117, + 284, 120, 145, 122, 123, 87, 127, 128, 129, 132, + 85, 88, 256, 90, 135, 83, 137, 86, 139, 140, + 285, 142, 143, 147, 73, 0, 58, 52, 59, 53, + 0, 0, 0, 0, 55, 0, 56, 57, 54, 0, + 0, 0, 0, 48, 0, 38, 39, 0, 40, 8, + 0, 0, 9, 0, 11, 0, 10, 0, 1, 27, + 15, 14, 26, 13, 12, 29, 7, 0, 18, 0, + 19, 0, 24, 25, 0, 20, 21, 0, 22, 23, + 16, 17, 360}; const short QQmlJSGrammar::goto_default [] = { - 7, 641, 211, 198, 209, 521, 509, 636, 649, 508, - 635, 639, 637, 645, 22, 642, 640, 638, 18, 520, - 562, 552, 559, 554, 539, 193, 197, 199, 204, 234, - 212, 231, 543, 613, 612, 203, 233, 26, 487, 486, + 7, 648, 211, 198, 209, 521, 509, 643, 656, 508, + 642, 646, 644, 652, 22, 649, 647, 645, 18, 520, + 569, 559, 566, 561, 546, 193, 197, 199, 204, 234, + 212, 231, 550, 620, 619, 203, 233, 26, 487, 486, 359, 358, 9, 357, 360, 202, 480, 361, 109, 17, 147, 24, 13, 146, 19, 25, 59, 23, 8, 28, 27, 280, 15, 274, 10, 270, 12, 272, 11, 271, @@ -215,870 +216,896 @@ const short QQmlJSGrammar::goto_default [] = { 0}; const short QQmlJSGrammar::action_index [] = { - 264, 1225, 2708, 2708, 2606, 938, 94, 104, 119, -106, - 92, 79, 81, 262, -106, 263, 78, -106, -106, 654, - 89, 125, 259, 229, -106, -106, -106, 322, 314, 1225, - -106, -106, -106, 412, -106, -106, 2300, 1713, 1225, 1225, - 1225, -106, 842, 1225, -106, -106, -106, 1225, 1225, -106, - -106, -106, -106, -106, -106, 1225, -106, 1225, 1225, -106, - 1225, 1225, 141, 216, -106, -106, 1225, 1225, 1225, -106, - -106, -106, 209, 1225, 281, 1225, 1225, 1225, 1225, 367, - 1225, 1225, 1225, 1225, 1225, 1225, 219, 1225, 1225, 1225, - 101, 102, 115, 314, 314, 314, 314, 314, 357, 347, - 337, 1225, 71, 1225, 70, 2198, 1225, 1225, -106, -106, + 282, 1392, 2773, 2773, 2875, 1105, 102, 105, 129, -106, + -1, 23, -23, 224, -106, 378, 26, -106, -106, 718, + 39, 87, 207, 222, -106, -106, -106, 342, 290, 1392, + -106, -106, -106, 502, -106, -106, 2569, 1880, 1392, 1392, + 1392, -106, 1009, 1392, -106, -106, -106, 1392, 1392, -106, + -106, -106, -106, -106, -106, 1392, -106, 1392, 1392, -106, + 1392, 1392, 97, 236, -106, -106, 1392, 1392, 1392, -106, + -106, -106, 233, 1392, 378, 1392, 1392, 1392, 1392, 461, + 1392, 1392, 1392, 1392, 1392, 1392, 290, 1392, 1392, 1392, + 144, 124, 115, 290, 290, 290, 290, 290, 461, 461, + 363, 1392, -78, 1392, 81, 2365, 1392, 1392, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, 98, 1225, -106, -106, 66, 65, -106, 1225, - -106, -106, 1225, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, -106, 1225, 44, 1225, 1225, - 64, 57, 1225, -106, 2198, 1225, 1225, -106, 137, -106, - 49, -106, -106, 93, 344, 474, 95, 86, -106, 390, - -106, 85, 2708, -106, -106, -106, -106, -106, 189, -106, - 474, -106, 80, -106, -106, -106, 83, -106, -106, -106, - 2708, -106, -106, 490, -106, 551, 130, 2606, 46, 51, - 52, 2912, 1225, -106, 63, 1225, 56, -106, 58, 60, - -106, -106, 474, -106, -106, -106, -106, 61, 474, 62, - 67, 2708, 68, -106, -106, 2606, -106, -106, 87, -106, - -106, -106, -106, 110, -106, -106, -106, -106, -106, -106, - -24, 69, 1225, 122, 143, -106, -106, -106, 1419, -106, - 74, 76, 77, -106, 269, 73, 72, 611, 75, 114, - 397, 314, 474, 1225, 287, 1225, 1225, 1225, 1225, 397, - 1225, 1225, 1225, 1225, 1225, 218, 215, 198, 192, 182, - 397, 397, 312, 1225, 55, 1225, 59, 1225, -106, 654, - 1225, -106, 1225, 54, 53, 1225, 50, 2606, -106, 1225, - 124, 2606, -106, 1225, 90, 1225, 1225, 105, 88, 1225, - -106, 84, 157, -27, -106, -106, 1225, -106, 474, 1225, - -106, 82, 1225, 91, 2606, -106, 1225, 120, 2606, -106, - 1225, 103, 2606, -9, 2606, -106, -2, -106, 11, -30, - 17, -106, -106, 2606, -37, 469, 15, 551, 138, 1225, - 2606, 14, -16, 433, 2402, -20, 842, 6, 5, 1324, - 2402, 4, -36, 2, 1225, 7, -18, 1225, 10, 1225, - -26, -13, 2504, -106, -106, -106, -106, -106, -106, 1225, - -106, -106, -106, -33, -59, -25, 2708, 23, -106, 197, - -106, 1225, -12, -106, 140, -106, -106, 22, 474, -4, - 26, 2708, 12, -106, 1225, 113, 30, -106, 142, -106, - 142, 121, 1225, -106, -3, 45, -106, -5, -106, 2606, - -106, 108, 2606, -106, 207, -106, -106, 106, 2606, 37, - -106, 25, 36, -106, 474, 38, 40, -106, -106, -106, - -106, 1225, 136, 2606, -106, 1225, 166, 2606, -106, 13, - -106, 200, -106, -106, 1225, -106, -106, 474, -106, -106, - -17, 16, 2708, -11, -106, -106, 131, 1811, -106, -106, - 1615, -106, -106, 1517, -106, -106, -106, -106, -106, -106, - 109, -106, -106, -106, -106, -106, -106, -106, -106, -106, - 2708, -106, -106, -106, 233, -19, 748, 152, -60, 41, - -106, -106, 191, -106, 177, -106, -106, -106, 387, 203, - -106, 1906, -106, -106, -106, -106, -106, -106, -106, -106, - -106, 180, 43, 376, 174, 48, 474, 240, -106, 8, - -106, 748, 111, -106, -1, 748, -106, -106, 1130, -106, - -106, -106, 1034, -106, -106, 228, -106, 1906, -106, 295, - 21, -106, -106, 184, 379, 39, 2001, 288, 2810, 18, - -106, 34, 482, 33, 551, 138, 1225, 2606, 31, 9, - 399, 3, 643, 19, 29, 1324, 28, 1, 27, 1225, - 24, 0, 1225, 20, 1225, -7, -8, -106, 193, -106, - 205, -106, 47, 42, 329, 208, 319, -106, 128, -106, - -106, -106, 2096, 748, 1713, 35, -106, 132, -106, -106, - 32, -106, -106, 748, 748, 94, 748, -106, 250, -106, - 116, -106, -106, 233, 233, -106, -106, -106, -106, -106, - 393, -106, 214, -106, 100, -106, -106, 474, -106, -106, - 96, -106, -106, -106, -106, -106, + -106, -106, 143, 1392, -106, -106, 78, 60, -106, 1392, + -106, -106, 1392, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, 1392, -25, 1392, 1392, + 92, 85, 1392, -106, 2365, 1392, 1392, -106, 146, -106, + 46, -106, -106, 52, 359, 362, 104, 86, -106, 438, + -106, 56, 2773, -106, -106, -106, -106, -106, 164, -106, + 393, -106, 41, -106, -106, -106, 53, -106, -106, -106, + 2773, -106, -106, 600, -106, 597, 147, 2875, 64, 82, + 48, 3079, 1392, -106, 90, 1392, 66, -106, 33, 68, + -106, -106, 538, -106, -106, -106, -106, 88, 538, 35, + 40, 2773, 47, -106, -106, 2875, -106, -106, 151, -106, + -106, -106, -106, 145, -106, -106, -106, -106, -106, -106, + 72, 65, 1392, 107, 155, -106, -106, -106, 1586, -106, + 58, 59, 50, -106, 279, 75, 62, 821, 89, 93, + 295, 234, 447, 1392, 291, 1392, 1392, 1392, 1392, 316, + 1392, 1392, 1392, 1392, 1392, 290, 290, 290, 290, 290, + 322, 326, 332, 1392, 50, 1392, 74, 1392, -106, 718, + 1392, -106, 1392, 55, 42, 1392, 38, 2875, -106, 1392, + 132, 2875, -106, 1392, 84, 1392, 1392, 209, 106, 1392, + -106, 80, 130, 77, -106, -106, 1392, -106, 407, 1392, + -106, -48, 1392, -43, 2875, -106, 1392, 126, 2875, -106, + 1392, 128, 2875, 3, 2875, -106, 8, -106, 6, -34, + 15, -106, -106, 2875, -31, 615, 18, 546, 100, 1392, + 2875, 19, -8, 493, 2467, -16, 707, 5, 4, 1491, + 2467, 2, -28, 0, 1392, -2, -30, 1392, -5, 1392, + -32, -26, 2671, -106, -106, -106, -106, -106, -106, 1392, + -106, -106, -106, 21, -17, 22, 2773, -6, -106, 206, + -106, 1392, -10, -106, 91, -106, -106, 17, 538, 30, + 31, 2773, -3, -106, 1392, 111, 34, -106, 24, -106, + 25, 101, 1392, -106, 27, 28, -106, -22, -106, 2875, + -106, 120, 2875, -106, 227, -106, -106, 125, 2875, 16, + -106, 12, 13, -106, 453, -20, 14, -106, -106, -106, + -106, 1392, 160, 2875, -106, 1392, 113, 2875, -106, 37, + -106, 171, -106, -106, 1392, -106, -106, 441, -106, -106, + -33, -27, 2773, -4, -106, -106, 109, 1684, -106, -106, + 1978, -106, -106, 1782, -106, -106, -106, -106, -106, -106, + 127, -106, -106, -106, -106, -106, -106, -106, -106, -106, + 2773, -106, -106, -106, 148, -24, 915, 176, -29, 10, + -106, -106, 240, -106, 208, 1, -106, -106, 349, 195, + -106, 20, 339, 135, -106, -106, 191, -106, 2073, -106, + -106, -106, -106, -106, -106, -106, -106, -106, 221, 29, + 538, 152, 7, 538, 167, -106, 11, -106, 915, 114, + -106, 32, 915, -106, -106, 1201, -106, -106, -106, 1297, + -106, -106, 169, -106, 2073, -106, 280, -15, -106, -106, + 181, 457, 9, 2263, 271, 2977, 83, -106, 103, 615, + 67, 557, 116, 1392, 2875, 61, 43, 526, 45, 1009, + 51, 73, 1491, 71, 49, 69, 1392, 63, 44, 1392, + 54, 1392, 36, 57, -106, 213, -106, 217, -106, 79, + 70, 343, 194, 346, -106, 96, -106, -106, -106, 2168, + 799, 1880, 76, -106, 134, -106, -106, -15, -106, -106, + 915, 915, 112, 915, -106, 259, -106, 153, -106, -106, + 110, 99, -106, -106, -106, -106, -106, 450, -106, 157, + -106, 98, -106, -106, 538, -106, -106, 139, -106, -106, + -106, -106, -106, - -111, 15, 71, 87, 80, 305, -6, -111, -111, -111, - -111, -111, -111, -111, -111, -111, -111, -111, -111, -42, - -111, -111, -111, -111, -111, -111, -111, -111, -111, 95, - -111, -111, -111, 3, -111, -111, -5, -11, 9, 109, - 91, -111, 62, 45, -111, -111, -111, 50, 63, -111, - -111, -111, -111, -111, -111, 32, -111, 203, 197, -111, - 189, 178, -111, -111, -111, -111, 182, 185, 188, -111, - -111, -111, -111, 193, -111, 198, 168, 113, 114, -111, - 133, 116, 123, 129, 130, 132, -111, 136, 139, 142, + -111, 6, 66, 84, 80, 306, 43, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -111, -111, -23, + -111, -111, -111, -111, -111, -111, -111, -111, -111, 96, + -111, -111, -111, 51, -111, -111, 60, 35, 61, 95, + 92, -111, 93, 72, -111, -111, -111, 86, 85, -111, + -111, -111, -111, -111, -111, 82, -111, 81, 136, -111, + 77, 76, -111, -111, -111, -111, 73, 89, 127, -111, + -111, -111, -111, 125, -111, 124, 54, 120, 99, -111, + 113, 111, 110, 109, 107, 103, -111, 102, 100, 119, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, 148, -111, 151, -111, 186, 6, -37, -111, -111, + -111, 52, -111, 49, -111, 62, 44, 28, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, 42, -111, -111, -111, -111, -111, 22, - -111, -111, 2, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, -111, -111, -111, 96, -111, 66, 21, - -111, -111, 0, -111, 274, 35, 88, -111, -111, -111, - -111, -111, -111, -111, 41, 75, -111, -111, -111, 49, - -111, -111, 48, -111, -111, -111, -111, -111, -111, -111, - 57, -111, -111, -111, -111, -111, -111, -111, -111, -111, - 77, -111, -111, 54, -111, 27, -111, 243, -111, 25, - -111, 160, 36, -111, -111, 169, 40, -111, -111, -111, - -111, -111, 56, -111, -111, -111, -111, -111, 180, -111, - -111, 163, -111, -111, -111, 246, -111, -111, -111, -111, + -111, -111, -111, 25, -111, -111, -111, -111, -111, 18, + -111, -111, 16, -111, -111, -111, -111, -111, -111, -111, + -111, -111, -111, -111, -111, -111, 57, -111, 40, 13, + -111, -111, 4, -111, 269, 42, 70, -111, -111, -111, + -111, -111, -111, -111, 26, 69, -111, -111, -111, 22, + -111, -111, 15, -111, -111, -111, -111, -111, -111, -111, + 14, -111, -111, -111, -111, -111, -111, -111, -111, -111, + 75, -111, -111, 10, -111, 32, -111, 74, -111, 24, + -111, 225, 46, -111, -111, 50, 41, -111, -111, -111, + -111, -111, 47, -111, -111, -111, -111, -111, 214, -111, + -111, 224, -111, -111, -111, 246, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, 8, -111, -111, -111, -111, -111, 69, -111, + -111, -111, 27, -111, -111, -111, -111, -111, 117, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, 61, 211, -111, 272, 257, 256, 236, -111, - 81, 83, 85, 68, 94, -111, -111, -111, -111, -111, - -111, -111, -111, 235, -111, 218, -111, 209, -111, -111, - 244, -111, 227, -111, -111, 228, -111, 238, -111, 33, - -111, 167, -111, 245, -111, 253, 254, -111, -111, 225, - -111, -111, -111, -111, -111, -111, 217, -111, 194, 213, - -111, -111, 208, -111, 207, -111, 52, -111, 205, -111, - 55, -111, 201, -111, 199, -111, -111, -111, -111, -111, - -111, -111, -111, 278, -111, 39, -111, 34, -111, 173, - 219, -111, -111, 53, 231, -111, 73, -111, -111, 44, - 59, -111, -111, -111, 47, -111, 24, 102, -111, 101, - -111, -111, 111, -111, -111, -111, -111, -111, -111, 26, - -111, -111, -111, -111, -111, -111, 65, -111, -111, -111, - -111, 76, -111, -111, -111, -111, -111, -111, 79, -111, - -111, 89, -111, -111, 51, -111, -111, -111, -111, -111, - -62, -111, 37, -111, -63, -111, -111, -111, -111, 387, - -111, -111, 264, -111, -111, -111, -111, -111, 158, -54, - -111, -111, 28, -111, 38, -111, 23, -111, -111, -111, - -111, 43, -111, 78, -111, 58, -111, 67, -111, -111, - -111, -111, -111, -111, 18, -111, -111, 195, -111, -111, - -111, -111, 161, -111, -111, -111, -111, 20, -111, -111, - 157, -111, -111, 31, -111, -111, -111, -111, -111, -111, + -111, -111, 17, 236, -111, 239, 242, 250, 254, -111, + 199, 171, 200, 202, 203, -111, -111, -111, -111, -111, + -111, -111, -111, 264, -111, 265, -111, 213, -111, -111, + 267, -111, 260, -111, -111, 262, -111, 253, -111, 45, + -111, 83, -111, 222, -111, 223, 226, -111, -111, 229, + -111, -111, -111, -111, -111, -111, 238, -111, 105, 118, + -111, -111, 129, -111, 87, -111, 36, -111, 183, -111, + 34, -111, 187, -111, 192, -111, -111, -111, -111, -111, + -111, -111, -111, 193, -111, 9, -111, 23, -111, 144, + 195, -111, -111, 20, 184, -111, 189, -111, -111, 31, + 164, -111, -111, -111, 21, -111, 11, 158, -111, 161, + -111, -111, 188, -111, -111, -111, -111, -111, -111, 33, + -111, -111, -111, -111, -111, -111, 191, -111, -111, -111, + -111, 176, -111, -111, -111, -111, -111, -111, 198, -111, + -111, 201, -111, -111, 65, -111, -111, -111, -111, -111, + -29, -111, 58, -111, -27, -111, -111, -111, -111, 268, + -111, -111, 266, -111, -111, -111, -111, -111, 219, -46, + -111, -111, 38, -111, 39, -111, 37, -111, -111, -111, + -111, 53, -111, 220, -111, 48, -111, 221, -111, -111, + -111, -111, -111, -111, 30, -111, -111, 137, -111, -111, + -111, -111, 206, -111, -111, -111, -111, 29, -111, -111, + 207, -111, -111, 1, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - 206, -111, -111, -111, -111, -111, -7, -111, -111, -111, - -111, -111, -111, -111, -24, -111, -111, -111, -12, -111, - -111, 342, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, -16, -32, -111, 5, -111, -111, -111, - -111, 152, -111, -111, -111, 248, -111, -111, 330, -111, - -111, -111, 324, -111, -111, -111, -111, 385, -111, -111, - -21, -111, -111, 1, 14, -111, 367, -111, 232, 12, - -111, -111, 11, -111, 10, -111, 164, 141, -111, -111, - 7, -111, 64, -111, -111, 19, -111, -111, -111, 17, - -111, -1, 60, -111, 46, -111, -111, -111, -111, -111, - -15, -111, -111, -111, -2, -17, -4, -111, -111, -111, - -111, -111, 484, 138, 313, -3, -111, -111, -111, -111, - 4, -111, -111, 13, 16, 97, 127, -111, -111, -111, + 216, -111, -111, -111, -111, -111, 0, -111, -111, -111, + -111, -111, -111, -111, -30, -111, -111, -111, -11, -13, + -111, -111, 5, -111, -111, -111, -111, -111, 336, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -14, -111, -111, -111, -111, -111, -111, -8, -111, -111, - -111, -111, -111, -111, -111, -111}; + 7, -3, -111, -8, -111, -111, -111, -111, 174, -111, + -111, -111, 172, -111, -111, 323, -111, -111, -111, 334, + -111, -111, -111, -111, 372, -111, -111, -5, -111, -111, + -24, -7, -111, 439, -111, 248, -9, -111, -111, 8, + -111, -17, -111, 179, 342, -111, -111, 2, -111, 190, + -111, -111, 19, -111, -111, -111, 12, -111, -20, 68, + -111, 63, -111, -111, -111, -111, -111, -26, -111, -111, + -111, 3, -1, 79, -111, -111, -111, -111, -111, 354, + 67, 313, -4, -111, -111, -111, -111, -19, -111, -111, + -14, -10, 88, 233, -111, -111, -111, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -6, -111, -111, + -111, -111, -111, -111, -2, -111, -111, -111, -111, -111, + -111, -111, -111}; const short QQmlJSGrammar::action_info [] = { - 424, 405, 432, 404, 346, 245, 573, 354, 406, -134, - 461, -112, -113, -131, -136, 448, 350, -139, 402, 392, - 268, -123, -142, 465, 399, 398, -131, -139, 465, 461, - 474, -136, 558, 448, -134, -112, -113, 424, -123, 350, - -142, 245, 551, 481, 484, 268, 576, 524, 413, 482, - 438, 558, 439, 261, 558, 615, 420, 452, 418, 421, - 283, 454, 143, 428, 172, 558, 166, 423, 558, 448, - 608, 73, 546, 448, 149, 283, 0, 323, 408, 0, - 544, 307, 268, 0, 0, 0, 143, 184, 350, 448, - 245, 166, 101, 73, 461, 329, 465, 238, 456, 424, - 241, 336, 618, 189, 665, 262, 143, 323, 0, 181, - 317, 143, 451, 0, 315, 442, 143, 143, 192, 555, - 0, 143, 240, 243, 303, 151, 452, 101, 143, 185, - 143, 435, 143, 312, 305, 244, 0, 0, 303, 490, - 555, 60, 60, 342, 143, 143, 191, 432, 252, 251, - 103, 344, 61, 61, 144, 60, 305, 662, 661, 60, - 103, 656, 655, 352, 325, 338, 61, 556, 326, 501, - 61, 257, 256, 426, 143, 168, 436, 664, 663, 169, - 348, 542, 264, 64, 321, 633, 634, 491, 628, 620, - 619, 259, 258, 179, 65, 174, 463, 143, 622, 259, - 258, 416, 415, 525, 267, 265, 525, 87, 477, 88, - 531, 0, 174, 525, 175, 143, 411, 87, 339, 88, - 89, 66, 0, 87, 558, 88, 467, 527, 66, 610, - 89, 175, 266, 411, 525, 567, 89, 525, 526, 0, - 87, 66, 88, 87, 87, 88, 88, 549, 174, 527, - 236, 235, 527, 89, 611, 609, 89, 89, 0, 527, - 526, 478, 476, 526, 532, 530, 67, 175, 446, 445, - 526, 0, 68, 67, 174, 659, 658, 105, 0, 68, - 527, 75, 76, 527, 0, 623, 67, 285, 286, 568, - 566, 526, 68, 175, 526, 176, 106, 652, 107, 75, - 76, 550, 548, 174, 0, 285, 286, 657, 77, 78, - 174, 653, 651, 0, 287, 288, 0, 0, 0, 0, - 0, -99, 175, 0, 176, 0, 77, 78, -99, 175, - 0, 176, 287, 288, 0, 290, 291, 0, 0, 87, - 0, 88, 0, 650, 292, 80, 81, 293, 35, 294, - 0, 0, 89, 82, 83, 0, 0, 84, 35, 85, - 80, 81, 6, 5, 4, 1, 3, 2, 82, 83, - 80, 81, 84, 35, 85, 0, 0, 0, 82, 83, - 80, 81, 84, 0, 85, 49, 52, 50, 82, 83, - 80, 81, 84, 0, 85, 49, 52, 50, 82, 83, - 0, 0, 84, 0, 85, 35, 0, 0, 35, 0, - 49, 52, 50, 46, 34, 51, 35, 0, 0, 35, - 290, 291, 35, 46, 34, 51, 0, 0, 35, 292, - 0, 0, 293, 0, 294, 184, 0, 0, 46, 34, - 51, 35, 49, 52, 50, 49, 52, 50, 184, 0, + 73, 103, -141, 448, 461, -138, 482, -136, 424, -114, + 465, -115, -133, 342, 392, 245, 583, 344, 565, 354, + 350, 398, 399, 101, 402, -144, -125, 481, 268, 432, + 432, 553, 432, 438, 143, 439, 452, 580, 529, 615, + 456, 166, 524, 405, 532, 558, 448, 448, 454, 408, + 413, 484, 423, 418, 474, 406, 103, 404, -133, 283, + 245, -141, 0, 143, 421, 565, 551, 428, -125, 461, + -138, 101, 461, 241, -144, 283, -136, 448, -114, 268, + -115, 350, 73, 307, 350, 424, 149, 622, 185, 192, + 420, 323, 172, 465, 166, 240, 244, 336, 317, 448, + 268, 262, 243, 315, 465, 672, 181, 303, 346, 565, + 245, 435, 189, 329, 174, 143, 565, 490, 184, 143, + 151, 143, 562, 312, 238, 174, 424, 442, 143, 305, + 625, 451, 303, 175, 143, 143, 143, 168, 338, 64, + 143, 169, 562, 325, 175, 452, 191, 326, 0, 261, + 65, 143, 416, 415, 143, 60, 436, 627, 626, 663, + 662, 259, 258, 174, 60, 491, 61, 264, 143, 60, + 563, 426, 143, 467, 556, 61, 574, 259, 258, 477, + 61, 530, 175, 0, 60, 0, 348, 501, 352, 0, + 635, 339, 321, 640, 641, 61, 535, 534, 538, 144, + 669, 668, 179, 640, 641, 549, 257, 256, 259, 258, + 530, 323, 252, 251, 671, 670, 267, 265, 666, 665, + 463, 174, 174, 530, 530, 236, 235, 527, 557, 555, + 575, 573, 478, 476, 66, 143, 174, 525, 526, 105, + 175, 175, 411, 176, 266, 66, 530, 629, 66, 617, + 664, 527, 539, 537, 0, 175, 527, 411, 106, 87, + 107, 88, 526, 0, 0, 0, 0, 526, 0, 527, + 527, 0, 89, 565, 618, 616, 0, 0, 0, 67, + 526, 526, 0, 527, 0, 68, 174, 0, 446, 445, + 67, 0, 527, 67, 526, 174, 68, 285, 286, 68, + 0, 0, 0, 526, -101, 175, 659, 176, 0, 285, + 286, 0, 0, -101, 175, 87, 176, 88, 290, 291, + 660, 658, 0, 0, 287, 288, 0, 292, 89, 0, + 293, 0, 294, 0, 630, 0, 287, 288, 0, 290, + 291, 0, 0, 0, 0, 290, 291, 0, 292, 290, + 291, 293, 657, 294, 292, 290, 291, 293, 292, 294, + 0, 293, 0, 294, 292, 80, 81, 293, 35, 294, + 0, 0, 35, 82, 83, 35, 0, 84, 35, 85, + 6, 5, 4, 1, 3, 2, 80, 81, 35, 0, + 0, 35, 0, 0, 82, 83, 75, 76, 84, 0, + 85, 0, 0, 0, 0, 49, 52, 50, 0, 49, + 52, 50, 49, 52, 50, 49, 52, 50, 0, 0, + 0, 0, 35, 77, 78, 49, 52, 50, 49, 52, + 50, 0, 0, 46, 34, 51, 35, 46, 34, 51, + 46, 34, 51, 46, 34, 51, 0, 0, 0, 0, + 0, 0, 0, 46, 34, 51, 46, 34, 51, 49, + 52, 50, 0, 0, 0, 0, 0, 35, 0, 0, + 35, 0, 0, 49, 52, 50, 35, 0, 0, 35, + 0, 0, 35, 0, 80, 81, 35, 46, 34, 51, + 0, 0, 82, 83, 0, 0, 84, 0, 85, 0, + 0, 46, 34, 51, 49, 52, 50, 49, 52, 50, 0, 0, 0, 49, 52, 50, 49, 52, 50, 49, - 52, 50, 35, 0, 0, 49, 52, 50, 0, 184, - 46, 34, 51, 46, 34, 51, 0, 0, 49, 52, - 50, 46, 34, 51, 46, 34, 51, 46, 34, 51, - 0, 0, 0, 46, 34, 51, 0, 0, 35, 49, - 52, 50, 0, 35, 0, 0, 46, 34, 51, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 35, - 0, 0, 0, 0, 0, 0, 0, 46, 34, 51, - 250, 249, 0, 0, 0, 49, 52, 50, 0, 0, - 49, 52, 50, 250, 249, 0, 0, 0, 49, 52, - 50, 250, 249, 0, 0, 0, 49, 52, 50, 0, - 0, 0, 0, 46, 34, 51, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 0, 46, 34, 51, 0, - 35, 0, 0, 0, 46, 34, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 255, 254, 153, 0, 0, 49, 52, 50, - 0, 0, 0, 0, 154, 0, 0, 0, 155, 0, - 0, 0, 0, 0, 0, 0, 0, 156, 0, 157, - 0, 0, 319, 0, 0, 46, 34, 51, 0, 0, - 158, 0, 159, 64, 0, 30, 31, 153, 0, 0, - 160, 0, 0, 161, 65, 33, 0, 154, 0, 162, - 0, 155, 35, 0, 0, 163, 36, 37, 0, 38, - 156, 0, 157, 0, 0, 0, 42, 0, 0, 0, - 45, 164, 0, 158, 0, 159, 64, 0, 0, 0, - 0, 0, 0, 160, 0, 0, 161, 65, 53, 49, - 52, 50, 162, 54, 0, 0, 0, 0, 163, 0, - 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, - 41, 0, 0, 0, 164, 0, 0, 46, 34, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, - 0, 36, 37, 0, 38, 0, 0, 0, 0, 0, - 0, 516, 0, 0, 0, 45, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, - 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, + 52, 50, 35, 49, 52, 50, 0, 0, 0, 184, + 0, 35, 46, 34, 51, 46, 34, 51, 184, 0, + 0, 46, 34, 51, 46, 34, 51, 46, 34, 51, + 0, 46, 34, 51, 0, 35, 0, 0, 0, 49, + 52, 50, 184, 0, 0, 0, 0, 35, 49, 52, + 50, 0, 0, 0, 0, 35, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 46, 34, 51, + 0, 0, 49, 52, 50, 0, 46, 34, 51, 0, + 0, 0, 0, 0, 49, 52, 50, 255, 254, 0, + 0, 0, 49, 52, 50, 0, 0, 0, 255, 254, + 46, 34, 51, 49, 52, 50, 35, 0, 0, 35, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, - 0, 0, 0, 0, 0, 42, 0, 0, 0, 45, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, - 50, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, - 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 219, 0, 0, 0, 0, 0, 0, 35, 0, 0, - 0, 36, 37, 0, 38, 0, 0, 0, 0, 0, - 0, 516, 0, 0, 0, 45, 0, 0, 0, 0, + 46, 34, 51, 0, 35, 0, 0, 0, 0, 0, + 0, 46, 34, 51, 0, 0, 0, 0, 255, 254, + 0, 250, 249, 49, 52, 50, 49, 52, 50, 0, + 0, 0, 0, 0, 0, 0, 250, 249, 0, 0, + 0, 49, 52, 50, 0, 0, 0, 0, 0, 0, + 0, 46, 34, 51, 46, 34, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, + 34, 51, 0, 0, 0, 0, 0, 0, 0, 30, + 31, 153, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 154, 0, 0, 0, 155, 35, 0, 0, 0, + 36, 37, 0, 38, 156, 0, 157, 0, 0, 0, + 42, 0, 0, 0, 45, 0, 0, 158, 0, 159, + 64, 0, 0, 0, 0, 0, 0, 160, 0, 0, + 161, 65, 53, 49, 52, 50, 162, 54, 0, 0, + 0, 0, 163, 0, 0, 0, 0, 0, 44, 56, + 32, 0, 0, 0, 41, 0, 0, 0, 164, 0, + 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 153, 0, 0, 0, 35, 0, + 0, 0, 36, 37, 154, 38, 0, 0, 155, 0, + 0, 0, 516, 0, 0, 0, 45, 156, 0, 157, + 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, + 158, 0, 159, 64, 53, 49, 52, 50, 0, 54, + 160, 0, 0, 161, 65, 0, 0, 0, 0, 162, + 44, 56, 32, 0, 0, 163, 41, 0, 0, 0, + 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, + 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 517, 519, 518, 0, 54, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 44, - 56, 32, 214, 0, 0, 41, 0, 0, 0, 0, - 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 515, 0, 30, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, - 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, - 38, 0, 0, 0, 0, 0, 0, 516, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, 0, 563, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 517, 519, 518, 0, 54, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 44, 56, 32, 214, 0, - 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 0, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 219, 0, 0, 0, 0, 0, 0, 35, - 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, - 0, 0, 0, 516, 0, 0, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 517, 519, 518, 0, - 54, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 44, 56, 32, 214, 0, 0, 41, 0, 0, - 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, - 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 516, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, - 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, + 53, 49, 52, 50, 0, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -132, 0, 0, 0, 29, 30, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, - 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, - 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, - 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, - 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, - 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, - 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, - 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, - 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 36, 37, 0, 38, 0, 0, 0, 0, + 0, 0, 42, 0, 0, 0, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, - 0, 55, 0, 57, 282, 58, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 496, 0, 0, 29, 30, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, - 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, - 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, - 48, 0, 0, 497, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, - 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, - 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, - 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 488, 0, 0, 29, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 0, 515, 0, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, - 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, - 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, - 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, + 0, 38, 0, 0, 0, 0, 0, 0, 516, 0, + 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 517, 519, 518, 0, 54, 0, 0, 0, 0, + 227, 0, 0, 0, 0, 0, 44, 56, 32, 214, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 488, 0, 0, 29, 30, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, - 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, - 45, 0, 0, 0, 47, 0, 48, 0, 0, 489, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, - 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, - 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, - 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 496, + 0, 515, 0, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, + 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, + 0, 0, 0, 0, 516, 0, 0, 0, 45, 0, + 0, 0, 0, 0, 0, 0, 567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 517, 519, 518, + 0, 54, 0, 0, 0, 0, 227, 0, 0, 0, + 0, 0, 44, 56, 32, 214, 0, 0, 41, 0, + 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 515, 0, 30, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 219, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 38, 0, 0, 0, 0, 0, 0, + 516, 0, 0, 0, 45, 0, 0, 0, 0, 0, + 0, 0, 570, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 517, 519, 518, 0, 54, 0, 0, + 0, 0, 227, 0, 0, 0, 0, 0, 44, 56, + 32, 214, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, + 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, + 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, + 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, + 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, + 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -134, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, - 0, 0, 47, 0, 48, 0, 0, 499, 0, 0, + 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 35, 220, 0, 0, 221, + 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 53, 49, 52, 50, 224, 54, 0, 55, 226, - 57, 0, 58, 0, 229, 0, 0, 44, 56, 32, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 35, 220, 0, 0, 578, 37, 0, 38, 0, 0, - 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, - 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, - 0, 0, 223, 0, 0, 0, 53, 49, 52, 50, - 224, 54, 0, 55, 226, 57, 0, 58, 0, 229, - 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, - 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 35, 220, 0, 0, 578, - 624, 0, 38, 0, 0, 0, 39, 0, 40, 42, - 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, - 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, - 0, 53, 49, 52, 50, 224, 54, 0, 55, 226, - 57, 0, 58, 0, 229, 0, 0, 44, 56, 32, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, + 57, 282, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 112, 113, 0, 0, 115, 117, 118, - 0, 0, 119, 0, 120, 0, 0, 0, 122, 123, - 124, 0, 0, 0, 0, 0, 0, 35, 125, 126, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, - 0, 0, 0, 0, 49, 52, 50, 132, 133, 134, - 0, 136, 137, 138, 139, 140, 141, 0, 0, 129, - 135, 121, 114, 116, 130, 0, 0, 0, 0, 0, - 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 111, 112, 113, 0, 0, 115, - 117, 118, 0, 0, 119, 0, 120, 0, 0, 0, - 122, 123, 124, 0, 0, 0, 0, 0, 0, 35, - 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 395, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, - 0, 0, 0, 0, 0, 397, 49, 52, 50, 132, - 133, 134, 0, 136, 137, 138, 139, 140, 141, 0, - 0, 129, 135, 121, 114, 116, 130, 0, 0, 0, - 0, 0, 0, 0, 46, 374, 380, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 111, 112, 113, 0, - 0, 115, 117, 118, 0, 0, 119, 0, 120, 0, - 0, 0, 122, 123, 124, 0, 0, 0, 0, 0, - 0, 35, 125, 126, 127, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 128, 0, 0, 0, 395, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 131, 0, 0, 0, 0, 0, 397, 49, 52, - 50, 132, 133, 134, 0, 136, 137, 138, 139, 140, - 141, 0, 0, 129, 135, 121, 114, 116, 130, 0, + 0, 0, 496, 0, 0, 29, 30, 31, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, + 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, + 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, + 499, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, + 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 496, 0, 0, 29, 30, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, + 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, + 0, 0, 0, 47, 0, 48, 0, 0, 497, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, + 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, + 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 111, 112, - 113, 0, 0, 115, 117, 118, 0, 0, 119, 0, - 120, 0, 0, 0, 122, 123, 124, 0, 0, 0, - 0, 0, 0, 35, 125, 126, 127, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, - 0, 395, 0, 0, 0, 0, 0, 0, 0, 396, - 0, 0, 0, 131, 0, 0, 0, 0, 0, 397, - 49, 52, 50, 132, 133, 134, 0, 136, 137, 138, - 139, 140, 141, 0, 0, 129, 135, 121, 114, 116, - 130, 0, 0, 0, 0, 0, 0, 0, 46, 374, - 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 213, 0, 0, 0, 0, 215, 0, 29, 30, 31, - 217, 0, 0, 0, 0, 0, 0, 218, 33, 0, - 0, 0, 0, 0, 0, 35, 220, 0, 0, 221, - 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, - 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, - 0, 0, 0, 0, 0, 222, 0, 223, 0, 0, - 0, 53, 49, 52, 50, 224, 54, 225, 55, 226, - 57, 227, 58, 228, 229, 0, 0, 44, 56, 32, - 214, 216, 0, 41, 0, 0, 0, 0, 0, 0, - 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 213, 0, 0, 0, 0, 215, 0, 29, - 30, 31, 217, 0, 0, 0, 0, 0, 0, 218, - 219, 0, 0, 0, 0, 0, 0, 35, 220, 0, - 0, 221, 37, 0, 38, 0, 0, 0, 39, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 488, 0, + 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, + 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, + 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, + 0, 47, 0, 48, 0, 0, 489, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, + 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, + 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 488, 0, 0, 29, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, + 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, - 0, 48, 0, 0, 0, 0, 0, 222, 0, 223, - 0, 0, 0, 53, 49, 52, 50, 224, 54, 225, - 55, 226, 57, 227, 58, 228, 229, 0, 0, 44, - 56, 32, 214, 216, 0, 41, 0, 0, 0, 0, + 0, 48, 0, 0, 494, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, + 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, + 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 582, 112, 113, 0, 0, 584, - 117, 586, 30, 31, 587, 0, 120, 0, 0, 0, - 122, 589, 590, 0, 0, 0, 0, 0, 0, 35, - 591, 126, 127, 221, 37, 0, 38, 0, 0, 0, - 39, 0, 40, 592, 43, 0, 0, 594, 0, 0, - 0, 47, 0, 48, 0, 0, 0, 0, 0, 595, - 0, 223, 0, 0, 0, 596, 49, 52, 50, 597, - 598, 599, 55, 601, 602, 603, 604, 605, 606, 0, - 0, 593, 600, 588, 583, 585, 130, 41, 0, 0, - 0, 0, 0, 0, 46, 374, 380, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 365, 112, 113, 0, - 0, 367, 117, 369, 30, 31, 370, 0, 120, 0, - 0, 0, 122, 372, 373, 0, 0, 0, 0, 0, - 0, 35, 375, 126, 127, 221, 37, 0, 38, 0, - 0, 0, 39, 0, 40, 376, 43, 0, 0, 378, - 0, 0, 0, 47, 0, 48, 0, -278, 0, 0, - 0, 379, 0, 223, 0, 0, 0, 381, 49, 52, - 50, 382, 383, 384, 55, 386, 387, 388, 389, 390, - 391, 0, 0, 377, 385, 371, 366, 368, 130, 41, - 0, 0, 0, 0, 0, 0, 46, 374, 380, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - - 545, 572, 565, 632, 654, 148, 529, 541, 528, 142, - 660, 263, 500, 393, 617, 616, 621, 614, 16, 629, - 444, 183, 313, 547, 447, 183, 631, 643, 253, 248, - 644, 485, 575, 574, 607, 152, 320, 437, 178, 313, - 441, 433, 173, 183, 165, 253, 462, 313, 457, 447, - 444, 453, 253, 458, 425, 347, 455, 248, 351, 188, - 475, 466, 498, 171, 150, 447, 206, 190, 400, 468, - 0, 183, 248, 495, 469, 237, 409, 393, 409, 331, - 464, 247, 512, 206, 145, 206, 62, 409, 507, 206, - 0, 511, 0, 188, 0, 206, 206, 188, 206, 62, - 62, 504, 460, 417, 62, 206, 505, 206, 647, 646, - 407, 0, 0, 410, 62, 410, 459, 62, 148, 506, - 62, 187, 62, 277, 410, 419, 412, 298, 281, 393, - 148, 0, 0, 0, 422, 62, 170, 62, 180, 62, - 295, 514, 296, 260, 297, 62, 648, 503, 62, 62, - 62, 182, 514, 299, 394, 62, 62, 460, 459, 206, - 362, 630, 362, 62, 167, 502, 514, 62, 62, 322, - 62, 553, 444, 99, 100, 93, 206, 62, 356, 206, - 510, 206, 94, 62, 62, 206, 62, 62, 95, 96, - 62, 97, 86, 62, 90, 493, 62, 91, 188, 492, - 92, 355, 62, 353, 108, 62, 483, 349, 242, 345, - 247, 313, 331, 469, 102, 104, 313, 206, 62, 206, - 182, 260, 62, 206, 206, 206, 239, 62, 98, 182, - 313, 313, 62, 110, 362, 72, 62, 206, 69, 62, - 318, 70, 62, 62, 71, 260, 63, 62, 246, 393, - 581, 62, 62, 460, 0, 74, 206, 62, 79, 459, - 0, 206, 514, 309, 206, 62, 362, 557, 281, 0, - 281, 309, 62, 0, 284, 403, 281, 281, 0, 309, - 401, 0, 206, 306, 281, 308, 343, 479, 340, 62, - 62, 341, 108, 337, 281, 281, 206, 302, 309, 62, - 0, 330, 304, 281, 281, 314, 316, 62, 309, 0, - 62, 62, 281, 281, 324, 281, 281, 301, 300, 514, - 311, 110, 177, 0, 327, 0, 62, 569, 522, 564, - 328, 281, 553, 289, 627, 561, 0, 0, 514, 0, - 513, 523, 0, 0, 514, 0, 0, 522, 0, 0, - 0, 0, 443, 522, 0, 485, 0, 0, 0, 513, - 523, 0, 0, 0, 0, 513, 523, 533, 534, 535, - 536, 540, 537, 538, 0, 0, 0, 0, 0, 0, - 0, 577, 0, 0, 0, 0, 0, 0, 0, 362, - 579, 580, 533, 534, 535, 536, 540, 537, 538, 569, - 0, 0, 0, 0, 0, 206, 0, 0, 570, 571, - 533, 534, 535, 536, 540, 537, 538, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 35, 220, 0, 0, 221, 37, 0, 38, + 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, + 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 53, 49, + 52, 50, 224, 54, 0, 55, 226, 57, 0, 58, + 0, 229, 0, 0, 44, 56, 32, 0, 0, 0, + 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 35, 220, 0, + 0, 585, 631, 0, 38, 0, 0, 0, 39, 0, + 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, + 0, 48, 0, 0, 0, 0, 0, 0, 0, 223, + 0, 0, 0, 53, 49, 52, 50, 224, 54, 0, + 55, 226, 57, 0, 58, 0, 229, 0, 0, 44, + 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, + 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 35, 220, 0, 0, 585, 37, 0, 38, + 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, + 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, + 0, 0, 0, 0, 223, 0, 0, 0, 53, 49, + 52, 50, 224, 54, 0, 55, 226, 57, 0, 58, + 0, 229, 0, 0, 44, 56, 32, 0, 0, 0, + 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 112, 113, 0, 0, 115, 117, 118, 0, 0, 119, + 0, 120, 0, 0, 0, 122, 123, 124, 0, 0, + 0, 0, 0, 0, 35, 125, 126, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 131, 0, 0, 0, 0, 0, + 0, 49, 52, 50, 132, 133, 134, 0, 136, 137, + 138, 139, 140, 141, 0, 0, 129, 135, 121, 114, + 116, 130, 0, 0, 0, 0, 0, 0, 0, 46, + 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 111, 112, 113, 0, 0, 115, 117, 118, 0, + 0, 119, 0, 120, 0, 0, 0, 122, 123, 124, + 0, 0, 0, 0, 0, 0, 35, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 395, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 131, 0, 0, 0, + 0, 0, 397, 49, 52, 50, 132, 133, 134, 0, + 136, 137, 138, 139, 140, 141, 0, 0, 129, 135, + 121, 114, 116, 130, 0, 0, 0, 0, 0, 0, + 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 111, 112, 113, 0, 0, 115, 117, + 118, 0, 0, 119, 0, 120, 0, 0, 0, 122, + 123, 124, 0, 0, 0, 0, 0, 0, 35, 125, + 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 128, 0, 0, 0, 395, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 0, + 0, 0, 0, 0, 397, 49, 52, 50, 132, 133, + 134, 0, 136, 137, 138, 139, 140, 141, 0, 0, + 129, 135, 121, 114, 116, 130, 0, 0, 0, 0, + 0, 0, 0, 46, 374, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 111, 112, 113, 0, 0, + 115, 117, 118, 0, 0, 119, 0, 120, 0, 0, + 0, 122, 123, 124, 0, 0, 0, 0, 0, 0, + 35, 125, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 128, 0, 0, 0, 395, 0, + 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, + 131, 0, 0, 0, 0, 0, 397, 49, 52, 50, + 132, 133, 134, 0, 136, 137, 138, 139, 140, 141, + 0, 0, 129, 135, 121, 114, 116, 130, 0, 0, + 0, 0, 0, 0, 0, 46, 374, 380, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, + 0, 0, 215, 0, 29, 30, 31, 217, 0, 0, + 0, 0, 0, 0, 218, 219, 0, 0, 0, 0, + 0, 0, 35, 220, 0, 0, 221, 37, 0, 38, + 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, + 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, + 0, 0, 222, 0, 223, 0, 0, 0, 53, 49, + 52, 50, 224, 54, 225, 55, 226, 57, 227, 58, + 228, 229, 0, 0, 44, 56, 32, 214, 216, 0, + 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, + 0, 0, 0, 0, 215, 0, 29, 30, 31, 217, + 0, 0, 0, 0, 0, 0, 218, 33, 0, 0, + 0, 0, 0, 0, 35, 220, 0, 0, 221, 37, + 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, + 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, + 0, 0, 0, 0, 222, 0, 223, 0, 0, 0, + 53, 49, 52, 50, 224, 54, 225, 55, 226, 57, + 227, 58, 228, 229, 0, 0, 44, 56, 32, 214, + 216, 0, 41, 0, 0, 0, 0, 0, 0, 46, + 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 589, 112, 113, 0, 0, 591, 117, 593, 30, + 31, 594, 0, 120, 0, 0, 0, 122, 596, 597, + 0, 0, 0, 0, 0, 0, 35, 598, 126, 127, + 221, 37, 0, 38, 0, 0, 0, 39, 0, 40, + 599, 43, 0, 0, 601, 0, 0, 0, 47, 0, + 48, 0, 0, 0, 0, 0, 602, 0, 223, 0, + 0, 0, 603, 49, 52, 50, 604, 605, 606, 55, + 608, 609, 610, 611, 612, 613, 0, 0, 600, 607, + 595, 590, 592, 130, 41, 0, 0, 0, 0, 0, + 0, 46, 374, 380, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 365, 112, 113, 0, 0, 367, 117, + 369, 30, 31, 370, 0, 120, 0, 0, 0, 122, + 372, 373, 0, 0, 0, 0, 0, 0, 35, 375, + 126, 127, 221, 37, 0, 38, 0, 0, 0, 39, + 0, 40, 376, 43, 0, 0, 378, 0, 0, 0, + 47, 0, 48, 0, -280, 0, 0, 0, 379, 0, + 223, 0, 0, 0, 381, 49, 52, 50, 382, 383, + 384, 55, 386, 387, 388, 389, 390, 391, 0, 0, + 377, 385, 371, 366, 368, 130, 41, 0, 0, 0, + 0, 0, 0, 46, 374, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 0, + + 650, 253, 528, 638, 651, 447, 621, 536, 581, 16, + 554, 582, 661, 614, 548, 444, 667, 579, 636, 531, + 183, 628, 313, 533, 444, 572, 248, 248, 248, 552, + 263, 623, 237, 206, 313, 331, 447, 351, 183, 347, + 190, 253, 183, 495, 188, 178, 173, 142, 320, 313, + 253, 466, 639, 444, 152, 171, 462, 455, 165, 453, + 150, 441, 457, 458, 500, 469, 447, 145, 425, 183, + 148, 498, 475, 437, 433, 400, 260, 485, 393, 247, + 108, 514, 512, 0, 206, 322, 0, 188, 511, 345, + 637, 0, 206, 206, 62, 0, 0, 624, 206, 654, + 653, 206, 206, 62, 0, 206, 62, 409, 62, 110, + 170, 62, 148, 104, 98, 187, 0, 62, 102, 460, + 180, 313, 62, 331, 459, 167, 62, 62, 504, 69, + 62, 62, 313, 72, 63, 62, 62, 459, 507, 62, + 62, 506, 505, 62, 410, 70, 62, 0, 503, 62, + 62, 502, 182, 62, 62, 469, 62, 62, 91, 100, + 90, 62, 97, 62, 62, 62, 96, 62, 95, 94, + 93, 277, 86, 62, 62, 510, 281, 92, 62, 62, + 99, 62, 393, 71, 79, 349, 514, 74, 514, 353, + 62, 564, 460, 560, 355, 401, 341, 260, 62, 340, + 182, 206, 393, 409, 409, 206, 393, 343, 417, 206, + 206, 206, 62, 206, 459, 62, 188, 460, 148, 206, + 247, 362, 464, 468, 206, 62, 412, 362, 403, 479, + 296, 394, 188, 62, 206, 182, 407, 206, 206, 206, + 410, 410, 206, 356, 419, 493, 422, 514, 246, 492, + 362, 483, 655, 62, 62, 318, 62, 62, 295, 297, + 239, 298, 299, 313, 206, 313, 588, 309, 362, 242, + 362, 206, 281, 0, 0, 0, 62, 62, 0, 0, + 309, 281, 281, 309, 206, 281, 206, 108, 281, 308, + 62, 324, 309, 62, 327, 281, 62, 281, 281, 284, + 289, 281, 328, 300, 62, 330, 0, 0, 62, 281, + 0, 301, 0, 281, 337, 302, 110, 177, 62, 62, + 514, 309, 0, 281, 281, 0, 281, 576, 568, 522, + 306, 304, 560, 0, 634, 0, 0, 514, 314, 571, + 316, 513, 523, 311, 260, 0, 522, 0, 514, 0, + 0, 0, 0, 0, 443, 485, 440, 522, 513, 523, + 206, 540, 541, 542, 543, 547, 544, 545, 584, 513, + 523, 0, 0, 0, 0, 0, 0, 632, 633, 540, + 541, 542, 543, 547, 544, 545, 576, 0, 0, 0, + 0, 0, 0, 0, 0, 577, 578, 540, 541, 542, + 543, 547, 544, 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, - 0, 0, 0, 0, 0, 0, 0, 625, 626, 533, - 534, 535, 536, 540, 537, 538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 584, 0, 0, 0, 0, 0, 0, + 0, 0, 586, 587, 540, 541, 542, 543, 547, 544, + 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0}; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; const short QQmlJSGrammar::action_check [] = { - 36, 60, 5, 36, 31, 7, 66, 16, 33, 7, - 36, 7, 7, 7, 7, 33, 36, 7, 55, 8, - 36, 7, 7, 36, 7, 55, 7, 7, 36, 36, - 17, 7, 33, 33, 7, 7, 7, 36, 7, 36, - 7, 7, 34, 60, 55, 36, 7, 66, 60, 33, - 55, 33, 7, 77, 33, 8, 60, 20, 36, 33, - 1, 36, 8, 33, 7, 33, 2, 55, 33, 33, - 29, 1, 24, 33, 8, 1, -1, 2, 55, -1, - 37, 8, 36, -1, -1, -1, 8, 36, 36, 33, - 7, 2, 48, 1, 36, 7, 36, 36, 60, 36, - 33, 17, 60, 8, 0, 36, 8, 2, -1, 60, - 60, 8, 6, -1, 61, 7, 8, 8, 33, 8, - -1, 8, 60, 55, 48, 60, 20, 48, 8, 36, - 8, 10, 8, 61, 79, 55, -1, -1, 48, 8, - 8, 40, 40, 61, 8, 8, 60, 5, 61, 62, - 79, 60, 51, 51, 56, 40, 79, 61, 62, 40, - 79, 61, 62, 60, 50, 8, 51, 56, 54, 60, - 51, 61, 62, 60, 8, 50, 55, 61, 62, 54, - 60, 29, 60, 42, 60, 91, 92, 56, 56, 61, - 62, 61, 62, 56, 53, 15, 60, 8, 7, 61, - 62, 61, 62, 29, 61, 62, 29, 25, 8, 27, - 7, -1, 15, 29, 34, 8, 36, 25, 61, 27, - 38, 12, -1, 25, 33, 27, 60, 75, 12, 36, - 38, 34, 89, 36, 29, 7, 38, 29, 86, -1, - 25, 12, 27, 25, 25, 27, 27, 7, 15, 75, - 61, 62, 75, 38, 61, 62, 38, 38, -1, 75, - 86, 61, 62, 86, 61, 62, 57, 34, 61, 62, - 86, -1, 63, 57, 15, 61, 62, 15, -1, 63, - 75, 18, 19, 75, -1, 94, 57, 18, 19, 61, - 62, 86, 63, 34, 86, 36, 34, 47, 36, 18, - 19, 61, 62, 15, -1, 18, 19, 93, 45, 46, - 15, 61, 62, -1, 45, 46, -1, -1, -1, -1, - -1, 33, 34, -1, 36, -1, 45, 46, 33, 34, - -1, 36, 45, 46, -1, 23, 24, -1, -1, 25, - -1, 27, -1, 93, 32, 23, 24, 35, 29, 37, - -1, -1, 38, 31, 32, -1, -1, 35, 29, 37, - 23, 24, 98, 99, 100, 101, 102, 103, 31, 32, - 23, 24, 35, 29, 37, -1, -1, -1, 31, 32, - 23, 24, 35, -1, 37, 66, 67, 68, 31, 32, - 23, 24, 35, -1, 37, 66, 67, 68, 31, 32, - -1, -1, 35, -1, 37, 29, -1, -1, 29, -1, - 66, 67, 68, 94, 95, 96, 29, -1, -1, 29, - 23, 24, 29, 94, 95, 96, -1, -1, 29, 32, - -1, -1, 35, -1, 37, 36, -1, -1, 94, 95, - 96, 29, 66, 67, 68, 66, 67, 68, 36, -1, + 1, 79, 7, 33, 36, 7, 33, 7, 36, 7, + 36, 7, 7, 61, 8, 7, 7, 60, 33, 16, + 36, 55, 7, 48, 55, 7, 7, 60, 36, 5, + 5, 24, 5, 55, 8, 7, 20, 66, 37, 29, + 60, 2, 66, 60, 24, 34, 33, 33, 36, 55, + 60, 55, 55, 36, 17, 33, 79, 36, 7, 1, + 7, 7, -1, 8, 33, 33, 37, 33, 7, 36, + 7, 48, 36, 33, 7, 1, 7, 33, 7, 36, + 7, 36, 1, 8, 36, 36, 8, 8, 36, 33, + 60, 2, 7, 36, 2, 60, 55, 17, 60, 33, + 36, 36, 55, 61, 36, 0, 60, 48, 31, 33, + 7, 10, 8, 7, 15, 8, 33, 8, 36, 8, + 60, 8, 8, 61, 36, 15, 36, 7, 8, 79, + 60, 6, 48, 34, 8, 8, 8, 50, 8, 42, + 8, 54, 8, 50, 34, 20, 60, 54, -1, 77, + 53, 8, 61, 62, 8, 40, 55, 61, 62, 61, + 62, 61, 62, 15, 40, 56, 51, 60, 8, 40, + 56, 60, 8, 60, 7, 51, 7, 61, 62, 8, + 51, 29, 34, -1, 40, -1, 60, 60, 60, -1, + 56, 61, 60, 91, 92, 51, 61, 62, 7, 56, + 61, 62, 56, 91, 92, 29, 61, 62, 61, 62, + 29, 2, 61, 62, 61, 62, 61, 62, 61, 62, + 60, 15, 15, 29, 29, 61, 62, 75, 61, 62, + 61, 62, 61, 62, 12, 8, 15, 29, 86, 15, + 34, 34, 36, 36, 89, 12, 29, 7, 12, 36, + 93, 75, 61, 62, -1, 34, 75, 36, 34, 25, + 36, 27, 86, -1, -1, -1, -1, 86, -1, 75, + 75, -1, 38, 33, 61, 62, -1, -1, -1, 57, + 86, 86, -1, 75, -1, 63, 15, -1, 61, 62, + 57, -1, 75, 57, 86, 15, 63, 18, 19, 63, + -1, -1, -1, 86, 33, 34, 47, 36, -1, 18, + 19, -1, -1, 33, 34, 25, 36, 27, 23, 24, + 61, 62, -1, -1, 45, 46, -1, 32, 38, -1, + 35, -1, 37, -1, 94, -1, 45, 46, -1, 23, + 24, -1, -1, -1, -1, 23, 24, -1, 32, 23, + 24, 35, 93, 37, 32, 23, 24, 35, 32, 37, + -1, 35, -1, 37, 32, 23, 24, 35, 29, 37, + -1, -1, 29, 31, 32, 29, -1, 35, 29, 37, + 98, 99, 100, 101, 102, 103, 23, 24, 29, -1, + -1, 29, -1, -1, 31, 32, 18, 19, 35, -1, + 37, -1, -1, -1, -1, 66, 67, 68, -1, 66, + 67, 68, 66, 67, 68, 66, 67, 68, -1, -1, + -1, -1, 29, 45, 46, 66, 67, 68, 66, 67, + 68, -1, -1, 94, 95, 96, 29, 94, 95, 96, + 94, 95, 96, 94, 95, 96, -1, -1, -1, -1, + -1, -1, -1, 94, 95, 96, 94, 95, 96, 66, + 67, 68, -1, -1, -1, -1, -1, 29, -1, -1, + 29, -1, -1, 66, 67, 68, 29, -1, -1, 29, + -1, -1, 29, -1, 23, 24, 29, 94, 95, 96, + -1, -1, 31, 32, -1, -1, 35, -1, 37, -1, + -1, 94, 95, 96, 66, 67, 68, 66, 67, 68, -1, -1, -1, 66, 67, 68, 66, 67, 68, 66, - 67, 68, 29, -1, -1, 66, 67, 68, -1, 36, - 94, 95, 96, 94, 95, 96, -1, -1, 66, 67, - 68, 94, 95, 96, 94, 95, 96, 94, 95, 96, - -1, -1, -1, 94, 95, 96, -1, -1, 29, 66, - 67, 68, -1, 29, -1, -1, 94, 95, 96, -1, - -1, 29, -1, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, - 61, 62, -1, -1, -1, 66, 67, 68, -1, -1, - 66, 67, 68, 61, 62, -1, -1, -1, 66, 67, - 68, 61, 62, -1, -1, -1, 66, 67, 68, -1, - -1, -1, -1, 94, 95, 96, -1, -1, 94, 95, - 96, -1, -1, -1, -1, -1, 94, 95, 96, -1, - 29, -1, -1, -1, 94, 95, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 61, 62, 3, -1, -1, 66, 67, 68, - -1, -1, -1, -1, 13, -1, -1, -1, 17, -1, - -1, -1, -1, -1, -1, -1, -1, 26, -1, 28, - -1, -1, 31, -1, -1, 94, 95, 96, -1, -1, - 39, -1, 41, 42, -1, 12, 13, 3, -1, -1, - 49, -1, -1, 52, 53, 22, -1, 13, -1, 58, - -1, 17, 29, -1, -1, 64, 33, 34, -1, 36, - 26, -1, 28, -1, -1, -1, 43, -1, -1, -1, - 47, 80, -1, 39, -1, 41, 42, -1, -1, -1, - -1, -1, -1, 49, -1, -1, 52, 53, 65, 66, - 67, 68, 58, 70, -1, -1, -1, -1, 64, -1, - -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, - 87, -1, -1, -1, 80, -1, -1, 94, 95, 96, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, + 67, 68, 29, 66, 67, 68, -1, -1, -1, 36, + -1, 29, 94, 95, 96, 94, 95, 96, 36, -1, + -1, 94, 95, 96, 94, 95, 96, 94, 95, 96, + -1, 94, 95, 96, -1, 29, -1, -1, -1, 66, + 67, 68, 36, -1, -1, -1, -1, 29, 66, 67, + 68, -1, -1, -1, -1, 29, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 29, 94, 95, 96, + -1, -1, 66, 67, 68, -1, 94, 95, 96, -1, + -1, -1, -1, -1, 66, 67, 68, 61, 62, -1, + -1, -1, 66, 67, 68, -1, -1, -1, 61, 62, + 94, 95, 96, 66, 67, 68, 29, -1, -1, 29, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, - -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - 68, -1, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, - -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + 94, 95, 96, -1, 29, -1, -1, -1, -1, -1, + -1, 94, 95, 96, -1, -1, -1, -1, 61, 62, + -1, 61, 62, 66, 67, 68, 66, 67, 68, -1, + -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, + -1, 66, 67, 68, -1, -1, -1, -1, -1, -1, + -1, 94, 95, 96, 94, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 94, + 95, 96, -1, -1, -1, -1, -1, -1, -1, 12, + 13, 3, -1, -1, -1, -1, -1, -1, -1, 22, + -1, 13, -1, -1, -1, 17, 29, -1, -1, -1, + 33, 34, -1, 36, 26, -1, 28, -1, -1, -1, + 43, -1, -1, -1, 47, -1, -1, 39, -1, 41, + 42, -1, -1, -1, -1, -1, -1, 49, -1, -1, + 52, 53, 65, 66, 67, 68, 58, 70, -1, -1, + -1, -1, 64, -1, -1, -1, -1, -1, 81, 82, + 83, -1, -1, -1, 87, -1, -1, -1, 80, -1, + -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, 3, -1, -1, -1, 29, -1, + -1, -1, 33, 34, 13, 36, -1, -1, 17, -1, + -1, -1, 43, -1, -1, -1, 47, 26, -1, 28, + -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, + 39, -1, 41, 42, 65, 66, 67, 68, -1, 70, + 49, -1, -1, 52, 53, -1, -1, -1, -1, 58, + 81, 82, 83, -1, -1, 64, 87, -1, -1, -1, + -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, + -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, - -1, -1, -1, 75, -1, -1, -1, -1, -1, 81, - 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, - -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 10, -1, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, 68, -1, 70, -1, -1, -1, -1, 75, - -1, -1, -1, -1, -1, 81, 82, 83, 84, -1, - -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, - 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, -1, -1, -1, 75, -1, -1, -1, -1, - -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, - -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, + -1, -1, -1, -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, + -1, 36, -1, -1, -1, -1, -1, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, - -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, + 65, 66, 67, 68, -1, 70, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 7, -1, -1, -1, 11, 12, 13, -1, -1, - -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, - -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, - 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, - 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, - -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, - 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, - -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, - 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, - -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, - 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, - 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, - -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, - -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, - 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, - -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, + -1, -1, -1, -1, -1, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, - -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, - -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, - -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, - -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, + -1, 36, -1, -1, -1, -1, -1, -1, 43, -1, + -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 65, 66, 67, 68, -1, 70, -1, -1, -1, -1, + 75, -1, -1, -1, -1, -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, - 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, - -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, - 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, - -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, - -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, - -1, -1, 51, -1, 53, -1, -1, 56, -1, -1, + -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, - -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, - -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, + -1, 70, -1, -1, -1, -1, 75, -1, -1, -1, + -1, -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, - -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, - 74, -1, 76, -1, 78, -1, -1, 81, 82, 83, - -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 10, -1, 12, + 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, + 33, 34, -1, 36, -1, -1, -1, -1, -1, -1, + 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, 55, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, 68, -1, 70, -1, -1, + -1, -1, 75, -1, -1, -1, -1, -1, 81, 82, + 83, 84, -1, -1, 87, -1, -1, -1, -1, -1, + -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, + -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, + -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 7, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, - 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, - -1, -1, 61, -1, -1, -1, 65, 66, 67, 68, - 69, 70, -1, 72, 73, 74, -1, 76, -1, 78, + -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, + -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, + -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, - -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, - 74, -1, 76, -1, 78, -1, -1, 81, 82, 83, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, + 74, 75, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, - -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, - 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, - 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, -1, 66, 67, 68, 69, 70, 71, - -1, 73, 74, 75, 76, 77, 78, -1, -1, 81, - 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, - -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, - 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, - 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, - 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, - -1, -1, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, -1, 73, 74, 75, 76, 77, 78, -1, - -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, - -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, - -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, - -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, - -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, - 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, - -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, - 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, - 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, - -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, - 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, - 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, + -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, + 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, + -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, + 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, + 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, + -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4, -1, -1, -1, -1, 9, -1, 11, 12, 13, - 14, -1, -1, -1, -1, -1, -1, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, - 84, 85, -1, 87, -1, -1, -1, -1, -1, -1, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, - 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, + 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, -1, 56, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, + -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, + -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, 56, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, + 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, + -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, + -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, + -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, + -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, + 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, + 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, + -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, 61, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, 76, + -1, 78, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, - 82, 83, 84, 85, -1, 87, -1, -1, -1, -1, + -1, 53, -1, -1, -1, -1, -1, -1, -1, 61, + -1, -1, -1, 65, 66, 67, 68, 69, 70, -1, + 72, 73, 74, -1, 76, -1, 78, -1, -1, 81, + 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, - 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, - 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, - 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, - 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, - -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, - -1, 81, 82, 83, 84, 85, 86, 87, -1, -1, - -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, - -1, 9, 10, 11, 12, 13, 14, -1, 16, -1, - -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, - -1, 29, 30, 31, 32, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, 55, -1, -1, - -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, - -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, - - 32, 22, 18, 9, 18, 42, 18, 14, 32, 3, - 18, 3, 3, 18, 18, 32, 18, 32, 3, 22, - 3, 18, 3, 18, 25, 18, 22, 14, 18, 18, - 14, 42, 18, 32, 22, 77, 3, 100, 3, 3, - 3, 103, 42, 18, 42, 18, 3, 3, 25, 25, - 3, 105, 18, 25, 3, 3, 18, 18, 3, 18, - 42, 3, 42, 42, 42, 25, 18, 18, 42, 2, - -1, 18, 18, 42, 18, 18, 14, 18, 14, 18, - 2, 4, 2, 18, 42, 18, 54, 14, 56, 18, - -1, 4, -1, 18, -1, 18, 18, 18, 18, 54, - 54, 56, 56, 44, 54, 18, 56, 18, 11, 12, - 45, -1, -1, 51, 54, 51, 56, 54, 42, 56, - 54, 46, 54, 54, 51, 46, 50, 59, 59, 18, - 42, -1, -1, -1, 45, 54, 70, 54, 50, 54, - 59, 14, 59, 2, 59, 54, 19, 56, 54, 54, - 54, 56, 14, 59, 43, 54, 54, 56, 56, 18, - 2, 23, 2, 54, 68, 56, 14, 54, 54, 2, - 54, 19, 3, 60, 60, 59, 18, 54, 18, 18, - 109, 18, 59, 54, 54, 18, 54, 54, 59, 59, - 54, 59, 59, 54, 58, 38, 54, 58, 18, 42, - 58, 2, 54, 2, 18, 54, 45, 2, 45, 2, - 4, 3, 18, 18, 66, 64, 3, 18, 54, 18, - 56, 2, 54, 18, 18, 18, 46, 54, 60, 56, - 3, 3, 54, 47, 2, 57, 54, 18, 56, 54, - 2, 56, 54, 54, 56, 2, 57, 54, 2, 18, - 18, 54, 54, 56, -1, 62, 18, 54, 60, 56, - -1, 18, 14, 54, 18, 54, 2, 19, 59, -1, - 59, 54, 54, -1, 63, 44, 59, 59, -1, 54, - 2, -1, 18, 65, 59, 76, 78, 92, 94, 54, - 54, 78, 18, 76, 59, 59, 18, 61, 54, 54, - -1, 76, 67, 59, 59, 78, 78, 54, 54, -1, - 54, 54, 59, 59, 69, 59, 59, 61, 61, 14, - 76, 47, 48, -1, 71, -1, 54, 14, 23, 5, - 76, 59, 19, 61, 21, 5, -1, -1, 14, -1, - 35, 36, -1, -1, 14, -1, -1, 23, -1, -1, - -1, -1, 88, 23, -1, 42, -1, -1, -1, 35, - 36, -1, -1, -1, -1, 35, 36, 25, 26, 27, - 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, - -1, 14, -1, -1, -1, -1, -1, -1, -1, 2, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 14, - -1, -1, -1, -1, -1, 18, -1, -1, 23, 24, - 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, -1, -1, 61, -1, -1, -1, 65, 66, + 67, 68, 69, 70, -1, 72, 73, 74, -1, 76, + -1, 78, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, + 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, + -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, + -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, + -1, 66, 67, 68, 69, 70, 71, -1, 73, 74, + 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, + 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, + -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, + -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, -1, -1, -1, 47, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, + -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, + 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, + 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, + -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, + 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, + 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, + -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, + 71, -1, 73, 74, 75, 76, 77, 78, -1, -1, + 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, + -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, + 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, + -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, + 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, + -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, + 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, + 69, 70, 71, -1, 73, 74, 75, 76, 77, 78, + -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, + -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, + -1, -1, 9, -1, 11, 12, 13, 14, -1, -1, + -1, -1, -1, -1, 21, 22, -1, -1, -1, -1, + -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, + -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, -1, -1, 81, 82, 83, 84, 85, -1, + 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, + -1, -1, -1, -1, 9, -1, 11, 12, 13, 14, + -1, -1, -1, -1, -1, -1, 21, 22, -1, -1, + -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, + -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, + -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, + -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, + 85, -1, 87, -1, -1, -1, -1, -1, -1, 94, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4, 5, 6, -1, -1, 9, 10, 11, 12, + 13, 14, -1, 16, -1, -1, -1, 20, 21, 22, + -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, + 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, + 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, + -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, + 83, 84, 85, 86, 87, -1, -1, -1, -1, -1, + -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, + 11, 12, 13, 14, -1, 16, -1, -1, -1, 20, + 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, + 31, 32, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, 55, -1, -1, -1, 59, -1, + 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, + 81, 82, 83, 84, 85, 86, 87, -1, -1, -1, + -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, + + 14, 18, 32, 22, 14, 25, 32, 18, 32, 3, + 18, 18, 18, 22, 14, 3, 18, 22, 22, 32, + 18, 18, 3, 18, 3, 18, 18, 18, 18, 32, + 3, 32, 18, 18, 3, 18, 25, 3, 18, 3, + 18, 18, 18, 42, 18, 3, 42, 3, 3, 3, + 18, 3, 9, 3, 77, 42, 3, 18, 42, 105, + 42, 3, 25, 25, 3, 18, 25, 42, 3, 18, + 42, 42, 42, 100, 103, 42, 2, 42, 18, 4, + 18, 14, 2, -1, 18, 2, -1, 18, 4, 2, + 23, -1, 18, 18, 54, -1, -1, 18, 18, 11, + 12, 18, 18, 54, -1, 18, 54, 14, 54, 47, + 70, 54, 42, 64, 60, 46, -1, 54, 66, 56, + 50, 3, 54, 18, 56, 68, 54, 54, 56, 56, + 54, 54, 3, 57, 57, 54, 54, 56, 56, 54, + 54, 56, 56, 54, 51, 56, 54, -1, 56, 54, + 54, 56, 56, 54, 54, 18, 54, 54, 58, 60, + 58, 54, 59, 54, 54, 54, 59, 54, 59, 59, + 59, 54, 59, 54, 54, 109, 59, 58, 54, 54, + 60, 54, 18, 56, 60, 2, 14, 62, 14, 2, + 54, 19, 56, 19, 2, 2, 78, 2, 54, 94, + 56, 18, 18, 14, 14, 18, 18, 78, 44, 18, + 18, 18, 54, 18, 56, 54, 18, 56, 42, 18, + 4, 2, 2, 2, 18, 54, 50, 2, 44, 92, + 59, 43, 18, 54, 18, 56, 45, 18, 18, 18, + 51, 51, 18, 18, 46, 38, 45, 14, 2, 42, + 2, 45, 19, 54, 54, 2, 54, 54, 59, 59, + 46, 59, 59, 3, 18, 3, 18, 54, 2, 45, + 2, 18, 59, -1, -1, -1, 54, 54, -1, -1, + 54, 59, 59, 54, 18, 59, 18, 18, 59, 76, + 54, 69, 54, 54, 71, 59, 54, 59, 59, 63, + 61, 59, 76, 61, 54, 76, -1, -1, 54, 59, + -1, 61, -1, 59, 76, 61, 47, 48, 54, 54, + 14, 54, -1, 59, 59, -1, 59, 14, 5, 23, + 65, 67, 19, -1, 21, -1, -1, 14, 78, 5, + 78, 35, 36, 76, 2, -1, 23, -1, 14, -1, + -1, -1, -1, -1, 88, 42, 88, 23, 35, 36, + 18, 25, 26, 27, 28, 29, 30, 31, 14, 35, + 36, -1, -1, -1, -1, -1, -1, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 14, -1, -1, -1, + -1, -1, -1, -1, -1, 23, 24, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, - -1, -1, -1, -1, -1, -1, -1, 23, 24, 25, - 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 14, -1, -1, -1, -1, -1, -1, + -1, -1, 23, 24, 25, 26, 27, 28, 29, 30, + 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1}; + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1}; QT_END_NAMESPACE diff --git a/src/qml/parser/qqmljsgrammar_p.h b/src/qml/parser/qqmljsgrammar_p.h index fadbe80c64..244a807f24 100644 --- a/src/qml/parser/qqmljsgrammar_p.h +++ b/src/qml/parser/qqmljsgrammar_p.h @@ -167,15 +167,15 @@ public: T_XOR = 79, T_XOR_EQ = 80, - ACCEPT_STATE = 665, - RULE_COUNT = 358, - STATE_COUNT = 666, + ACCEPT_STATE = 672, + RULE_COUNT = 360, + STATE_COUNT = 673, TERMINAL_COUNT = 106, NON_TERMINAL_COUNT = 111, - GOTO_INDEX_OFFSET = 666, - GOTO_INFO_OFFSET = 3018, - GOTO_CHECK_OFFSET = 3018 + GOTO_INDEX_OFFSET = 673, + GOTO_INFO_OFFSET = 3185, + GOTO_CHECK_OFFSET = 3185 }; static const char *const spell []; diff --git a/src/qml/parser/qqmljsparser.cpp b/src/qml/parser/qqmljsparser.cpp index 92d12aee9c..ca5a09d22d 100644 --- a/src/qml/parser/qqmljsparser.cpp +++ b/src/qml/parser/qqmljsparser.cpp @@ -511,7 +511,20 @@ case 64: { sym(1).Node = node; } break; -case 65: { +case 66: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(5), stringRef(7)); + node->isDefaultMember = true; + node->defaultToken = loc(1); + node->typeModifier = stringRef(3); + node->propertyToken = loc(2); + node->typeModifierToken = loc(2); + node->typeToken = loc(4); + node->identifierToken = loc(7); + node->semicolonToken = loc(8); + sym(1).Node = node; +} break; + +case 67: { AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3), sym(5).Statement); node->propertyToken = loc(1); @@ -521,7 +534,7 @@ case 65: { sym(1).Node = node; } break; -case 66: { +case 68: { AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4), sym(6).Statement); node->isReadonlyMember = true; @@ -533,7 +546,7 @@ case 66: { sym(1).Node = node; } break; -case 67: { +case 69: { AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4), sym(6).Statement); node->isDefaultMember = true; @@ -545,7 +558,7 @@ case 67: { sym(1).Node = node; } break; -case 68: { +case 70: { AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(4), stringRef(6)); node->typeModifier = stringRef(2); node->propertyToken = loc(1); @@ -569,7 +582,7 @@ case 68: { sym(1).Node = node; } break; -case 69: { +case 71: { AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(2), stringRef(3)); node->propertyToken = loc(1); node->typeToken = loc(2); @@ -589,7 +602,7 @@ case 69: { sym(1).Node = node; } break; -case 70: { +case 72: { AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); node->isReadonlyMember = true; node->readonlyToken = loc(1); @@ -611,57 +624,57 @@ case 70: { sym(1).Node = node; } break; -case 71: { +case 73: { sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); } break; -case 72: { +case 74: { sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); } break; -case 80: { +case 82: { AST::ThisExpression *node = new (pool) AST::ThisExpression(); node->thisToken = loc(1); sym(1).Node = node; } break; -case 81: { +case 83: { AST::IdentifierExpression *node = new (pool) AST::IdentifierExpression(stringRef(1)); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 82: { +case 84: { AST::NullExpression *node = new (pool) AST::NullExpression(); node->nullToken = loc(1); sym(1).Node = node; } break; -case 83: { +case 85: { AST::TrueLiteral *node = new (pool) AST::TrueLiteral(); node->trueToken = loc(1); sym(1).Node = node; } break; -case 84: { +case 86: { AST::FalseLiteral *node = new (pool) AST::FalseLiteral(); node->falseToken = loc(1); sym(1).Node = node; } break; -case 85: { +case 87: { AST::NumericLiteral *node = new (pool) AST::NumericLiteral(sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 86: -case 87: { +case 88: +case 89: { AST::StringLiteral *node = new (pool) AST::StringLiteral(stringRef(1)); node->literalToken = loc(1); sym(1).Node = node; } break; -case 88: { +case 90: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -677,7 +690,7 @@ case 88: { sym(1).Node = node; } break; -case 89: { +case 91: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -693,28 +706,28 @@ case 89: { sym(1).Node = node; } break; -case 90: { +case 92: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral((AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 91: { +case 93: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 92: { +case 94: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 93: { +case 95: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -723,7 +736,7 @@ case 93: { sym(1).Node = node; } break; -case 94: { +case 96: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -732,7 +745,7 @@ case 94: { sym(1).Node = node; } break; -case 95: { +case 97: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = new (pool) AST::ObjectLiteral( @@ -744,7 +757,7 @@ case 95: { sym(1).Node = node; } break; -case 96: { +case 98: { AST::ObjectLiteral *node = new (pool) AST::ObjectLiteral( sym(2).PropertyAssignmentList->finish ()); node->lbraceToken = loc(1); @@ -752,14 +765,14 @@ case 96: { sym(1).Node = node; } break; -case 97: { +case 99: { AST::NestedExpression *node = new (pool) AST::NestedExpression(sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 98: { +case 100: { if (AST::ArrayMemberExpression *mem = AST::cast(sym(1).Expression)) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, mem->lbracketToken, QLatin1String("Ignored annotation"))); @@ -779,48 +792,48 @@ case 98: { } } break; -case 99: { +case 101: { sym(1).Node = new (pool) AST::ElementList((AST::Elision *) 0, sym(1).Expression); } break; -case 100: { +case 102: { sym(1).Node = new (pool) AST::ElementList(sym(1).Elision->finish(), sym(2).Expression); } break; -case 101: { +case 103: { AST::ElementList *node = new (pool) AST::ElementList(sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 102: { +case 104: { AST::ElementList *node = new (pool) AST::ElementList(sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 103: { +case 105: { AST::Elision *node = new (pool) AST::Elision(); node->commaToken = loc(1); sym(1).Node = node; } break; -case 104: { +case 106: { AST::Elision *node = new (pool) AST::Elision(sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 105: { +case 107: { AST::PropertyNameAndValue *node = new (pool) AST::PropertyNameAndValue( sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 106: { +case 108: { AST::PropertyGetterSetter *node = new (pool) AST::PropertyGetterSetter( sym(2).PropertyName, sym(6).FunctionBody); node->getSetToken = loc(1); @@ -831,7 +844,7 @@ case 106: { sym(1).Node = node; } break; -case 107: { +case 109: { AST::PropertyGetterSetter *node = new (pool) AST::PropertyGetterSetter( sym(2).PropertyName, sym(4).FormalParameterList, sym(7).FunctionBody); node->getSetToken = loc(1); @@ -842,56 +855,56 @@ case 107: { sym(1).Node = node; } break; -case 108: { +case 110: { sym(1).Node = new (pool) AST::PropertyAssignmentList(sym(1).PropertyAssignment); } break; -case 109: { +case 111: { AST::PropertyAssignmentList *node = new (pool) AST::PropertyAssignmentList( sym(1).PropertyAssignmentList, sym(3).PropertyAssignment); node->commaToken = loc(2); sym(1).Node = node; } break; -case 110: { +case 112: { AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 111: { +case 113: { AST::StringLiteralPropertyName *node = new (pool) AST::StringLiteralPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 112: { +case 114: { AST::NumericLiteralPropertyName *node = new (pool) AST::NumericLiteralPropertyName(sym(1).dval); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 113: { +case 115: { AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 149: { +case 151: { AST::ArrayMemberExpression *node = new (pool) AST::ArrayMemberExpression(sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 150: { +case 152: { AST::FieldMemberExpression *node = new (pool) AST::FieldMemberExpression(sym(1).Expression, stringRef(3)); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 151: { +case 153: { AST::NewMemberExpression *node = new (pool) AST::NewMemberExpression(sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -899,316 +912,309 @@ case 151: { sym(1).Node = node; } break; -case 153: { +case 155: { AST::NewExpression *node = new (pool) AST::NewExpression(sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 154: { +case 156: { AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 155: { +case 157: { AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); node->rparenToken = loc(4); sym(1).Node = node; } break; -case 156: { +case 158: { AST::ArrayMemberExpression *node = new (pool) AST::ArrayMemberExpression(sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 157: { +case 159: { AST::FieldMemberExpression *node = new (pool) AST::FieldMemberExpression(sym(1).Expression, stringRef(3)); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 158: { +case 160: { sym(1).Node = 0; } break; -case 159: { +case 161: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 160: { +case 162: { sym(1).Node = new (pool) AST::ArgumentList(sym(1).Expression); } break; -case 161: { +case 163: { AST::ArgumentList *node = new (pool) AST::ArgumentList(sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 165: { +case 167: { AST::PostIncrementExpression *node = new (pool) AST::PostIncrementExpression(sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 166: { +case 168: { AST::PostDecrementExpression *node = new (pool) AST::PostDecrementExpression(sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 168: { +case 170: { AST::DeleteExpression *node = new (pool) AST::DeleteExpression(sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 169: { +case 171: { AST::VoidExpression *node = new (pool) AST::VoidExpression(sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 170: { +case 172: { AST::TypeOfExpression *node = new (pool) AST::TypeOfExpression(sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 171: { +case 173: { AST::PreIncrementExpression *node = new (pool) AST::PreIncrementExpression(sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 172: { +case 174: { AST::PreDecrementExpression *node = new (pool) AST::PreDecrementExpression(sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 173: { +case 175: { AST::UnaryPlusExpression *node = new (pool) AST::UnaryPlusExpression(sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 174: { +case 176: { AST::UnaryMinusExpression *node = new (pool) AST::UnaryMinusExpression(sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 175: { +case 177: { AST::TildeExpression *node = new (pool) AST::TildeExpression(sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 176: { +case 178: { AST::NotExpression *node = new (pool) AST::NotExpression(sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 178: { +case 180: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 179: { +case 181: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 180: { +case 182: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 184: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 183: { +case 185: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 187: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 186: { +case 188: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 187: { +case 189: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 189: { +case 191: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 190: { +case 192: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 191: { +case 193: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 192: { +case 194: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 193: { +case 195: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 194: { +case 196: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 196: { +case 198: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 197: { +case 199: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 198: { +case 200: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 199: { +case 201: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 200: { +case 202: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 202: { +case 204: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 203: { +case 205: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 204: { +case 206: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 205: { +case 207: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 207: { +case 209: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 208: { +case 210: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 209: { +case 211: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 210: { - AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::StrictNotEqual, sym(3).Expression); - node->operatorToken = loc(2); - sym(1).Node = node; -} break; - case 212: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::BitAnd, sym(3).Expression); + QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1222,7 +1228,7 @@ case 214: { case 216: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::BitXor, sym(3).Expression); + QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1236,7 +1242,7 @@ case 218: { case 220: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::BitOr, sym(3).Expression); + QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1250,7 +1256,7 @@ case 222: { case 224: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::And, sym(3).Expression); + QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1264,7 +1270,7 @@ case 226: { case 228: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Or, sym(3).Expression); + QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; @@ -1277,6 +1283,13 @@ case 230: { } break; case 232: { + AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, + QSOperator::Or, sym(3).Expression); + node->operatorToken = loc(2); + sym(1).Node = node; +} break; + +case 234: { AST::ConditionalExpression *node = new (pool) AST::ConditionalExpression(sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1284,7 +1297,7 @@ case 232: { sym(1).Node = node; } break; -case 234: { +case 236: { AST::ConditionalExpression *node = new (pool) AST::ConditionalExpression(sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1292,112 +1305,112 @@ case 234: { sym(1).Node = node; } break; -case 236: { +case 238: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 238: { +case 240: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 239: { +case 241: { sym(1).ival = QSOperator::Assign; } break; -case 240: { +case 242: { sym(1).ival = QSOperator::InplaceMul; } break; -case 241: { +case 243: { sym(1).ival = QSOperator::InplaceDiv; } break; -case 242: { +case 244: { sym(1).ival = QSOperator::InplaceMod; } break; -case 243: { +case 245: { sym(1).ival = QSOperator::InplaceAdd; } break; -case 244: { +case 246: { sym(1).ival = QSOperator::InplaceSub; } break; -case 245: { +case 247: { sym(1).ival = QSOperator::InplaceLeftShift; } break; -case 246: { +case 248: { sym(1).ival = QSOperator::InplaceRightShift; } break; -case 247: { +case 249: { sym(1).ival = QSOperator::InplaceURightShift; } break; -case 248: { +case 250: { sym(1).ival = QSOperator::InplaceAnd; } break; -case 249: { +case 251: { sym(1).ival = QSOperator::InplaceXor; } break; -case 250: { +case 252: { sym(1).ival = QSOperator::InplaceOr; } break; -case 252: { +case 254: { AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 253: { +case 255: { sym(1).Node = 0; } break; -case 256: { +case 258: { AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 257: { +case 259: { sym(1).Node = 0; } break; -case 274: { +case 276: { AST::Block *node = new (pool) AST::Block(sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 275: { +case 277: { sym(1).Node = new (pool) AST::StatementList(sym(1).Statement); } break; -case 276: { +case 278: { sym(1).Node = new (pool) AST::StatementList(sym(1).StatementList, sym(2).Statement); } break; -case 277: { +case 279: { sym(1).Node = 0; } break; -case 278: { +case 280: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 280: { +case 282: { AST::VariableStatement *node = new (pool) AST::VariableStatement( sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1405,76 +1418,76 @@ case 280: { sym(1).Node = node; } break; -case 281: { +case 283: { sym(1).ival = T_CONST; } break; -case 282: { +case 284: { sym(1).ival = T_VAR; } break; -case 283: { +case 285: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclaration); } break; -case 284: { +case 286: { AST::VariableDeclarationList *node = new (pool) AST::VariableDeclarationList( sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 285: { +case 287: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclaration); } break; -case 286: { +case 288: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; -case 287: { +case 289: { AST::VariableDeclaration *node = new (pool) AST::VariableDeclaration(stringRef(1), sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 288: { +case 290: { AST::VariableDeclaration *node = new (pool) AST::VariableDeclaration(stringRef(1), sym(2).Expression); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 289: { +case 291: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 290: { +case 292: { sym(1).Node = 0; } break; -case 292: { +case 294: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 293: { +case 295: { sym(1).Node = 0; } break; -case 295: { +case 297: { AST::EmptyStatement *node = new (pool) AST::EmptyStatement(); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 297: { +case 299: { AST::ExpressionStatement *node = new (pool) AST::ExpressionStatement(sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 298: { +case 300: { AST::IfStatement *node = new (pool) AST::IfStatement(sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1483,7 +1496,7 @@ case 298: { sym(1).Node = node; } break; -case 299: { +case 301: { AST::IfStatement *node = new (pool) AST::IfStatement(sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1491,7 +1504,7 @@ case 299: { sym(1).Node = node; } break; -case 302: { +case 304: { AST::DoWhileStatement *node = new (pool) AST::DoWhileStatement(sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1501,7 +1514,7 @@ case 302: { sym(1).Node = node; } break; -case 303: { +case 305: { AST::WhileStatement *node = new (pool) AST::WhileStatement(sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1509,7 +1522,7 @@ case 303: { sym(1).Node = node; } break; -case 304: { +case 306: { AST::ForStatement *node = new (pool) AST::ForStatement(sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1520,7 +1533,7 @@ case 304: { sym(1).Node = node; } break; -case 305: { +case 307: { AST::LocalForStatement *node = new (pool) AST::LocalForStatement( sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1533,7 +1546,7 @@ case 305: { sym(1).Node = node; } break; -case 306: { +case 308: { AST:: ForEachStatement *node = new (pool) AST::ForEachStatement(sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1543,7 +1556,7 @@ case 306: { sym(1).Node = node; } break; -case 307: { +case 309: { AST::LocalForEachStatement *node = new (pool) AST::LocalForEachStatement( sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1554,14 +1567,14 @@ case 307: { sym(1).Node = node; } break; -case 309: { +case 311: { AST::ContinueStatement *node = new (pool) AST::ContinueStatement(); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 311: { +case 313: { AST::ContinueStatement *node = new (pool) AST::ContinueStatement(stringRef(2)); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1569,14 +1582,14 @@ case 311: { sym(1).Node = node; } break; -case 313: { +case 315: { AST::BreakStatement *node = new (pool) AST::BreakStatement(QStringRef()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 315: { +case 317: { AST::BreakStatement *node = new (pool) AST::BreakStatement(stringRef(2)); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1584,14 +1597,14 @@ case 315: { sym(1).Node = node; } break; -case 317: { +case 319: { AST::ReturnStatement *node = new (pool) AST::ReturnStatement(sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 318: { +case 320: { AST::WithStatement *node = new (pool) AST::WithStatement(sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1599,7 +1612,7 @@ case 318: { sym(1).Node = node; } break; -case 319: { +case 321: { AST::SwitchStatement *node = new (pool) AST::SwitchStatement(sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1607,83 +1620,83 @@ case 319: { sym(1).Node = node; } break; -case 320: { +case 322: { AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 321: { +case 323: { AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 322: { +case 324: { sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClause); } break; -case 323: { +case 325: { sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClauses, sym(2).CaseClause); } break; -case 324: { +case 326: { sym(1).Node = 0; } break; -case 325: { +case 327: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 326: { +case 328: { AST::CaseClause *node = new (pool) AST::CaseClause(sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 327: { +case 329: { AST::DefaultClause *node = new (pool) AST::DefaultClause(sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 328: { +case 330: { AST::LabelledStatement *node = new (pool) AST::LabelledStatement(stringRef(1), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 330: { +case 332: { AST::ThrowStatement *node = new (pool) AST::ThrowStatement(sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 331: { +case 333: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 332: { +case 334: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 333: { +case 335: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 334: { +case 336: { AST::Catch *node = new (pool) AST::Catch(stringRef(3), sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1692,20 +1705,20 @@ case 334: { sym(1).Node = node; } break; -case 335: { +case 337: { AST::Finally *node = new (pool) AST::Finally(sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 337: { +case 339: { AST::DebuggerStatement *node = new (pool) AST::DebuggerStatement(); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 339: { +case 341: { AST::FunctionDeclaration *node = new (pool) AST::FunctionDeclaration(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1716,7 +1729,7 @@ case 339: { sym(1).Node = node; } break; -case 340: { +case 342: { AST::FunctionExpression *node = new (pool) AST::FunctionExpression(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (! stringRef(2).isNull()) @@ -1728,7 +1741,7 @@ case 340: { sym(1).Node = node; } break; -case 341: { +case 343: { AST::FunctionExpression *node = new (pool) AST::FunctionExpression(QStringRef(), sym(3).FormalParameterList, sym(6).FunctionBody); node->functionToken = loc(1); node->lparenToken = loc(2); @@ -1738,56 +1751,56 @@ case 341: { sym(1).Node = node; } break; -case 342: { +case 344: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(stringRef(1)); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 343: { +case 345: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(sym(1).FormalParameterList, stringRef(3)); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 344: { +case 346: { sym(1).Node = 0; } break; -case 345: { +case 347: { sym(1).Node = sym(1).FormalParameterList->finish (); } break; -case 346: { +case 348: { sym(1).Node = 0; } break; -case 348: { +case 350: { sym(1).Node = new (pool) AST::FunctionBody(sym(1).SourceElements->finish ()); } break; -case 350: { +case 352: { sym(1).Node = new (pool) AST::Program(sym(1).SourceElements->finish ()); } break; -case 351: { +case 353: { sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElement); } break; -case 352: { +case 354: { sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElements, sym(2).SourceElement); } break; -case 353: { +case 355: { sym(1).Node = new (pool) AST::StatementSourceElement(sym(1).Statement); } break; -case 354: { +case 356: { sym(1).Node = new (pool) AST::FunctionSourceElement(sym(1).FunctionDeclaration); } break; -case 355: { +case 357: { sym(1).Node = 0; } break; diff --git a/src/qml/parser/qqmljsparser_p.h b/src/qml/parser/qqmljsparser_p.h index 00ffb6aca3..7533750a53 100644 --- a/src/qml/parser/qqmljsparser_p.h +++ b/src/qml/parser/qqmljsparser_p.h @@ -246,9 +246,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 88 +#define J_SCRIPT_REGEXPLITERAL_RULE1 90 -#define J_SCRIPT_REGEXPLITERAL_RULE2 89 +#define J_SCRIPT_REGEXPLITERAL_RULE2 91 QT_QML_END_NAMESPACE diff --git a/tests/auto/qml/qqmllanguage/data/QtObjectWithChildren.qml b/tests/auto/qml/qqmllanguage/data/QtObjectWithChildren.qml new file mode 100644 index 0000000000..bb28e22110 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/QtObjectWithChildren.qml @@ -0,0 +1,5 @@ +import QtQml 2.0 + +QtObject { + default property list myChildren; +} diff --git a/tests/auto/qml/qqmllanguage/data/defaultListProperty.qml b/tests/auto/qml/qqmllanguage/data/defaultListProperty.qml new file mode 100644 index 0000000000..d68ffd2979 --- /dev/null +++ b/tests/auto/qml/qqmllanguage/data/defaultListProperty.qml @@ -0,0 +1,6 @@ +import QtQml 2.0 + +QtObjectWithChildren { + QtObject { + } +} diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp index ad06946b0b..658b4f5852 100644 --- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp +++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp @@ -254,6 +254,8 @@ private slots: void arrayBuffer_data(); void arrayBuffer(); + void defaultListProperty(); + private: QQmlEngine engine; QStringList defaultImportPathList; @@ -4233,6 +4235,13 @@ void tst_qqmllanguage::arrayBuffer() QCOMPARE(object->property("ok").toBool(), true); } +void tst_qqmllanguage::defaultListProperty() +{ + QQmlComponent component(&engine, testFileUrl("defaultListProperty.qml")); + VERIFY_ERRORS(0); + QScopedPointer o(component.create()); +} + QTEST_MAIN(tst_qqmllanguage) #include "tst_qqmllanguage.moc" -- cgit v1.2.3 From ae5c13acb12b66929032824b651177db341f6d57 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Thu, 24 Nov 2016 09:05:54 +0100 Subject: Fix OS platform label documentation Task-number: QTBUG-49033 Change-Id: I2e8157f8d2b40299799cbf31b424060ff89ab75a Reviewed-by: Oliver Wolff --- src/qml/qml/qqmlengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 7877ee7e21..2a439bde98 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -443,7 +443,7 @@ The following functions are also on the Qt object. \li \c "osx" - \macos \li \c "unix" - Other Unix-based OS \li \c "windows" - Windows - \li \c "winrt" - Windows Runtime + \li \c "winrt" - WinRT / UWP \li \c "winphone" - Windows Phone \endlist \endtable -- cgit v1.2.3 From 4b22e2093f08fb66107af4dbd8138cf9526c5786 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 24 Nov 2016 13:15:49 +0100 Subject: qmlimportscanner: Output application name in generic error messages This makes it easier to spot issues in build logs. Amends change a23bcdf91971510b79c541fdff4a9467ead08751. Change-Id: I68e440c2ce79504fb5f5fa08392a91d39e631e25 Reviewed-by: Andy Shaw --- tools/qmlimportscanner/main.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/qmlimportscanner/main.cpp b/tools/qmlimportscanner/main.cpp index 0f8eca34e1..1e5f7a9921 100644 --- a/tools/qmlimportscanner/main.cpp +++ b/tools/qmlimportscanner/main.cpp @@ -519,7 +519,8 @@ int main(int argc, char *argv[]) std::cerr << "-importPath requires an argument\n"; argReceiver = &qmlImportPaths; } else { - std::cerr << "Invalid argument: \"" << qPrintable(arg) << "\"\n"; + std::cerr << qPrintable(appName) << ": Invalid argument: \"" + << qPrintable(arg) << "\"\n"; return 1; } @@ -529,7 +530,8 @@ int main(int argc, char *argv[]) break; ++i; if (!QFile::exists(arg)) { - std::cerr << "No such file or directory: \"" << qPrintable(arg) << "\"\n"; + std::cerr << qPrintable(appName) << ": No such file or directory: \"" + << qPrintable(arg) << "\"\n"; return 1; } else { *argReceiver += arg; -- cgit v1.2.3 From 5e6bf607ee1e466eebabb7b8114c9f5e8fc40a9e Mon Sep 17 00:00:00 2001 From: Erik Verbruggen Date: Wed, 23 Nov 2016 12:55:30 +0100 Subject: V4: check for exceptions after convertThisToObject The method_convertThisToObject method was invalidly tagged as not needing exception checks. As a side-effect method_pushCatchScope and method_popScope are now correctly tagged with a NoThrowEngine. Change-Id: I11d987e62136216a29eadcbd641546311030058f Reviewed-by: Simon Hausmann --- src/qml/jsruntime/qv4runtime.cpp | 4 ++-- src/qml/jsruntime/qv4runtimeapi_p.h | 9 ++------- src/qml/jsruntime/qv4vme_moth.cpp | 4 ++-- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/qml/jsruntime/qv4runtime.cpp b/src/qml/jsruntime/qv4runtime.cpp index 0a71f0000a..2026ecdfde 100644 --- a/src/qml/jsruntime/qv4runtime.cpp +++ b/src/qml/jsruntime/qv4runtime.cpp @@ -1259,7 +1259,7 @@ ReturnedValue Runtime::method_unwindException(ExecutionEngine *engine) * * Instead the push/pop pair acts as a non local scope. */ -void Runtime::method_pushWithScope(const Value &o, ExecutionEngine *engine) +void Runtime::method_pushWithScope(const Value &o, NoThrowEngine *engine) { engine->pushContext(engine->currentContext->newWithContext(o.toObject(engine))); Q_ASSERT(engine->jsStackTop == engine->currentContext + 2); @@ -1272,7 +1272,7 @@ void Runtime::method_pushCatchScope(NoThrowEngine *engine, int exceptionVarNameI Q_ASSERT(engine->jsStackTop == engine->currentContext + 2); } -void Runtime::method_popScope(ExecutionEngine *engine) +void Runtime::method_popScope(NoThrowEngine *engine) { Q_ASSERT(engine->jsStackTop == engine->currentContext + 2); engine->popContext(); diff --git a/src/qml/jsruntime/qv4runtimeapi_p.h b/src/qml/jsruntime/qv4runtimeapi_p.h index 040a545b83..e06a3f5ec2 100644 --- a/src/qml/jsruntime/qv4runtimeapi_p.h +++ b/src/qml/jsruntime/qv4runtimeapi_p.h @@ -63,11 +63,6 @@ template struct ExceptionCheck { enum { NeedsCheck = 1 }; }; -// push_catch and pop context methods shouldn't check for exceptions -template <> -struct ExceptionCheck { - enum { NeedsCheck = 0 }; -}; template struct ExceptionCheck { enum { NeedsCheck = 0 }; @@ -244,9 +239,9 @@ struct Q_QML_PRIVATE_EXPORT Runtime { // exceptions & scopes RUNTIME_METHOD(void, throwException, (ExecutionEngine *engine, const Value &value)); RUNTIME_METHOD(ReturnedValue, unwindException, (ExecutionEngine *engine)); - RUNTIME_METHOD(void, pushWithScope, (const Value &o, ExecutionEngine *engine)); + RUNTIME_METHOD(void, pushWithScope, (const Value &o, NoThrowEngine *engine)); RUNTIME_METHOD(void, pushCatchScope, (NoThrowEngine *engine, int exceptionVarNameIndex)); - RUNTIME_METHOD(void, popScope, (ExecutionEngine *engine)); + RUNTIME_METHOD(void, popScope, (NoThrowEngine *engine)); // closures RUNTIME_METHOD(ReturnedValue, closure, (ExecutionEngine *engine, int functionId)); diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 0f7f6b1f75..b19c36a5bd 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -662,13 +662,13 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code MOTH_END_INSTR(CallBuiltinPushCatchScope) MOTH_BEGIN_INSTR(CallBuiltinPushScope) - engine->runtime.pushWithScope(VALUE(instr.arg), engine); + engine->runtime.pushWithScope(VALUE(instr.arg), static_cast(engine)); context = engine->currentContext; CHECK_EXCEPTION; MOTH_END_INSTR(CallBuiltinPushScope) MOTH_BEGIN_INSTR(CallBuiltinPopScope) - engine->runtime.popScope(engine); + engine->runtime.popScope(static_cast(engine)); context = engine->currentContext; MOTH_END_INSTR(CallBuiltinPopScope) -- cgit v1.2.3 From 9fdab4a3619f457f66716c74ea73355453557e52 Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 25 Nov 2016 13:11:32 +0100 Subject: D3D12: Fix RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH Change-Id: I531d53c81d5ab19bba22f883bc802ecc8d02590d Task-number: QTBUG-57234 Reviewed-by: Andy Nichols --- src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp b/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp index 44f79ebea7..caf64ebb8b 100644 --- a/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp +++ b/src/plugins/scenegraph/d3d12/qsgd3d12engine.cpp @@ -1052,8 +1052,11 @@ ID3D12Resource *QSGD3D12EnginePrivate::createColorBuffer(D3D12_CPU_DESCRIPTOR_HA rtDesc.Flags = D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET; ID3D12Resource *resource = nullptr; + const D3D12_RESOURCE_STATES initialState = samples <= 1 + ? D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE + : D3D12_RESOURCE_STATE_RENDER_TARGET; if (FAILED(device->CreateCommittedResource(&heapProp, D3D12_HEAP_FLAG_NONE, &rtDesc, - D3D12_RESOURCE_STATE_RENDER_TARGET, &clearValue, IID_PPV_ARGS(&resource)))) { + initialState, &clearValue, IID_PPV_ARGS(&resource)))) { qWarning("Failed to create offscreen render target of size %dx%d", size.width(), size.height()); return nullptr; } -- cgit v1.2.3 From 8bf579d8d4feb13ca8651e98dd762b28483abe9e Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Sat, 22 Oct 2016 05:24:20 +0200 Subject: Cleanup of builtin JS helpers for qmljs Replace the hand-written gc and print functions with the print and gc functions also used in Qml and QJSEngine. And while we're at it, this also adds the console object. Change-Id: Ia3a0ff24936b7ed5149cb689838b987f9178131e Reviewed-by: Erik Verbruggen Reviewed-by: Mitch Curtis --- src/qml/jsruntime/qv4engine_p.h | 2 +- src/qml/qml/v8/qqmlbuiltinfunctions_p.h | 2 +- tools/qmljs/qmljs.cpp | 57 ++------------------------------- 3 files changed, 4 insertions(+), 57 deletions(-) diff --git a/src/qml/jsruntime/qv4engine_p.h b/src/qml/jsruntime/qv4engine_p.h index a46066bde4..25d6fc1970 100644 --- a/src/qml/jsruntime/qv4engine_p.h +++ b/src/qml/jsruntime/qv4engine_p.h @@ -147,7 +147,7 @@ public: QQmlEngine *qmlEngine() const; #else // !V4_BOOTSTRAP QJSEngine *jsEngine() const { return v8Engine->publicEngine(); } - QQmlEngine *qmlEngine() const { return v8Engine->engine(); } + QQmlEngine *qmlEngine() const { return v8Engine ? v8Engine->engine() : nullptr; } #endif // V4_BOOTSTRAP QV8Engine *v8Engine; diff --git a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h index 7602a92582..f428e377d7 100644 --- a/src/qml/qml/v8/qqmlbuiltinfunctions_p.h +++ b/src/qml/qml/v8/qqmlbuiltinfunctions_p.h @@ -166,7 +166,7 @@ struct ConsoleObject : Object }; -struct GlobalExtensions { +struct Q_QML_PRIVATE_EXPORT GlobalExtensions { static void init(Object *globalObject, QJSEngine::Extensions extensions); #ifndef QT_NO_TRANSLATION diff --git a/tools/qmljs/qmljs.cpp b/tools/qmljs/qmljs.cpp index b0079dcf49..dd1898a88a 100644 --- a/tools/qmljs/qmljs.cpp +++ b/tools/qmljs/qmljs.cpp @@ -42,6 +42,7 @@ #include "private/qv4context_p.h" #include "private/qv4script_p.h" #include "private/qv4string_p.h" +#include "private/qqmlbuiltinfunctions_p.h" #ifdef V4_ENABLE_JIT # include "private/qv4isel_masm_p.h" @@ -60,57 +61,6 @@ QT_REQUIRE_CONFIG(qml_interpreter); #include -namespace builtins { - -using namespace QV4; - -struct Print: FunctionObject -{ - struct Data : Heap::FunctionObject { - void init(ExecutionContext *scope) - { - Heap::FunctionObject::init(scope, QStringLiteral("print")); - } - }; - V4_OBJECT(FunctionObject) - - static void call(const Managed *, Scope &scope, CallData *callData) - { - for (int i = 0; i < callData->argc; ++i) { - QString s = callData->args[i].toQStringNoThrow(); - if (i) - std::cout << ' '; - std::cout << qPrintable(s); - } - std::cout << std::endl; - scope.result = Encode::undefined(); - } -}; - -DEFINE_OBJECT_VTABLE(Print); - -struct GC: public FunctionObject -{ - struct Data : Heap::FunctionObject { - void init(ExecutionContext *scope) - { - Heap::FunctionObject::init(scope, QStringLiteral("gc")); - } - - }; - V4_OBJECT(FunctionObject) - - static void call(const Managed *m, Scope &scope, CallData *) - { - static_cast(m)->engine()->memoryManager->runGC(); - scope.result = Encode::undefined(); - } -}; - -DEFINE_OBJECT_VTABLE(GC); - -} // builtins - static void showException(QV4::ExecutionContext *ctx, const QV4::Value &exception, const QV4::StackTrace &trace) { QV4::Scope scope(ctx); @@ -200,10 +150,7 @@ int main(int argc, char *argv[]) QV4::Scope scope(&vm); QV4::ScopedContext ctx(scope, vm.rootContext()); - QV4::ScopedObject print(scope, vm.memoryManager->allocObject(vm.rootContext())); - vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("print"))).getPointer(), print); - QV4::ScopedObject gc(scope, vm.memoryManager->allocObject(ctx)); - vm.globalObject->put(QV4::ScopedString(scope, vm.newIdentifier(QStringLiteral("gc"))).getPointer(), gc); + QV4::GlobalExtensions::init(vm.globalObject, QJSEngine::ConsoleExtension | QJSEngine::GarbageCollectionExtension); for (const QString &fn : qAsConst(args)) { QFile file(fn); -- cgit v1.2.3