QtBase - c71fc3860b0947c3c793578117e9eb0a3eb3fb31 vs 8193340a44fd835cee029e63a31cfcab8ef6fd55

Function Tree

Page:<>1
Modifications: Different
...6
Modifications: Different
7
Modifications: Different
8
Modifications: Different
9
Modifications: New
10
FunctionCondition %Modificationsâ–´eLOC - Effective Lines of CodeMcCabe - Cyclomatic Complexity
qHash
Name: qHash
Prototype: uint qHash(double key, uint seed) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qhash.cpp
Lines: 983-986
Comparison: New
100.000% (1/1)
New11
qHash
Name: qHash
Prototype: uint qHash(long double key, uint seed) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qhash.cpp
Lines: 994-997
Comparison: New
100.000% (1/1)
New11
qHash
Name: qHash
Prototype: static uint qHash(const QRegExpEngineKey &key, uint seed = 0) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qregexp.cpp
Lines: 896-903
Comparison: New
100.000% (1/1)
New51
qHash
Name: qHash
Prototype: uint qHash(const QRegExp &key, uint seed) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qregexp.cpp
Lines: 4043-4049
Comparison: New
100.000% (1/1)
New41
qHash
Name: qHash
Prototype: uint qHash(const QRegularExpression &key, uint seed) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qregularexpression.cpp
Lines: 1858-1864
Comparison: New
100.000% (1/1)
New41
qHash
Name: qHash
Prototype: uint qHash(const QSslError &key, uint seed) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/network/ssl/qsslerror.cpp
Lines: 319-325
Comparison: New
100.000% (1/1)
New31
qHashBits
Name: qHashBits
Prototype: uint qHashBits(const void *p, size_t len, uint seed) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qhash.cpp
Lines: 215-218
Comparison: New
100.000% (1/1)
New11
qIsEffectiveTLD
Name: qIsEffectiveTLD
Prototype: bool qIsEffectiveTLD(const QStringRef &domain)
Coverage: 100.000% (10/10)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/io/qtldurl.cpp
Lines: 106-125
Comparison: New
100.000% (10/10)
New104
qLcEglfsKmsDebug
Name: qLcEglfsKmsDebug
Prototype: const QLoggingCategory &qLcEglfsKmsDebug()
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsintegration.cpp
Lines: 61-61
Comparison: New
  0.000% (0/1)
New11
qSelectionIndexes
Name: qSelectionIndexes
Prototype: template<typename ModelIndexContainer> static ModelIndexContainer qSelectionIndexes(const QItemSelection &selection)
Coverage: 100.000% (2/2)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp
Lines: 330-337
Comparison: New
100.000% (2/2)
New42
qSharedBuild
Name: qSharedBuild
Prototype: bool qSharedBuild() noexcept
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 1027-1034
Comparison: New
  0.000% (0/1)
New11
qStandardItemModelDataListMimeType
Name: qStandardItemModelDataListMimeType
Coverage:  0.000% (0/1)
Comparison: New
  0.000% (0/1)
New01
qStandardItemModelDataListMimeType
Name: qStandardItemModelDataListMimeType
Prototype: static inline QString qStandardItemModelDataListMimeType()
Coverage:  0.000% (0/2)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/itemmodels/qstandarditemmodel.cpp
Lines: 60-63
Comparison: New
  0.000% (0/2)
New02
qTerminate
Name: qTerminate
Prototype: void qTerminate() noexcept
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 3070-3073
Comparison: New
  0.000% (0/1)
New11
qVersion
Name: qVersion
Prototype: const char *qVersion() noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 1022-1025
Comparison: New
100.000% (1/1)
New11
qdtoa
Name: qdtoa
Prototype: QString qdtoa(qreal d, int *decpt, int *sign)
Coverage:  0.000% (0/9)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qlocale_tools.cpp
Lines: 560-577
Comparison: New
  0.000% (0/9)
New113
qglx_findConfig
Name: qglx_findConfig
Prototype: GLXFBConfig qglx_findConfig(Display *display, int screen , QSurfaceFormat format, bool highestPixelFormat, int drawableBit)
Coverage:  45.946% (17/37)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/glxconvenience/qglxconvenience.cpp
Lines: 182-229
Comparison: New
 45.946% (17/37)
New319
qglx_findVisualInfo
Name: qglx_findVisualInfo
Prototype: XVisualInfo *qglx_findVisualInfo(Display *display, int screen, QSurfaceFormat *format, int drawableBit)
Coverage:  30.769% (4/13)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/glxconvenience/qglxconvenience.cpp
Lines: 231-258
Comparison: New
 30.769% (4/13)
New155
qglx_reduceFormat
Name: qglx_reduceFormat
Prototype: bool qglx_reduceFormat(QSurfaceFormat *format)
Coverage:  0.000% (0/37)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/glxconvenience/qglxconvenience.cpp
Lines: 330-395
Comparison: New
  0.000% (0/37)
New3813
qopenglfSpecialClearDepthf
Name: qopenglfSpecialClearDepthf
Prototype: static void qopenglfSpecialClearDepthf(GLclampf depth)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/opengl/qopenglfunctions.cpp
Lines: 2155-2160
Comparison: New
  0.000% (0/1)
New31
qopenglfSpecialDepthRangef
Name: qopenglfSpecialDepthRangef
Prototype: static void qopenglfSpecialDepthRangef(GLclampf zNear, GLclampf zFar)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/opengl/qopenglfunctions.cpp
Lines: 2162-2167
Comparison: New
  0.000% (0/1)
New31
qstrntod
Name: qstrntod
Prototype: double qstrntod(const char *s00, int len, const char **se, bool *ok)
Coverage:  0.000% (0/7)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qlocale_tools.cpp
Lines: 548-558
Comparison: New
  0.000% (0/7)
New83
qt_QMetaEnum_flagDebugOperator
Name: qt_QMetaEnum_flagDebugOperator
Prototype: void qt_QMetaEnum_flagDebugOperator(QDebug &debug, size_t sizeofT, int value)
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/io/qdebug.cpp
Lines: 894-897
Comparison: New
100.000% (1/1)
New11
qt_assert
Name: qt_assert
Prototype: void qt_assert(const char *assertion, const char *file, int line) noexcept
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 3079-3082
Comparison: New
  0.000% (0/1)
New11
qt_assert_x
Name: qt_assert_x
Prototype: void qt_assert_x(const char *where, const char *what, const char *file, int line) noexcept
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 3087-3090
Comparison: New
  0.000% (0/1)
New11
qt_fetchUntransformed_888_ssse3
Name: qt_fetchUntransformed_888_ssse3
Prototype: const uint * qt_fetchUntransformed_888_ssse3(uint *buffer, const Operator *, const QSpanData *data, int y, int x, int length)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qdrawhelper_ssse3.cpp
Lines: 238-244
Comparison: New
  0.000% (0/1)
New31
qt_from_latin1
Name: qt_from_latin1
Prototype: void qt_from_latin1(ushort *dst, const char *str, size_t size) noexcept
Coverage: 100.000% (4/4)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qstring.cpp
Lines: 213-261
Comparison: New
100.000% (4/4)
New134
qt_gettime
Name: qt_gettime
Prototype: struct timespec qt_gettime() noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qelapsedtimer_unix.cpp
Lines: 170-180
Comparison: New
100.000% (1/1)
New61
qt_hash
Name: qt_hash
Prototype: static uint qt_hash(const QChar *p, int n) noexcept
Coverage: 100.000% (4/4)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qhash.cpp
Lines: 408-418
Comparison: New
100.000% (4/4)
New62
qt_hash
Name: qt_hash
Prototype: uint qt_hash(const QString &key) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qhash.cpp
Lines: 424-427
Comparison: New
100.000% (1/1)
New11
qt_hash
Name: qt_hash
Prototype: uint qt_hash(const QStringRef &key) noexcept
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qhash.cpp
Lines: 433-436
Comparison: New
100.000% (1/1)
New11
qt_pollfd_check
Name: qt_pollfd_check
Prototype: static bool qt_pollfd_check(const pollfd &pfd, short revents)
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/io/qprocess_unix.cpp
Lines: 168-171
Comparison: New
100.000% (1/1)
New11
qt_ppoll
Name: qt_ppoll
Prototype: static inline int qt_ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts)
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qcore_unix.cpp
Lines: 78-87
Comparison: New
100.000% (1/1)
New11
qt_safe_poll
Name: qt_safe_poll
Prototype: int qt_safe_poll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts)
Coverage:  72.222% (13/18)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qcore_unix.cpp
Lines: 97-122
Comparison: New
 72.222% (13/18)
New126
qt_tildeExpansion
Name: qt_tildeExpansion
Prototype: QString qt_tildeExpansion(const QString &path)
Coverage:  0.000% (0/15)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/widgets/dialogs/qfiledialog.cpp
Lines: 1103-1140
Comparison: New
  0.000% (0/15)
New185
registerEventTypeZeroBased
Name: registerEventTypeZeroBased
Prototype: static inline int registerEventTypeZeroBased(int id) noexcept
Coverage: 100.000% (8/8)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qcoreevent.cpp
Lines: 453-461
Comparison: New
100.000% (8/8)
New32
resolve
Name: resolve
Prototype: template <typename Func> Func resolve(QOpenGLContext *context, const char *name, Func)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/opengl/qopenglfunctions.cpp
Lines: 2141-2145
Comparison: New
  0.000% (0/1)
New11
round_up_scanline
Name: round_up_scanline
Prototype: static inline quint32 round_up_scanline(quint32 base, quint32 pad)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbbackingstore.cpp
Lines: 353-356
Comparison: New
  0.000% (0/1)
New11
separate_if
Name: separate_if
Prototype: template <typename InputIt, typename OutputIt1, typename OutputIt2, typename UnaryPredicate> std::pair<OutputIt1, OutputIt2> separate_if(InputIt first, InputIt last, OutputIt1 dest1, OutputIt2 dest2, UnaryPredicate p)
Coverage: 100.000% (8/8)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/network/kernel/qhostinfo.cpp
Lines: 83-97
Comparison: New
100.000% (8/8)
New83
setWidthAttribute
Name: setWidthAttribute
Prototype: static void setWidthAttribute(QTextLength *width, const QString &valueStr)
Coverage:  0.000% (0/12)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/text/qtexthtmlparser.cpp
Lines: 1422-1437
Comparison: New
  0.000% (0/12)
New104
shouldIncludeFs
Name: shouldIncludeFs
Prototype: static bool shouldIncludeFs(const QStorageIterator &it)
Coverage:  86.667% (13/15)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/io/qstorageinfo_unix.cpp
Lines: 157-192
Comparison: New
 86.667% (13/15)
New103
socketType
Name: socketType
Prototype: static const char *socketType(QSocketNotifier::Type type)
Coverage:  0.000% (0/7)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qeventdispatcher_unix.cpp
Lines: 78-90
Comparison: New
  0.000% (0/7)
New54
storePixelsBPP24_ssse3
Name: storePixelsBPP24_ssse3
Prototype: void storePixelsBPP24_ssse3(uchar *dest, const uint *src, int index, int count)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qdrawhelper_ssse3.cpp
Lines: 231-234
Comparison: New
  0.000% (0/1)
New11
store_uint24_ssse3
Name: store_uint24_ssse3
Prototype: static inline void store_uint24_ssse3(uchar *dst, const uint *src, int len)
Coverage:  0.000% (0/12)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/painting/qdrawhelper_ssse3.cpp
Lines: 179-229
Comparison: New
  0.000% (0/12)
New364
textHtmlLiteral
Name: textHtmlLiteral
Coverage: 100.000% (1/1)
Comparison: New
100.000% (1/1)
New01
textHtmlLiteral
Name: textHtmlLiteral
Prototype: static inline QString textHtmlLiteral()
Coverage: 100.000% (2/2)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qmimedata.cpp
Lines: 50-50
Comparison: New
100.000% (2/2)
New02
textPlainLiteral
Name: textPlainLiteral
Coverage: 100.000% (1/1)
Comparison: New
100.000% (1/1)
New01
textPlainLiteral
Name: textPlainLiteral
Prototype: static inline QString textPlainLiteral()
Coverage: 100.000% (2/2)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qmimedata.cpp
Lines: 51-51
Comparison: New
100.000% (2/2)
New02
textUriListLiteral
Name: textUriListLiteral
Coverage: 100.000% (1/1)
Comparison: New
100.000% (1/1)
New01
textUriListLiteral
Name: textUriListLiteral
Prototype: static inline QString textUriListLiteral()
Coverage: 100.000% (2/2)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qmimedata.cpp
Lines: 49-49
Comparison: New
100.000% (2/2)
New02
timespecToMillisecs
Name: timespecToMillisecs
Prototype: static inline int timespecToMillisecs(const struct timespec *ts)
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/kernel/qcore_unix.cpp
Lines: 68-72
Comparison: New
100.000% (1/1)
New21
toIntegral_helper
Name: toIntegral_helper
Prototype: static qlonglong toIntegral_helper(const QLocaleData *d, const QChar *data, int len, bool *ok, QLocale::NumberOptions mode, qlonglong)
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qlocale.cpp
Lines: 1092-1096
Comparison: New
100.000% (1/1)
New11
toIntegral_helper
Name: toIntegral_helper
Prototype: static qulonglong toIntegral_helper(const QLocaleData *d, const QChar *data, int len, bool *ok, QLocale::NumberOptions mode, qulonglong)
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qlocale.cpp
Lines: 1098-1102
Comparison: New
100.000% (1/1)
New11
unquote
Name: unquote
Prototype: static QString unquote(const QStringRef &str)
Coverage:  86.667% (13/15)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qdatetimeparser.cpp
Lines: 316-338
Comparison: New
 86.667% (13/15)
New155
xi2ValuatorOffset
Name: xi2ValuatorOffset
Prototype: static int xi2ValuatorOffset(const unsigned char *maskPtr, int maskLen, int number)
Coverage:  0.000% (0/19)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp
Lines: 2275-2292
Comparison: New
  0.000% (0/19)
New127
QSysInfo
Name: QSysInfo
Coverage:  42.105% (8/19)
Comparison: Same
 42.105% (8/19)
Same5038
QSystemSemaphorePrivate
Name: QSystemSemaphorePrivate
Coverage:  84.615% (11/13)
Comparison: Same
 84.615% (11/13)
Same8330
QTimeLinePrivate
Name: QTimeLinePrivate
Coverage:  94.444% (34/36)
Comparison: Same
 94.444% (34/36)
Same3111
QXcbWMSupport
Name: QXcbWMSupport
Coverage:  13.333% (2/15)
Comparison: Same
 13.333% (2/15)
Same4311
createReadHandlerHelper
Name: createReadHandlerHelper
Prototype: static QImageIOHandler *createReadHandlerHelper(QIODevice *device, const QByteArray &format, bool autoDetectImageFormat, bool ignoresFormatAndExtension)
Coverage:  0.000% (0/204)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qimagereader.cpp
Lines: 237-518
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/gui/image/qimagereader.cpp
Lines (reference): 231-512
Comparison: Same
  0.000% (0/204)
Same11353
detectWebBrowser
Name: detectWebBrowser
Coverage:  0.000% (0/1)
Comparison: Same
  0.000% (0/1)
Same01
init_platform
Name: init_platform
Coverage:  0.000% (0/1)
Comparison: Same
  0.000% (0/1)
Same01
loadTzTimeZones
Name: loadTzTimeZones
Coverage:  0.000% (0/1)
Comparison: Same
  0.000% (0/1)
Same01
maxBasicCpuidSupported
Name: maxBasicCpuidSupported
Prototype: static int maxBasicCpuidSupported()
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qsimd.cpp
Lines: 181-224
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qsimd.cpp
Lines (reference): 146-185
Comparison: Same
100.000% (1/1)
Same91
qLcEvdevTablet
Name: qLcEvdevTablet
Prototype: const QLoggingCategory &qLcEvdevTablet()
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/input/evdevtablet/qevdevtablethandler.cpp
Lines: 52-52
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/input/evdevtablet/qevdevtablet.cpp
Lines (reference): 46-46
Comparison: Same
  0.000% (0/1)
Same11
qrand
Name: qrand
Prototype: int qrand()
Coverage: 100.000% (7/7)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 3520-3564
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines (reference): 3457-3501
Comparison: Same
100.000% (7/7)
Same83
qsrand
Name: qsrand
Prototype: void qsrand(uint seed)
Coverage:  71.429% (5/7)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines: 3466-3503
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/corelib/global/qglobal.cpp
Lines (reference): 3403-3440
Comparison: Same
 71.429% (5/7)
Same73
qt_timezone
Name: qt_timezone
Prototype: static int qt_timezone()
Coverage: 100.000% (1/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qdatetime.cpp
Lines: 2165-2196
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qdatetime.cpp
Lines (reference): 2144-2173
Comparison: Same
100.000% (1/1)
Same11
xgetbv
Name: xgetbv
Prototype: static void xgetbv(uint in, uint &eax, uint &edx)
Coverage:  0.000% (0/1)
Absolute File Name: /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qsimd.cpp
Lines: 282-293
Absolute File Name (reference): /home/qt/qt5_coco/qt5/qtbase/src/corelib/tools/qsimd.cpp
Lines (reference): 233-244
Comparison: Same
  0.000% (0/1)
Same31
Page:<>1
Modifications: Different
...6
Modifications: Different
7
Modifications: Different
8
Modifications: Different
9
Modifications: New
10

Generated by Squish Coco Non-Commercial 4.3.0-BETA-master-30-08-2018-4cb69e9