{"code":"#ifndef TELNET_H\n#define TELNET_H\n\n/* Telnet Defines */\n#define IAC   255\n#define DONT  254\n#define DO    253\n#define WONT  252\n#define WILL  251\n\n#define SE  240  // Subnegotiation End\n#define NOP 241  // No Operation\n#define DM  242  // Data Mark\n#define BRK 243  // Break\n#define IP  244  // Interrupt process\n#define AO  245  // Abort output\n#define AYT 246  // Are You There\n#define EC  247  // Erase Character\n#define EL  248  // Erase Line\n#define GA  249  // Go Ahead\n#define SB  250  // Subnegotiation Begin\n\n#define BINARY 0 // 8-bit data path\n#define ECHO 1 // echo\n#define RCP 2 // prepare to reconnect\n#define SGA 3 // suppress go ahead\n#define NAMS 4 // approximate message size\n#define STATUS 5 // give status\n#define TM 6 // timing mark\n#define RCTE 7 // remote controlled transmission and echo\n#define NAOL 8 // negotiate about output line width\n#define NAOP 9 // negotiate about output page size\n#define NAOCRD 10 // negotiate about CR disposition\n#define NAOHTS 11 // negotiate about horizontal tabstops\n#define NAOHTD 12 // negotiate about horizontal tab disposition\n#define NAOFFD 13 // negotiate about formfeed disposition\n#define NAOVTS 14 // negotiate about vertical tab stops\n#define NAOVTD 15 // negotiate about vertical tab disposition\n#define NAOLFD 16 // negotiate about output LF disposition\n#define XASCII 17 // extended ascii character set\n#define LOGOUT 18 // force logout\n#define BM 19 // byte macro\n#define DET 20 // data entry terminal\n#define SUPDUP 21 // supdup protocol\n#define SUPDUPOUTPUT 22 // supdup output\n#define SNDLOC 23 // send location\n#define TTYPE 24 // terminal type\n#define EOR 25 // end or record\n#define TUID 26 // TACACS user identification\n#define OUTMRK 27 // output marking\n#define TTYLOC 28 // terminal location number\n#define VT3270REGIME 29 // 3270 regime\n#define X3PAD 30 // X.3 PAD\n#define NAWS 31 // window size\n#define TSPEED 32 // terminal speed\n#define LFLOW 33 // remote flow control\n#define LINEMODE 34 // Linemode option\n#define XDISPLOC 35 // X Display Location\n#define OLD_ENVIRON 36 // Old - Environment variables\n#define AUTHENTICATION 37 // Authenticate\n#define ENCRYPT 38 // Encryption option\n#define NEW_ENVIRON 39 // New - Environment variables\n#define TN3270E 40 // TN3270E\n#define XAUTH 41 // XAUTH\n#define CHARSET 42 // CHARSET\n#define RSP 43 // Telnet Remote Serial Port\n#define COM_PORT_OPTION 44 // Com Port Control Option\n#define SUPPRESS_LOCAL_ECHO 45 // Telnet Suppress Local Echo\n#define TLS 46 // Telnet Start TLS\n#define KERMIT 47 // KERMIT\n#define SEND_URL 48 // SEND-URL\n#define FORWARD_X 49 // FORWARD_X\n#define PRAGMA_LOGON 138 // TELOPT PRAGMA LOGON\n#define SSPI_LOGON 139 // TELOPT SSPI LOGON\n#define PRAGMA_HEARTBEAT 140 // TELOPT PRAGMA HEARTBEAT\n#define EXOPL 255 // Extended-Options-List\n#define NOOPT 0\n\n#define IS 0\n#define SEND 1\n\n#endif\n\n#ifndef SUBTITLEPARSER_H\n#define SUBTITLEPARSER_H\n\n#include <QIODevice>\n#include <QString>\n#include <QLinkedList>\n#include <QMetaType>\n\nclass Subtitle\n{\npublic:\n\tSubtitle(const QString &text, quint64 start, quint64 stop);\n\tbool isContainedIn(quint64 time) const;\n\tvoid offsetTime(qint64 time);\n\tQString text() const;\n\tbool isAfter(quint64 time) const;\n\tQString toString() const;\nprivate:\n\tQString formatTime(quint64 time) const;\n\tquint64 m_start;\n\tquint64 m_stop;\n\tqint64 m_offset;\n\tQString m_text;\n};\nclass SubtitleParser\n{\npublic:\n\tSubtitleParser(QIODevice *toRead, const QString &fileName);\n\tvoid offsetTime(qint64 time);\n\tvoid writeOut(QIODevice *toWrite);\n\tQString fileName() const;\n\tQString subtitleAtTime(quint64 time);\nprivate:\n\tquint64 parseTime(const QString &time);\n\tQLinkedList<Subtitle> m_subtitles;\n\tQString m_fileName;\n\tQLinkedList<Subtitle>::const_iterator m_searchPosition;\n\n};\nQ_DECLARE_METATYPE(SubtitleParser*)\n\n#endif // SUBTITLEPARSER_H\n\n#include <linux/kernel.h>\n#include <linux/string.h>\n#include <linux/module.h>\n#include <linux/random.h>\n#include <asm/unaligned.h>\n\n/* Change this value to 1, 2, or 3. */\n#define USE_METHOD 1\n\n#define POLY1305_BLOCK_SIZE\t16\n#define POLY1305_KEY_SIZE\t32\n#define POLY1305_MAC_SIZE\t16\n\nstruct poly1305_ctx {\n\t/* key */\n\tu32 r[5];\n\t/* finalize key */\n\tu32 s[4];\n\t/* accumulator */\n\tu32 h[5];\n\t/* partial buffer */\n\tu8 buf[POLY1305_BLOCK_SIZE];\n\t/* bytes used in partial buffer */\n\tunsigned int buflen;\n};\n\nstatic inline u32 le32_to_cpuvp(const void *p)\n{\n\treturn le32_to_cpup(p);\n}\n\nstatic inline u64 mlt(u64 a, u64 b)\n{\n\treturn a * b;\n}\n\nstatic inline u32 sr(u64 v, u_char n)\n{\n\treturn v >> n;\n}\n\nstatic inline u32 and(u32 v, u32 mask)\n{\n\treturn v & mask;\n}\n\nstatic void poly1305_init(struct poly1305_ctx *ctx, const u8 key[static POLY1305_KEY_SIZE])\n{\n#if USE_METHOD == 3\n\tu32 t0, t1, t2, t3;\n#endif\n\tmemset(ctx, 0, sizeof(struct poly1305_ctx));\n\t/* r &= 0xffffffc0ffffffc0ffffffc0fffffff */\n#if USE_METHOD == 1\n\tctx->r[0] = (le32_to_cpuvp(key +  0) >> 0) & 0x3ffffff;\n\tctx->r[1] = (le32_to_cpuvp(key +  3) >> 2) & 0x3ffff03;\n\tctx->r[2] = (le32_to_cpuvp(key +  6) >> 4) & 0x3ffc0ff;\n\tctx->r[3] = (le32_to_cpuvp(key +  9) >> 6) & 0x3f03fff;\n\tctx->r[4] = (le32_to_cpuvp(key + 12) >> 8) & 0x00fffff;\n#elif USE_METHOD == 2\n\tctx->r[0] = (le32_to_cpuvp(key +  0) >> 0) & 0x3ffffff;\n\tctx->r[1] = (get_unaligned_le32(key +  3) >> 2) & 0x3ffff03;\n\tctx->r[2] = (get_unaligned_le32(key +  6) >> 4) & 0x3ffc0ff;\n\tctx->r[3] = (get_unaligned_le32(key +  9) >> 6) & 0x3f03fff;\n\tctx->r[4] = (le32_to_cpuvp(key + 12) >> 8) & 0x00fffff;\n#elif USE_METHOD == 3\n\tt0 = le32_to_cpuvp(key +  0);\n\tt1 = le32_to_cpuvp(key +  4);\n\tt2 = le32_to_cpuvp(key +  8);\n\tt3 = le32_to_cpuvp(key + 12);\n\tctx->r[0] = t0 & 0x3ffffff; t0 >>= 26; t0 |= t1 << 6;\n\tctx->r[1] = t0 & 0x3ffff03; t1 >>= 20; t1 |= t2 << 12;\n\tctx->r[2] = t1 & 0x3ffc0ff; t2 >>= 14; t2 |= t3 << 18;\n\tctx->r[3] = t2 & 0x3f03fff; t3 >>= 8;\n\tctx->r[4] = t3 & 0x00fffff;\n#else\n#error \"USE_METHOD should be 1, 2, or 3.\"\n#endif\n\tctx->s[0] = le32_to_cpuvp(key +  16);\n\tctx->s[1] = le32_to_cpuvp(key +  20);\n\tctx->s[2] = le32_to_cpuvp(key +  24);\n\tctx->s[3] = le32_to_cpuvp(key +  28);\n}\n\nstatic unsigned int poly1305_generic_blocks(struct poly1305_ctx *ctx, const u8 *src, unsigned int srclen, u32 hibit)\n{\n\tu32 r0, r1, r2, r3, r4;\n\tu32 s1, s2, s3, s4;\n\tu32 h0, h1, h2, h3, h4;\n\tu64 d0, d1, d2, d3, d4;\n#if USE_METHOD == 3\n\tu32 t0, t1, t2, t3;\n#endif\n\n\tr0 = ctx->r[0];\n\tr1 = ctx->r[1];\n\tr2 = ctx->r[2];\n\tr3 = ctx->r[3];\n\tr4 = ctx->r[4];\n\n\ts1 = r1 * 5;\n\ts2 = r2 * 5;\n\ts3 = r3 * 5;\n\ts4 = r4 * 5;\n\n\th0 = ctx->h[0];\n\th1 = ctx->h[1];\n\th2 = ctx->h[2];\n\th3 = ctx->h[3];\n\th4 = ctx->h[4];\n\n\twhile (likely(srclen >= POLY1305_BLOCK_SIZE)) {\n\t\t/* h += m[i] */\n#if USE_METHOD == 1\n\t\th0 += (le32_to_cpuvp(src +  0) >> 0) & 0x3ffffff;\n\t\th1 += (le32_to_cpuvp(src +  3) >> 2) & 0x3ffffff;\n\t\th2 += (le32_to_cpuvp(src +  6) >> 4) & 0x3ffffff;\n\t\th3 += (le32_to_cpuvp(src +  9) >> 6) & 0x3ffffff;\n\t\th4 += (le32_to_cpuvp(src + 12) >> 8) | hibit;\n#elif USE_METHOD == 2\n\t\th0 += (le32_to_cpuvp(src +  0) >> 0) & 0x3ffffff;\n\t\th1 += (get_unaligned_le32(src +  3) >> 2) & 0x3ffffff;\n\t\th2 += (get_unaligned_le32(src +  6) >> 4) & 0x3ffffff;\n\t\th3 += (get_unaligned_le32(src +  9) >> 6) & 0x3ffffff;\n\t\th4 += (le32_to_cpuvp(src + 12) >> 8) | hibit;\n#elif USE_METHOD == 3\n\t\tt0 = le32_to_cpuvp(src +  0);\n\t\tt1 = le32_to_cpuvp(src +  4);\n\t\tt2 = le32_to_cpuvp(src +  8);\n\t\tt3 = le32_to_cpuvp(src + 12);\n\t\th0 += t0 & 0x3ffffff;\n\t\th1 += sr((((u64)t1 << 32) | t0), 26) & 0x3ffffff;\n\t\th2 += sr((((u64)t2 << 32) | t1), 20) & 0x3ffffff;\n\t\th3 += sr((((u64)t3 << 32) | t2), 14) & 0x3ffffff;\n\t\th4 += (t3 >> 8) | hibit;\n#else\n#error \"USE_METHOD should be 1, 2, or 3.\"\n#endif\n\n\t\t/* h *= r */\n\t\td0 = mlt(h0, r0) + mlt(h1, s4) + mlt(h2, s3) + mlt(h3, s2) + mlt(h4, s1);\n\t\td1 = mlt(h0, r1) + mlt(h1, r0) + mlt(h2, s4) + mlt(h3, s3) + mlt(h4, s2);\n\t\td2 = mlt(h0, r2) + mlt(h1, r1) + mlt(h2, r0) + mlt(h3, s4) + mlt(h4, s3);\n\t\td3 = mlt(h0, r3) + mlt(h1, r2) + mlt(h2, r1) + mlt(h3, r0) + mlt(h4, s4);\n\t\td4 = mlt(h0, r4) + mlt(h1, r3) + mlt(h2, r2) + mlt(h3, r1) + mlt(h4, r0);\n\n\t\t/* (partial) h %= p */\n\t\td1 += sr(d0, 26);     h0 = and(d0, 0x3ffffff);\n\t\td2 += sr(d1, 26);     h1 = and(d1, 0x3ffffff);\n\t\td3 += sr(d2, 26);     h2 = and(d2, 0x3ffffff);\n\t\td4 += sr(d3, 26);     h3 = and(d3, 0x3ffffff);\n\t\th0 += sr(d4, 26) * 5; h4 = and(d4, 0x3ffffff);\n\t\th1 += h0 >> 26;       h0 = h0 & 0x3ffffff;\n\n\t\tsrc += POLY1305_BLOCK_SIZE;\n\t\tsrclen -= POLY1305_BLOCK_SIZE;\n\t}\n\n\tctx->h[0] = h0;\n\tctx->h[1] = h1;\n\tctx->h[2] = h2;\n\tctx->h[3] = h3;\n\tctx->h[4] = h4;\n\n\treturn srclen;\n}\n\nstatic void poly1305_update(struct poly1305_ctx *ctx, const u8 *src, unsigned int srclen)\n{\n\tunsigned int bytes;\n\n\tif (unlikely(ctx->buflen)) {\n\t\tbytes = min(srclen, POLY1305_BLOCK_SIZE - ctx->buflen);\n\t\tmemcpy(ctx->buf + ctx->buflen, src, bytes);\n\t\tsrc += bytes;\n\t\tsrclen -= bytes;\n\t\tctx->buflen += bytes;\n\n\t\tif (ctx->buflen == POLY1305_BLOCK_SIZE) {\n\t\t\tpoly1305_generic_blocks(ctx, ctx->buf, POLY1305_BLOCK_SIZE, 1 << 24);\n\t\t\tctx->buflen = 0;\n\t\t}\n\t}\n\n\tif (likely(srclen >= POLY1305_BLOCK_SIZE)) {\n\t\tbytes = poly1305_generic_blocks(ctx, src, srclen, 1 << 24);\n\t\tsrc += srclen - bytes;\n\t\tsrclen = bytes;\n\t}\n\n\tif (unlikely(srclen)) {\n\t\tctx->buflen = srclen;\n\t\tmemcpy(ctx->buf, src, srclen);\n\t}\n}\n\nstatic void poly1305_finish(struct poly1305_ctx *ctx, u8 *dst)\n{\n\t__le32 *mac = (__le32 *)dst;\n\tu32 h0, h1, h2, h3, h4;\n\tu32 g0, g1, g2, g3, g4;\n\tu32 mask;\n\tu64 f = 0;\n\n\tif (unlikely(ctx->buflen)) {\n\t\tctx->buf[ctx->buflen++] = 1;\n\t\tmemset(ctx->buf + ctx->buflen, 0, POLY1305_BLOCK_SIZE - ctx->buflen);\n\t\tpoly1305_generic_blocks(ctx, ctx->buf, POLY1305_BLOCK_SIZE, 0);\n\t}\n\n\t/* fully carry h */\n\th0 = ctx->h[0];\n\th1 = ctx->h[1];\n\th2 = ctx->h[2];\n\th3 = ctx->h[3];\n\th4 = ctx->h[4];\n\n\th2 += (h1 >> 26);     h1 = h1 & 0x3ffffff;\n\th3 += (h2 >> 26);     h2 = h2 & 0x3ffffff;\n\th4 += (h3 >> 26);     h3 = h3 & 0x3ffffff;\n\th0 += (h4 >> 26) * 5; h4 = h4 & 0x3ffffff;\n\th1 += (h0 >> 26);     h0 = h0 & 0x3ffffff;\n\n\t/* compute h + -p */\n\tg0 = h0 + 5;\n\tg1 = h1 + (g0 >> 26);             g0 &= 0x3ffffff;\n\tg2 = h2 + (g1 >> 26);             g1 &= 0x3ffffff;\n\tg3 = h3 + (g2 >> 26);             g2 &= 0x3ffffff;\n\tg4 = h4 + (g3 >> 26) - (1 << 26); g3 &= 0x3ffffff;\n\n\t/* select h if h < p, or h + -p if h >= p */\n\tmask = (g4 >> ((sizeof(u32) * 8) - 1)) - 1;\n\tg0 &= mask;\n\tg1 &= mask;\n\tg2 &= mask;\n\tg3 &= mask;\n\tg4 &= mask;\n\tmask = ~mask;\n\th0 = (h0 & mask) | g0;\n\th1 = (h1 & mask) | g1;\n\th2 = (h2 & mask) | g2;\n\th3 = (h3 & mask) | g3;\n\th4 = (h4 & mask) | g4;\n\n\t/* h = h % (2^128) */\n\th0 = (h0 >>  0) | (h1 << 26);\n\th1 = (h1 >>  6) | (h2 << 20);\n\th2 = (h2 >> 12) | (h3 << 14);\n\th3 = (h3 >> 18) | (h4 <<  8);\n\n\t/* mac = (h + s) % (2^128) */\n\tf = (f >> 32) + h0 + ctx->s[0]; mac[0] = cpu_to_le32(f);\n\tf = (f >> 32) + h1 + ctx->s[1]; mac[1] = cpu_to_le32(f);\n\tf = (f >> 32) + h2 + ctx->s[2]; mac[2] = cpu_to_le32(f);\n\tf = (f >> 32) + h3 + ctx->s[3]; mac[3] = cpu_to_le32(f);\n}\n\nstatic int __init mod_init(void)\n{\n\tktime_t start;\n\ts64 elapsed_ns;\n\tunsigned int i, j;\n\tu8 key[POLY1305_KEY_SIZE];\n\tu8 data[POLY1305_BLOCK_SIZE];\n\tu8 big_data[8 * POLY1305_BLOCK_SIZE];\n\tu8 output[POLY1305_MAC_SIZE];\n\tstruct poly1305_ctx ctx;\n\n\tget_random_bytes(key, POLY1305_KEY_SIZE);\n\tget_random_bytes(data, POLY1305_BLOCK_SIZE);\n\tget_random_bytes(big_data, 8 * POLY1305_BLOCK_SIZE);\n\n\tstart = ktime_get();\n\tfor (i = 0; i < 4096 * 128; ++i) {\n\t\tpoly1305_init(&ctx, key);\n\t\tfor (j = 0; j < 128; ++j) {\n\t\t\tpoly1305_update(&ctx, data, POLY1305_BLOCK_SIZE);\n\t\t\tpoly1305_update(&ctx, big_data, 8 * POLY1305_BLOCK_SIZE);\n\t\t}\n\t\tpoly1305_finish(&ctx, output);\n\t}\n\telapsed_ns = ktime_to_ns(ktime_sub(ktime_get(), start));\n\n\tpr_info(\"poly1305 benchmark: %lld nanoseconds\\n\", elapsed_ns);\n\treturn -EINVAL; // We don't actually want to insert this module...\n}\nstatic void __exit mod_exit(void)\n{\n}\n\nmodule_init(mod_init);\nmodule_exit(mod_exit);\nMODULE_LICENSE(\"GPL v2\");\nMODULE_DESCRIPTION(\"Poly1305 Generic C Benchmarker\");\nMODULE_AUTHOR(\"Jason A. Donenfeld <Jason@zx2c4.com>\");\n\n/****************************************************************************\n**\n** Copyright (C) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).\n** All rights reserved.\n** Contact: Nokia Corporation (qt-info@nokia.com)\n**\n** This file is part of the Qt Script Generator project on Qt Labs.\n**\n** $QT_BEGIN_LICENSE:LGPL$\n** No Commercial Usage\n** This file contains pre-release code and may not be distributed.\n** You may use this file in accordance with the terms and conditions\n** contained in the Technology Preview License Agreement accompanying\n** this package.\n**\n** GNU Lesser General Public License Usage\n** Alternatively, this file may be used under the terms of the GNU Lesser\n** General Public License version 2.1 as published by the Free Software\n** Foundation and appearing in the file LICENSE.LGPL included in the\n** packaging of this file.  Please review the following information to\n** ensure the GNU Lesser General Public License version 2.1 requirements\n** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.\n**\n** In addition, as a special exception, Nokia gives you certain additional\n** rights.  These rights are described in the Nokia Qt LGPL Exception\n** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.\n**\n** If you have questions regarding the use of this file, please contact\n** Nokia at qt-info@nokia.com.\n**\n**\n**\n**\n**\n**\n**\n**\n** $QT_END_LICENSE$\n**\n****************************************************************************/\n\n#ifndef ABSTRACTMETABUILDER_H\n#define ABSTRACTMETABUILDER_H\n\n#include \"codemodel.h\"\n#include \"abstractmetalang.h\"\n#include \"typesystem.h\"\n#include \"typeparser.h\"\n\n#include <QtCore/QSet>\n\nclass AbstractMetaBuilder\n{\npublic:\n    enum RejectReason {\n        NotInTypeSystem,\n        GenerationDisabled,\n        RedefinedToNotClass,\n        UnmatchedArgumentType,\n        UnmatchedReturnType,\n        NoReason\n    };\n\n    AbstractMetaBuilder();\n    virtual ~AbstractMetaBuilder() {};\n\n    AbstractMetaClassList classes() const { return m_meta_classes; }\n    AbstractMetaClassList classesTopologicalSorted() const;\n\n    FileModelItem model() const { return m_dom; }\n    void setModel(FileModelItem item) { m_dom = item; }\n\n\n    ScopeModelItem popScope() { return m_scopes.takeLast(); }\n    void pushScope(ScopeModelItem item) { m_scopes << item; }\n    ScopeModelItem currentScope() const { return m_scopes.last(); }\n\n    QString fileName() const { return m_file_name; }\n    void setFileName(const QString &fileName) { m_file_name = fileName; }\n\n    void dumpLog();\n\n    bool build();\n\n    void figureOutEnumValuesForClass(AbstractMetaClass *meta_class, QSet<AbstractMetaClass *> *classes);\n    int figureOutEnumValue(const QString &name, int value, AbstractMetaEnum *meta_enum, AbstractMetaFunction *meta_function = 0);\n    void figureOutEnumValues();\n    void figureOutDefaultEnumArguments();\n\n    void addAbstractMetaClass(AbstractMetaClass *cls);\n    AbstractMetaClass *traverseTypeAlias(TypeAliasModelItem item);\n    AbstractMetaClass *traverseClass(ClassModelItem item);\n    bool setupInheritance(AbstractMetaClass *meta_class);\n    AbstractMetaClass *traverseNamespace(NamespaceModelItem item);\n    AbstractMetaEnum *traverseEnum(EnumModelItem item, AbstractMetaClass *enclosing, const QSet<QString> &enumsDeclarations);\n    void traverseEnums(ScopeModelItem item, AbstractMetaClass *parent, const QStringList &enumsDeclarations);\n    void traverseFunctions(ScopeModelItem item, AbstractMetaClass *parent);\n    void traverseFields(ScopeModelItem item, AbstractMetaClass *parent);\n    void traverseStreamOperator(FunctionModelItem function_item);\n    void traverseCompareOperator(FunctionModelItem item);\n    AbstractMetaFunction *traverseFunction(FunctionModelItem function);\n    AbstractMetaField *traverseField(VariableModelItem field, const AbstractMetaClass *cls);\n    void checkFunctionModifications();\n    void registerHashFunction(FunctionModelItem function_item);\n    void registerToStringCapability(FunctionModelItem function_item);\n\n    void parseQ_Property(AbstractMetaClass *meta_class, const QStringList &declarations);\n    void setupEquals(AbstractMetaClass *meta_class);\n    void setupComparable(AbstractMetaClass *meta_class);\n    void setupClonable(AbstractMetaClass *cls);\n    void setupFunctionDefaults(AbstractMetaFunction *meta_function, AbstractMetaClass *meta_class);\n\n    QString translateDefaultValue(ArgumentModelItem item, AbstractMetaType *type,\n                                               AbstractMetaFunction *fnc, AbstractMetaClass *,\n                                               int argument_index);\n    AbstractMetaType *translateType(const TypeInfo &type, bool *ok, bool resolveType = true, bool resolveScope = true);\n\n    void decideUsagePattern(AbstractMetaType *type);\n\n    bool inheritTemplate(AbstractMetaClass *subclass,\n                         const AbstractMetaClass *template_class,\n                         const TypeParser::Info &info);\n    AbstractMetaType *inheritTemplateType(const QList<AbstractMetaType *> &template_types, AbstractMetaType *meta_type, bool *ok = 0);\n\n    bool isQObject(const QString &qualified_name);\n    bool isEnum(const QStringList &qualified_name);\n\n    void fixQObjectForScope  (TypeDatabase *types, \n\t\t\t      NamespaceModelItem item);\n\n    // QtScript\n    QSet<QString> qtMetaTypeDeclaredTypeNames() const\n        { return m_qmetatype_declared_typenames; }\n\nprotected:\n    AbstractMetaClass *argumentToClass(ArgumentModelItem);\n\n    virtual AbstractMetaClass *createMetaClass() = 0;\n    virtual AbstractMetaEnum *createMetaEnum() = 0;\n    virtual AbstractMetaEnumValue *createMetaEnumValue() = 0;\n    virtual AbstractMetaField *createMetaField() = 0;\n    virtual AbstractMetaFunction *createMetaFunction() = 0;\n    virtual AbstractMetaArgument *createMetaArgument() = 0;\n    virtual AbstractMetaType *createMetaType() = 0;\n\nprivate:\n    void sortLists();\n\n    QString m_file_name;\n\n    AbstractMetaClassList m_meta_classes;\n    AbstractMetaClassList m_templates;\n    FileModelItem m_dom;\n    \n    QSet<const TypeEntry *> m_used_types;\n\n    QMap<QString, RejectReason> m_rejected_classes;\n    QMap<QString, RejectReason> m_rejected_enums;\n    QMap<QString, RejectReason> m_rejected_functions;\n    QMap<QString, RejectReason> m_rejected_fields;\n\n    QList<AbstractMetaEnum *> m_enums;\n\n    QList<QPair<AbstractMetaArgument *, AbstractMetaFunction *> > m_enum_default_arguments;\n\n    QHash<QString, AbstractMetaEnumValue *> m_enum_values;\n\n    AbstractMetaClass *m_current_class;\n    QList<ScopeModelItem> m_scopes;\n    QString m_namespace_prefix;\n\n    QSet<AbstractMetaClass *> m_setup_inheritance_done;\n\n    // QtScript\n    QSet<QString> m_qmetatype_declared_typenames;\n};\n\n#endif // ABSTRACTMETBUILDER_H\n\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE pkgmetadata SYSTEM \"http://www.gentoo.org/dtd/metadata.dtd\">\n<pkgmetadata>\n\t<maintainer type=\"project\">\n\t\t<email>kde@gentoo.org</email>\n\t\t<name>Gentoo KDE Project</name>\n\t</maintainer>\n\t<upstream>\n\t\t<remote-id type=\"github\">phacility/libphutil</remote-id>\n\t</upstream>\n</pkgmetadata>\n\n<manifest>\n  <remote name=\"aosp\" fetch=\"https://android.googlesource.com/\" />\n  <default revision=\"refs/tags/android-11.0.0_r0.79\" remote=\"aosp\" sync-j=\"4\" />\n\n  <project path=\"build\" name=\"kernel/build\" revision=\"master\" clone-depth=\"1\" />\n\n  <project path=\"private/msm-google\" name=\"kernel/msm\" clone-depth=\"1\">\n    <linkfile src=\"build.config\" dest=\"build.config\" />\n  </project>\n  <project path=\"private/msm-google/techpack/audio\" name=\"kernel/msm-extra\" clone-depth=\"1\" />\n  <project path=\"private/msm-google-modules/data-kernel\" name=\"kernel/msm-modules/data-kernel\" clone-depth=\"1\" />\n  <project path=\"private/msm-google-modules/wlan/qca-wifi-host-cmn\" name=\"kernel/msm-modules/qca-wfi-host-cmn\" clone-depth=\"1\" />\n  <project path=\"private/msm-google-modules/wlan/qcacld-3.0\" name=\"kernel/msm-modules/qcacld\" clone-depth=\"1\" />\n  <project path=\"private/msm-google-modules/wlan/fw-api\" name=\"kernel/msm-modules/wlan-fw-api\" clone-depth=\"1\" />\n  <project path=\"private/msm-google-modules/touch/fts\" name=\"kernel/msm-modules/fts_touch\" clone-depth=\"1\" />\n\n  <project path=\"prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9\" name=\"platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9\" revision=\"pie-release\" clone-depth=\"1\" />\n  <project path=\"prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9\" name=\"platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9\" revision=\"pie-release\" clone-depth=\"1\" />\n  <project path=\"prebuilts-master/clang/host/linux-x86\" name=\"platform/prebuilts/clang/host/linux-x86\" revision=\"android11-release\" clone-depth=\"1\" groups=\"partner\" />\n  <project path=\"prebuilts-master/misc\" name=\"platform/prebuilts/misc\" revision=\"pie-release\" clone-depth=\"1\" />\n</manifest>\n\nKernel driver ir38064\n=====================\n\nSupported chips:\n\n  * Infineon IR38060\n\n    Prefix: 'IR38060'\n    Addresses scanned: -\n\n    Datasheet: Publicly available at the Infineon website\n      https://www.infineon.com/dgdl/Infineon-IR38060M-DS-v03_16-EN.pdf?fileId=5546d4625c167129015c3291ea9a4cee\n\n  * Infineon IR38064\n\n    Prefix: 'ir38064'\n    Addresses scanned: -\n\n    Datasheet: Publicly available at the Infineon website\n      https://www.infineon.com/dgdl/Infineon-IR38064MTRPBF-DS-v03_07-EN.pdf?fileId=5546d462584d1d4a0158db0d9efb67ca\n\n  * Infineon IR38164\n\n    Prefix: 'ir38164'\n    Addresses scanned: -\n\n    Datasheet: Publicly available at the Infineon website\n      https://www.infineon.com/dgdl/Infineon-IR38164M-DS-v02_02-EN.pdf?fileId=5546d462636cc8fb01640046efea1248\n\n  * Infineon ir38263\n\n    Prefix: 'ir38263'\n    Addresses scanned: -\n\n    Datasheet:  Publicly available at the Infineon website\n      https://www.infineon.com/dgdl/Infineon-IR38263M-DataSheet-v03_05-EN.pdf?fileId=5546d4625b62cd8a015bcf81f90a6e52\n\nAuthors:\n      - Maxim Sloyko <maxims@google.com>\n      - Patrick Venture <venture@google.com>\n\nDescription\n-----------\n\nIR38x6x are a Single-input Voltage, Synchronous Buck Regulator, DC-DC Converter.\n\nUsage Notes\n-----------\n\nThis driver does not probe for PMBus devices. You will have to instantiate\ndevices explicitly.\n\nSysfs attributes\n----------------\n\n======================= ===========================\ncurr1_label\t\t\"iout1\"\ncurr1_input\t\tMeasured output current\ncurr1_crit\t\tCritical maximum current\ncurr1_crit_alarm\tCurrent critical high alarm\ncurr1_max\t\tMaximum current\ncurr1_max_alarm\t\tCurrent high alarm\n\nin1_label\t\t\"vin\"\nin1_input\t\tMeasured input voltage\nin1_crit\t\tCritical maximum input voltage\nin1_crit_alarm\t\tInput voltage critical high alarm\nin1_min\t\t\tMinimum input voltage\nin1_min_alarm\t\tInput voltage low alarm\n\nin2_label\t\t\"vout1\"\nin2_input\t\tMeasured output voltage\nin2_lcrit\t\tCritical minimum output voltage\nin2_lcrit_alarm\t\tOutput voltage critical low alarm\nin2_crit\t\tCritical maximum output voltage\nin2_crit_alarm\t\tOutput voltage critical high alarm\nin2_max\t\t\tMaximum output voltage\nin2_max_alarm\t\tOutput voltage high alarm\nin2_min\t\t\tMinimum output voltage\nin2_min_alarm\t\tOutput voltage low alarm\n\npower1_label\t\t\"pout1\"\npower1_input\t\tMeasured output power\n\ntemp1_input\t\tMeasured temperature\ntemp1_crit\t\tCritical high temperature\ntemp1_crit_alarm\tChip temperature critical high alarm\ntemp1_max\t\tMaximum temperature\ntemp1_max_alarm\t\tChip temperature high alarm\n======================= ===========================\n\n# ZX2C4 Kernel Pwn Challenge\n\nThis project builds a bootable iso containing a complete Linux kernel and userland. The kernel has a security vulnerability that allows unprivileged users to attain root access.\n\n### Instructions\n\n* Type `make` to build an iso.\n* Boot the iso in a VM.\n* Read the instructions.\n* Get root by writing a kernel exploit.\n\n#!/bin/sh\n\ntest_description='Validate html with tidy'\n. ./setup.sh\n\n\ntest_url()\n{\n\ttidy_opt=\"-eq\"\n\ttest -z \"$NO_TIDY_WARNINGS\" || tidy_opt+=\" --show-warnings no\"\n\tcgit_url \"$1\" >tidy-$test_count.tmp || return\n\tsed -e \"1,4d\" tidy-$test_count.tmp >tidy-$test_count || return\n\t\"$tidy\" $tidy_opt tidy-$test_count\n\trc=$?\n\n\t# tidy returns with exitcode 1 on warnings, 2 on error\n\tif test $rc = 2\n\tthen\n\t\tfalse\n\telse\n\t\t:\n\tfi\n}\n\ntidy=`which tidy 2>/dev/null`\ntest -n \"$tidy\" || {\n\tskip_all='Skipping html validation tests: tidy not found'\n\ttest_done\n\texit\n}\n\ntest_expect_success 'index page' 'test_url \"\"'\ntest_expect_success 'foo' 'test_url \"foo\"'\ntest_expect_success 'foo/log' 'test_url \"foo/log\"'\ntest_expect_success 'foo/tree' 'test_url \"foo/tree\"'\ntest_expect_success 'foo/tree/file-1' 'test_url \"foo/tree/file-1\"'\ntest_expect_success 'foo/commit' 'test_url \"foo/commit\"'\ntest_expect_success 'foo/diff' 'test_url \"foo/diff\"'\n\ntest_done\n\n"}
